Aviso: Este artigo ainda é um rascunho!
Integrações Totali-TKE Projeto Posto Túlio
1.Configurações iniciais
Estas configurações iniciais devem ser aplicadas antes de qualquer tentativa de uso dos sistemas integrados.
1.1.Cadastro de Filiais
As filiais no Totali devem ser cadastradas com o código externo igual ao código da filial na TKE. Não há interface de exportação para o Cadastro de Filiais
1.2.Unidades de Medida
O Cadastro das unidades de medida deve ser realizado em ambos os sistemas com os mesmos códigos e nomes. ÿ importante verificar o conteúdo de TD_MED para a comparação com a TKE. Não há interface de exportação para o Cadastro de Unidades de Medida
1.3.Departamentos e Classes
Deve ser realizado o cadastro da 1º Classe da Total e o cadastro de Departamentos da TKE com os mesmos códigos e nomes (TD_CL1). O cadastro da 2º classe da Totali deve estar da seguinte forma (TD_CL2):

1.1.Cadastro de Série TK
ÿ necessário cadastrar uma série específica para os movimentos dos PDVs com o sistema TKE. ÿ necessário que seu nome seja TK
1.2.Cadastro de usuários de sistema TKE
Todos os operadores que irão trabalhar no sistema da TKE deverão ter seus códigos cadastrados no campo Código Externo dos respectivos usuários no sistema Totali.
1.1.Tabela de Preço padrão
ÿ necessário cadastrar uma tabela de preço padrão (Ambiente no Totali Config), já que o sistema TKE trabalha desta maneira. Ista informação será utilizada na exportação de preços para a TKE.
1.2.Plano Padrão
ÿ necessário cadastrar um plano como padrão (Ambiente no Totali Config), pois esta informação será utilizada na importação de vendas provenientes da TKE.
1.3.Cadastro de ECFs
Todo ECF utilizado pela TKE deve ser cadastrado no Totali. Para isso, o número que a TKE tem para o ecf deverá ser acrescentado 100 e assim salvo como número do ECF na Totali. Por exempleo, um ecf número 001 na TKE seria cadastrado como 101 no Totali.
2.Cadastro de Produtos
Caberá a Totali.com S.A. realizar o cadastro de produtos, preços e códigos EAN para a alimentação do sistema TKE.
A exportação dos produtos se dará via 3 arquivos. PDPRODUT.TXT: Conterá o produto e suas especificações. PDBARRAS.TXT: Conterá o código do produto e todos os códigos EAN a ele relacionados PDPREFIL.TXT: Conterá os preços para as filiais que não utilizarem o preço padrão que se encontra no PDPRODUT.TXT.
Layout arquivo: PDPRODUT.TXT

(**) Com duas casas decimais implícitas ? 100,01 = 10001 (***) Com três casas decimais implícitas ? 100,019 = 100019
Select para montar este arquivo
SELECT GRA.SEQUEN, CONVERT( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(
NVL(PRO.DESECF,PRO.DESMAT), 'ÿ', 'C'),'ÿ', 'C'), 'ÿ','A'), 'ÿ','A'), 'ÿ','O'), 'ÿ','O'),
'ÿ','N'), 'ÿ','N'), 'US7ASCII', 'WE8ISO8859P1') AS DESECF, CONVERT( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( PRO.DESMAT, 'ÿ', 'C'),'ÿ', 'C'), 'ÿ','A'), 'ÿ','A'), 'ÿ','O'), 'ÿ','O'), 'ÿ','N'), 'ÿ','N'), 'US7ASCII', 'WE8ISO8859P1') AS DESMAT, PRO.TIPPRO, PRO.UNIDAD, PRO.CLASS2, PRO.CLASS1, CL1.CLASS1 AS DESCL1, ICM.RESICM, IUF.SUBTRI, IRE.ICMSRE, PRO.DECIMA, GRA.PERLUC, VAR.PRECOV, GRA.PRECOM, PRO.SIGNAT, PGRA.ESSO_CARD AS ESSO FROM TD_CL1 CL1, TD_ICM ICM, TD_IRE IRE, TV_VAR VAR, TT_GRA GRA, TP_GRA PGRA, TT_PRO PRO, TT_IUF IUF WHERE (IUF.RESICM = ICM.CODTAB(+)) AND (PRO.CLASS1 = CL1.CODTAB(+)) AND (IUF.REDALI = IRE.CODTAB(+)) AND (GRA.FILMAT = VAR.FILMAT) AND (GRA.CODMAT = VAR.CODMAT) AND (GRA.CODCOR = VAR.CODCOR) AND (GRA.CODTAM = VAR.CODTAM) AND (PRO.FILMAT = GRA.FILMAT) AND (PRO.CODMAT = GRA.CODMAT) AND (GRA.FILMAT = PGRA.FILMAT(+)) AND (GRA.CODMAT = PGRA.CODMAT(+)) AND (GRA.CODCOR = PGRA.CODCOR(+)) AND (GRA.CODTAM = PGRA.CODTAM(+)) AND (GRA.FILMAT = IUF.FILMAT(+)) AND (GRA.CODMAT = IUF.CODMAT(+)) ORDER BY GRA.SEQUEN
Layout arquivo: PDBARRAS.TXT

Select para montar este arquivo
SELECT GRA.SEQUEN, GRA.REFPRO FROM TT_GRA GRA, TT_PRE PRE WHERE (GRA.FILMAT = PRE.FILMAT) AND (GRA.CODMAT = PRE.CODMAT) AND (GRA.CODCOR = PRE.CODCOR) AND (GRA.CODTAM = PRE.CODTAM) UNION ALL SELECT GRA.SEQUEN, EAN.CODEAN from TT_GRA GRA, TT_EAN EAN, TT_PRE PRE WHERE (GRA.FILMAT = EAN.FILMAT) AND (GRA.CODMAT = EAN.CODMAT) AND (GRA.CODCOR = EAN.CODCOR) AND (GRA.CODTAM = EAN.CODTAM) AND (GRA.FILMAT = PRE.FILMAT) AND (GRA.CODMAT = PRE.CODMAT) AND (GRA.CODCOR = PRE.CODCOR) AND (GRA.CODTAM = PRE.CODTAM)
Layout arquivo: PDPREFIL.TXT

(**) Com duas casas decimais implícitas ? 100,01 = 10001 (***) Com três casas decimais implícitas ? 100,019 = 100019
Select para montar este arquivo
SELECT FIL.CODEXT AS FILPRE, GRA.SEQUEN, PRE.PRECOV from TT_GRA GRA, TT_PRE PRE, TD_FIL FIL, TT_TPR TPR WHERE GRA.FILMAT = PRE.FILMAT AND GRA.CODMAT = PRE.CODMAT AND GRA.CODCOR = PRE.CODCOR AND GRA.CODTAM = PRE.CODTAM AND TPR.CODFIL = PRE.FILPRE AND TPR.CODPRE = PRE.CODPRE AND PRE.PRECOV <> 0 AND (PRE.FILPRE,PRE.CODPRE) <> (SELECT FILPRE,CODPRE FROM TT_CFG) AND TPR.FILDES = FIL.CODFIL
1.Movimentações de Vendas
Deve ser enviado ao sistema da TKE um resumo com as movimentações diárias dos checkouts.
Se dará via 2 arquivos: MOVFEE01.TXT: Movimentação de produtos referentes ao Posto MOVFEE02.TXT: Movimentação de produtos referentes a Conveniência e demais.
Layout Arquivo: MOVFEE01.TXT

(**) Com duas casas decimais implícitas ? 100,01 = 10001 (***) Com três casas decimais implícitas ? 100,019 = 100019 Select para montar o arquivo
SELECT FIL.CODEXT AS CODFIL, VENPRO.DATHOR, ECF.NUMORI AS NUMECF, VENTOT.VLRTOT + NVL(DESCAN.VLRTOT,0) AS VLRTOT, NVL(DESCAN.VLRTOT,0) AS VLRDES, VENPRO.VLRCOM, VENPRO.VLRLUB, VENPRO.VLRLAV FROM TD_FIL FIL, TD_ECF ECF, -- Vendas de combustiveis, lubrificantes e lavacao (SELECT VEN.CODFIL, VEN.NUMECF, TO_CHAR(VEN.DATHOR,'YYYYMMDD') AS DATHOR, SUM(DECODE( PRO.CLASS1, 18, (NVL(VEN.VLRLIQ,0) * decode(VEN.VLRNOT, 0, 0, IVE.VLRMOV / VEN.VLRNOT)), 0 )) AS VLRCOM, SUM(DECODE( PRO.CLASS1, 19, (NVL(VEN.VLRLIQ,0) * decode(VEN.VLRNOT, 0, 0, IVE.VLRMOV / VEN.VLRNOT)), 0 )) AS VLRLUB, SUM(DECODE( PRO.CLASS1, 27, (NVL(VEN.VLRLIQ,0) * decode(VEN.VLRNOT, 0, 0, IVE.VLRMOV / VEN.VLRNOT)), 0 )) AS VLRLAV FROM TT_VEN VEN, TT_IVE IVE, TT_PRO PRO WHERE IVE.CODFIL = VEN.CODFIL AND IVE.SEQUEN = VEN.SEQUEN AND PRO.FILMAT = IVE.FILMAT AND PRO.CODMAT = IVE.CODMAT AND VEN.CODSER = 'CF' AND VEN.FLGEST <> 'C' AND IVE.SITKIT <> '1' AND VEN.DATHOR >= to_date(:DATINI,'DD/MM/YYYY HH24:MI:SS') AND VEN.DATHOR <= to_date(:DATFIM,'DD/MM/YYYY HH24:MI:SS') GROUP BY VEN.CODFIL, VEN.NUMECF, TO_CHAR(VEN.DATHOR,'YYYYMMDD')) VENPRO, -- Total geral de vendas (SELECT VEN.CODFIL, VEN.NUMECF, TO_CHAR(VEN.DATHOR,'YYYYMMDD') AS DATHOR, SUM(VEN.VLRLIQ) AS VLRTOT FROM TT_VEN VEN WHERE VEN.CODSER = 'CF' AND VEN.FLGEST <> 'C' AND VEN.DATHOR >= to_date(:DATINI,'DD/MM/YYYY HH24:MI:SS') AND VEN.DATHOR <= to_date(:DATFIM,'DD/MM/YYYY HH24:MI:SS') GROUP BY VEN.CODFIL, VEN.NUMECF, TO_CHAR(VEN.DATHOR,'YYYYMMDD')) VENTOT, -- Cupons canceladas (SELECT ECF.CODFIL, ECF.NUMECF, TO_CHAR(ECF.DATOPE,'YYYYMMDD') AS DATHOR, SUM(ECF.VLRTOT) AS VLRTOT FROM TT_ECF ECF WHERE ECF.TOTALI IN ('DESC','CANC') AND ECF.DATOPE >= to_date(:DATINI,'DD/MM/YYYY HH24:MI:SS') AND ECF.DATOPE <= to_date(:DATFIM,'DD/MM/YYYY HH24:MI:SS') GROUP BY ECF.CODFIL, ECF.NUMECF, TO_CHAR(ECF.DATOPE,'YYYYMMDD')) DESCAN WHERE VENTOT.CODFIL = FIL.CODFIL AND VENTOT.CODFIL = ECF.FILECF AND VENTOT.NUMECF = ECF.NUMECF AND VENTOT.CODFIL = VENPRO.CODFIL (+) AND VENTOT.NUMECF = VENPRO.NUMECF (+) AND VENTOT.DATHOR = VENPRO.DATHOR (+) AND VENTOT.CODFIL = DESCAN.CODFIL (+) AND VENTOT.NUMECF = DESCAN.NUMECF (+) AND VENTOT.DATHOR = DESCAN.DATHOR (+)
Layout arquivo: MOVFEE02.TXT

(**) Com duas casas decimais implícitas ? 100,01 = 10001 (***) Com três casas decimais implícitas ? 100,019 = 100019
Select para montar o arquivo
SELECT FIL.CODEXT AS CODFIL, TO_CHAR(VEN.DATHOR,'YYYYMMDD') AS DATHOR, ECF.NUMORI AS NUMECF, GRA.SEQUEN,PRO.CLASS1, SUM(NVL(VEN.VLRLIQ,0) * decode(VEN.VLRNOT, 0, 0, IVE.VLRMOV / VEN.VLRNOT)) as VLRTOT FROM TT_VEN VEN, TT_IVE IVE, TT_PRO PRO, TT_GRA GRA, TD_FIL FIL, TD_ECF ECF WHERE VEN.CODFIL = IVE.CODFIL AND VEN.SEQUEN = IVE.SEQUEN AND PRO.FILMAT = IVE.FILMAT AND PRO.CODMAT = IVE.CODMAT AND IVE.FILMAT = GRA.FILMAT AND IVE.CODMAT = GRA.CODMAT AND IVE.CODCOR = GRA.CODCOR AND IVE.CODTAM = GRA.CODTAM AND FIL.CODFIL = VEN.CODFIL AND ECF.FILECF = VEN.CODFIL AND ECF.NUMECF = VEN.NUMECF AND IVE.SITKIT <> '1' AND VEN.CODSER = 'CF' AND VEN.FLGEST <> 'C' AND VEN.DATHOR > to_date(:DATINI,'DD/MM/YYYY HH24:MI:SS') AND VEN.DATHOR < to_date(:DATFIM,'DD/MM/YYYY HH24:MI:SS') GROUP BY FIL.CODEXT,TO_CHAR(VEN.DATHOR,'YYYYMMDD'),ECF.NUMORI,GRA.SEQUEN,PRO.CLASS1
1.Importação de movimentações dos PDVs TKE.
ÿ necessário que a TKE informe suas vendas diariamente ao sistema Totali. Esta importação se dará através de um único arquivo misto diário por PDV. Todas as vendas importadas serão consideradas como vendas em cartão Esso Card (Registro tipo 40)
Além de importar as vendas esta interface cuidará do fechamento de caixa e da redução Z, gerando portanto registros nas tabelas: TT_VEN, TT_IVE, TT_REC, TR_CAI, TT_CAI, TR_ECF, TT_ECF, TT_VXP, TT_CLI, TT_END
Observações quanto a implementação: A TKE não envia o total líquido das vendas, valor que é necessário para o resumo Z. Este valor é capturado da soma de todos os valores líquidos das notas. O sistema irá importar toda a nota que não está cadastrada no mesmo, portanto não aceitando modificações nas notas provenientes da TKE. O Valor de ICMS cadastrado na nota é proveniente diretamente da TKE, o que não ocorre com o ISS e IPI. Estes últimos são retirados do cadastro de produtos no sistema da Totali. Toda a venda lançada pela TKE irá alterar o estoque, considerar o financeiro e será tributada, mesmo se a nota não for para tais propósito Em caso do cliente não está cadastrado na base Totali, o sistema irá cadastrá-lo, mas se já está cadastrado, mesmo se algum atributo dele for diferente o sistema não irá alterar. Se for informada uma placa que não está cadastrada no sistema, o sistema irá cadastrá-la para aquele cliente.
ARQUIVOS DE LOG DE MOVIMENTOS DOS PDVs Arquivo: CAPTddmm.txt ? Arquivo de Captura do movimento (PDV)

(*): AAAAMMDD (°) Registros Redefinidos: A redefinição dos registros neste arquivo está intimamente relacionada com o valor encontrado no campo Tipo de Registro:
(°) REG_01 - Cancelamento do Cupom Fiscal Caso apareça este tipo de registro o sistema Cancela a nota ao final da transação.

(°) REG_02 - Cancelamento de Itens Caso apareça este tipo de registro o sistema Cancela o item cadastrado no final da Transação.

(°) REG_04 - Vendas de Itens Cadastra os itens para a venda


(°) REG_40 - Recebimento em TEF Cadastra uma ou mais parcelas


(°) REG_93 - ÿltimo Serial Dados para o Resumo Z

(°) REG_94 - ÿltimo Serial Dados para o Resumo Z

(°) REG_95 - Registro de Retirada de Numerário Dados para o Resumo Z

(°) REG_96 - Registro de Retirada de Numerário Dados para o Resumo Z


(°) REG_98 - ÿltimo Serial Dados para o Resumo Z

(°) REG_99 - ÿltimo Serial Dados para o Resumo Z
