//--------------------------------------------------------------------------------------- // 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 :="" 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 += "" cMensagem += "" cMensagem += "" EndIf Next cMensagem +="
CódigoDescriçãoPrevisão de Embarque
" + cCod + "" + cDesc + "" + Transform(cEntSC6,"DD/MM/YYYY") + "
"+ 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 += "" cMens += cMensIT cMens += "
ItemProdutoDescriçãoQtde.Entrega
" 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