Sumário


1 Introdução

Após um longo período fora do Brasil a distribuidora Texaco retornou ao país por meio da Ipiranga. Para que os dados de vendas, compras e estoque sejam transmitidos para o time Texaco (Ipiranga) de forma correta, é necessário realizar algumas configurações no Autosystem gerencial.



2 Integração de Dados

A integração dos dados é feita por meio de um executável, que fará o envio e recebimento destes. Para ativá-lo, basta acessar a pasta de instalação do sistema e dar um duplo clique no executável “distribuidora.exe”. Este procedimento é feito uma única vez.




3 Configuração do Módulo

O menu Configurações permitirá consultar os códigos PV e componentes das empresas e vincular as formas de pagamento cadastradas no AutoSystem, aos códigos Texaco. Essas configurações são essenciais para o correto funcionamento do sistema.

Os dados de PV e código de componente da Pista, Star Lub e Star Mart são atualizados através da Intranet LZT por meio de uma integração com os servidores da Texaco. Os códigos chegam no gerencial através da renovação de licença de uso:


Para criar o vínculo, acessar no módulo Gerencial, o menu Configurações  → Módulos → Integração Texaco, conforme imagem a seguir:



Importante

É importante ressaltar que a carga deve estar liberada pelo time da Ipiranga. Atualmente o responsável pelo contato é o time do  Fernando Tomaz Dionisio [email protected].



A atualização das informações do cadastro padrão acontecerá em alguns horários durante o dia, onde o serviço de integração da "distribuidora.exe", fará o acesso ao servidor Texaco, via webservice, e importará as informações para o AutoSystem.

Na guia Forma de Pagamento, para vincular as formas de pagamento cadastradas no AutoSystem, com as da Texaco, basta selecionar a linha que contém a forma de pagamento, clicar na coluna Forma Pgto Abreviada, e inserir a abreviatura da forma de pagamento Texaco.

Ao término das operações clicar em Atualizar carga de produtos.

O processo irá demorar em torno de 20 minutos dependendo da conexão e da quantidade de itens da carga. Este processo deve ser executado na Matriz quando se tratar de ambiente Matriz x Filial.




4 Vinculo de combustíveis

Os combustíveis deverão ser vinculados manualmente na Matriz acessando Cadastros → Produtos → Distribuidoras → Texaco. Após selecionar o combustível correspondente ao cadastrado no Autosystem o item será sincronizado para a filial.


Informação

Link com vídeo demonstrando o processo de carga e vínculo dos combustíveis Texaco.
Vinculo de combustíveis Texaco e carga de produtos padrão ‐ Feito com o Clipchamp.mp4



Este processo deve ser realizado antes do estabelecimento iniciar as suas atividades, já que a cada venda o documento fiscal é transmitido para a Sales Texaco e caso o vínculo esteja incorreto o item será enviado com o campo "negócio" igual a vazio ou null, sendo necessário o reprocessamento utilizando o SQL abaixo:

Reprocessamento de vendas Texaco Sales
 INSERT INTO exchange_dlc_texaco_sync
(pkey, tabela, ts)
  SELECT nfs.grid as pkey, 'nota_fiscal_situacao' as tabela, nfs.ts
FROM nota_fiscal_situacao nfs
join nota_fiscal nf on nfs.nota_fiscal=nf.grid
where true
     and nf.caixa_data::date between 'aaaa-mm-dd' AND 'aaaa-mm-dd'
   and nf.numero_nota = 14512
  -- and nf.numero_nota between '202268' and '202268'
  and ( nf.modelo in ('59', '65','55'));



Informação

  • Relatório Custom .xml
  • Atualmente o time da Texaco solicita a extração das informações via banco de dados do estabelecimento para comparar com as informações recebidas pela API  Sales. Abaixo  o SQL que é utilizado atualmente par aobter essas informações:
Select vendas Texaco Sales - Banco de dados
 SELECT
    sub.*
FROM
    (
        SELECT
            n.numero_nota AS nota_fiscal,
            '''' || nfee.chave_acesso AS chave_acesso,
            n.serie,
            CASE
                WHEN nfs.situacao = 100 THEN 'Gerada'
                WHEN nfs.situacao = 110 THEN 'Cancelada'
                WHEN nfs.situacao = 200 THEN 'Impressa'
                WHEN nfs.situacao = 300 THEN 'Enviada'
                WHEN nfs.situacao = 310 THEN 'Aprovada'
                WHEN nfs.situacao = 320 THEN 'Rejeitada'
                WHEN nfs.situacao = 330 THEN 'Denegada'
                WHEN nfs.situacao = 340 THEN 'Aguardando Envio'
                WHEN nfs.situacao = 390 THEN 'Impressa em Contingência'
                ELSE 'Situação não definida'
            END AS Situacao,
            coalesce(nfp.codigo_barra, p.codigo_barra) AS codigo_barra,
            coalesce(p.codigo, nfp.descricao, p.grid::TEXT) AS codigo_prod,
            coalesce(p.nome, nfp.descricao) AS nome_prod,
            -- Lógica para buscar negócio em exc_texaco_produto_livre_empresa se não estiver em exc_texaco_produto
            COALESCE(
                etp.negocio, -- Tenta pegar o negócio da tabela principal
                CASE -- Se etp.negocio for nulo, usa CASE para fazer o "de/para" do integer de etple.negocio
                    WHEN etple.negocio = 1 THEN 'P'
                    WHEN etple.negocio = 2 THEN 'L'
                    WHEN etple.negocio = 3 THEN 'J'
                    ELSE NULL -- Retorna NULL se o código não for 1, 2 ou 3
                END
            ) AS negocio,
            etp.codigo AS codigo_produto_txc,
            etp.nome AS nome_produto_txc,
            etple.codigo AS codigo_prd_livre, -- Adicionando a coluna codigo_prd_livre
            coalesce(p.tipo, nfp.tipo) AS tipo_prod,
            nfp.quantidade,
            p.grupo AS grupo_produto,
            p.data_cad,
            nfp.preco_unit,
            nfp.numero_item,
            somente_numero_f(v.cpf) AS vendedor_cpf,
            v.codigo AS vendedor_codigo,
            nfp.codigo_anp,
            n.valor_nota,
            nfp.valor AS valor_item,
            -- Type cast explícito para numeric antes de usar ROUND
            ROUND(
                (COALESCE(nfp.valor, 0) + COALESCE(nfp.valor_acrescimo, 0) - COALESCE(nfp.valor_desconto, 0))::numeric,
                2
            ) AS valor_item_liquido,
            coalesce(nfp.valor_desconto, 0) AS valor_desconto,
            coalesce(nfp.valor_acrescimo, 0) AS valor_acrescimo,
            coalesce(nfp.valor_frete, 0) AS valor_frete_item,
            coalesce(nfp.valor_seguro, 0) AS valor_seguro_item,
            coalesce(nfp.valor_outr_des, 0) AS valor_outr_des_item,
            p.tipo_combustivel,
            gp.codigo AS codigo_grupo,
            gp.nome AS nome_grupo,
            l.versao_pdv,
            l.sistema_operacional,
            coalesce(
                (
                    CASE
                        WHEN nfp.valor_desconto > 0 THEN nfp.valor_desconto
                    END
                ),
                0
            ) AS valor_desconto_item,
            coalesce(
                (
                    CASE
                        WHEN nfp.perc_desconto > 0 THEN nfp.perc_desconto
                    END
                ),
                0
            ) AS per_desconto_item,
            coalesce(
                (
                    CASE
                        WHEN nfp.valor_acrescimo > 0 THEN nfp.valor_acrescimo
                    END
                ),
                0
            ) AS valor_acrescimo_item,
            coalesce(
                (
                    CASE
                        WHEN nfp.perc_acrescimo > 0 THEN nfp.perc_acrescimo
                    END
                ),
                0
            ) AS perc_acrescimo_item,
            preco_unit_empresa_f(p.grid, nfp.empresa) AS preco_unitario_venda,
            coalesce(l.hora, n.hora_emissao) AS data_hora_venda,
            -- Ordenação da função de janela priorizando o negócio preenchido (seja de etp ou o convertido de etple)
            ROW_NUMBER() OVER (
                PARTITION BY n.numero_nota,
                nfp.numero_item
                ORDER BY
                    COALESCE(
                        etp.negocio,
                        CASE
                            WHEN etple.negocio = 1 THEN 'P'
                            WHEN etple.negocio = 2 THEN 'L'
                            WHEN etple.negocio = 3 THEN 'J'
                            ELSE NULL
                        END
                    ) DESC NULLS LAST
            ) AS rn
        FROM
            nota_fiscal n
            JOIN nfe nfee ON nfee.nota_fiscal = n.grid
            JOIN nota_fiscal_situacao nfs ON nfs.nota_fiscal = n.grid
            JOIN nota_fiscal_produto nfp ON n.grid = nfp.nota_fiscal
            JOIN produto p ON nfp.produto = p.grid
            JOIN empresa_distribuidora ed ON ed.empresa = n.empresa
            LEFT JOIN nota_fiscal_produto_lancto nfpl ON nfpl.nota_fiscal_produto = nfp.grid
            LEFT JOIN produto_distribuidora pd ON pd.produto = p.grid
            AND pd.distribuidora = 6
            LEFT JOIN exc_texaco_produto etp ON etp.grid = pd.produto_dist
            LEFT JOIN exc_texaco_produto_livre etpl ON etpl.produto = p.grid
            LEFT JOIN exc_texaco_produto_livre_empresa etple ON etple.produto_livre = etpl.grid -- Certifique-se de que esta junção está correta
            LEFT JOIN lancto l ON l.grid = nfpl.lancto
            LEFT JOIN usuario u ON l.usuario = u.nome
            LEFT JOIN pessoa v ON v.grid = coalesce(l.vendedor, u.pessoa)
            LEFT JOIN grupo_produto gp ON p.grupo = gp.grid
            LEFT JOIN unidade_medida_view um ON p.unid_med = um.codigo
        WHERE
            TRUE
            AND n.data_emissao :: date BETWEEN '2025-04-01' :: date AND '2025-06-02' :: date
            AND n.tipo = 'S' -- tipo saida
          --  AND n.numero_nota = '331768'
            -- AND n.empresa = 277424226::int8 -- Código comentado
    ) AS sub
WHERE
    sub.quantidade > 0
    AND sub.rn = 1
ORDER BY
    nota_fiscal,
    numero_item;



5 Trasmissão arquivos FTP - Monitoria

Atualmente além do AutoSystem transmitir os dados para a Sales Texaco também é necessário transmitir para o FTP da Ipiranga para o time da AM PM valide as vendas realizadas pela Star Mart.

A transmissão passa pela monitoria que pode ser acessada pelo seguinte link:

https://texaco-monitoria.emsys.com.br/monitoria-dashboard/

Arquivos contemplados na transmissão:

AU (vendas), LU (compras) e TU (estoque)



  • Sem rótulos