Totali CheckOut, Funcionalidades
Referenciado por: Postos de Combustíveis |
Apresentação
Segundo o DEPARTAMENTO NACIONAL DE COMBUSTÍVEIS PORTARIA Nº 26, DE 13 DE NOVEMBRO DE 1992 RESOLVE: Instituir o livro de movimentação de combustíveis (LMC) para registro diário, pelos Postos Revendedores (PR's) dos estoques e movimentação de compra e venda de produtos e dá outras providências:
CONSIDERANDO a necessidade de proteção do consumidor contra a adulteração dos combustíveis;
CONSIDERANDO a necessidade de controle mais eficazes para detectar vazamentos de produtos derivados de Petróleo, de álcool etílico carburante e mistura óleo diesel/biodiesel especificada pela ANP comercializados pelos Postos Revendedores, que possam ocasionar dano ao meio ambiente e/ou à integridade física ou patrimonial da população;
CONSIDERANDO a necessidade de facilitar a atividade de fiscalização da arrecadação do ICMS e do IVVC pelas Fazendas Estaduais e municipais, respectivamente; CONSIDERANDO a necessidade de coibir operações irregulares de aquisição e revenda de combustíveis.
Permissão
Permissão 206 - Operações com combustíveis

Utilização

Para se criar uma medição de tanque, deve-se clicar no botão
ou 
Então será habilitado o grid superior para a identificação da filial, número do tanque, quantidade de litros, data da medição e usuário que efetuou a medição.

Em seguida, será habilitado o grid abaixo para a entrada de dados sobre o fechamento de pista.

A esquerda da tela, existem filtros para efetuar as buscas.
Principais instruções efetuadas nesta tela:
SELECT * FROM TT_MDT insert into TT_MDT (CODFIL, NUMTAN, DATMED, FILLEI, CODLEI, DATLEI, FILREG, CODREG,
DATREG, ATU_EM, QTDLTS) insert into TT_FCP (CODFIL, SEQUEN, FILMED, TANMED, DATMED, CODBIC, FILLEI, CODLEI, FILREG, CODREG, DATREG, DATFEC, ATU_EM, VLRENC)
Para se iniciar aferições nos tanques, deve-se clicar no botão
ou 
Em seguida, o grid é habilitado para se inserir, alterar ou deletar os registros referentes as aferições. A tela a seguir demonstra a inserção de dados sobre as aferições efetuadas. A esquerda possuem filtros para efetuar uma pesquisa mais rápida.

Principais instruções efetuadas nesta tela:
SELECT * FROM TT_AFE insert into TT_AFE (CODFIL, CODBIC ,FILAFE, CODAFE, DATAFE, FILREG, CODREG, DATREG, ATU_EM, ENCINI, ENCFIM)
Para se efetuar uma emissão de movimentação de combustível, deve-se primeiro selecionar o período que se deseja emitir, a filial e o produto, em seguida clicar no botão
para a criação do formulário inicial, caso não exista. Existindo, basta efetuar a pesquisa do produto, filial e período necessários.


select case when ilm.filial is null then 'T'
else 'F' end novo, ilm.filemi, ilm.codemi, ilm.observ,
dat.datope as datemi, 0 as numfor, ilm.codfil, ilm.sequen,
ilm.filusu, ilm.codusu, ilm.apeusu from tt_dat dat left join ( select lmc.codfil, lmc.sequen, lmc.filmat, lmc.codmat, lmc.codcor,
lmc.codtam,
ilm.filemi, ilm.codemi, ilm.observ, ilm.datemi,
usu.filusu, usu.codusu, usu.apeusu, ilm.codfil as filial
from tt_lmc lmc inner join tt_ilm ilm on lmc.codfil = ilm.codfil and lmc.sequen = ilm.sequen left join tt_usu usu on ilm.filemi = usu.filusu and ilm.codemi = usu.codusu where lmc.codfil = '003'
and lmc.filmat = '003'
and lmc.codmat = '114'
and lmc.codcor = 0
and lmc.codtam = 0
) ilm on dat.datope = ilm.datemi and codfil = '003'
WHERE 1 = 1
AND dat.datope >= TO_DATE('01/03/2005 00:00:00','DD/MM/YYYY HH24:MI:SS')
AND dat.datope <= TO_DATE('05/03/2005 23:59:59','DD/MM/YYYY HH24:MI:SS')
order by dat.datope

Para efetuar a descarga de combustíveis, deve-se entrar com os dados da nota da compra do produto. Após efetuar uma compra esta tela abrirá automaticamente, caso desejar efetuar o registro mais tarde, basta clicar no botão ?OK?, então a tela fechará sem efetuar nenhuma gravação.

SELECT PRO.DESMAT, DES.FILICO, DES.SEQICO, TAN.TANQUE , DES.CODTAN, DES.NUMICO, DES.QTDLTS, USU.APEUSU, TRUNC(DES.ATU_EM) AS ATU_EM, TO_NUMBER() AS PERCENT FROM TT_DES DES INNER JOIN TD_TAN TAN ON TAN.CODTAB = DES.CODTAN INNER JOIN TT_GRA GRA ON GRA.FILMAT = TAN.GRAFIL AND GRA.CODMAT = TAN.GRACOD AND GRA.CODCOR = TAN.GRACOR AND GRA.CODTAM = TAN.GRATAM INNER JOIN TT_PRO PRO ON PRO.FILMAT = GRA.FILMAT AND PRO.CODMAT = GRA.CODMAT INNER JOIN TT_USU USU ON USU.FILUSU = DES.FILUSU AND USU.CODUSU = DES.CODUSU WHERE DES.FILICO = ? AND DES.SEQICO = ?
SELECT TAN.TANQUE, PRO.DESMAT, TAN.CODTAB, TAN.FILTAN, TAN.GRAFIL, TAN.GRACOD, TAN.GRACOR, TAN.GRATAM, TAN.TANATV
FROM TD_TAN TAN INNER JOIN TT_GRA GRA ON GRA.FILMAT = TAN.GRAFIL AND GRA.CODMAT = TAN.GRACOD AND GRA.CODCOR = TAN.GRACOR AND GRA.CODTAM = TAN.GRATAM INNER JOIN TT_PRO PRO ON PRO.FILMAT = GRA.FILMAT AND PRO.CODMAT = GRA.CODMAT ORDER BY TAN.FILTAN, TAN.TANQUE
Para a impressão da emissão de LMC:
select sum(case mdt.tanque when 1 then qtdlts end) as tanque1, sum(case mdt.tanque when 2 then qtdlts end) as tanque2, sum(case mdt.tanque when 3 then qtdlts end) as tanque3, sum(case mdt.tanque when 4 then qtdlts end) as tanque4, sum(case mdt.tanque when 5 then qtdlts end) as tanque5, sum(case mdt.tanque when 6 then qtdlts end) as tanque6, sum(qtdlts) as tanques from TV_LMC_MDT MDT where MDT.DATMED=ADD_DAY(?,-1) and mdt.codfil=?
SELECT VEN.CODFIL,
VEN.FILMAT,
VEN.CODMAT,
VEN.CODCOR,
VEN.CODTAM,
VEN.DATMED AS datope,
VEN.qtdmov,
VEN.VLRMOV,
VEN.TANQUE,
VEN.CODBIC,
VEN.BOMBA,
VEN.BICO,
VEN.ENCABE,
VEN.ENCFEC,
(SELECT SUM(AFE.ENCFIM-AFE.ENCINI)
FROM TT\_AFE AFE
WHERE AFE.CODBIC=VEN.CODBIC
AND AFE.ENCINI>VEN.ENCABE
AND AFE.ENCFIM<VEN.ENCFEC
) AS QTDAFE
from tt_lmc lmc inner join tt_ilm ilm on lmc.codfil = ilm.codfil and lmc.sequen = ilm.sequen INNER JOIN tv_lmc_ven ven ON ven.codfil=lmc.codfil and ven.filmat=lmc.filmat and ven.codmat=lmc.codmat and ven.codcor=lmc.codcor and ven.codtam=lmc.codtam AND ven.datmed=ilm.datemi where ilm.codfil=? and ilm.sequen=? and ilm.DATEMI=?
Descarga dos combustíveis - TT_DES
- FILICO CHAR(3) - Filial Item de Compra
- SEQICO CHAR(10) - Seqüência Item de Compra
- NUMICO NUMBER(5) - Número Item de Compra
- CODTAN NUMBER(5) - Código do Tanque
- QTDLTS NUMBER(9,4) - Quantidade de Litros - Not Null
PK_DES primary key (FILICO,SEQICO,NUMICO,CODTAN)
FK_DES_ICO (FILICO,SEQICO,NUMICO) references TT_ICO (CODFIL,SEQUEN,NUMITE)
FK_DES_TAN (CODTAN) references TD_TAN (CODTAB)
I_FK_DES_ICO on TT_DES (FILICO,SEQICO,NUMICO)
-- Grant/Revoke object privileges
grant select on TT_DES to TOTALI_BASICO;
grant insert, update, delete on TT_DES to TOTALI_CADASTRA_COMPRAS;
grant insert, update, delete on TT_DES to TOTALI_COMBUSTIVEIS;
Medição de tanque - TT_MDT
- CODFIL CHAR(3) - Filial
- NUMTAN NUMBER(5) - Número Tanque
- DATMED DATE - Data Medição
- FILLEI CHAR(3) - Filial Usuário da Leitura
- CODLEI CHAR(3) - Código Usuário da Leitura
- DATLEI DATE - Data Leitura
- FILREG CHAR(3) - Filial Usuário do Registro
- CODREG CHAR(3) - Código Usuário do Registro
- DATREG DATE - Data Registro
- ATU_EM DATE - ÿltima Atualização
- QTDLTS NUMBER(10,4) - Quantidade Litros
PK_MDT primary key (CODFIL,NUMTAN,DATMED)
FK_MDT_USU_LEI (FILLEI,CODLEI) references TT_USU (FILUSU,CODUSU)
FK_MDT_USU_REG (FILREG,CODREG) references TT_USU (FILUSU,CODUSU)
CK_MDT_DATMED check (DATMED = TRUNC(DATMED))
I_FK_MDT_DTAN on TT_MDT (CODFIL,NUMTAN)
I_FK_MDT_USU_LEI on TT_MDT (FILLEI,CODLEI)
I_FK_MDT_USU_REG on TT_MDT (FILREG,CODREG)
-- Grant/Revoke object privileges grant select on TT_MDT to TOTALI_BASICO;
grant insert, update, delete on TT_MDT to TOTALI_COMBUSTIVEIS;
Controle de emissões do LMC - TT_LMC ? Livro_de_Movimentacao_de_Combustivel
- CODFIL CHAR(3) - Filial
- SEQUEN CHAR(10) - Sequenciador
- FILMAT CHAR(3) - Produto
- CODMAT CHAR(5)
- CODCOR NUMBER(5)
- CODTAM NUMBER(5)
- FILREG CHAR(3) - Filial Usuário Registro
- CODREG CHAR(3) - Código Usuário Registro
- DATINI DATE - Data Início
- NUMFOR NUMBER(9) - Numero Inicial
- ATU_EM DATE - Data Atualização
PK_LMC primary key (CODFIL,SEQUEN)
AK_LMC_GRA unique (CODFIL,FILMAT,CODMAT,CODCOR,CODTAM)
FK_LMC_GRA (FILMAT,CODMAT,CODCOR,CODTAM) references TT_GRA (FILMAT,CODMAT,CODCOR,CODTAM)
FK_LMC_USU (FILREG,CODREG) references TT_USU (FILUSU,CODUSU)
I_FK_LMC_GRA on TT_LMC (FILMAT,CODMAT,CODCOR,CODTAM)
I_FK_LMC_USU on TT_LMC (FILREG,CODREG)
-- Grant/Revoke object privileges
grant select on TT_LMC to TOTALI_BASICO;
grant insert, update, delete on TT_LMC to TOTALI_COMBUSTIVEIS;
Itens do LMC - TT_ILM ? Livro_de_Movimentacao_de_Combustivel
- CODFIL CHAR(3) - Filial
- SEQUEN CHAR(10) - Sequencia
- DATEMI DATE - Data Emissão
- FILEMI CHAR(3) - Usuário que emitiu
- CODEMI CHAR(3)
- OBSERV VARCHAR2(4000) - Observação
PK_ILM primary key (CODFIL,SEQUEN,DATEMI)
FK_ILM_LMC foreign key (CODFIL,SEQUEN)
FK_ILM_USU foreign key (FILEMI,CODEMI)
I_FK_ILM_ILM on TT_ILM (CODFIL,SEQUEN)
I_FK_ILM_USU on TT_ILM (FILEMI,CODEMI)
-- Grant/Revoke object privileges
grant select on TT_ILM to TOTALI_BASICO;
grant insert, update, delete on TT_ILM to TOTALI_COMBUSTIVEIS;
Fechamento de Pista - TT_FCP
- CODFIL CHAR(3) - Filial
- SEQUEN CHAR(10) - Seqüência
- FILMED CHAR(3) - Filial Medição
- TANMED NUMBER(5) - Tanque Medição
- DATMED DATE - Data Medição
- CODBIC NUMBER(5) - Código do Bico
- FILLEI CHAR(3) - Filial Usuário Leitura
- CODLEI CHAR(3) - Código Usuário Leitura
- FILREG CHAR(3) - Filial Usuário Registro
- CODREG CHAR(3) - Código Usuário Registro
- DATREG DATE - Data Registro
- DATFEC DATE - Data Fechamento
- ATU_EM DATE - Atualizado Em
- VLRENC NUMBER(10 2) - Valor Encerrante
PK_FCP primary key (CODFIL,SEQUEN)
FK_FCP_BIC (CODBIC) references TD_BIC (CODTAB)
FK_FCP_MDT (FILMED,TANMED,DATMED) references TT_MDT (CODFIL,NUMTAN,DATMED)
FK_FCP_USU_FEC (FILLEI,CODLEI) references TT_USU (FILUSU,CODUSU)
FK_FCP_USU_REG (FILREG,CODREG) references TT_USU (FILUSU,CODUSU)
I_FK_FCP_MED on TT_FCP (FILMED,TANMED,DATMED)
I_FK_FCP_USU_LEI on TT_FCP (FILLEI,CODLEI)
I_FK_FCP_USU_REG on TT_FCP (FILREG,CODREG)
-- Grant/Revoke object privileges
grant select on TT_FCP to TOTALI_BASICO;
grant insert, update, delete on TT_FCP to TOTALI_COMBUSTIVEIS;
Tabela de Aferições - TT_AFE
- CODFIL CHAR(3) - Filial
- SEQUEN CHAR(10) - Seqüência
- CODBIC NUMBER(5) - Código Bico
- FILAFE CHAR(3) - Filial Usuário Aferição
- CODAFE CHAR(3) - Código Usuário Aferição
- DATAFE DATE - Data Aferição
- FILREG CHAR(3) - Filial Usuário Registro
- CODREG CHAR(3) - Código Usuário Registro
- DATREG DATE - Data Registro
- ATU_EM DATE - Data Atualização
- ENCINI NUMBER(10 2) - Encerrante Inicial
- ENCFIM NUMBER(10 2) - Encerrante Final
PK_AFE primary key (CODFIL,SEQUEN)
FK_AFE_BIC (CODBIC) references TD_BIC (CODTAB)
FK_AFE_USU_AFE (FILAFE,CODAFE) references TT_USU (FILUSU,CODUSU)
FK_AFE_USU_REG (FILREG,CODREG) references TT_USU (FILUSU,CODUSU)
I_FK_AFE_USU_AFE on TT_AFE (FILAFE,CODAFE)
I_FK_AFE_USU_REG on TT_AFE (FILREG,CODREG)
-- Grant/Revoke object privileges
grant select on TT_AFE to TOTALI_BASICO;
grant insert, update, delete on TT_AFE to TOTALI_COMBUSTIVEIS;
Tabela de Tanque ? TD_TAN
- CODTAB NUMBER(5) - Código da tabela
- FILTAN CHAR(3) - Filial
- TANQUE NUMBER(2) - Número do tanque
- GRAFIL CHAR(3) - Filial Grade
- GRACOD CHAR(5) - Código Grade
- GRACOR NUMBER(5) - Divisão
- GRATAM NUMBER(5) - Sub-Divisão
- TANATV VARCHAR2(1) - Ativo?
PK_DTAN primary key (CODTAB)
AK_DTAN unique (FILTAN,CODTAB)
AK_DTAN_TANQUE unique (FILTAN,TANQUE)
FK_DTAN_DFIL foreign key (FILTAN)
FK_DTAN_GRA foreign key (GRAFIL,GRACOD,GRACOR,GRATAM)
CK_DTAN_TANATV check (TANATV IN ('T','F'));
I_FK_DTAN_DFIL on TD_TAN (FILTAN)
I_FK_DTAN_GRA on TD_TAN (GRAFIL,GRACOD,GRACOR,GRATAM)
-- Grant/Revoke object privileges
grant select on TD_TAN to TOTALI_BASICO;
grant insert, update, delete on TD_TAN to TOTALI_USUARIO_CONFIG;
Tabela de Bico ? TD_BIC
- CODTAB NUMBER(5) - Código da tabela
- FILBIC CHAR(3) - Filial
- CODTAN NUMBER(5) - Código do Tanque
- SEQFIL NUMBER(2) - Seq. Filial
- NUMBOM NUMBER(2) - Número da Bomba
- SEQBOM NUMBER(2) - Seq. Bomba
- QTDENC NUMBER(2) - Qtde Dígitos
- NIVPRE CHAR(1) default '3' - Nível Preço
- MAXCHE NUMBER(3), - Prazo Máx.Cheque
- BICATV VARCHAR2(1) default 'T' - Ativo?
PK_DBIC primary key (CODTAB)
AK_DBIC_BICO unique (FILBIC,SEQFIL)
AK_DBIC_BOMBA unique (FILBIC,NUMBOM,SEQBOM)
FK_DBIC_DFIL foreign key (FILBIC) references TD_FIL (CODFIL)
FK_DBIC_DTAN foreign key (FILBIC,CODTAN) references TD_TAN (FILTAN,CODTAB)
CK_DBIC_BICATV check (BICATV IN ('T', 'F'))
CK_DBIC_NIVPRE check (NIVPRE IN ('1', '2', '3'))
I_FK_DBIC_DTAN on TD_BIC (FILBIC,CODTAN)
-- Grant/Revoke object privileges
grant select on TD_BIC to TOTALI_BASICO;
grant insert, update, delete on TD_BIC to TOTALI_USUARIO_CONFIG;
