123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- #include "PROTHEUS.CH"
- #include "RWMAKE.CH"
- #include "APWEBEX.CH"
- #include "TOPCONN.CH"
- #include "TBICONN.CH"
- #DEFINE SMSDEBUG
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ AddCliente ¦ Autor ¦ Lucilene Mendes ¦ Data ¦01.12.20 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Criação de cadastro de cliente simplificado. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function AddCliente()
- Local cHtml
- Local a:= 0
- Local f:= 0
- Private cDirPortal := ""
- Private cEndServ := "" // Endereço do servidor da pagina de Portal
- Private cCodVend := ""
- Private cNomeVend := ""
- Private cOpcao := ""
- Private cTipo := ""
- Private cComboTipo := ""
- Private cCNPJ := ""
- Private cNome := ""
- Private cNReduz := ""
- Private cEndereco := ""
- Private cBairro := ""
- Private cCidade := ""
- Private cEstado := ""
- Private cCep := ""
- Private cDDD := ""
- Private cTelefone := ""
- Private cTelex := ""
- Private cEmail := ""
- Private cContato := ""
- Private cOptMun := ""
- Private cDisabled := ' disabled '
- Private nPosTipo := 0
- Private aTipo := {}
- Private aEstado := {}
-
- Private cSite := "u_PortalLogin.apw"
- Private cPagina := "Cadastro de Cliente"
- Private cMenus := ""
- Private cTitle := "Portal SMS"
- Private cBotoes := ""
- Private cCodLogin := ""
- Private cVendLogin:= ""
- Web Extended Init cHtml Start U_inSite()
-
- cVendLogin := u_GetUsrPR()
- cCodLogin := U_SetParPR(cVendLogin)
- If Empty(HttpSession->CodVend)
- cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL='+cSite+'">'
- Return cHtml
- Else
- If !Empty(HttpSession->Superv) .and. HttpSession->Superv <> HttpSession->CodVend
- HttpSession->CodVend:= HttpSession->Superv
- Endif
- Endif
-
- // Pega do parâmetro com o Titulo do Portal
- cTitle := SuperGetMV("PS_TITLE", .T., "Portal SMS")
-
- // Define a funcao a ser chama no link
- cSite := "u_SMSPortal.apw?PR="+cCodLogin
-
- // Monta o cabeçalho para a pagina
- cHeader := U_PSHeader(cTitle, cSite)
-
- //Função que atualiza os menus
- cMenus := U_GetMenus(AllTrim(Upper(Procname())), cVendLogin)
-
-
-
- //Atualiza as variáveis
- cEndServ := GetMv('MV_WFBRWSR')
- cCodVend := cVendLogin //HttpSession->CodVend
- cNomeVend:= HttpSession->Nome
-
- //Tipo do Cliente
- aCombo:= StrTokArr(Posicione('SX3',2,'A1_TIPO','X3CBox()'),";")
- For a:= 1 to Len(aCombo)
- aAdd(aTipo,{Left(aCombo[a],1),aCombo[a]})
- Next
- //aTipo:= {{"F","Consumidor Final"},{"L","Produtor Rural"},{"R","Revendedor"},{"S","Solidário"},{"X","Exportação"}}
- cTipo:='<select class="form-control mb-md" name="A1_TIPO" id="A1_TIPO" required="" aria-required="true" value="" onchange="javascript:vldTipo();" >'
- cTipo+=' <option value=""></option>'
- For a:= 1 to Len(aTipo)
- cTipo+=' <option value="'+aTipo[a,1]+'">'+aTipo[a,2]+'</option>'
- Next
- cTipo+='</select>'
- //Estado
- dbSelectArea("SX5")
- dbSeek(xFilial("SX5")+'12')
- While SX5->(!Eof()) .and. SX5->X5_FILIAL = xFilial("SX5") .and. SX5->X5_TABELA = '12'
- aAdd(aEstado,{SX5->X5_CHAVE,SX5->X5_DESCRI})
- SX5->(dbSkip())
- End
- cEstado:='<select data-plugin-selectTwo class="form-control populate mb-md" name="A1_EST" id="A1_EST" onchange="javascript:SetCidade()" value="" disabled>'
- cEstado+=' <option value=""></option>'
- For f:= 1 to Len(aEstado)
- cEstado+=' <option value="'+alltrim(aEstado[f,1])+'">'+alltrim(aEstado[f,2])+'</option>'
- Next
- cEstado+='</select>'
-
- //Adiciona os botões da página
- cBotoes+='<input class="btn btn-primary" type="button" id="btSalvar" name="btSalvar" value="Salvar"/>'+chr(13)+chr(10)
- cBotoes+='<input class="btn btn-primary" type="button" id="btVoltar" name="btVoltar" value="Voltar" onclick="javascript: location.href='+"'"+'u_LimiteCredito.apw?PR='+cCodLogin+"';"+'"/>'+chr(13)+chr(10)
-
- //Retorna o HTML para construção da página
- cHtml := H_AddCliente()
-
- Web Extended End
- Return (cHTML)
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ fVldCGC ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.12.20 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Função utilizada no Ajax para validar o CPF/CNPJ ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function fVldCGC()
- Local cCGC := HttpPost->CGC
- Local cTipo := HttpPost->tipo
- Local cHtml := ""
- Web Extended Init cHtml Start U_inSite()
- If !Empty(cCgc)
- //Remove os separadores
- cCgc:= StrTran(StrTran(StrTran(cCGC,".",""),"-",""),"/","")
-
- //Verifica se num é válido
- If cTipo <> "X"
- SA1->(dbSetOrder(3))
- If SA1->(dbSeek(xFilial("SA1")+cCGC))
- cHtml:= SA1->A1_COD+'/'+SA1->A1_LOJA
- Endif
- Endif
- Endif
- Web Extended end
- Return cHtml
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ fSetCidade ¦ Autor ¦ Lucilene Mendes ¦ Data ¦ 02.12.20 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Localiza as cidades do estado selecionado ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function fSetCidade()
- Local cEstado := Alltrim(HttpPost->estado)
- Local cCombo := ""
- Local cHtml := ""
- Web Extended Init cHtml Start U_inSite()
- If !Empty(cEstado)
- dbSelectArea("CC2")
- CC2->(dbSeek(xFilial("CC2")+cEstado))
- cCombo+=' <option value=""></option>'
- While CC2->(!Eof()) .and. CC2->CC2_EST = cEstado
- cCombo+=' <option value="'+CC2->CC2_CODMUN+'">'+CC2->CC2_MUN+'</option>'
- CC2->(dbSkip())
- End
- Endif
- cHtml:= cCombo
- Web Extended end
- Return cHtml
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ SlvCliente ¦ Autor ¦ Lucilene Mendes ¦ Data ¦02.12.20 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Gera o cadastro do cliente. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function SlvCliente()
- Local cHtml
- Local cDirErro := "erro\"
- Local cDestMail := ""
- Local aCliente := ""
- Private lMsErroAuto:= .F.
- Web Extended Init cHtml Start U_inSite()
- // #IFDEF SMSDEBUG
- // conOut(Procname()+"("+ltrim(str(procline()))+") *** Portal ")
- // aInfo := HttpGet->aGets
- // For nI := 1 to len(aInfo)
- // conout('GET '+str(nI,3)+' = '+aInfo[nI]+' -> '+&("HTTPGET->"+aInfo[nI]))
- // Next
- // aInfo := HttpPost->aPost
- // For nI := 1 to len(aInfo)
- // conout('POST '+str(nI,3)+' = '+aInfo[nI]+' -> '+&("HTTPPOST->"+aInfo[nI]))
- // Next
- // #ENDIF
-
- //Verifica se não perdeu a sessão
- If type("HttpSession->CodVend") = "U" .or. Empty(HttpSession->CodVend)
- conout(Procname()+"("+ltrim(str(procline()))+") *** Portal "+"Sessao encerrada")
- cHtml:= '<META HTTP-EQUIV="Refresh" CONTENT="0 ; URL=U_SMSPortal.apw">'
- return cHtml
- Else
- //Posiciona no vendedor
- SA3->(dbSeek(xFilial("SA3")+HttpSession->CodVend))
- Endif
-
- cCnpj:= StrTran(StrTran(StrTran(HttpPost->A1_CGC,".",""),"-",""),"/","")
- cTipo:= Iif(HttpPost->A1_TIPO = "F" .and. !Empty(HttpPost->A1_INSCR),"S",HttpPost->A1_TIPO)
- cDDD:= Iif(Type("HttpPost->A1_TEL") = "U","",Left(StrTran(StrTran(HttpPost->A1_TEL,"(",""),")",""),2))
- cTel:= Iif(Type("HttpPost->A1_TEL") = "U","",Alltrim(Substr(StrTran(StrTran(HttpPost->A1_TEL,"(",""),")",""),3)))
- cFax:= Iif(Type("HttpPost->A1_TELEX") = "U","",Substr(StrTran(StrTran(HttpPost->A1_TELEX,"(",""),")",""),3))
- cCep:= Iif(Type("HttpPost->A1_CEP") = "U","",StrTran(HttpPost->A1_CEP,"-",""))
- cEndereco:= Iif(Type("HttpPost->A1_END") = "U","",Upper(HttpPost->A1_END))
- cEndereco+= Iif(Type("HttpPost->A1_NR_END") = "U","",", "+HttpPost->A1_NR_END)
- cComplem:= Iif(Type("HttpPost->A1_COMPLEM") = "U","",ALLTRIM(HttpPost->A1_COMPLEM))
- cBairro:= Iif(Type("HttpPost->A1_BAIRRO") = "U","",ALLTRIM(Upper(HttpPost->A1_BAIRRO)))
- cEmail:= Iif(Type("HttpPost->A1_EMAIL") = "U","",ALLTRIM(Lower(HttpPost->A1_EMAIL)))
- cInscricao:= Iif(Type("HttpPost->A1_INSCR") = "U","",Iif(Empty(HttpPost->A1_INSCR),'ISENTO',HttpPost->A1_INSCR))
- cContato:= Iif(Type("HttpPost->A1_CONTATO") = "U","",Upper(HttpPost->A1_CONTATO))
- cMsBlock:= '1'
- cNatureza:= GetNewPar("PR_NATCLI","10101")
- cCtaContabil:= GetNewPar("PR_CTACLI","11201002")
-
- // Verifica se o cliente ja esta cadastrado
- dbSelectArea("SA1")
- SA1->(DbSetOrder(3)) // A1_FILIAL+A1_CGC
- if SA1->(dbSeek(xFilial("SA1")+cCNPJ))
- cHtml:= "erro"
- return cHtml
- endif
- SA1->(DbSetOrder(1)) // A1_FILIAL+A1_COD+A1_LOJA
- //Dados para cadastrar o cliente
- cCodCli:= GetSXeNum("SA1","A1_COD")
- ConfirmSX8()
- aCliente:= {{"A1_COD" ,cCodCli ,Nil},;
- {"A1_LOJA" ,'01' ,Nil},;
- {"A1_CGC" ,cCNPJ ,Nil},;
- {"A1_NOME" ,ALLTRIM(Upper(HttpPost->A1_NOME)) ,Nil},;
- {"A1_PESSOA" ,Iif(Len(cCNPJ)>11,"J","F") ,Nil},;
- {"A1_NREDUZ" ,ALLTRIM(Upper(HttpPost->A1_NREDUZ)) ,Nil},;
- {"A1_TIPO" ,cTipo ,Nil},;
- {"A1_CEP" ,cCep ,Nil},;
- {"A1_END" ,cEndereco ,Nil},;
- {"A1_EST" ,ALLTRIM(HttpPost->A1_EST) ,Nil},;
- {"A1_COD_MUN" ,ALLTRIM(HttpPost->A1_COD_MUN) ,Nil},;
- {"A1_BAIRRO" ,Left(cBairro,30) ,Nil},;
- {"A1_COMPLEM" ,cComplem ,Nil},;
- {"A1_INSCR" ,cInscricao ,Nil},;
- {"A1_DDD" ,cDDD ,Nil},;
- {"A1_TEL" ,StrTran(cTel,"-","") ,Nil},;
- {"A1_TELEX" ,StrTran(cFax,"-","") ,Nil},;
- {"A1_EMAIL" ,cEmail ,Nil},;
- {"A1_PAIS" ,"105" ,Nil},;
- {"A1_CODPAIS" ,"01058" ,Nil},;
- {"A1_MSBLQL" ,cMsBlock ,Nil},;
- {"A1_DTINIV" ,date() ,Nil},;
- {"A1_CONTA" ,cCtaContabil ,Nil},;
- {"A1_VEND" ,SA3->A3_COD ,Nil},; //{"A1_VEND2" ,SA3->A3_SUPER ,Nil},;//{"A1_VEND3" ,SA3->A3_GEREN ,Nil},;
- {"A1_CONTATO" ,cContato ,Nil},;
- {"A1_NATUREZ" ,cNatureza ,Nil},;
- {"A1_XCLIFID" ,'N' ,Nil}}
-
- lMsErroAuto := .F.
- MSExecAuto({|x,y| Mata030(x,y)},aCliente,3)
- If lMsErroAuto
- If !ExistDir(cDirErro)
- MakeDir(cDirErro)
- Endif
-
- cDirErro+=dtos(date())
- If !ExistDir(cDirErro)
- MakeDir(cDirErro)
- Endif
- //Grava o erro
- cMsg:= MostraErro(cDirErro,"erro_cliente_"+cCNPJ+'_'+strtran(time(),":","")+".txt")
-
- cHtml:= "erro"
- //Envio de e-mail avisando do cadastro
- cDestMail:= GetNewPar("PR_MCADCLE")
-
- u_MailCM("ERRO CADASTRO DE CLIENTE",{cDestMail},{},"ERRO NOVO CLIENTE PORTAL",cMsg,"","")
- Else
- SA1->(dbSetOrder(3))
- SA1->(dbSeek(xFilial("SA1")+cCNPJ))
- cHtml:= "Cliente cadastrado com sucesso! <br>Aguarde a liberação do cliente pelo setor Financeiro. <br><br>Código: "+SA1->A1_COD+'/'+SA1->A1_LOJA+".<br><br>"
-
- //Envio de e-mail avisando do cadastro
- cDestMail:= GetNewPar("PR_MCADCLI")
- cMsg:= "Um novo cadastro de cliente foi gerado pelo Portal do Representante.<br><br>"
- cMsg+= "Vendedor: "+HttpSession->CodVend+" - "+Alltrim(Posicione("SA3",1,xFilial("SA3")+HttpSession->CodVend,"A3_NOME"))+"<br>"
- cMsg+= "Cliente: "+SA1->A1_COD+"/"+SA1->A1_LOJA+" - "+SA1->A1_NOME+"<br>"
-
- aCombo:= StrTokArr(Posicione('SX3',2,'A1_TIPO','X3CBox()'),";")
- nPos:= aScan(aCombo,{|x| Left(x,1)== SA1->A1_TIPO})
- cMsg+= "Tipo: "+Substr(aCombo[nPos],3)+"<br>"
- u_MailCM("CADASTRO DE CLIENTE",{cDestMail},{},"NOVO CLIENTE PORTAL: "+SA1->A1_COD+"/"+SA1->A1_LOJA+" - "+;
- trim(SA1->A1_NOME),cMsg,"","")
- Endif
- Web Extended End
- Return cHTML
- /*__________________________________________________________________________
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦Funçäo ¦ fCEPEnd ¦ Autor ¦ Lucilene Mendes ¦ Data ¦22.12.20 ¦¦¦
- ¦¦+----------+------------------------------------------------------------¦¦¦
- ¦¦¦Descriçäo ¦ Busca o endereço pelo CEP. ¦¦¦
- ¦¦+-----------------------------------------------------------------------+¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
- User Function fCEPEnd()
- Local cHtml := ""
- Local cCep:= ""
- Local aRet:= {}
- Web Extended Init cHtml Start U_inSite()
- cCep:= StrTran(HttpPost->CEP,"-","")
- If len(cCep) < 8
- cHtml:= "F#CEP inválido."
- Else
- aRet:= u_fbuscaCEP(cCep,.T.)
- If !aRet[1]
- cHtml:= "F#"+aRet[2]
- Else
- cHtml:= "T#"+Upper(aRet[2])+"#"+Substr(aRet[3],3)+"#"+Upper(NoAcento(Left(aRet[5],40)))+"#"+Upper(NoAcento(aRet[6]))
- Endif
- Endif
- Web Extended End
- Return cHTML
|