Introdução

  • Criar uma API para receber a Carga de Títulos em aberto que serão enviados pela DPA para o Autoshop 
  • Atualizar o status dos títulos recebidos via banco no SAP 
  • Na carga dos títulos, todos que estiverem em abertos Status =   EM -> Emitida/Pendente, Títulos baixados total = PT -> Pago Totalmente, 


Documentação

Especificação de Negócio: Especificação_Layout_Titulos_Financeiros_Carga3_Vania.docx

Planilha Layout de campos Endpoint: Importacao_Financeiro-titulos.xlsx

Pré-requisito

Bearer Token: Token

Liberação no SmartAPI: Catálogo DPaschoal

 [MethodGroup("Catalogo.DPaschoal")]

Fluxo

  • De Acordo com o Layout enviado para a DPA, iremos inserir os títulos CR, CP e atualizar o Campo Atribuição dos cartões de Crédito  

Restrições

  • Limitar o número de registros em 1.000.
  • Liberar à DPaschoal via acesso SmartAPI


Especificação API


Layout

Especificação de negócio: Especificação_Layout_Titulos_Financeiros_Carga3_Vania.docx

Especificação definida e passada à DPaschoal(planilha): Importacao_Financeiro-titulos.xlsx


Endpoint que importa lista de títulos por CNPJ.

BD

Criar campos em FIN_TITULO: (implementado em: AUTO-76224)

  • ATRIBUICAO VARCHAR(18)
  • DEVOLUCAO CHAR(1) DEFAULT 'N'
    • Valores válidos: S: sim, N: não

Validações

  • Se CNPJ informado corresponde há uma Revenda cadastrada
  • Validar se ClienteDoc com conteúdo CPF ( 11 dígitos ) está cadastrado em FAT_PESSOA_FISICA.
  • Validar se ClienteDoc com conteúdo CNPJ ( 14 dígitos ) está cadastrado em FAT_PESSOA_JURIDICA.
  • Validar valores válidos e campos obrigatórios na controller, conforme planilha
  • Data Emissão deve ser igual data Contábil

  • Data de Vencimento deve ser igual ou maior Data Emissão

Devolução 

Se campo Devolucao = S:

  • Converter CR <-> CP conforme novo campo Devolucao que representa o crédito de um CP ou débito de um CR.
  1. Devolução de Vendas (Débitos de Clientes) gera um título no Contas a Pagar, para devolução de valores para o cliente
  2. Devolução de Fornecedores (Crédito de Fornecedores) gera um título no Conta a Receber, para recebimento de valores pelo fornecedor
  • Cadastrar Cliente/Fornecedor
    • Caso campo ClienteDoc  já exista em FAT_CLIENTE com campo FAT_CLIENTE.CLIFOR diferente do esperado, crie novo registro com os mesmos dados trocando apenas o conteúdo de CLIFOR utilizando os valores:
    • C -> Cliente  ou  F -> Fornecedor
    • Não é permitido cadastrar registro com valor CLIFOR = A → Ambos


Resultado Esperado 

  • Receber a carga de títulos em aberto - Fornecedor (Contas a Pagar - CP) no Autoshop 
  • Receber a carga de títulos em aberto - Clientes (Contas a Receber - CR) no Autoshop  
  • Alguns títulos irão ser recebidos ou pagos pelos caixas em dinheiro o que for por outra forma de recebimento somente iremos atualizar o status na carga de títulos enviada pela DPA 
  • Na entrada desses títulos terá que atualizar o campo Atribuição (campo novo que iremos criar na tabela de títulos, (Receber, Pagar e Cartão de Crédito) 
  • Atualizar o status para PT (Pagamento Total) dos Títulos (Receber, Pagar e Cartão de Crédito) recebidos via banco no SAP.  
  • Os clientes e fornecedores que não tiverem cadastro no LinxAutoshop será enviado um status de títulos não inseridos devido não ter cadastro


Logs

SisLog

  • Reservar Processo: EnumListaProcessos = "DPaschoal"
  • Reservar Operação: EnumListaOperacoesInfraBasico = "Importação de Títulos"
  • Gravar apenas Logs de erro com as configurações acima.

Repositório de Logs - Application Insights

  • Gravar apenas um registro por execução do endpoint, em caso de:
    • Sucesso: Um registro por request informando: cnpj, nro de registros, data-hora
    • Erro: Informar json que ocorreu erro e o erro.
  • O Application Insights será gravado quando gravar a SisLog utilizando a rotina abaixo

            SisLogSingleton.GravaEvento(item.Empresa, item.Revenda, "EnvioFrenteCaixaAtendimentoBalcao",
                                        new Dictionary<string, string>
                                        {
                                            { "Contato", item.Contato.ToString() }
                                        });
            SisLogSingleton.GravaEvento(
                item.Empresa,
                item.Revenda,
                "NovoContatoAtendimentoBalcao",
                new Dictionary<string, string>
                {
                    { "Contato", contato.ToString() }
                });

  • Sem rótulos