//---------------------------------------------------------------------------------------
// Ponto de Entrada: M410STTS - Tratar endereço de entrega
// Solicitante: Rodrigo.
// Autor: Aytel M. Fonseca.
// Data: 26-03-2014
//---------------------------------------------------------------------------------------
#include "topconn.ch"
#include 'protheus.ch'
#include 'rwmake.ch'
#include "font.ch"
User Function M410STTS()
Local aArea := GetArea()
Public cCEP := Space(8)
Public cEnd := Space(93)
Public __cNum := Space(5)
Public cCompl := Space(40)
Public cBairro := Space(15)
Public cCidade := Space(20)
Public cUF := Space(2)
Public cPonto := Space(60)
Public cJust := Space(150)
Public cPedTMK := M->C5_NUM //variável utilizada para preencher o campo de número do Pedido no Atendimento do Call Center, quando o botão Pedido de Venda for acionado.
Private oGet1
Private oSay1
Private oGet2
Private oSay2
Private oGet3
Private oSay3
Private oGet4
Private oSay4
Private oGet5
Private oSay5
Private oGet6
Private oSay6
Private oGet7
Private oSay7
Private oGet8
Private oSay8
Private oSay9
Private oFont1 := TFont():New("Calibri",,016,,.F.,,,,,.F.,.F.)
Private oFont2 := TFont():New("Calibri",,016,,.T.,,,,,.F.,.F.)
Private oButton1
Private oButton2
Private oDlg
Private oDlg_J
Private oSay_J
Private oGet_J
SetKey(VK_F5 ,Nil)
SetKey(VK_F6 ,Nil)
SetKey(VK_F7 ,Nil)
SetKey(VK_F8 ,Nil)
SetKey(VK_F9 ,Nil)
SetKey(VK_F11,Nil)
// 14.12.2020 Apaga Justificativa de atraso na função copia. (Fonseca)
If Inclui .OR. Altera
If aRotina[3][2] = 'A410Copia'
RecLock("SC5",.F.)
SC5->C5_JUS := ""
SC5->C5_JUSTX := ""
MsUnlock()
EndIf
EndIf
// Pergunta sobre faturamento em PB.
// Solicitante: Rodrigo - em 20.05.2020.
If !isblind() .and. cFilAnt = '01' .AND. INCLUI .AND. C5_PVPB = .F. .AND.;
(C5_TIPOLUMI = '1' .OR. C5_TIPOLUMI = '2' .OR. C5_TIPOLUMI = '3' .OR. C5_TIPOLUMI = '4' .OR. C5_TIPOLUMI = '5')
If MsgYesNo("Este P.Venda será indicado como apto a faturar por outra filial ?","Faturar Pato Branco.")
RecLock("SC5",.F.)
SC5->C5_PVPB := .T.
MsUnlock()
Else
MsgInfo("É necessário justificar o NÃO FATURAMENTO por outra filial."+Chr(13)+Chr(13)+;
"Caso não seja preenchido, será gravado automaticamente como 'Sem Justificativa'.","Atenção.")
DEFINE MSDIALOG oDlg_J TITLE "Justificativa." FROM 000,000 TO 150,630 COLORS 0,16777215 PIXEL
@ 017,005 SAY oSay_J PROMPT "Justificativa: " SIZE 050,012 OF oDlg_J COLORS 0,16777215 FONT oFont1 PIXEL
@ 013,038 MSGET oGet_J VAR cJust SIZE 250,12 OF oDlg_J PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL VALID !Vazio()
@ 060,250 BUTTON oButton1 PROMPT "Confirma" SIZE 040,012 ACTION oDlg_J:END() OF oDlg_J PIXEL
ACTIVATE MSDIALOG oDlg_J CENTERED
If Len(Trim(cJust)) <= 2
cJust := "SEM JUSTIFICATIVA."
EndIf
RecLock("SC5",.F.)
SC5->C5_NFATPB := Trim(cUserName)+' - '+Transform(dDataBase,"DD/MM/YYYY")+' - '+Trim(cJust)
MsUnlock()
EndIf
EndIf
// Envia e-mail informando os produtos que nao tem estrutura. Deixa Gravar o Pedido.
// Aytel M. Fonseca em 17-03-2017 Solicitacao: Gustavo e Paulo Roberto.
If SC5->C5_TIPOLUM $ '1/2/5/B/C/D' // CFILANT=="01" .AND. - Solicitado pelo Michel que tambem faça a validação na Abalux - em 27.07.2017
If Inclui .or. Altera
ValEstrut()
EndIf
EndIf
If !isblind() .AND. (C5_TIPOLUMI = '1' .OR. C5_TIPOLUMI = '4' .OR. C5_TIPOLUMI = '5' .OR. C5_TIPOLUMI = 'E') .AND. PARAMIXB[1] <> 5 // Exclusao
If MsgYesNo("*** ATENÇÃO *** " + Chr(13) + Chr(13) + "Deseja informar o ENDEREÇO DE ENTREGA ?","Pergunta")
DEFINE MSDIALOG oDlg TITLE "Endereco de Entrega" FROM 000,000 TO 390,600 COLORS 0,16777215 PIXEL
@ 007,003 SAY oSay9 PROMPT "Pedido: "+Trim(SC5->C5_NUM)+" Cliente: "+Trim(SA1->A1_NOME) SIZE 400,012 OF oDlg COLORS 0,16777215 FONT oFont2 PIXEL
@ 010,001 SAY oSay9 PROMPT Replicate("_",100) SIZE 400,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 027,003 SAY oSay1 PROMPT "CEP: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 023,045 MSGET oGet1 VAR cCEP SIZE 030,012 OF oDlg PICTURE "@!" F3 "BC9" COLORS 0,16777215 FONT oFont2 PIXEL
@ 025,090 BUTTON oButton2 PROMPT "Buscar" SIZE 040,012 ACTION PesqCEP() OF oDlg PIXEL
@ 047,003 SAY oSay2 PROMPT "Endereço: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 043,045 MSGET oGet2 VAR cEnd SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 067,003 SAY oSay3 PROMPT "Numero: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 063,045 MSGET oGet3 VAR __cNum SIZE 025,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 087,003 SAY oSay4 PROMPT "Complemento: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 083,045 MSGET oGet4 VAR cCompl SIZE 180,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 107,003 SAY oSay5 PROMPT "Bairro: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 103,045 MSGET oGet5 VAR cBairro SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 127,003 SAY oSay6 PROMPT "Cidade: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 123,045 MSGET oGet6 VAR cCidade SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 147,003 SAY oSay7 PROMPT "UF: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 143,045 MSGET oGet7 VAR cUF SIZE 015,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 167,003 SAY oSay8 PROMPT "Referência: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
@ 163,045 MSGET oGet8 VAR cPonto SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
@ 180,260 BUTTON oButton1 PROMPT "Gravar" SIZE 040,012 ACTION Gravar() OF oDlg PIXEL
ACTIVATE MSDIALOG oDlg CENTERED
EndIf
EndIf
//31.03.2014 - Raphael D. PILATTI - Alteração para gravar a hora do PV quando o botão CONFIRMAR é acionado. Estava na inicialização do campo, porém a hora não fica real.
If INCLUI
RecLock("SC5",.F.)
SC5->C5_HORA := LEFT(TIME(),5)
SC5->C5_USUARIO := CUSERNAME
MsUnlock()
EndIf
ValidaCST()
//Pilatti. O confirmaped só deve ser chamado se o Pedido veio de uma EFETIVAÇÃO de Orçamento, caso contrário não chama.
// If FunName()=="MATA416" .AND. cFilAnt == "01"
If FunName()=="MATA416" //.AND. cFilAnt == "01"
ConfirmaPed(cPedTMK)
EndIf
//Pilatti - 26.05.2014 - Mensagem solicitada pela Rosangela, para conferência do campo Vendedor 2.
/* If cFilAnt=="05"
ValidaBLQ()
// PedAten() // Ajusta o novo codigo do pedido ao atendimento.
MsgAlert("Favor conferir o Vendedor 2 "+CRLF+"Conteúdo: "+SC5->C5_VEND2)
EndIf*/
cPedTMK:=M->C5_NUM
// Validação removida dia 18/10/21 Solicitado por Gabriele.
/*
If Vazio(SC5->C5_NEGOCIA) .AND. PARAMIXB[1] <> 5 // Exclusao
MsgAlert("Não foi informado a Negociadora do Pedido de Venda.","*** Atenção ***")
EndIf */
// No caso de copia do pedido deixar a pre-nota sempre como nao -- Solicitado Fabiana.
RecLock("SC5",.F.)
SC5->C5_PRENOTA := 'N'
MsUnlock()
If PARAMIXB[1] <> 5 // Exclusao
GrvAud() // Gravar Tabelas de Auditoria - Fonseca 24.11.2020
EndIf
if PARAMIXB[1] = 5
DelZA1(SC5->C5_NUM)
endif
RestArea(aArea)
Return
Static Function Gravar()
/* RecLock("SC5",.F.)
SC5->C5_ENDOPC := Trim(Upper(cEnd))+" "+Trim(Upper(cNum))+" "+Trim(Upper(cCompl))+" "+Trim(Upper(cBairro))+" "+Trim(Upper(cCidade))+" "+Trim(Upper(cUF))+" "+Trim(cCep)+" "+Trim(Upper(cPonto))
SC5->C5_RUAOPC := Trim(Upper(cEnd))
SC5->C5_NUMOPC := Trim(Upper(cNum))
SC5->C5_CEPOPC := Trim(cCep)
SC5->C5_BAIROPC:= Trim(Upper(cBairro))
SC5->C5_MUNOPC := Trim(Upper(cCidade))
SC5->C5_UFOPC := Trim(Upper(cUF))
SC5->C5_REFOPC := Trim(Upper(cPonto))
MsUnlock()*/
// Em 18-09-2018 alterei para Update para resolver problema de intermitencia - Tabata.IIf(!Vazio(cNum),Trim(cNum),' ')
cUPD_ := "UPDATE SC5010 SET C5_ENDOPC = '" + Upper(Trim(cEnd)+" "+__cNum+" "+Trim(cCompl)+" "+Trim(cBairro)+" "+Trim(cCidade)+" "+Trim(cUF))+" "+;
Trim(cCep)+" "+Upper(IIf(!Vazio(cPonto),Trim(cPonto),' ')) + "', "
cUPD_ += "C5_RUAOPC = '" + Upper(Trim(cEnd)) + "', "
cUPD_ += "C5_NUMOPC = '" + __cNum + "', " //IIf(!Vazio(cNum),Trim(cNum),' ')
cUPD_ += "C5_CEPOPC = '" + Trim(cCep) + "', "
cUPD_ += "C5_BAIROPC = '" + Upper(Trim(cBairro)) + "', "
cUPD_ += "C5_MUNOPC = '" + Upper(Trim(cCidade)) + "', "
cUPD_ += "C5_UFOPC = '" + Upper(Trim(cUF)) + "', "
cUPD_ += "C5_REFOPC = '" + Upper(IIf(!Vazio(cPonto),Trim(cPonto),' ')) + "' WHERE C5_NUM = '" + SC5->C5_NUM + "' " //AND C5_FILIAL = '01'"
If (TCSQLExec(cUPD_) < 0)
MsgStop("Erro ao atualizar a tabela SC5 (Endereco de Entrega). Rotina: M410STTS" + Chr(13) +;
"Favor informar ao administrador do sistema." + Chr(13) + Chr(13) +;
"**-**-**-**-**-**-**-**-**-**-**-**-**" + Chr(13) + Chr(13) +;
TCSQLError(),"*** Atenção *** Erro !!!")
EndIf
oDlg:END()
Return
Static Function PesqCEP()
If Vazio(cCEP)
ShowHelpDlg("Aviso", {"CEP não Informado.",""},5,{"Informe o CEP ou tecle < F3 >.",""},5)
Return()
Else
If Select("QRY1") > 0
dbSelectArea("QRY1")
dbCloseArea("QRY1")
Endif
cQuery1 := "SELECT SubStr(BC9_END,1,93) BC9_END,Substr(BC9_BAIRRO,1,15) BC9_BAIRRO, Substr(BC9_MUN,1,20) BC9_MUN, BC9_EST FROM " + RetSQLName("BC9")
cQuery1 += " WHERE BC9_CEP = '" + Trim(cCEP) + "' "
cQuery1 += " AND D_E_L_E_T_ = ' ' "
TcQuery cQuery1 New Alias "QRY1"
If QRY1->(!EOF())
cEnd := Trim(QRY1->BC9_END)+Space((93-Length(Trim(QRY1->BC9_END)))) //QRY1->BC9_END
cBairro := Trim(QRY1->BC9_BAIRRO)+Space((15-Length(Trim(QRY1->BC9_BAIRRO)))) //QRY1->BC9_BAIRRO
cCidade := Trim(QRY1->BC9_MUN)+Space((20-Length(Trim(QRY1->BC9_MUN)))) //QRY1->BC9_MUN
cUF := QRY1->BC9_EST
Else
ShowHelpDlg("Aviso", {"CEP não cadastrado.",""},5,{"Preencha os campos com as informações do endereço de entrega.",""},5)
EndIf
EndIf
Return
//23.06.2014
//Raphael D. PILATTI
//Validação da situação tributária do ICM no Pedido de Vendas
//Devido aos gatilhos em alguns casos não estava gravando corretamente
Static Function ValidaCST()
Local cNum := SC5->C5_NUM
If Select("QRYCST") > 0
dbSelectArea("QRYCST")
dbCloseArea("QRYCST")
Endif
cQuery1 := "UPDATE "
cQuery1 += RetSQLName("SC6")
cQuery1 += " SET (C6_CLASFIS) = (SELECT B1_ORIGEM||F4_SITTRIB FROM "
cQuery1 += RetSQLName("SB1") + ","
cQuery1 += RetSQLName("SF4")
cQuery1 += " WHERE "
cQuery1 += + RetSQLName("SC6") +".D_E_L_E_T_ = ' ' AND " + RetSQLName("SB1") +".D_E_L_E_T_ = ' ' AND "+ RetSQLName("SF4") +".D_E_L_E_T_ = ' ' AND
cQuery1 += " C6_FILIAL = B1_FILIAL AND C6_PRODUTO = B1_COD AND B1_ORIGEM <> ' ' AND F4_SITTRIB <> ' ' AND F4_FILIAL = C6_FILIAL AND F4_CODIGO = C6_TES AND F4_FILIAL = B1_FILIAL AND C6_FILIAL = '"+xFilial("SC6")+"')WHERE EXISTS"
cQuery1 += " (SELECT 1 FROM "
cQuery1 += RetSQLName("SC6")+ ","
cQuery1 += RetSQLName("SF4")+ ","
cQuery1 += RetSQLName("SB1")
cQuery1 += " WHERE "
cQuery1 += RetSQLName("SC6")+".D_E_L_E_T_ = ' ' AND "
cQuery1 += RetSQLName("SB1")+".D_E_L_E_T_ = ' ' AND "
cQuery1 += RetSQLName("SF4")+".D_E_L_E_T_ = ' ' AND "
cQuery1 += " C6_FILIAL = B1_FILIAL AND C6_PRODUTO = B1_COD AND B1_ORIGEM <> ' ' AND F4_SITTRIB <> ' ' AND F4_FILIAL = C6_FILIAL AND F4_CODIGO = C6_TES AND F4_FILIAL = B1_FILIAL AND C6_FILIAL = '"+xFilial("SC6")+"' AND C6_NUM = '"+cNum+"') AND C6_NUM = '"+cNum+"' "
TcSQLExec(cQuery1)
Return
//-------------------------------------------------------------------------------------------
//Solicitante : Márcia
//Descrição : Utilizado para enviar a confirmação do Pedido para o cliente, quando o pedido
// : vier de uma EFETIVACAO do ORÇAMENTO.
// :
//Autor : Raphael D. PILATTI
//Data criação : 06/05/2014
//Data alteração: 27/05/2014 - Tratativa em relação ao TPFRETE, se FOB não carrega no e-mail
// : informações sobre a ENTREGA
//Data alteração: 30/05/2014 - Adicionado posicione para pegar o e-mail do Vendedor 2
//-------------------------------------------------------------------------------------------
Static Function ConfirmaPed(cPedTMK)
#include "protheus.ch"
#include "rwmake.ch"
#include "topconn.ch"
#include "TOTVS.CH"
Local cNum := SC5->C5_NUM
Local _nI := 0
Local aArea := GetArea()
Local cEntSC5 := SC5->C5_DATENTR+1
Local cItens := 1
Local cHora :=val(SC5->C5_HORA)
Local cCabecalho:=""
Local cMensagem :=""
Local cEmail :="tabata-sjp@lumicenter.com"
Local cCopia := Rtrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_VEND2,"A3_EMAIL"))
// Local cMenNot1 := .F.
Local cDestino :=""
Local cEndOPC :=.F.
Local cRodape0 :=""
Local cRodape1 :=""
Local cRodape2 :=""
Local cRodape3 :=""
Local cRodape4 :=""
Local cRodape5 :=""
Local cRodape6 :=""
Local cRodape7 :=""
Local cRodape8 :=""
Local cRodape9 :=""
Local cRodape10 :=""
Local cRodape11 :=""
Local cRodape12 :=""
Local cRodape13 :=""
Local cRodape14 :=""
Local cRodape15 :=""
Local cRodape16 :=""
Local cRodape17 :=""
Local cRodape18 :=""
Local cRodape19 :=""
Local cRodape20 :=""
Local cEntSC5new:= DOW(SC5->C5_DATENTR+1) //Verifica qual é o dia da semana, conforme regra comercial devo sempre somar 1 dia útil à data que está no pedido.
//Validação para saber se a Data de Entrada do cabeçalho do PV é feriado.
//Se for feriado, soma mais 1 dia à data de entrega
If Select("QRYX5") > 0
dbSelectArea("QRYX5")
dbCloseArea("QRYX5")
Endif
cQryX5 := "SELECT SubStr(X5_DESCRI,1,5) FERIADO FROM " + RetSQLName("SX5")
cQryX5 += " WHERE X5_FILIAL = '" + xFilial("SX5") + "' "
cQryX5 += " AND D_E_L_E_T_ = ' ' AND X5_TABELA = '63'"
TcQuery cQryX5 New Alias "QRYX5"
While QRYX5->(!EOF())
If Alltrim(QRYX5->FERIADO)==Substring(DTOC(cEntSC5),1,5)
cEntSC5:=cEntSC5+1
EndIf
QRYX5->(dbSkip())
EndDo
If SC5->C5_TIPO $ "N/C/I/P"
cCli:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_NOME"))
//cDestino:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_EMAIL")) solicitado por marcia
cDestino:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_ECE1"))
Else
cCli:=+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_NOME"))
cDestino:=+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_EMAIL"))
EndIF
//Contagem para saber se existem itens com data de entrega diferente, feito aqui para imprimir a mensagem antes de LISTAR os itens.
For _nI := 1 to Len(aCols)
cEntSC6 := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})] +1
If cEntSC5 <> cEntSC6
cItens:=cItens+1
EndIf
Next
If cHora >= 1 .AND. cHora < 12
cCabecalho :="
Bom Dia" + CRLF
ElseIf cHora >= 12 .AND. cHora < 18
cCabecalho :="Boa Tarde" + CRLF
ElseIf cHora >= 18 .AND. cHora < 24
cCabecalho :="Boa Noite" + CRLF
End If
cCabecalho +="Caro Cliente, muito obrigado pela preferência !"
cCabecalho +="Seu pedido foi emitido em " + Transform(dDatabase,"DD/MM/YYYY") +", sob o número: "+ cNum + " - " + Alltrim(cCli) + "."
//13.10.204 - Pilatti
//Tratativa para a data de entrega, conforme decisão do Comercial e da Fábrica, será mostrados para os clientes sempre 1 dia útil a mais na entrega, tanto no cabeçalho quanto nos itens.
If cEntSC5new = 1 //Domingo
cEntSC5:=cEntSC5+1
ElseIf cEntSC5new = 7 //Sábado
cEntSC5:=cEntSC5+2
EndIf
cCabecalho +="A data prevista de faturamento é para " + Transform(cEntSC5,"DD/MM/YYYY")+ " conforme acordado, porém, a data de recebimento de sua mercadoria deverá levar em conta o prazo de entrega da transportadora selecionada. "
If cItens > 1
cCabecalho+="EXCETO para os itens abaixo : " + CRLF
cMensagem :="Código | Descrição | Previsão de Embarque |
"
EndIf
For _nI := 1 to Len(aCols)
cEntSC6 := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})] +1
If cEntSC5 <> cEntSC6
//Validação para saber se a Data de Entrada do cabeçalho do PV é feriado.
//Se for feriado, soma mais 1 dia à data de entrega
If Select("QRYX5_2") > 0
dbSelectArea("QRYX5_2")
dbCloseArea("QRYX5_2")
Endif
cQryX5_2 := "SELECT SubStr(X5_DESCRI,1,5) FERIADO FROM " + RetSQLName("SX5")
cQryX5_2 += " WHERE X5_FILIAL = '" + xFilial("SX5") + "' "
cQryX5_2 += " AND D_E_L_E_T_ = ' ' AND X5_TABELA = '63'"
TcQuery cQryX5_2 New Alias "QRYX5_2"
While QRYX5_2->(!EOF())
If Alltrim(QRYX5_2->FERIADO)==Substring(DTOC(cEntSC6),1,5)
cEntSC6:=cEntSC6+1
EndIf
QRYX5_2->(dbSkip())
EndDo
cEntSC6new:= DOW(cEntSC6) //Verifica qual é o dia da semana, conforme regra comercial devo sempre somar 1 dia útil à data que está no pedido.
//13.10.204 - Pilatti
//Tratativa para a data de entrega, conforme decisão do Comercial e da Fábrica, será mostrados para os clientes sempre 1 dia útil a mais na entrega, tanto no cabeçalho quanto nos itens.
If cEntSC6new = 1 //Domingo
cEntSC6:=cEntSC6+1
ElseIf cEntSC6new = 7 //Sábado
cEntSC6:=cEntSC6+2
EndIf
cCod := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]
cDesc := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_DESCRI"})]
cMensagem += "" + cCod + " | "
cMensagem += "" + cDesc + " | "
cMensagem += "" + Transform(cEntSC6,"DD/MM/YYYY") + " |
"
EndIf
Next
cMensagem +="
"+ CRLF
cMens2 :="Favor confirmar se o seu pedido está com a tensão correspondente a obra, (127V/220V)."
cMens2 +="Para clientes com Inscrição estadual : Favor confirmar se este CNPJ possui algum regime especial onde o isenta de IPI ou DA/ST." + CRLF
If SC5->C5_TPFRETE <> "F"
cRodape0 :="Afim de finalizarmos a entrega deste pedido da forma mais rápida e correta, solicitamos sua colaboração na confirmação dos dados informados abaixo:" + CRLF
cRodape1 :="ENDEREÇO DE ENTREGA:"+ CRLF
Posicione("SC5",1,xFilial('SC5')+SC5->C5_NUM,"SC5->C5_ENDOPC")
If !Empty(SC5->C5_ENDOPC)
cRodape2 :="Rua / Nº. : "+ alltrim(SC5->C5_RUAOPC) + "," + SC5->C5_NUMOPC + " "
cRodape3 :="Bairro.... : "+ alltrim(SC5->C5_BAIROPC) + " "
cRodape4 :="Cidade... : "+ alltrim(SC5->C5_MUNOPC) + " "
cRodape5 :="UF.......... : "+ alltrim(SC5->C5_UFOPC) + " "
cRodape6 :="CEP........ : "+ alltrim(SC5->C5_CEPOPC) + " " + CRLF
cEndOPC:=.T.
EndIf
If !(cEndOPC)
If SC5->C5_TIPO $ "N/C/I/P"
cRodape2 :="Rua / Nº. : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_END"))+" "
cRodape3 :="Bairro.... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_BAIRRO"))+" "
cRodape4 :="Cidade... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_MUN"))+" "
cRodape5 :="UF.......... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_EST"))+" "
cRodape6 :="CEP........ : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_CEP"))+ " " + CRLF
Else
cRodape2 :="Rua / Nº. : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_END"))+" "
cRodape3 :="Bairro.... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_BAIRRO"))+" "
cRodape4 :="Cidade... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_MUN"))+" "
cRodape5 :="UF.......... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_EST"))+" "
cRodape6 :="CEP........ : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_CEP"))+ " " + CRLF
EndIf
EndIf
cRodape7 :="Pedimos também, a indicação dos dados da pessoa que ficará responsável em receber a mercadoria para agilizar a entrega." + CRLF
cRodape8 :="RECEBIMENTO DA MERCADORIA: (CASO JÁ INFORMADO NA O.C. FAVOR DESCONSIDERAR)"+ CRLF
cRodape9 :="Nome completo do responsável. :"
cRodape10 :="Setor.................................. :"
cRodape11 :="Telefone fixo ou móvel.......... :" + CRLF
cRodape12 :="Sua colaboração e retorno das informações solicitadas é de suma importância, assim, evitaremos transtornos no atraso de entrega da sua mercadoria e cobrança de taxas extras de frete que incidem para o cliente."
cRodape13 :="Salientamos que a falta de informação, dados incorretos ou a alteração de dados do pedido após embarque da mercadoria, incorrerão ao destinatário:"
cRodape14 :="- Atraso de entrega "
cRodape15 :="- Pagamento de custas adicionais referente nova entrega "
cRodape16 :="- Pagamento de custas adicionais referente à restrições na área de descarga"
cRodape17 :="- Pagamento do frete de devolução"+ CRLF
Else
cRodape17 :="Como o frete é FOB (por conta do cliente) , entraremos em contato para que possa agendar a retirada de sua mercadoria."+ CRLF
EndIf
cRodape18 :="Caso tenha alguma dúvida estaremos à disposição no telefonte (41) 2103-2750 (r. 2763) " + CRLF
cRodape19 :="Tabata"
cRodape20 :="E-mail:tabata-sjp@lumicenter.com"
//*-*-*-*-*-*-*
// Retirado ate correção do fonte - Fonseca 29-11-2017
// U_MATR730(cPedTMK) //Pre Nota PDF, enviada em anexo.
// _aAnexo := Alltrim(GetTempPath())+"totvsprinter/"+_anexoMail+".pdf"
// CpyT2S(_aAnexo, "\data")
// _aAnexo := "\data\" + cFilePrint+ ".pdf"
//*-*-*-*-*-*-*
_aAnexo:= ""
U_EnvMail(cDestino,cEmail+';'+cCopia,"","Lumicenter - Pedido de Luminárias "+ cNum +" - "+ cCli ,cCabecalho+cMensagem+cRodape0+cRodape1+cRodape2+cRodape3+cRodape4+cRodape5+cRodape6+cRodape7+cRodape8+cRodape9+cRodape10+cRodape11+cRodape12+cRodape13+cRodape14+cRodape15+cRodape16+cRodape17+cRodape18+cRodape19+cRodape20,_aAnexo) //(Destino, Com Copia, Com Copia Oculta, Titulo , Mensagem Corpo, Anexos)
RestArea(aArea)
Return
/*
+---------------------------------------------------------------------------------------------------+
|Data | 24/04/2015 |
|---------------------------------------------------------------------------------------------------|
|Autor | Raphael D. PILATTI |
|---------------------------------------------------------------------------------------------------|
|Desc | Validação para que os orçamentos não apareçam no fluxo de caixa. Para que não interfira |
| | no Fluxo o campo C6_BLQ deve estar com "S" (bloqueado), caso contrário compõem o Fluxo. |
+---------------------------------------------------------------------------------------------------+
*/
/*Static Function ValidaBLQ()
For i:= 1 to len(acols)
If GdDeleted(i) // Testa se a linha está deletada.
Loop
EndIf
If SC5->C5_ORCAMEN = 'S' .AND. SC5->C5_LIBEROK = ' '
cQry1 := "UPDATE " + RetSQLName("SC6") "
cQry1 += " SET C6_BLQ = 'S' WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM +"' AND C6_FILIAL = '" + xFilial("SC6") + "' "
TcSQLExec(cQry1)
ElseIf SC5->C5_ORCAMEN = 'S' .AND. SC5->C5_LIBEROK <> ' '
cQry1 := "UPDATE " + RetSQLName("SC6") "
cQry1 += " SET C6_BLQ = ' ' WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM +"' AND C6_FILIAL = '" + xFilial("SC6") + "' "
TcSQLExec(cQry1)
EndIf
Next
Return*/
Static Function ValEstrut()
Local _nReg := Len(aCols)
Local cMensIt := ''
Local cMens := ''
Local cEmail := .F.
Local i := 1
For i := 1 to _nReg
If GdDeleted(i) // Testa se a linha está deletada.
Loop
EndIf
If Select("QRY") > 0
dbSelectArea("QRY")
dbCloseArea("QRY")
Endif
cQuery := "SELECT * FROM SG1010 WHERE D_E_L_E_T_ = ' ' AND G1_FILIAL = '01' AND G1_COD = '" + aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})] + "'"
TcQuery cQuery New Alias "QRY"
If QRY->(EOF()) .AND. POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_TIPO") == 'PA'
If (POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'IMP' .AND.;
POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REIO' .AND.;
POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REAB' .AND.;
POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REIL')
cMensIT += ""+aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ITEM"})]+" | "+;
""+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})])+" | "+;
""+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_DESCRI"})])+" | "+;
""+Transform(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_QTDVEN"})],'@E 9999.99')+" | "+;
""+Transform(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})],'YYYYMMDD')+" |
"
cEmail := .T.
EndIf
EndIf
Next
If cEmail
cMens += "Filial: "+IIf(CFILANT=='01','01 - Engenharia','05 - Abalux')+Chr(13)+Chr(14)
cMens += "Pedido: "+Trim(SC5->C5_NUM)+Chr(13)+Chr(14)
cMens += "Emissão: "+Transform(SC5->C5_EMISSAO,'YYYYMMDD')+Chr(13)+Chr(14)
cMens += Chr(13)+Chr(14)
If CFILANT=='01'
cMens += "Cliente: "+Trim(SC5->C5_CLIENTE)+" - "+Trim(Posicione("SA1",1,xFilial('SC5')+Trim(SC5->C5_CLIENTE)+Trim(SC5->C5_LOJACLI),"A1_NOME"))+Chr(13)+Chr(14)
cMens += Chr(13)+Chr(14)
cMens += "Regional: "+Trim(SC5->C5_VEND1)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND1)+'00',"A3_NOME"))+Chr(13)+Chr(14)
cMens += "Vendedor: "+Trim(SC5->C5_VEND2)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND2)+'00',"A3_NOME"))+Chr(13)+Chr(14)
cMens += "Vendedor: "+Trim(SC5->C5_VEND3)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND3)+'00',"A3_NOME"))+Chr(13)+Chr(14)
cMens += "Negociadora: "+Trim(SC5->C5_NEGOCIA)+" - " + Trim(Posicione("SX5",1,xFilial('SX5') + "91" + Trim(SC5->C5_NEGOCIA),"X5_DESCRI")) +Chr(13)+Chr(14)
//Posicione("SX5",1,xFilial('SX5')+"91"+SC5->C5_NEGOCIA,"X5_DESCRI"))
EndIf
cMens += "
"
cMens += "Item | Produto | Descrição | Qtde. | Entrega |
"
cMens += cMensIT
cMens += "
"
If CFILANT=='01'
U_EnvMail("pauloroberto-sjp@lumicenter.com;gustavo-sjp@lumicenter.com;michel-sjp@lumicenter.com;thiago-sjp@lumicenter.com;kleiton-sjp@lumicenter.com;willian-sjp@lumicenter.com","victorpires-sjp@lumicenter.com;jucelene-sjp@lumicenter.com;tvieira-sjp@lumicenter.com;raphaelferreira-sjp@lumicenter.com;katiane-sjp@lumicenter.com;gabrielle-sjp@lumicenter.com;fabiana-sjp@lumicenter.com;fabiana-sjp@lumicenter.com;jessicaramos-sjp@lumicenter.com;tabata-sjp@lumicenter.com","","e-Mail Automático. Pedido de Venda com Itens sem Estrutura.",cMens,"") //(Destino, Com Copia, Com Copia Oculta, Titulo , Mensagem Corpo, Anexos)
ElseIf CFILANT=='05'
U_EnvMail("pauloroberto-sjp@lumicenter.com;gustavo-sjp@lumicenter.com;michel-sjp@lumicenter.com;thiago-sjp@lumicenter.com;kleiton-sjp@lumicenter.com;fabiana-sjp@lumicenter.com;willian-sjp@lumicenter.com","victorpires-sjp@lumicenter.com;jucelene-sjp@lumicenter.com;tvieira-sjp@lumicenter.com;rosangela-sjp@lumicenter.com;raphaelferreira-sjp@lumicenter.com","","e-Mail Automático. Pedido de Venda com Itens sem Estrutura.",cMens,"") //(Destino, Com Copia, Com Copia Oculta, Titulo , Mensagem Corpo, Anexos)
EndIf
EndIf
Return()
Static Function GrvAud()
Local cSQLExec := ''
// Gravar tabelas de Auditoria. Fonseca em 24.11.2020 --> Solicitante Rodrigo.
If aRotina[3][2] = 'A410Copia'
cSQLExec := "INSERT INTO AUDIT_SC5 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '3-COPIA', SC5010.* FROM SC5010 WHERE D_E_L_E_T_ = ' ' AND C5_NUM = '" + SC5->C5_NUM + "' AND C5_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Copia AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
cSQLExec := "INSERT INTO AUDIT_SC6 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '3-COPIA', SC6010.* FROM SC6010 WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM + "' AND C6_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Copia AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
ElseIf FunName() == 'MATA416'
cSQLExec := "INSERT INTO AUDIT_SC5 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '4-APROVACAO VENDA', SC5010.* FROM SC5010 WHERE D_E_L_E_T_ = ' ' AND C5_NUM = '" + SC5->C5_NUM + "' AND C5_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Aprov.Venda AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
cSQLExec := "INSERT INTO AUDIT_SC6 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '4-APROVACAO VENDA', SC6010.* FROM SC6010 WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM + "' AND C6_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Aprov.Venda AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
ElseIf Inclui
cSQLExec := "INSERT INTO AUDIT_SC5 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '1-INCLUSAO', SC5010.* FROM SC5010 WHERE D_E_L_E_T_ = ' ' AND C5_NUM = '" + SC5->C5_NUM + "' AND C5_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Inclusão AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
cSQLExec := "INSERT INTO AUDIT_SC6 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '1-INCLUSAO', SC6010.* FROM SC6010 WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM + "' AND C6_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Inclusão AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
ElseIf Altera
cSQLExec := "INSERT INTO AUDIT_SC5 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '2-ALTERACAO', SC5010.* FROM SC5010 WHERE D_E_L_E_T_ = ' ' AND C5_NUM = '" + SC5->C5_NUM + "' AND C5_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Alteração AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
cSQLExec := "INSERT INTO AUDIT_SC6 SELECT SYSDATE, '" + Upper(Trim(cUserName)) + "', '2-ALTERACAO', SC6010.* FROM SC6010 WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM + "' AND C6_FILIAL = '" + xFilial("SC5") + "'"
If TCSqlExec(cSQLExec) < 0
Msgstop('Erro Alteração AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
Endif
EndIf
Return()
Static Function DelZA1(cNum)
Alert("Deletando...")
cSql := " UPDATE "+RetSqlName("ZA1")+" set D_E_L_E_T_ = '*',R_E_C_D_E_L_ = R_E_C_N_O_ "
cSql += " WHERE D_E_L_E_T_ = ' ' AND ZA1_PEDIDO = '"+cNum+"' "
TCSQLExec(cSql)
Return