Página 1 de 1
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 09 Mar 2012 20:18
por Ricardo Sales Ribeiro
Olá Pessoal
Boa Noite!
Gostaria de uma ajuda, uma rotina onde eu digite num parte superior da tela, dados de uma nota fiscal, como datas, fornecedor, valores, base de calculos, uma nota fiscal basica, e mas em baixo em uma outra situação a digitação dos itens, de tal forma q alí ao digitar eu pudesse tb, corrigir, excluir um item errado, alterar e só fechar no final, inclusive checando o total com o valor digitado acima, tipo total de mercadorias.
Uma outra situação, seria com um comando, alternar estar nos itens e/ou nos dados acima.
Se alguem tiver uma rotina assim, gostaria de um exemplo, eu implementaria de acordo com a minha necessidade.
Agradeço desde já a colaboração dos amigos
Gde abraço
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 11 Mar 2012 09:59
por billy1943
O que você pede é meio complicado para uma rotina abranger.
Como deve saber uma Nota fiscal simples ou eletrônica depende, previamente, de geração de muitos arquivos:
1 - Clientes ou Fornecedores
2 - Arquivo de produtos
3 - Códigos de tributação (ICMS, PIS, COFINS, IPI)
4 - Duplicatas a receber ou a pagar
5 - Dados da empresa que fatura
6 - Notas já processadas
7 - Ítens das notas processadas
Poderia acrescentar outros arquivos de menor participação.
Assim sugiro que já tenha essa pré-estrutura completa primeiro.
Caso já a tenha funcionando, fica mais fácil você trabalhar, no que você pretende que poderia se resumir à
geração de um arquivo temporário para os ítens faturados, onde você "andaria" por eles, alterando os códigos
de produtos, quantidades, preços, descontos, CFOPs, etc.
Quando o total dos ítens pelas quantidades estiverem conferindo com o total da Nota (aí reside um contrasenso pois se você já dispor dos valores significa que você já efetuou todos os cálculos, não é ?), você gravaria todos os dados
dela, com as duplicatas, etc.
Comece a montar essa tarefa a partir do ponto onde você já tem tudo funcionando e bem, pois faturamento envolve muitos
riscos (fiscais principalmente) e a emissão das Notas Fiscais é o cerne do sistema.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 11 Mar 2012 15:38
por Ricardo Sales Ribeiro
Amigo Billy.
Boa Tarde
É exatamente o q vc descreveu, já tenho muita coisa pronta, o q eu preciso é justamente essa rotina q vc descreveu dos itens, digitação dos itens da nota, em arquivo temporario para depois salva-los. Não consigo criar uma rotina assim, tenho um cliente q me reclama q, qdo estar no 10. item por exemplo, e ele erra, aí tem q sair da rotina total e recomeçar a digitação, é esse o meu dilema, por isso descrevi, por partes, a digitação dos dados da notas e a digitação dos itens.
Internamente na rotina, as consolidações, tipo total tos itens bate com total da nota, isso eu sei fazer, só ta pegando essa rotina dos itens em arquivo temporario, com a possibilidade de retornar aos dados da nota, sem sair do programa de faturamento.
Em Delphi, isso é fichinha, eu já vi, mas eu gostaria de realizar em clipper, gostaria de sua ajuda ou de alguem q me pudesse fornecer uma rotina onde eu pudesse fazer esses procedimentos, eu implementaria, só quero um começo q dê certo. Aí me serviria para digitar as vendas como tb as entradas, conferindo-as.
Agradeço desde já.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 12 Mar 2012 09:27
por Clipper
Prezado Ricardo
Uma maneira simples que uso para fazer o que você quer é assim :
1 - Inicio a nota com a digitação dos dados básicos (Cliente, Cfop, data, etc)
2 - Para essa nota nova crio um arquivo temporário que conterá os itens. Ex : IT001234.DBF
3 - Vou digitando os itens e incluindo nesse arquivo (Digitando e apresentando como um browser)
4 - A cada novo item faço o cálculo e apresento na tela
5 - Faço a finalização da nota e imprimo
6 - Após finalizar a nota transfiro os itens para o arquivo fixo de itens e excluo o arquivo temporário
Sendo assim mesmo que eu erre algum item posso facilmente corrigir apenas o item que errei, posso excluir um item e incluir novos itens se for o caso.
Posso a qualquer tempo reeditar os itens usando um browser onde tem todas a opções que preciso, incluir, alterar, excluir.
Posso parar a digitação da nota, sair e continuar a digitação depois, pois tudo estará guardado no arquivo temporário, e enquanto eu não finalizar a nota ele estará lá.
Espero que lhe sirva como exemplo.
Até logo.
Marcelo
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 12 Mar 2012 10:24
por ANDRIL
Estou tambem tentando desenvolver esta rotina. Só que aqui quero vincular a NOTA DE SAIDA com a VENDA, ou seja, o usuario faz a venda normalmente e depois na hora de emitir a nota digita o numero da venda, que já preenche os dados da nota, ficando assim menos detalhes a serem verificados.
Agora há saidas como REMESSA e etc, entao acho que neste caso, poderia tambem criar uma rotina para nao ser obrigatorio ter uma venda para que a nota seja gerada, outra questão seria as notas de entrada, que tambem tem que ser criadas.
Minha pergunta é, será que posso ter esta funcao de lancar nota AVULSA assim o usuario escolhe se é saida/entrada e preenche a nota normalmente e no final cadastro ela no controle de notas. O objetivo deste controle é geração dos arquivos da CAT85 para notas modelo 2 e CAT102 para modelo 1 e 1A, será que há algum problema? Apos estar gerando estes arquivos, vou partir para o SINTEGRA.
Abraços.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 13 Mar 2012 09:15
por Amparo
ola amigos,
Ricardo Sales
pelo que entendi seu cliente esta lançando uma nota fiscal de um fornecedor ou seja uma nota de compra que a empresa efetuou, entao pergunto aos colegas. Por que digitar nota por nota de entrada se voce pode importar a nota do arquivo XML para um arquivo temporario, depois basta o usuario alterar apenas o codigo do produto para o seu codigo interno, exemplo no arquivo XML o produto tipo CAFE PELE tem o seu codigo assim 896534 (codigo do fornecedor ) e no seu sistema o codigo é 10450910 ou apenas CAFE PELE, isso diminuiria a digitação e o erro certo? apos alterar todos os codigo o usuario pede para checar a nota digita, quando ele fizer isto o sistema procura o cnpj do fornecedor pega o codigo dele e procura no cadastro de pedido de compra os pedidos abertos deste fornecedor ai voce seleciona o pedido que esta recebendo e o sistema se encarrega de fazer a checagem dos item recebido com os itens no pedido, tipo quantidade que esta sendo recebida, se o produto foi realmente solicitado, caso esteje tudo certo fecha a nota de entrada, caso nao da alerta para efetuar a correção.
talvez o codigo do produto possa ser amarado pelo codigo NCM uma vez que este codigo é padrao e a nivel mercosul, se isso for possivel nao precisa nem de alterar codigo por codigo basta procurar no cadastro de produto o codigo NCM correspodente ao codigo do arquivo XML.
nao sei dizer mais acredito que antes de fazer todo este processo seria possivel consultar primeiro se a nota recebida (DANFE) é legal ou nao, quando for receber basta passar a nota em um leitor de codigo de barra ou digitar a chave de acesso e o sistema procura na receita se esta autorizada ou nao ai começa a fazer o processo acima.
isto é uma ideia, e acredito que alguns colegas ja começaram a colocar isso em pratica, o que os colegas acham?
abraços
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 13 Mar 2012 15:59
por Ricardo Sales Ribeiro
Olá amigos
Boa tarde
Eu a ideia valida, e vou trabalhar nisso tb, o q eu preciso agora é um exemplo bem pratico do uso do Browser, já tentei varias vezes e não consigo finalizar a rotina.
Se for possivel me fornecer uma rotina, onde tenha como Gerar, incluir, excluir, modificar registros, e gravar em arquivo temporario, eu adaptarei as minhas necessidades.
Outra ajuda é alguma coisa sobre eu lê o xml e salva-lo num dbf, isso ajudadria bastante sim, na entrada de mercadorias.
Desde já agradeço a colaboração
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 14 Mar 2012 11:34
por billy1943
O que você relata da dificuldade de "andar" entre os ítens, voltando ao primeiro, ou seja deslocando-se entre os inúmeros ítens que
possam compor uma NF, pode ser solucionado também com o uso de matrizes.
Eu citei arquivo temporário, porque é a forma que mais uso.
Aí, quando estiver tudo OK com os ítens entrados, salvamos em arquivo próprio.
Segue um fonte parcial, mas que estudando-o você o adaptará às suas necessidades.
O principal dele é funcionam as teclas (seta para cima) e (seta para baixo) no deslocamento.
Sucesso.
Código: Selecionar todos
PROCEDURE entra_prod(xmens)
local telin := savescreen()
local getlist := {}
if pcount() == 0
xmens := "S"
endif
private lin, n := 1, j
private wsomatot := xitens := 0
private acodfab[25],adescr[25],aquant[25],apreco[25],aprecotot[25]
readexit(.t.)
@11,20 say "Vendidos: unidades no valor de R$ "
do while .t.
afill(acodfab,space(13))
afill(adescr,space(30))
afill(aquant,0)
afill(apreco,0)
afill(aprecotot,0)
@12,0 clear to 23,79
@12,0 to 23,79 double
@14,1 to 14,78
@13,1 say "C¢digo pe‡a Descri‡Æo Quant. Pre‡o Total"
lin := 15
select prod
set order to 1
do while .t.
@ lin,1 get acodfab[n] pict "@!"
read
if lastkey() == 27
resposta(22,20,"Confirma sa¡da ? <SN>","SN")
if f_resp == "S"
restscreen(,,,,telin)
readexit(.f.)
exit
endif
endif
if lastkey() == 24 && seta para baixo
n ++
if n > 25
msg_tecla("Limite m ximo 25 produtos")
n --
loop
endif
if adescr[n-1] == space(30)
n --
loop
endif
lin ++
if lin > 22
scroll(15,1,22,78,1)
lin := 22
exibe_prod(0)
loop
endif
@ lin,15 get adescr[n] pict "@!"
@ lin,49 get aquant[n] pict "@E ###,###"
@ lin,57 get apreco[n] pict "@E ##,###.##"
@ lin,67 get aprecotot[n] pict "@E ###,###.##"
clear gets
loop
endif
if lastkey() == 05 && seta para cima
n --
if n < 1
msg_tecla("J chegou … linha 1")
n ++
loop
endif
lin --
if lin < 15
scroll(15,1,22,78,-1)
lin := 15
endif
exibe_prod(0)
loop
endif
acodfab[n] := alltrim(acodfab[n])
mcodlen := len(acodfab[n])
acodfab[n] := acodfab[n] + space(13 - mcodlen)
@ lin,1 get acodfab[n] pict "@! XXXXXXXXXXXXXX"
clear gets
if substr(acodfab[n],1,13) == space(13) && val(acodfab[n]) == 0
est4201a()
if codpesq <> space(13)
acodfab[n] := codpesq
@ lin,1 say space(13)
@ lin,1 get acodfab[n] pict "@! XXXXXXXXXXXXXX"
clear gets
else
@ 24,0 say "NÆo existe produto com este n£mero !"
acodfab[n] := space(13)
loop
endif
endif
set order to 1
seek acodfab[n]
if eof()
msg_tecla("Produto nÆo cadastrado - <ENTER> continua")
acodfab[n] := space(13)
loop
endif
adescr[n] := prod->nome
apreco[n] := prod->pr_vend_a
aprecotot[n] := apreco[n] * aquant[n]
exibe_prod(1)
if n < 25
n ++
lin ++
if lin > 22
scroll(15,1,22,78,1)
lin := 22
endif
endif
wsomatot := xitens := 0
for j := 1 to 25
xitens += aquant[j]
wsomatot += (aquant[j] * apreco[j])
next
@ 11,30 say xitens pict "999" color "gr+/b"
@ 11,60 say wsomatot pict "@E ###,###.##" color "gr+/b"
enddo
return(wsomatot)
enddo
PROCEDURE exibe_prod(modo)
//local getlist := {}
private getlist := {}
@ lin,15 say adescr[n] pict "@!" color "bg+/b"
@ lin,49 get aquant[n] pict "@E ###,###" valid verif_quant(aquant[n])
@ lin,57 get apreco[n] pict "@E ##,###.##" valid apreco[n] <> 0
if modo == 1
read
if updated()
aprecotot[n] := 0
endif
else
clear gets
endif
@ lin,67 get aprecotot[n] pict "@E ###,###.##" valid ver_tot(aprecotot[n])
if modo == 1
read
else
clear gets
endif
return
FUNCTION verif_quant(quant)
local getlist := {}
if quant == 0
msg_tecla("Este ¡tem nÆo ser gravado no pedido !!")
endif
return .t.
FUNCTION ver_tot(precotot)
local getlist := {}
aprecotot[n] := apreco[n] * aquant[n]
if precotot == 0
@ lin,67 get aprecotot[n] pict "@E ###,###.##"
clear gets
return .t.
else
apreco[n] := precotot / aquant[n]
aprecotot[n] := apreco[n] * aquant[n]
@ lin,67 get aprecotot[n] pict "@E ###,###.##"
clear gets
endif
return .t.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 19 Mar 2012 15:31
por rochinha
Amiguinhos,
Ricardo Sales Ribeiro
Em 15 de Fevereiro de 2007 voce nos questionou sobre uma duvida de igual teor. Estou certo ou não?
Tela de vendas com bowse e itens da venda tb aparecendo
Sua solução está ou sempre esteve lá, enterrada, como numa verdadeira tumba de uma piramide frequentada pelos faraós(forenses em Rochinês) deste lugar.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 21 Mar 2012 10:42
por Ricardo Sales Ribeiro
Olá Rochinha
Bom Dia!
Confirmo sim, realmente fiz esse questionamento, perdi o fio da meada na epoca e não tinha conseguido, e não lembrava q já tinha questionado ao forum, obrigado pela lembrança, vou juntar agora os exemplos e montar sim o q estou precisando.
Obrigado
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 21 Mar 2012 23:25
por rochinha
Amiguinho,
Sabe cumé né, Chuck Norris Nunca Esquece!
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 14 Mai 2012 19:47
por Stanis Luksys
Opa,
Da forma como foi mencionado, vai precisar de duas funcoes com getlist local.
Um getlist para o cabecalho e outro para os itens. Você pode alternar entre eles com a tecla [tab] por exemplo. Fica legal assim.
Abraços.
Rotina para Digitação de Uma nota Fiscal com itens
Enviado: 16 Mai 2012 14:33
por Ricardo Sales Ribeiro
Olá amigo tudo bem.
Me agradou sim essa sua ideia, gostaria de, se possivel um pequena rotina de como funciona essa biblioteca ou função, eu sou sincero nunca trabalhei com essa ideia.
Se possivel, me manda uma rotina que eu adapto ela as minhas necessidades, por favor.
Desde já agradeço a sua atenção.
Atenciosamente