LC_PE_M410STTS.PRW 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. //---------------------------------------------------------------------------------------
  2. // Ponto de Entrada: M410STTS - Tratar endereço de entrega
  3. // Solicitante: Rodrigo.
  4. // Autor: Aytel M. Fonseca.
  5. // Data: 26-03-2014
  6. //---------------------------------------------------------------------------------------
  7. #include "topconn.ch"
  8. #include 'protheus.ch'
  9. #include 'rwmake.ch'
  10. #include "font.ch"
  11. User Function M410STTS()
  12. Local aArea := GetArea()
  13. Public cCEP := Space(8)
  14. Public cEnd := Space(93)
  15. Public __cNum := Space(5)
  16. Public cCompl := Space(40)
  17. Public cBairro := Space(15)
  18. Public cCidade := Space(20)
  19. Public cUF := Space(2)
  20. Public cPonto := Space(60)
  21. Public cJust := Space(150)
  22. 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.
  23. Private oGet1
  24. Private oSay1
  25. Private oGet2
  26. Private oSay2
  27. Private oGet3
  28. Private oSay3
  29. Private oGet4
  30. Private oSay4
  31. Private oGet5
  32. Private oSay5
  33. Private oGet6
  34. Private oSay6
  35. Private oGet7
  36. Private oSay7
  37. Private oGet8
  38. Private oSay8
  39. Private oSay9
  40. Private oFont1 := TFont():New("Calibri",,016,,.F.,,,,,.F.,.F.)
  41. Private oFont2 := TFont():New("Calibri",,016,,.T.,,,,,.F.,.F.)
  42. Private oButton1
  43. Private oButton2
  44. Private oDlg
  45. Private oDlg_J
  46. Private oSay_J
  47. Private oGet_J
  48. SetKey(VK_F5 ,Nil)
  49. SetKey(VK_F6 ,Nil)
  50. SetKey(VK_F7 ,Nil)
  51. SetKey(VK_F8 ,Nil)
  52. SetKey(VK_F9 ,Nil)
  53. SetKey(VK_F11,Nil)
  54. // 14.12.2020 Apaga Justificativa de atraso na função copia. (Fonseca)
  55. If Inclui .OR. Altera
  56. If aRotina[3][2] = 'A410Copia'
  57. RecLock("SC5",.F.)
  58. SC5->C5_JUS := ""
  59. SC5->C5_JUSTX := ""
  60. MsUnlock()
  61. EndIf
  62. EndIf
  63. // Pergunta sobre faturamento em PB.
  64. // Solicitante: Rodrigo - em 20.05.2020.
  65. If !isblind() .and. cFilAnt = '01' .AND. INCLUI .AND. C5_PVPB = .F. .AND.;
  66. (C5_TIPOLUMI = '1' .OR. C5_TIPOLUMI = '2' .OR. C5_TIPOLUMI = '3' .OR. C5_TIPOLUMI = '4' .OR. C5_TIPOLUMI = '5')
  67. If MsgYesNo("Este P.Venda será indicado como apto a faturar por outra filial ?","Faturar Pato Branco.")
  68. RecLock("SC5",.F.)
  69. SC5->C5_PVPB := .T.
  70. MsUnlock()
  71. Else
  72. MsgInfo("É necessário justificar o NÃO FATURAMENTO por outra filial."+Chr(13)+Chr(13)+;
  73. "Caso não seja preenchido, será gravado automaticamente como 'Sem Justificativa'.","Atenção.")
  74. DEFINE MSDIALOG oDlg_J TITLE "Justificativa." FROM 000,000 TO 150,630 COLORS 0,16777215 PIXEL
  75. @ 017,005 SAY oSay_J PROMPT "Justificativa: " SIZE 050,012 OF oDlg_J COLORS 0,16777215 FONT oFont1 PIXEL
  76. @ 013,038 MSGET oGet_J VAR cJust SIZE 250,12 OF oDlg_J PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL VALID !Vazio()
  77. @ 060,250 BUTTON oButton1 PROMPT "Confirma" SIZE 040,012 ACTION oDlg_J:END() OF oDlg_J PIXEL
  78. ACTIVATE MSDIALOG oDlg_J CENTERED
  79. If Len(Trim(cJust)) <= 2
  80. cJust := "SEM JUSTIFICATIVA."
  81. EndIf
  82. RecLock("SC5",.F.)
  83. SC5->C5_NFATPB := Trim(cUserName)+' - '+Transform(dDataBase,"DD/MM/YYYY")+' - '+Trim(cJust)
  84. MsUnlock()
  85. EndIf
  86. EndIf
  87. // Envia e-mail informando os produtos que nao tem estrutura. Deixa Gravar o Pedido.
  88. // Aytel M. Fonseca em 17-03-2017 Solicitacao: Gustavo e Paulo Roberto.
  89. 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
  90. If Inclui .or. Altera
  91. ValEstrut()
  92. EndIf
  93. EndIf
  94. If !isblind() .AND. (C5_TIPOLUMI = '1' .OR. C5_TIPOLUMI = '4' .OR. C5_TIPOLUMI = '5' .OR. C5_TIPOLUMI = 'E') .AND. PARAMIXB[1] <> 5 // Exclusao
  95. If MsgYesNo("*** ATENÇÃO *** " + Chr(13) + Chr(13) + "Deseja informar o ENDEREÇO DE ENTREGA ?","Pergunta")
  96. DEFINE MSDIALOG oDlg TITLE "Endereco de Entrega" FROM 000,000 TO 390,600 COLORS 0,16777215 PIXEL
  97. @ 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
  98. @ 010,001 SAY oSay9 PROMPT Replicate("_",100) SIZE 400,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  99. @ 027,003 SAY oSay1 PROMPT "CEP: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  100. @ 023,045 MSGET oGet1 VAR cCEP SIZE 030,012 OF oDlg PICTURE "@!" F3 "BC9" COLORS 0,16777215 FONT oFont2 PIXEL
  101. @ 025,090 BUTTON oButton2 PROMPT "Buscar" SIZE 040,012 ACTION PesqCEP() OF oDlg PIXEL
  102. @ 047,003 SAY oSay2 PROMPT "Endereço: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  103. @ 043,045 MSGET oGet2 VAR cEnd SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  104. @ 067,003 SAY oSay3 PROMPT "Numero: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  105. @ 063,045 MSGET oGet3 VAR __cNum SIZE 025,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  106. @ 087,003 SAY oSay4 PROMPT "Complemento: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  107. @ 083,045 MSGET oGet4 VAR cCompl SIZE 180,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  108. @ 107,003 SAY oSay5 PROMPT "Bairro: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  109. @ 103,045 MSGET oGet5 VAR cBairro SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  110. @ 127,003 SAY oSay6 PROMPT "Cidade: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  111. @ 123,045 MSGET oGet6 VAR cCidade SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  112. @ 147,003 SAY oSay7 PROMPT "UF: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  113. @ 143,045 MSGET oGet7 VAR cUF SIZE 015,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  114. @ 167,003 SAY oSay8 PROMPT "Referência: " SIZE 050,012 OF oDlg COLORS 0,16777215 FONT oFont1 PIXEL
  115. @ 163,045 MSGET oGet8 VAR cPonto SIZE 230,012 OF oDlg PICTURE "@!" COLORS 0,16777215 FONT oFont2 PIXEL
  116. @ 180,260 BUTTON oButton1 PROMPT "Gravar" SIZE 040,012 ACTION Gravar() OF oDlg PIXEL
  117. ACTIVATE MSDIALOG oDlg CENTERED
  118. EndIf
  119. EndIf
  120. //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.
  121. If INCLUI
  122. RecLock("SC5",.F.)
  123. SC5->C5_HORA := LEFT(TIME(),5)
  124. SC5->C5_USUARIO := CUSERNAME
  125. MsUnlock()
  126. EndIf
  127. ValidaCST()
  128. //Pilatti. O confirmaped só deve ser chamado se o Pedido veio de uma EFETIVAÇÃO de Orçamento, caso contrário não chama.
  129. // If FunName()=="MATA416" .AND. cFilAnt == "01"
  130. If FunName()=="MATA416" //.AND. cFilAnt == "01"
  131. ConfirmaPed(cPedTMK)
  132. EndIf
  133. //Pilatti - 26.05.2014 - Mensagem solicitada pela Rosangela, para conferência do campo Vendedor 2.
  134. /* If cFilAnt=="05"
  135. ValidaBLQ()
  136. // PedAten() // Ajusta o novo codigo do pedido ao atendimento.
  137. MsgAlert("Favor conferir o Vendedor 2 "+CRLF+"Conteúdo: "+SC5->C5_VEND2)
  138. EndIf*/
  139. cPedTMK:=M->C5_NUM
  140. // Validação removida dia 18/10/21 Solicitado por Gabriele.
  141. /*
  142. If Vazio(SC5->C5_NEGOCIA) .AND. PARAMIXB[1] <> 5 // Exclusao
  143. MsgAlert("Não foi informado a Negociadora do Pedido de Venda.","*** Atenção ***")
  144. EndIf */
  145. // No caso de copia do pedido deixar a pre-nota sempre como nao -- Solicitado Fabiana.
  146. RecLock("SC5",.F.)
  147. SC5->C5_PRENOTA := 'N'
  148. MsUnlock()
  149. If PARAMIXB[1] <> 5 // Exclusao
  150. GrvAud() // Gravar Tabelas de Auditoria - Fonseca 24.11.2020
  151. EndIf
  152. if PARAMIXB[1] = 5
  153. DelZA1(SC5->C5_NUM)
  154. endif
  155. RestArea(aArea)
  156. Return
  157. Static Function Gravar()
  158. /* RecLock("SC5",.F.)
  159. 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))
  160. SC5->C5_RUAOPC := Trim(Upper(cEnd))
  161. SC5->C5_NUMOPC := Trim(Upper(cNum))
  162. SC5->C5_CEPOPC := Trim(cCep)
  163. SC5->C5_BAIROPC:= Trim(Upper(cBairro))
  164. SC5->C5_MUNOPC := Trim(Upper(cCidade))
  165. SC5->C5_UFOPC := Trim(Upper(cUF))
  166. SC5->C5_REFOPC := Trim(Upper(cPonto))
  167. MsUnlock()*/
  168. // Em 18-09-2018 alterei para Update para resolver problema de intermitencia - Tabata.IIf(!Vazio(cNum),Trim(cNum),' ')
  169. cUPD_ := "UPDATE SC5010 SET C5_ENDOPC = '" + Upper(Trim(cEnd)+" "+__cNum+" "+Trim(cCompl)+" "+Trim(cBairro)+" "+Trim(cCidade)+" "+Trim(cUF))+" "+;
  170. Trim(cCep)+" "+Upper(IIf(!Vazio(cPonto),Trim(cPonto),' ')) + "', "
  171. cUPD_ += "C5_RUAOPC = '" + Upper(Trim(cEnd)) + "', "
  172. cUPD_ += "C5_NUMOPC = '" + __cNum + "', " //IIf(!Vazio(cNum),Trim(cNum),' ')
  173. cUPD_ += "C5_CEPOPC = '" + Trim(cCep) + "', "
  174. cUPD_ += "C5_BAIROPC = '" + Upper(Trim(cBairro)) + "', "
  175. cUPD_ += "C5_MUNOPC = '" + Upper(Trim(cCidade)) + "', "
  176. cUPD_ += "C5_UFOPC = '" + Upper(Trim(cUF)) + "', "
  177. cUPD_ += "C5_REFOPC = '" + Upper(IIf(!Vazio(cPonto),Trim(cPonto),' ')) + "' WHERE C5_NUM = '" + SC5->C5_NUM + "' " //AND C5_FILIAL = '01'"
  178. If (TCSQLExec(cUPD_) < 0)
  179. MsgStop("Erro ao atualizar a tabela SC5 (Endereco de Entrega). Rotina: M410STTS" + Chr(13) +;
  180. "Favor informar ao administrador do sistema." + Chr(13) + Chr(13) +;
  181. "**-**-**-**-**-**-**-**-**-**-**-**-**" + Chr(13) + Chr(13) +;
  182. TCSQLError(),"*** Atenção *** Erro !!!")
  183. EndIf
  184. oDlg:END()
  185. Return
  186. Static Function PesqCEP()
  187. If Vazio(cCEP)
  188. ShowHelpDlg("Aviso", {"CEP não Informado.",""},5,{"Informe o CEP ou tecle < F3 >.",""},5)
  189. Return()
  190. Else
  191. If Select("QRY1") > 0
  192. dbSelectArea("QRY1")
  193. dbCloseArea("QRY1")
  194. Endif
  195. 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")
  196. cQuery1 += " WHERE BC9_CEP = '" + Trim(cCEP) + "' "
  197. cQuery1 += " AND D_E_L_E_T_ = ' ' "
  198. TcQuery cQuery1 New Alias "QRY1"
  199. If QRY1->(!EOF())
  200. cEnd := Trim(QRY1->BC9_END)+Space((93-Length(Trim(QRY1->BC9_END)))) //QRY1->BC9_END
  201. cBairro := Trim(QRY1->BC9_BAIRRO)+Space((15-Length(Trim(QRY1->BC9_BAIRRO)))) //QRY1->BC9_BAIRRO
  202. cCidade := Trim(QRY1->BC9_MUN)+Space((20-Length(Trim(QRY1->BC9_MUN)))) //QRY1->BC9_MUN
  203. cUF := QRY1->BC9_EST
  204. Else
  205. ShowHelpDlg("Aviso", {"CEP não cadastrado.",""},5,{"Preencha os campos com as informações do endereço de entrega.",""},5)
  206. EndIf
  207. EndIf
  208. Return
  209. //23.06.2014
  210. //Raphael D. PILATTI
  211. //Validação da situação tributária do ICM no Pedido de Vendas
  212. //Devido aos gatilhos em alguns casos não estava gravando corretamente
  213. Static Function ValidaCST()
  214. Local cNum := SC5->C5_NUM
  215. If Select("QRYCST") > 0
  216. dbSelectArea("QRYCST")
  217. dbCloseArea("QRYCST")
  218. Endif
  219. cQuery1 := "UPDATE "
  220. cQuery1 += RetSQLName("SC6")
  221. cQuery1 += " SET (C6_CLASFIS) = (SELECT B1_ORIGEM||F4_SITTRIB FROM "
  222. cQuery1 += RetSQLName("SB1") + ","
  223. cQuery1 += RetSQLName("SF4")
  224. cQuery1 += " WHERE "
  225. 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
  226. 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"
  227. cQuery1 += " (SELECT 1 FROM "
  228. cQuery1 += RetSQLName("SC6")+ ","
  229. cQuery1 += RetSQLName("SF4")+ ","
  230. cQuery1 += RetSQLName("SB1")
  231. cQuery1 += " WHERE "
  232. cQuery1 += RetSQLName("SC6")+".D_E_L_E_T_ = ' ' AND "
  233. cQuery1 += RetSQLName("SB1")+".D_E_L_E_T_ = ' ' AND "
  234. cQuery1 += RetSQLName("SF4")+".D_E_L_E_T_ = ' ' AND "
  235. 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+"' "
  236. TcSQLExec(cQuery1)
  237. Return
  238. //-------------------------------------------------------------------------------------------
  239. //Solicitante : Márcia
  240. //Descrição : Utilizado para enviar a confirmação do Pedido para o cliente, quando o pedido
  241. // : vier de uma EFETIVACAO do ORÇAMENTO.
  242. // :
  243. //Autor : Raphael D. PILATTI
  244. //Data criação : 06/05/2014
  245. //Data alteração: 27/05/2014 - Tratativa em relação ao TPFRETE, se FOB não carrega no e-mail
  246. // : informações sobre a ENTREGA
  247. //Data alteração: 30/05/2014 - Adicionado posicione para pegar o e-mail do Vendedor 2
  248. //-------------------------------------------------------------------------------------------
  249. Static Function ConfirmaPed(cPedTMK)
  250. #include "protheus.ch"
  251. #include "rwmake.ch"
  252. #include "topconn.ch"
  253. #include "TOTVS.CH"
  254. Local cNum := SC5->C5_NUM
  255. Local _nI := 0
  256. Local aArea := GetArea()
  257. Local cEntSC5 := SC5->C5_DATENTR+1
  258. Local cItens := 1
  259. Local cHora :=val(SC5->C5_HORA)
  260. Local cCabecalho:=""
  261. Local cMensagem :=""
  262. Local cEmail :="tabata-sjp@lumicenter.com"
  263. Local cCopia := Rtrim(Posicione("SA3",1,xFilial('SA3')+SC5->C5_VEND2,"A3_EMAIL"))
  264. // Local cMenNot1 := .F.
  265. Local cDestino :=""
  266. Local cEndOPC :=.F.
  267. Local cRodape0 :=""
  268. Local cRodape1 :=""
  269. Local cRodape2 :=""
  270. Local cRodape3 :=""
  271. Local cRodape4 :=""
  272. Local cRodape5 :=""
  273. Local cRodape6 :=""
  274. Local cRodape7 :=""
  275. Local cRodape8 :=""
  276. Local cRodape9 :=""
  277. Local cRodape10 :=""
  278. Local cRodape11 :=""
  279. Local cRodape12 :=""
  280. Local cRodape13 :=""
  281. Local cRodape14 :=""
  282. Local cRodape15 :=""
  283. Local cRodape16 :=""
  284. Local cRodape17 :=""
  285. Local cRodape18 :=""
  286. Local cRodape19 :=""
  287. Local cRodape20 :=""
  288. 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.
  289. //Validação para saber se a Data de Entrada do cabeçalho do PV é feriado.
  290. //Se for feriado, soma mais 1 dia à data de entrega
  291. If Select("QRYX5") > 0
  292. dbSelectArea("QRYX5")
  293. dbCloseArea("QRYX5")
  294. Endif
  295. cQryX5 := "SELECT SubStr(X5_DESCRI,1,5) FERIADO FROM " + RetSQLName("SX5")
  296. cQryX5 += " WHERE X5_FILIAL = '" + xFilial("SX5") + "' "
  297. cQryX5 += " AND D_E_L_E_T_ = ' ' AND X5_TABELA = '63'"
  298. TcQuery cQryX5 New Alias "QRYX5"
  299. While QRYX5->(!EOF())
  300. If Alltrim(QRYX5->FERIADO)==Substring(DTOC(cEntSC5),1,5)
  301. cEntSC5:=cEntSC5+1
  302. EndIf
  303. QRYX5->(dbSkip())
  304. EndDo
  305. If SC5->C5_TIPO $ "N/C/I/P"
  306. cCli:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_NOME"))
  307. //cDestino:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_EMAIL")) solicitado por marcia
  308. cDestino:=+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_ECE1"))
  309. Else
  310. cCli:=+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_NOME"))
  311. cDestino:=+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_EMAIL"))
  312. EndIF
  313. //Contagem para saber se existem itens com data de entrega diferente, feito aqui para imprimir a mensagem antes de LISTAR os itens.
  314. For _nI := 1 to Len(aCols)
  315. cEntSC6 := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})] +1
  316. If cEntSC5 <> cEntSC6
  317. cItens:=cItens+1
  318. EndIf
  319. Next
  320. If cHora >= 1 .AND. cHora < 12
  321. cCabecalho :="<html><body><font size='5' face='Calibri Light'><b>Bom Dia</b></font></body></html>" + CRLF
  322. ElseIf cHora >= 12 .AND. cHora < 18
  323. cCabecalho :="<html><body><font size='5' face='Calibri Light'><b>Boa Tarde</b></font></body></html>" + CRLF
  324. ElseIf cHora >= 18 .AND. cHora < 24
  325. cCabecalho :="<html><body><font size='5' face='Calibri Light'><b>Boa Noite</b></font></body></html>" + CRLF
  326. End If
  327. cCabecalho +="<html><body><font size='3' face='Calibri Light'>Caro Cliente, muito obrigado pela preferência !</font></body></html>"
  328. cCabecalho +="<html><body><font size='3' face='Calibri Light'>Seu pedido foi emitido em " + Transform(dDatabase,"DD/MM/YYYY") +", sob o número: "+ cNum + " - " + Alltrim(cCli) + ".</font></body></html>"
  329. //13.10.204 - Pilatti
  330. //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.
  331. If cEntSC5new = 1 //Domingo
  332. cEntSC5:=cEntSC5+1
  333. ElseIf cEntSC5new = 7 //Sábado
  334. cEntSC5:=cEntSC5+2
  335. EndIf
  336. cCabecalho +="<html><body><font size='3' face='Calibri Light'>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. </font></body></html>"
  337. If cItens > 1
  338. cCabecalho+="<html><body><font size='3' face='Calibri Light'><b>EXCETO para os itens abaixo : </b></font></body></html>" + CRLF
  339. cMensagem :="<html><body><table style='border:1px solid black;'><font size='3' face='Calibri Light'><tr><th>Código</th><th>Descrição</th><th>Previsão de Embarque</th></tr></font>"
  340. EndIf
  341. For _nI := 1 to Len(aCols)
  342. cEntSC6 := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})] +1
  343. If cEntSC5 <> cEntSC6
  344. //Validação para saber se a Data de Entrada do cabeçalho do PV é feriado.
  345. //Se for feriado, soma mais 1 dia à data de entrega
  346. If Select("QRYX5_2") > 0
  347. dbSelectArea("QRYX5_2")
  348. dbCloseArea("QRYX5_2")
  349. Endif
  350. cQryX5_2 := "SELECT SubStr(X5_DESCRI,1,5) FERIADO FROM " + RetSQLName("SX5")
  351. cQryX5_2 += " WHERE X5_FILIAL = '" + xFilial("SX5") + "' "
  352. cQryX5_2 += " AND D_E_L_E_T_ = ' ' AND X5_TABELA = '63'"
  353. TcQuery cQryX5_2 New Alias "QRYX5_2"
  354. While QRYX5_2->(!EOF())
  355. If Alltrim(QRYX5_2->FERIADO)==Substring(DTOC(cEntSC6),1,5)
  356. cEntSC6:=cEntSC6+1
  357. EndIf
  358. QRYX5_2->(dbSkip())
  359. EndDo
  360. cEntSC6new:= DOW(cEntSC6) //Verifica qual é o dia da semana, conforme regra comercial devo sempre somar 1 dia útil à data que está no pedido.
  361. //13.10.204 - Pilatti
  362. //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.
  363. If cEntSC6new = 1 //Domingo
  364. cEntSC6:=cEntSC6+1
  365. ElseIf cEntSC6new = 7 //Sábado
  366. cEntSC6:=cEntSC6+2
  367. EndIf
  368. cCod := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]
  369. cDesc := aCols[_nI][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_DESCRI"})]
  370. cMensagem += "<font size='2' face='Calibri Light'><tr><td style='border:1px solid black;'>" + cCod + "</td>"
  371. cMensagem += "<td style='border:1px solid black;'>" + cDesc + "</td>"
  372. cMensagem += "<td style='border:1px solid black;'>" + Transform(cEntSC6,"DD/MM/YYYY") + "</td></tr></font>"
  373. EndIf
  374. Next
  375. cMensagem +="</font></table></body></html>"+ CRLF
  376. cMens2 :="<html><body><font size='3' face='Calibri Light'><b>Favor confirmar se o seu pedido está com a tensão correspondente a obra, (127V/220V).</b></font></body></html>"
  377. cMens2 +="<html><body><font size='3' face='Calibri Light'><b>Para clientes com Inscrição estadual : Favor confirmar se este CNPJ possui algum regime especial onde o isenta de IPI ou DA/ST.</b></font></body></html>" + CRLF
  378. If SC5->C5_TPFRETE <> "F"
  379. cRodape0 :="<html><body><font size='3' face='Calibri Light'>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:</font></body></html>" + CRLF
  380. cRodape1 :="<html><body><font size='4' face='Calibri Light'><b>ENDEREÇO DE ENTREGA:</b></font></body></html>"+ CRLF
  381. Posicione("SC5",1,xFilial('SC5')+SC5->C5_NUM,"SC5->C5_ENDOPC")
  382. If !Empty(SC5->C5_ENDOPC)
  383. cRodape2 :="<html><body><font size='3' face='Calibri Light'><b>Rua / Nº. : "+ alltrim(SC5->C5_RUAOPC) + "," + SC5->C5_NUMOPC + " </b></font></body></html>"
  384. cRodape3 :="<html><body><font size='3' face='Calibri Light'><b>Bairro.... : "+ alltrim(SC5->C5_BAIROPC) + " </b></font></body></html>"
  385. cRodape4 :="<html><body><font size='3' face='Calibri Light'><b>Cidade... : "+ alltrim(SC5->C5_MUNOPC) + " </b></font></body></html>"
  386. cRodape5 :="<html><body><font size='3' face='Calibri Light'><b>UF.......... : "+ alltrim(SC5->C5_UFOPC) + " </b></font></body></html>"
  387. cRodape6 :="<html><body><font size='3' face='Calibri Light'><b>CEP........ : "+ alltrim(SC5->C5_CEPOPC) + " </b></font></body></html>" + CRLF
  388. cEndOPC:=.T.
  389. EndIf
  390. If !(cEndOPC)
  391. If SC5->C5_TIPO $ "N/C/I/P"
  392. cRodape2 :="<html><body><font size='3' face='Calibri Light'><b>Rua / Nº. : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_END"))+" </b></font></body></html>"
  393. cRodape3 :="<html><body><font size='3' face='Calibri Light'><b>Bairro.... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_BAIRRO"))+" </b></font></body></html>"
  394. cRodape4 :="<html><body><font size='3' face='Calibri Light'><b>Cidade... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_MUN"))+" </b></font></body></html>"
  395. cRodape5 :="<html><body><font size='3' face='Calibri Light'><b>UF.......... : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_EST"))+" </b></font></body></html>"
  396. cRodape6 :="<html><body><font size='3' face='Calibri Light'><b>CEP........ : "+ Rtrim(Posicione("SA1",1,xFilial('SA1')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A1_CEP"))+ " </b></font></body></html>" + CRLF
  397. Else
  398. cRodape2 :="<html><body><font size='3' face='Calibri Light'><b>Rua / Nº. : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_END"))+" </b></font></body></html>"
  399. cRodape3 :="<html><body><font size='3' face='Calibri Light'><b>Bairro.... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_BAIRRO"))+" </b></font></body></html>"
  400. cRodape4 :="<html><body><font size='3' face='Calibri Light'><b>Cidade... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_MUN"))+" </b></font></body></html>"
  401. cRodape5 :="<html><body><font size='3' face='Calibri Light'><b>UF.......... : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_EST"))+" </b></font></body></html>"
  402. cRodape6 :="<html><body><font size='3' face='Calibri Light'><b>CEP........ : "+ Rtrim(Posicione("SA2",1,xFilial('SA2')+SC5->C5_CLIENTE+SC5->C5_LOJACLI,"A2_CEP"))+ " </b></font></body></html>" + CRLF
  403. EndIf
  404. EndIf
  405. cRodape7 :="<html><body><font size='3' face='Calibri Light'>Pedimos também, a indicação dos dados da pessoa que ficará responsável em receber a mercadoria para agilizar a entrega.</font></body></html>" + CRLF
  406. cRodape8 :="<html><body><font size='4' face='Calibri Light'><b>RECEBIMENTO DA MERCADORIA: (CASO JÁ INFORMADO NA O.C. FAVOR DESCONSIDERAR)</b></font></body></html>"+ CRLF
  407. cRodape9 :="<html><body><font size='3' face='Calibri Light'><b>Nome completo do responsável. :</b></font></body></html>"
  408. cRodape10 :="<html><body><font size='3' face='Calibri Light'><b>Setor.................................. :</b></font></body></html>"
  409. cRodape11 :="<html><body><font size='3' face='Calibri Light'><b>Telefone fixo ou móvel.......... :</b></font></body></html>" + CRLF
  410. cRodape12 :="<html><body><font size='3' face='Calibri Light'>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.</font></body></html>"
  411. cRodape13 :="<html><body><font size='3' face='Calibri Light'>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:</font></body></html>"
  412. cRodape14 :="<html><body><font size='3' face='Calibri Light'><b>- Atraso de entrega </b></font></body></html>"
  413. cRodape15 :="<html><body><font size='3' face='Calibri Light'><b>- Pagamento de custas adicionais referente nova entrega </b></font></body></html>"
  414. cRodape16 :="<html><body><font size='3' face='Calibri Light'><b>- Pagamento de custas adicionais referente à restrições na área de descarga</b></font></body></html>"
  415. cRodape17 :="<html><body><font size='3' face='Calibri Light'><b>- Pagamento do frete de devolução</b></font></body></html>"+ CRLF
  416. Else
  417. cRodape17 :="<html><body><font size='3' face='Calibri Light'><b>Como o frete é FOB (por conta do cliente) , entraremos em contato para que possa agendar a retirada de sua mercadoria.</b></font></body></html>"+ CRLF
  418. EndIf
  419. cRodape18 :="<html><body><font size='3' face='Calibri Light'>Caso tenha alguma dúvida estaremos à disposição no telefonte (41) 2103-2750 (r. 2763) </font></body></html>" + CRLF
  420. cRodape19 :="<html><body><font size='3' face='Calibri Light'><b>Tabata</b></font></body></html>"
  421. cRodape20 :="<html><body><font size='3' face='Calibri Light'><b>E-mail:tabata-sjp@lumicenter.com</b></font></body></html>"
  422. //*-*-*-*-*-*-*
  423. // Retirado ate correção do fonte - Fonseca 29-11-2017
  424. // U_MATR730(cPedTMK) //Pre Nota PDF, enviada em anexo.
  425. // _aAnexo := Alltrim(GetTempPath())+"totvsprinter/"+_anexoMail+".pdf"
  426. // CpyT2S(_aAnexo, "\data")
  427. // _aAnexo := "\data\" + cFilePrint+ ".pdf"
  428. //*-*-*-*-*-*-*
  429. _aAnexo:= ""
  430. 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)
  431. RestArea(aArea)
  432. Return
  433. /*
  434. +---------------------------------------------------------------------------------------------------+
  435. |Data | 24/04/2015 |
  436. |---------------------------------------------------------------------------------------------------|
  437. |Autor | Raphael D. PILATTI |
  438. |---------------------------------------------------------------------------------------------------|
  439. |Desc | Validação para que os orçamentos não apareçam no fluxo de caixa. Para que não interfira |
  440. | | no Fluxo o campo C6_BLQ deve estar com "S" (bloqueado), caso contrário compõem o Fluxo. |
  441. +---------------------------------------------------------------------------------------------------+
  442. */
  443. /*Static Function ValidaBLQ()
  444. For i:= 1 to len(acols)
  445. If GdDeleted(i) // Testa se a linha está deletada.
  446. Loop
  447. EndIf
  448. If SC5->C5_ORCAMEN = 'S' .AND. SC5->C5_LIBEROK = ' '
  449. cQry1 := "UPDATE " + RetSQLName("SC6") "
  450. cQry1 += " SET C6_BLQ = 'S' WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM +"' AND C6_FILIAL = '" + xFilial("SC6") + "' "
  451. TcSQLExec(cQry1)
  452. ElseIf SC5->C5_ORCAMEN = 'S' .AND. SC5->C5_LIBEROK <> ' '
  453. cQry1 := "UPDATE " + RetSQLName("SC6") "
  454. cQry1 += " SET C6_BLQ = ' ' WHERE D_E_L_E_T_ = ' ' AND C6_NUM = '" + SC5->C5_NUM +"' AND C6_FILIAL = '" + xFilial("SC6") + "' "
  455. TcSQLExec(cQry1)
  456. EndIf
  457. Next
  458. Return*/
  459. Static Function ValEstrut()
  460. Local _nReg := Len(aCols)
  461. Local cMensIt := ''
  462. Local cMens := ''
  463. Local cEmail := .F.
  464. Local i := 1
  465. For i := 1 to _nReg
  466. If GdDeleted(i) // Testa se a linha está deletada.
  467. Loop
  468. EndIf
  469. If Select("QRY") > 0
  470. dbSelectArea("QRY")
  471. dbCloseArea("QRY")
  472. Endif
  473. 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"})] + "'"
  474. TcQuery cQuery New Alias "QRY"
  475. If QRY->(EOF()) .AND. POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_TIPO") == 'PA'
  476. If (POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'IMP' .AND.;
  477. POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REIO' .AND.;
  478. POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REAB' .AND.;
  479. POSICIONE("SB1",1,xFilial("SC5")+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})]),"B1_GRUPO") <> 'REIL')
  480. cMensIT += "<tr><td>"+aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ITEM"})]+"</td>"+;
  481. "<td>"+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_PRODUTO"})])+"</td>"+;
  482. "<td>"+Trim(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_DESCRI"})])+"</td>"+;
  483. "<td>"+Transform(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_QTDVEN"})],'@E 9999.99')+"</td>"+;
  484. "<td>"+Transform(aCols[i][aScan(aHeader,{|X| ALLTRIM(X[2]) == "C6_ENTREG"})],'YYYYMMDD')+"</td></tr>"
  485. cEmail := .T.
  486. EndIf
  487. EndIf
  488. Next
  489. If cEmail
  490. cMens += "Filial: "+IIf(CFILANT=='01','01 - Engenharia','05 - Abalux')+Chr(13)+Chr(14)
  491. cMens += "Pedido: "+Trim(SC5->C5_NUM)+Chr(13)+Chr(14)
  492. cMens += "Emissão: "+Transform(SC5->C5_EMISSAO,'YYYYMMDD')+Chr(13)+Chr(14)
  493. cMens += Chr(13)+Chr(14)
  494. If CFILANT=='01'
  495. 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)
  496. cMens += Chr(13)+Chr(14)
  497. cMens += "Regional: "+Trim(SC5->C5_VEND1)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND1)+'00',"A3_NOME"))+Chr(13)+Chr(14)
  498. cMens += "Vendedor: "+Trim(SC5->C5_VEND2)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND2)+'00',"A3_NOME"))+Chr(13)+Chr(14)
  499. cMens += "Vendedor: "+Trim(SC5->C5_VEND3)+" - "+Trim(Posicione("SA3",1,xFilial('SC5')+Trim(SC5->C5_VEND3)+'00',"A3_NOME"))+Chr(13)+Chr(14)
  500. cMens += "Negociadora: "+Trim(SC5->C5_NEGOCIA)+" - " + Trim(Posicione("SX5",1,xFilial('SX5') + "91" + Trim(SC5->C5_NEGOCIA),"X5_DESCRI")) +Chr(13)+Chr(14)
  501. //Posicione("SX5",1,xFilial('SX5')+"91"+SC5->C5_NEGOCIA,"X5_DESCRI"))
  502. EndIf
  503. cMens += "<html><font face='New Courrier'><head></head><br><br>"
  504. cMens += "<table border='1' cellpadding='5' width='100%'><strong><tr><td>Item</td><td>Produto</td><td>Descrição</td><td>Qtde.</td><td>Entrega</td></tr></strong>"
  505. cMens += cMensIT
  506. cMens += "</table></font></html>"
  507. If CFILANT=='01'
  508. 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)
  509. ElseIf CFILANT=='05'
  510. 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)
  511. EndIf
  512. EndIf
  513. Return()
  514. Static Function GrvAud()
  515. Local cSQLExec := ''
  516. // Gravar tabelas de Auditoria. Fonseca em 24.11.2020 --> Solicitante Rodrigo.
  517. If aRotina[3][2] = 'A410Copia'
  518. 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") + "'"
  519. If TCSqlExec(cSQLExec) < 0
  520. Msgstop('Erro Copia AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  521. Endif
  522. 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") + "'"
  523. If TCSqlExec(cSQLExec) < 0
  524. Msgstop('Erro Copia AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  525. Endif
  526. ElseIf FunName() == 'MATA416'
  527. 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") + "'"
  528. If TCSqlExec(cSQLExec) < 0
  529. Msgstop('Erro Aprov.Venda AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  530. Endif
  531. 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") + "'"
  532. If TCSqlExec(cSQLExec) < 0
  533. Msgstop('Erro Aprov.Venda AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  534. Endif
  535. ElseIf Inclui
  536. 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") + "'"
  537. If TCSqlExec(cSQLExec) < 0
  538. Msgstop('Erro Inclusão AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  539. Endif
  540. 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") + "'"
  541. If TCSqlExec(cSQLExec) < 0
  542. Msgstop('Erro Inclusão AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  543. Endif
  544. ElseIf Altera
  545. 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") + "'"
  546. If TCSqlExec(cSQLExec) < 0
  547. Msgstop('Erro Alteração AUDIT_SC5. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  548. Endif
  549. 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") + "'"
  550. If TCSqlExec(cSQLExec) < 0
  551. Msgstop('Erro Alteração AUDIT_SC6. M410STTS' + Chr(13) + TCSQLError(),'Erro !!!')
  552. Endif
  553. EndIf
  554. Return()
  555. Static Function DelZA1(cNum)
  556. Alert("Deletando...")
  557. cSql := " UPDATE "+RetSqlName("ZA1")+" set D_E_L_E_T_ = '*',R_E_C_D_E_L_ = R_E_C_N_O_ "
  558. cSql += " WHERE D_E_L_E_T_ = ' ' AND ZA1_PEDIDO = '"+cNum+"' "
  559. TCSQLExec(cSql)
  560. Return