Last active
August 1, 2019 21:17
-
-
Save danielAlbuquerque/023dce291311143facf92a5b76dd786a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//---------------------------------------------------- | |
// Verifico a necessidade de criar/atualizar cliente | |
//---------------------------------------------------- | |
dbSelectArea("SA1") | |
SA1->( dbSetOrder(3) ) | |
lInsere := !SA1->( MsSeek( xFilial('SA1') + oPedido['cliente']['cpf_cnpj'] ) ) | |
nRec := ::updCustomer(lInsere, oPedido) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ------------------------------------------------------------------ | |
// Desc: Metodo responsavel por criar ou atualizar o cliente | |
// baseado no CGC | |
// Params: lNew: logico | indica se sera inclusao ou alteracao | |
// Dev: Daniel Albuquerque | |
// Data: 28/11/2018 | |
// ------------------------------------------------------------------ | |
Method updCustomer(lNew, oPedido) CLASS PedVendaRepository | |
Local aArea := GetArea() | |
Local aDadosCli := {} | |
Local cTpPessoa := iif(Len(oPedido['cliente']['cpf_cnpj'])== 11, 'F', 'J') | |
Local cTpCli := 'F' | |
Local cCodSA1, cArqLog, cErro | |
Local nRec := 0 | |
Private lMsErroAuto := .F. | |
Private lMsHelpAuto := .F. | |
If !ExistDir('\log_cli') | |
MakeDir('\log_cli') | |
EndIf | |
// opcao da rotina automatica | |
cCodSA1 := iif(lNew, ::getCodCli(), SA1->A1_COD) | |
::nOP := iif(lNew, 3, 4) | |
// Codigo | |
Aadd(aDadosCli, {'A1_COD', cCodSA1 , Nil} ) | |
// Dados gerais | |
Aadd(aDadosCli, {'A1_FILIAL', xFilial('SA1'), Nil} ) | |
Aadd(aDadosCli, {'A1_LOJA', '01', Nil} ) | |
Aadd(aDadosCli, {'A1_CGC', trataTxt(oPedido['cliente']['cpf_cnpj']), Nil} ) | |
Aadd(aDadosCli, {'A1_NOME' , trataTxt(oPedido['cliente']['nome']), Nil} ) | |
Aadd(aDadosCli, {'A1_NREDUZ', trataTxt(oPedido['cliente']['nome']), Nil} ) | |
Aadd(aDadosCli, {'A1_PESSOA', cTpPessoa, Nil} ) | |
Aadd(aDadosCli, {'A1_TIPO', cTpCli, Nil} ) | |
Aadd(aDadosCli, {'A1_EMAIL', trataTxt(oPedido['cliente']['email']), Nil} ) | |
Aadd(aDadosCli, {'A1_GRPVEN', '000002', Nil} ) | |
// Endereco | |
Aadd(aDadosCli, {'A1_PFISICA', trataTxt(oPedido['dados_entrega']['rg']), Nil}) | |
Aadd(aDadosCli, {'A1_BAIRRO', trataTxt(oPedido['dados_entrega']['bairro']), Nil}) | |
Aadd(aDadosCli, {'A1_END', trataTxt(oPedido['dados_entrega']['endereco']), Nil}) | |
Aadd(aDadosCli, {'A1_CEP', trataTxt(oPedido['dados_entrega']['cep']), Nil}) | |
Aadd(aDadosCli, {'A1_EST', trataTxt(oPedido['dados_entrega']['estado']), Nil}) | |
Aadd(aDadosCli, {'A1_MUN', trataTxt(oPedido['dados_entrega']['cidade']), Nil}) | |
Aadd(aDadosCli, {'A1_COD_MUN', getCodCidade(trataTxt(oPedido['dados_entrega']['estado']), trataTxt(oPedido['dados_entrega']['cidade'])), Nil}) | |
Aadd(aDadosCli, {'A1_TEL', trataTxt(oPedido['cliente']['telefone_celular']), Nil}) | |
Aadd(aDadosCli, {'A1_COMPLEM', trataTxt(oPedido['dados_entrega']['complemento']), Nil}) | |
// pasta fiscais | |
Aadd(aDadosCli, {'A1_ENDENT', trataTxt(oPedido['dados_entrega']['endereco']), Nil}) | |
Aadd(aDadosCli, {'A1_COMPENT', trataTxt(oPedido['dados_entrega']['complemento']), Nil}) | |
Aadd(aDadosCli, {'A1_BAIRROE', trataTxt(oPedido['dados_entrega']['bairro']), Nil}) | |
// Execucao da rotina | |
Conout('#> PROCESSANDO CLIENTE: ' + trataTxt(oPedido['cliente']['nome'])) | |
MsExecAuto({|x,y| MATA030(x,y)}, aDadosCli, ::nOP) | |
If lMsErroAuto | |
::cMsgError := U_FORMTERR( MostraErro('\log_ped', oPedido['cliente']['cpf_cnpj'] + ' : ' +SubStr(Time(),1,5 ) + '.log') ) | |
::lTudoOK := .F. | |
::nCodError := 400 | |
::cLocErro := "ATUALIZACAO CLIENTE" | |
::cTpErro := "EXECAUTO MATA030" | |
::cPayload := oPedido:toJson() | |
RollBackSX8() | |
conout("###### ERROR #######") | |
conout(::cMsgError) | |
conout(::nCodError) | |
conout("#############") | |
Else | |
nRec := SA1->(RECNO()) | |
::lTudoOK := .T. | |
ConfirmSX8() | |
EndIf | |
RestArea(aArea) | |
Return nRec | |
// ------------------------------------------------------------------ | |
// Desc: Metodo responsavel por criar um novo codigo para o cliente | |
// Dev: Daniel Albuquerque | |
// Data: 28/11/2018 | |
// ------------------------------------------------------------------ | |
Method getCodCli() CLASS PedVendaRepository | |
Local cCod := GetSX8Num("SA1", "A1_COD") | |
Local aArea := GetArea() | |
SA1->( DbSetOrder(1) ) | |
While SA1->( DbSeek( xFilial("SA1") + cCod ) ) | |
cCod := GetSX8Num("SA1", "A1_COD") | |
EndDo | |
RestArea(aArea) | |
Return cCod |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment