Ir para conteúdo
  • Cadastre-se

dev botao

Análise de Unit para possível componente.


  • Este tópico foi criado há 4997 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Algum tempo atraz, postei no forumweb uma dica/sugestao sobre uma unit que encontrei na net de um colega (logo postarei seu nome, agora nao me lembro), que faz os calculos de notas fiscais.

Bom, nesse post sugeria que fosse analizada para que possivelmente entrasse como uma ferramenta a mais no Acbr. Como nao houve muito retorno à respeito resolvi postar aqui novamente para que se houver interesse seja analizada e posteriormente discutida sua implementação como componente no Acbr.

Fiz algumas modificaçoes para que pudesse ser implementada em um projeto que temos

UntCalculoNotaFiscal.rar

Link para o comentário
Compartilhar em outros sites

  • Consultores

Olá,

você pode detalhar melhor que tipos de cálculos essa unit faz? Como você imagina que poderia se tornar um componente? Métodos, eventos, nome... etc? Quaisquer informações iniciais seriam de ajuda para direcionar os interessados a apoiá-lo. ;)

Se puder postar o link do seu post do fórum antigo também...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Bom EMBarbosa, em primeiro lugar obrigado por responder.

Atualmente eu trabalho com essa unit da seguinte forma:

NF := TNotaFiscal.Create(Self);

try

ItemNF := TItemNF.Create(NF);

with NF do

begin

Inicializar;

ValoresNF.VL_FRETE := DMPRINCIPAL.qrvendas_previavl_valorfrete.Value;

ValoresNF.VL_SEGURO := DMPRINCIPAL.qrvendas_previavl_valorseguro.Value;

ValoresNF.VL_DESCONTO := DMPRINCIPAL.qrvendas_previavl_valordesconto.Value;

EmitenteNF.UF := DMPRINCIPAL.qrdados_empresauf.Value;

EmitenteNF.Simples := DMPRINCIPAL.qrdados_empresasimples.Value;

DestinatarioNF.UF := DMPRINCIPAL.qrvendas_previan_ufcliente.Value;

if DMPRINCIPAL.qrvendas_previan_clconsumidorfinal.Value = 'SIM' then

DestinatarioNF.ConsFinal := True

else

DestinatarioNF.ConsFinal := False;

Observacoes.Add('');

end;

//itens da nota fiscal

with DMPRINCIPAL.qrvendas_previa_itens do

begin

First;

Aux:= 0;

while not DMPRINCIPAL.qrvendas_previa_itens.Eof do

begin

Inc(Aux, 1);

ItemNF.Inicializar;

ItemNF.Item := Aux;

ItemNF.CodProduto := DMPRINCIPAL.qrvendas_previa_itenscod_barras_produto.Value;

ItemNF.DescProduto := DMPRINCIPAL.qrvendas_previa_itensdescricao.Value;

ItemNF.ClassFiscal := DMPRINCIPAL.qrvendas_previa_itensn_ncm.Value;

ItemNF.AliqMVA := DMPRINCIPAL.qrvendas_previa_itensn_mva.Value;

ItemNF.AliqIPI := DMPRINCIPAL.qrvendas_previa_itensn_aliipi.Value;

ItemNF.Quantidade := DMPRINCIPAL.qrvendas_previa_itensquantidade.Value;

ItemNF.ValorUnitario := DMPRINCIPAL.qrvendas_previa_itensvl_unitario.Value;

ItemNF.ValorDesconto := DMPRINCIPAL.qrvendas_previa_itensvl_desconto.Value;

ItemNF.Peso := 0;

if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '00' then

ItemNF.ClassTributaria:= cst00

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '10' then

ItemNF.ClassTributaria:= cst10

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '20' then

ItemNF.ClassTributaria:= cst20

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '30' then

ItemNF.ClassTributaria:= cst30

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '40' then

ItemNF.ClassTributaria:= cst40

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '50' then

ItemNF.ClassTributaria:= cst50

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '60' then

ItemNF.ClassTributaria:= cst60

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '70' then

ItemNF.ClassTributaria:= cst70

else if DMPRINCIPAL.qrvendas_previa_itensn_cst.Value = '90' then

ItemNF.ClassTributaria:= cst90;

ItemNF.ReducaoICMS := 100 - DMPRINCIPAL.qrvendas_previa_itensn_redbascalc.Value;

NF.ItensNF.Add(NF, ItemNF);

DMPRINCIPAL.qrvendas_previa_itens.Next;

end;

end;

//salvamos dados na nota fiscal

with DMPRINCIPAL.qrvendas_previa do

begin

if NFEdit = False then

Edit;

FieldByName('vl_totalprodutos').AsCurrency := NF.ValoresNF.VL_TOTAL_PROD;

FieldByName('vl_totalnota').AsCurrency := NF.ValoresNF.VL_TOTAL_NF;

FieldByName('vl_basecalicms').AsCurrency := NF.ValoresNF.BS_ICMS;

FieldByName('vl_valoricms').AsCurrency := NF.ValoresNF.VL_ICMS;

FieldByName('vl_basecalsubs').AsCurrency := NF.ValoresNF.BS_ICMS_ST;

FieldByName('vl_valoricmssubs').AsCurrency := NF.ValoresNF.VL_ICMS_ST;

if NFEdit = False then

Post;

end;

finally

FreeAndNil(NF);

end;

que em resumo nada mais é que uma unit que reune e preve os calculos que temos que realizar no preenchimento de uma

nf. Oque acontece e que eu adaptei somente ao ramo de atividade que meu sistema roda, faltando implementar calculos para empresas que, por exemplo, nao sejam do simples nacional. Alem disso, acredito que as adaptaçoes que fiz para a nova exigencia (NFe V2) nao estejam 100%.

Sobre questoes de nome e demais aspectos para integrar o projeto ACBR, acredito que, se aprovada a ideia, deveria ser colocada em discursao junto aos usuarios do projeto e principalmente seus coordenadores.

http://www.activedelphi.com.br/forum/viewtopic.php?p=294703

Esse e o link do forum onde "peguei" a ideia e unit original, e gostaria sinceramente que o merito do assunto lhe fosse dado.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Fundadores

Junior,

Atualmente no ACBr todas as rotinas são "componentes"... pois facilita o uso... seria necessário modificar isso...

Quem é o autor original ?

Também Seria necessário um Demo que atendesse duas necessidades:

- Teste por completo e de preferencia de forma automatizada todas as propriedades e métodos do componente,

- Demonstre/Ensine os usuários como usar o componente

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4997 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.