Consultores Italo Giurizzato Junior Postado 9 Outubro Consultores Postado 9 Outubro Olá Pessoal, O componente ACBrANe passou por um Refactoring. A motivação para esse Refactoring é tornar o componente mais fácil e prático no que se refere a implementar novas seguradoras bem como realizar manutenção no código sem correr o risco de gerar um efeito colateral nas seguradoras já implementadas. Antes tínhamos apenas uma unit responsável por gerar o arquivo de envio para todas as seguradoras. Isso gerava riscos na implementação e manutenção das seguradoras existentes. Agora temos uma unit para cada seguradora que gera o arquivo. Assim, podemos fazer as devidas melhorias bem como as correções sem afetar as outras seguradoras. Pasta dos fontes: Outro ponto importante é a localização das Units que compõe o componente: Pasta Descrição ACBrANe Pasta raiz dos fontes do componente. Seguradoras Pasta que contem as units das seguradoras: (NomeSeguradora.Provider). Base Pasta que contem as units de classes, conversão e constantes. Base\Seguradoras Pasta que contem as units bases e manager. Base\WebServices Pasta que contem as units base e response do webservice Situação atual: Hoje o componente já conta com as seguintes seguradoras implementadas: ATM e ELT. Até tem a PortoSeguro, mas não esta funcional, se faz necessário finalizar a sua implementação. Desafios a frente: Implementar e testar novas seguradoras. Para que isso ocorra, contamos com a colaboração de todos. 9 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Consultores Italo Giurizzato Junior Postado 17 Outubro Autor Consultores Postado 17 Outubro Olá Pessoal, Com esse refactoring mudou a forma de ler as informações de retorno ao averbar um documento. Para pegar o retorno do envio, agora fazemos da seguinte forma: ACBrANe1.WebService.Enviar.**** onde **** é os campos: Numero, Serie, Filial, etc Veja este fragmento de código do programa exemplo: memoLog.Lines.Add('Parâmetros de Retorno'); memoLog.Lines.Add('Numero : ' + Numero); memoLog.Lines.Add('Serie : ' + Serie); memoLog.Lines.Add('Filial : ' + Filial); memoLog.Lines.Add('CNPJ Cliente : ' + CNPJCliente); memoLog.Lines.Add('Tipo Documento: ' + tpDoc); memoLog.Lines.Add('Data/Hora : ' + DateTimeToStr(DataHora)); memoLog.Lines.Add('Numero do Prot: ' + Protocolo); memoLog.Lines.Add('CTe : ' + CTe); memoLog.Lines.Add('Sucesso : ' + BoolToStr(Sucesso, True)); Temos também os dados do seguro que é lido da seguinte forma: ACBrANe1.WebService.Enviar.DadosSeguro.**** if aDadosSeguro.Count > 0 then begin memoLog.Lines.Add(' '); memoLog.Lines.Add('Dados do Seguro:'); for i := 0 to aDadosSeguro.Count -1 do begin memoLog.Lines.Add('Numero Averbação: ' + aDadosSeguro[i].NumeroAverbacao); memoLog.Lines.Add('CNPJ Seguradora : ' + aDadosSeguro[i].CNPJSeguradora); memoLog.Lines.Add('Nome Seguradora : ' + aDadosSeguro[i].NomeSeguradora); memoLog.Lines.Add('Numero Apolice : ' + aDadosSeguro[i].NumApolice); memoLog.Lines.Add('Tipo Movimento : ' + aDadosSeguro[i].TpMov); memoLog.Lines.Add('Tipo de DDR : ' + aDadosSeguro[i].TpDDR); memoLog.Lines.Add('Valor Averbado : ' + FloatToStr(aDadosSeguro[i].ValorAverbado)); memoLog.Lines.Add('Ramo Averbado : ' + aDadosSeguro[i].RamoAverbado); memoLog.Lines.Add('---------'); end; end; Recomento fortemente que estudem o programa exemplo. No que se refere ao retorno vejam a procedure ChecarResposta. 3 1 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Recommended Posts