Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

tags obrigatórias na contingência SVC


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

Recommended Posts

  • Membros Pro

bons dias,

além de tipo de emissão = teSVCAN outras duas tags foram ditas obrigatórias:

Ide.dhCont e Ide.xJust

para o tipo de emissão usamos ACBrNFe1.Configuracoes.Geral.FormaEmissao

e para essas outras duas ? qual a ascendência ?

obrigado

Otavio Benini

Link to comment
Share on other sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

  • Like 1
Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

  • Moderadores
Agora, Otavio Benini disse:

continuo aguardando resposta ao meu post de ontem

Otavio Benini

Boa tarde, Otavio Benini.

Você viu a resposta do José M. S. Junior?

Equipe ACBr

Felipe Eduardo Resende Mesquita

Ajude o Projeto ACBr crescer - Assine o SAC

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

 

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde Otavio,

Citar

e para essas outras duas ? qual a ascendência ?

Não entendi a sua pergunta.

Lembre-se, uma coisa é a configuração do componente e outra é a alimentação do mesmo com os dados da venda.

Os dois campos que você fez referencia devem ser preenchidos na rotina que alimenta o componente com os dados da venda se tratando de contingência.

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

obrigado por me atender, Italo

em minha rotina eu gero o xml e só altero ambiente ou tipo de emissão no final

então, quando estou gerando o xml informo as propriedades "defaults" como no prog exemplo:

        with ACBrNFe1.NotasFiscais.Add.NFe do begin

          . . .

          Ide.tpEmis := teNormal;

          Ide.tpAmb := taProducao

          . . .

        end;

ao final tenho opção para alterar e se houver alteração faço, como no prog exemplo:

ACBrNFe1.Configuracoes.Geral.FormaEmissao   := StrToTpEmis(Ok,IntToStr(selFormaEmissao.ItemIndex+1));

ACBrNFe1.Configuracoes.WebServices.Ambiente := StrToTpAmb(Ok,IntToStr(selAmbiente.ItemIndex+1));

a forma de referenciar cada propriedade é diferente pq no primeiro caso usa-se .Add.NFe  numa "linguiça" e no segundo caso a referencia é direta e completa para a propriedade

se tenho referencias diretas para as propriedades posso "quebrar" em diversas partes a rotina

mas nos casos de Ide.dhCont e Ide.xJust, que não são referenciados na rotina com .Add.NFe, não encontro a referencia direta como nos casos que mencionei acima

teoricamente deveria encontra-las em ACBrNFe1.Configuracoes.Geral juntamente com FormaEmissao

espero ter sido mais esclarecedor em minha pergunta

obrigado

Otavio Benini

Link to comment
Share on other sites

  • Consultores

Otavio,

Os campos dhCont e xJust se refere ao XML e não a configuração do componente.

Se o XML foi gerado para o envio Normal e por algum motivo devemos enviar em contingência SVC, esses dois campos devem ser informado e o XML gerado novamente.

Visto que o tipo de emissão não é mais normal e consequentemente a chave da nota muda.

Volto a frisar: Configuração do componente é uma coisa, alimentar com os dados da venda é outra.

Veja esse fragmento de código da minha rotina que alimenta o componente com os dados da venda:

   case rgTipoEmissao.ItemIndex of
    0: Ide.tpEmis := teNormal;
    1: if ACBrNFe1.Configuracoes.WebServices.UFCodigo in [13, 15, 26, 21, 22, 23, 24, 29, 32, 41, 50, 51, 52]
         then Ide.tpEmis := teSVCRS
         else Ide.tpEmis := teSVCAN;
   end;

   if rgTipoEmissao.ItemIndex = 1 then 
   begin
     Ide.dhCont := StrToDateTime(edtDataCont.Text+' '+edtHoraCont.Text+':00');
     Ide.xJust  := edtJustificativa.Text;
   end;

 

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Italo,

tá claro prá mim como fazer seguindo o modelo "linguiça", onde tenho uma sequencia "with componente.add.nfe do" e com if's vou montando cada trecho das informações

as questão é: eu quero poder montar determinados grupos de informações fora da "linguinça", com procedures ou functions, e comecei pela contingência

de cara faltaram então o "endereço completo" dessas propriedades para que possa fazer implementar numa procedure

por endereço completo entenda a referencia direta da propriedade dentro do componente, como em 

  • ACBrNFe1.Configuracoes.WebServices.UFCodigo ou
  • ACBrNFe1.Configuracoes.Geral.FormaEmissao

são propriedades dentro do componente, sendo a primeira uma informação da nota fiscal que se pretende e a outra uma informação relativa à forma de apresentação do xml ao fisco

ambas as propriedades determinam e/ou vinculam outras propriedades, como a UF definirá o SVC e a forma de emissão determinará a necessidade de informações adicionais e obrigatórias como dhCont e xJust, além de alteração na formação da chave, etc.

penso que, talvez, nestes casos, faltou exibir essas propriedades no componente de forma a poder referencia-los diretamente

será que desta vez me fiz entender ?

obrigado

Otavio Benini

Link to comment
Share on other sites

  • Moderadores
51 minutos atrás, Otavio Benini disse:

penso que, talvez, nestes casos, faltou exibir essas propriedades no componente de forma a poder referencia-los diretamente

Se entendi bem, você quer algo como:

ACBrNFe1.NotasFiscais.Items[x].NFe.Ide.xJust

ACBrNFe1.NotasFiscais.Items[x].NFe.Ide.dhCont

Cada método Add cria um item numa lista e retorna o objeto, você pode armazenar numa variável sem precisar de with no código.

O demo do ACBrNFe já tem um exemplo do uso sem with:

Var NotaF: NotaFiscal;
...
begin
  NotaF := ACBrNFe1.NotasFiscais.Add;
  NotaF.NFe.Ide.cNF       := StrToInt(NumNFe); //Caso não seja preenchido será gerado um número aleatório pelo componente
  NotaF.NFe.Ide.natOp     := 'VENDA PRODUCAO DO ESTAB.';
  NotaF.NFe.Ide.indPag    := ipVista;
  NotaF.NFe.Ide.modelo    := 55;

Também poderia ser:

var
  NFe: TNFe;
begin
  NFe := ACBrNFe1.NotasFiscais.Add.NFe;
  NFe.Ide.cNF := StrToInt(NumNFe);
...

Tendo o objeto criado você pode facilmente passar ele pra um outro método para preencher os dados.

var
  NFe: TNFe;
  Produto: TDetCollectionItem;
begin
  NFe := ACBrNFe1.NotasFiscais.Add.NFe;
  NFe.Ide.cNF := StrToInt(NumNFe);
...
  Produto := NFe.Det.Add;
  CarregarDadosProduto(Produto);
...

procedure CarregarDadosProduto(AProduto: TDetCollectionItem);
begin
  AProduto.Prod.nItem    := 1;
  AProduto.Prod.cProd    := '123456';
  AProduto.Prod.cEAN     := '7896523206646';
...

 

  • Like 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

  • Membros Pro

obrigado por responder, BigWings

essas 2 tags foram um exemplo, dado que topei com elas na primeira investida

então, para os itens da nota fiscal tem-se TDetCollectionItem

mas e para grupos como:

  • Emit (emitente)
  • Dest (destinatário)
  • Retirada
  • Entrega
  • Impostos.ICMS
  • Impostos.IPI
  • Impostos.PIS
  • Impostos.COFINS
  • Transporte

existe Collection para cada um desses ?

a idéia e ter a procedure de geração do xml limpa e curta, com chamadas diretas ou alguns if's, especialmente para impostos

com impostos a clareza de definição dos campos e códigos é importante na manutenção do programa

é essa a idéia e agradeço por suas informações

obrigado

Otavio Benini

Link to comment
Share on other sites

  • Moderadores
11 horas atrás, Otavio Benini disse:

existe Collection para cada um desses ?

Não existe mais de um emitente ou destinatário numa nota, então não faria sentido usar um Collection.

Como o próprio nome diz, é uma coleção, que comporta N objetos.

Para emitente ou destinatário você tem uma classe, TEmit e TDest respectivamente.

É bem simples descobrir as classes pela IDE, com Ctrl+Clique no código ou apenas movendo o mouse sobre ele.

image.png

  • Like 3
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

  • Este tópico foi criado há 1112 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.