ECF - incrementando tabela IBPT
14/01/2014
0
Pessoal boa tarde , preciso incrementar os vlr dos impostos no cupom fiscal alguem pode me dar uma ideia para iniciar uso delphi 7 e firebird 2.5
Rodrigo Bernal
Curtir tópico
+ 0
Responder
Posts
07/02/2014
Leonardo Rehder
Pessoal boa tarde , preciso incrementar os vlr dos impostos no cupom fiscal alguem pode me dar uma ideia para iniciar uso delphi 7 e firebird 2.5
Boa tarde, RCBernal. Tudo bem?
Eu fiz desta forma, quem sabe te ajuda. Só que trabalho com postgres.
Baixe os arquivo no site do IBPT, segue o link abaixo.
http://deolhonoimposto.ibpt.org.br/
Cria uma tabela no banco de dados com a seguinte estrutura.
-- Table: tri_ncmsh_fonte_ibpt
-- DROP TABLE tri_ncmsh_fonte_ibpt;
CREATE TABLE tri_ncmsh_fonte_ibpt
(
cncmsh character varying(10) NOT NULL, -- Indica se o código da tabela da nomenclatura comum do mercosul.
codexp integer NOT NULL, -- Indica se o código do exemplo da nomenclatura comum do mercosul.
codtab integer NOT NULL, -- Indica se o código da tabela da nomenclatura comum do mercosul.
dncmsh character varying(1000) NOT NULL, -- Indica se o descrição da nomenclatura comum do mercosul.
alinac numeric(6,2) NOT NULL DEFAULT 0.00, -- Indica se a alíquota de mercadorias nacionais.
aliimp numeric(6,2) NOT NULL DEFAULT 0.00, -- Indica se a alíquota de mercadorias importadas.
CONSTRAINT tri_ncmsh_fonte_ibpt_pkey PRIMARY KEY (cncmsh, codexp, codtab)
)
WITH (
OIDS=FALSE,
autovacuum_enabled=true
);
ALTER TABLE tri_ncmsh_fonte_ibpt OWNER TO postgres;
GRANT ALL ON TABLE tri_ncmsh_fonte_ibpt TO public;
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.cncmsh IS 'Indica se o código da tabela da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.codexp IS 'Indica se o código do exemplo da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.codtab IS 'Indica se o código da tabela da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.dncmsh IS 'Indica se o descrição da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.alinac IS 'Indica se a alíquota de mercadorias nacionais.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.aliimp IS 'Indica se a alíquota de mercadorias importadas.';
Faz um rotina que o usuário posso importar esta tabela de tempo em tempo caso seja necessário.
No seu cadastro de produtos.
Cria um campo que o usuário possa informar ou pesquisar na tabela descrita acima o código do ncm/sh.
Você também precisara de um campo para o usuário informar se a mercadoria e nacional ou importada que a alíquota de carga tributaria tem diferença entre a origem da mercadoria.
Feito isso. Após o usuário ter informado o ncm/sh e a origem uma função passando este parâmetros que retorna a alíquota da carga tributaria.
No DDChannel9 da Daruma tem um vídeo muito bom ensinando como calcular o imposta na hora da impressão do cupom fiscal. Segue o link abaixo.
http://www.youtube.com/watch?v=YtwmET8V_Lc
Bom acredito que seja isso. Qualquer dúvida e só postar, que tentamos ajudar da melhor forma possível! rs
Espero que te ajude, forte abraço ate mais ver!
Boa tarde, RCBernal. Tudo bem?
Eu fiz desta forma, quem sabe te ajuda. Só que trabalho com postgres.
Baixe os arquivo no site do IBPT, segue o link abaixo.
http://deolhonoimposto.ibpt.org.br/
Cria uma tabela no banco de dados com a seguinte estrutura.
-- Table: tri_ncmsh_fonte_ibpt
-- DROP TABLE tri_ncmsh_fonte_ibpt;
CREATE TABLE tri_ncmsh_fonte_ibpt
(
cncmsh character varying(10) NOT NULL, -- Indica se o código da tabela da nomenclatura comum do mercosul.
codexp integer NOT NULL, -- Indica se o código do exemplo da nomenclatura comum do mercosul.
codtab integer NOT NULL, -- Indica se o código da tabela da nomenclatura comum do mercosul.
dncmsh character varying(1000) NOT NULL, -- Indica se o descrição da nomenclatura comum do mercosul.
alinac numeric(6,2) NOT NULL DEFAULT 0.00, -- Indica se a alíquota de mercadorias nacionais.
aliimp numeric(6,2) NOT NULL DEFAULT 0.00, -- Indica se a alíquota de mercadorias importadas.
CONSTRAINT tri_ncmsh_fonte_ibpt_pkey PRIMARY KEY (cncmsh, codexp, codtab)
)
WITH (
OIDS=FALSE,
autovacuum_enabled=true
);
ALTER TABLE tri_ncmsh_fonte_ibpt OWNER TO postgres;
GRANT ALL ON TABLE tri_ncmsh_fonte_ibpt TO public;
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.cncmsh IS 'Indica se o código da tabela da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.codexp IS 'Indica se o código do exemplo da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.codtab IS 'Indica se o código da tabela da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.dncmsh IS 'Indica se o descrição da nomenclatura comum do mercosul.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.alinac IS 'Indica se a alíquota de mercadorias nacionais.';
COMMENT ON COLUMN tri_ncmsh_fonte_ibpt.aliimp IS 'Indica se a alíquota de mercadorias importadas.';
Faz um rotina que o usuário posso importar esta tabela de tempo em tempo caso seja necessário.
No seu cadastro de produtos.
Cria um campo que o usuário possa informar ou pesquisar na tabela descrita acima o código do ncm/sh.
Você também precisara de um campo para o usuário informar se a mercadoria e nacional ou importada que a alíquota de carga tributaria tem diferença entre a origem da mercadoria.
Feito isso. Após o usuário ter informado o ncm/sh e a origem uma função passando este parâmetros que retorna a alíquota da carga tributaria.
No DDChannel9 da Daruma tem um vídeo muito bom ensinando como calcular o imposta na hora da impressão do cupom fiscal. Segue o link abaixo.
http://www.youtube.com/watch?v=YtwmET8V_Lc
Bom acredito que seja isso. Qualquer dúvida e só postar, que tentamos ajudar da melhor forma possível! rs
Espero que te ajude, forte abraço ate mais ver!
Responder
24/03/2014
Daniel Qualhato
Bom já eu fiz assim:
o primeiro passo você precisa acrescentar na sua tabela de cadastro de produtos o campo cst para saber qual o destino da mercadoria, se é nacional ou importado.
se você for observar na tabela IBPT a dois campos de alíquota: AliqNasc e AliqImp. E é justamente através do campo cst que você irá identificar se a mercadoria é nacional ou importada. veja meu exemplo:
Observe que eu acrescentei um campo na minha tabela de itensSaidaProdutos(Tabela filha) o campo VALORIMPOSTO este campos vai pegar o valor total do item que é (Quantidade * valor do item) e multiplicar pela alíquota do produto referente a tabela IBPT.
Depois é só calcular o campo VALORIMPOSTO. Veja meu exemplo:
Nu tem muito segredo na implantação não. o difícil mesmo é entender a logica de calculo desse imposto.
o primeiro passo você precisa acrescentar na sua tabela de cadastro de produtos o campo cst para saber qual o destino da mercadoria, se é nacional ou importado.
se você for observar na tabela IBPT a dois campos de alíquota: AliqNasc e AliqImp. E é justamente através do campo cst que você irá identificar se a mercadoria é nacional ou importada. veja meu exemplo:
procedure TfrmSaidas.tbl_itensSaidaBeforePost(DataSet: TDataSet); var Alq:Currency; begin if((tbl_localizaProdEST_CST.AsInteger <> 0)and (tbl_localizaProdEST_CST.AsInteger <> 3)and (tbl_localizaProdEST_CST.AsInteger <> 4)and (tbl_localizaProdEST_CST.AsInteger <> 5))then Alq := tbl_localizaProdEST_ALIQIMP.AsCurrency else Alq := tbl_localizaProdEST_ALIQNASC.AsCurrency; tbl_itensSaidaISAI_VALORIMPOSTO.AsCurrency := (tbl_itensSaidaISAI_TOTAL.AsCurrency * Alq); end;
Observe que eu acrescentei um campo na minha tabela de itensSaidaProdutos(Tabela filha) o campo VALORIMPOSTO este campos vai pegar o valor total do item que é (Quantidade * valor do item) e multiplicar pela alíquota do produto referente a tabela IBPT.
Depois é só calcular o campo VALORIMPOSTO. Veja meu exemplo:
PercentualImposto := frmSaidas.TotalImposto / valorTotal; frmSaidas.TotalImposto := frmSaidas.TotalImposto / 100; if(frmSaidas.tbl_saidasSAI_CLIENTE_ID.AsInteger > 0)then begin NomeCliente := ColocaTextoEsq('Cliente: ' + tbl_listaClientesCLI_NOME.AsString, 48, ' '); if(tbl_listaClientesCLI_CPF.AsString <> '')then CpfCnpj := ColocaTextoEsq('CPF: ' + tbl_listaClientesCLI_CPF.AsString, 48, ' ') else CpfCnpj := ColocaTextoEsq('CNPJ: ' + tbl_listaClientesCLI_CNPJ.AsString, 48, ' '); MsgTributo := ColocaTextoEsq('Val Aprox dos Tributos R$ ' + FormatFloat('0.00', frmSaidas.TotalImposto) + ' (' + FormatFloat('0.00', PercentualImposto) + '%)', 48, ' '); MsgPromocao := ColocaTextoEsq('Agradecemos a Preferência. Volte Sempre!', 48, ' '); Msg := #27 + #69 + MsgTributo + #27 + #70 + ColocaTextoEsq('-',48,'-') + NomeCliente + CpfCnpj + ColocaTextoEsq('-',48,'-') + MsgPromocao; end else begin MsgTributo := ColocaTextoEsq('Val Aprox dos Tributos R$ ' + FormatFloat('0.00', frmSaidas.TotalImposto) + ' (' + FormatFloat('0.00', PercentualImposto) + '%)', 48, ' '); MsgPromocao := ColocaTextoEsq('Agradecemos a Preferência. Volte Sempre!', 48, ' '); Msg := #27 + #69 + MsgTributo + #27 + #70 + ColocaTextoEsq(' ',48,' ') + MsgPromocao; end;
Nu tem muito segredo na implantação não. o difícil mesmo é entender a logica de calculo desse imposto.
Responder
Clique aqui para fazer login e interagir na Comunidade :)