Ir para conteúdo
  • Cadastre-se

dev botao

Csharp - tag compl, tpPer e tpHor


Ver Solução Respondido por Diego Foliene,
  • Este tópico foi criado há 270 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia.
Estou tentando utilizar as tags tpPer e tpHor no C#, porém as mesmas não estão sendo alimentadas.

Minha var do CTe, ambos alimentados (noPeriodo, semData e semHora):
image.thumb.png.0ab43e1918d8c842f933711be4f31808.png

Valores alimentados na classe Entrega:
image.png.f52eb75a57e9091e4998585dbe2ec4a5.png

Estou alimentando da seguinte forma:

DateTime dataProgramada = DateTime.Parse(CTESelecionado.DataProgramada.ToString());
switch (CTESelecionado.TipoPeriodo)
{
    case "1 - NA DATA":
        newCTE.Complemento.semData = TipoPeriodoCTe.naData;
        newCTE.Entrega.dProg = dataProgramada;
        break;
}

switch (CTESelecionado.TipoHora)
{ 
    case "1 - NO HORÁRIO":
        newCTE.Complemento.semHora = TipoHorarioCTe.noHorario;
        newCTE.Complemento.noPeriodo = TipoHorarioCTe.noHorario;
        newCTE.Entrega.hProg = CTESelecionado.HoraProgramada.ToString();
        break;
}

Forma como estou carregando o componente com o CTe:
 

Dfe.ACBrCTe.LimparLista();
Dfe.ACBrCTe.CarregarINI(newCTE.ToString());
var iniCTe = Dfe.ACBrCTe.ObterIni(0);


ArquivoINI(newCTe) em anexo.

newCTe.ini

Link para o comentário
Compartilhar em outros sites

  • Consultores

boa tarde !
 

8 horas atrás, Lindomar S. Menezes disse:

tags tpPer e tpHor

As tags estão com 0 no ini (SemData, SemHorario), experimente utilizar 1 (na data ou 3 a partir da data)
E informar as datas

TpPer = (0 tdSemData,1 tdNaData,2 tdAteData,3 tdApartirData, 4 tdNoPeriodo,N tdNaoInformado)
TpHpr = (0 thSemHorario,1 thNoHorario,2 thAteHorario, 3 thApartirHorario,4 thNoIntervalo,N thNaoInformado)

https://acbr.sourceforge.io/ACBrLib/ModeloCTeINI.html

 

 

  • Curtir 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
36 minutos atrás, Daniel InfoCotidiano disse:

boa tarde !
 

As tags estão com 0 no ini (SemData, SemHorario), experimente utilizar 1 (na data ou 3 a partir da data)
E informar as datas

TpPer = (0 tdSemData,1 tdNaData,2 tdAteData,3 tdApartirData, 4 tdNoPeriodo,N tdNaoInformado)
TpHpr = (0 thSemHorario,1 thNoHorario,2 thAteHorario, 3 thApartirHorario,4 thNoIntervalo,N thNaoInformado)

https://acbr.sourceforge.io/ACBrLib/ModeloCTeINI.html

 

 

Rotina:
Alimentação da classe;
Assinatura do XML;
Validação do XML;

newCTe = CTe.cs

Alimentado "A partir da data" e "A partir do horário", na classe está ficando da forma correta:
image.thumb.png.8160387d66793719a5d3909edaacf557.png

Primeiro limpo a lista, em seguida carrego o INI do meu CT-e(se observar os tipos estão alimentados corretamente, conforme imagem acima), após isso coloquei uma variável para retornar o INI que está no componente apenas para verificar se ambos os valores permanece iguais.

ACBrCTe.LimparLista();
ACBrCTe.CarregarINI(newCTE.ToString());
var iniCTe = Dfe.ACBrCTe.ObterIni(0);


Nessa var que armazeno o INI que está no componente, já está vindo incorretamente, deveria estar sendo alimentado com 3 em ambos os valores.
image.thumb.png.382f68c66913a376d0de687795d302d1.png

Em relação as datas, elas também estão sendo alimentadas corretamente na classe:
image.png.08244277124a8c694611dd21c9ce8756.png

 

Editado por Lindomar S. Menezes
Link para o comentário
Compartilhar em outros sites

  • Consultores

@Lindomar S. Menezes
Não é que não está carregando tem q seguir as regras do MOC CTe
Se informar 3 precisa passar as informações como define o MOC:
Screenshot_228.png

Exemplo:
Screenshot_230.png

  • Curtir 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

A única coisa que tem aqui no C# pra alimentar são esses 3 parâmetros, que eu acredito que seja respectivo a cada TAG, levando em consideração que comData, comHora e noPeriodo são Choice Groups na NT, oque significa que é de minha escolha qual devo gerar.

semData pode ser alimentado com:
        semDataDefinida = 0,
        naData = 1,
        ateData = 2,
        apartirData = 3,
        noPeriodo = 4

noPeriodo pode ser alimentado com:
        semHoraDefinida = 0,
        noHorario = 1,
        ateHorario = 2,
        apartirHorario = 3,
        noIntervaloTempo = 4

semHora pode ser alimentado com:
        semHoraDefinida = 0,
        noHorario = 1,
        ateHorario = 2,
        apartirHorario = 3,
        noIntervaloTempo = 4

Como mencionado nos comentários acima, estou alimentado semData como apartirData = 3, semHora como apartirHorario = 3, e estou alimentando os campos dProg e hProg conforme pede a NT, noPeriodo está por padrão semHoraDefinida pois não utilizo período.

Estou fazendo algo de errado nisso?

image.png

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Classe C#:                                                                                          Classe Delphi:
image.png.4ba24d63657342fcf7990d0bd83ae9d6.png                                image.png.215fbc1b0e969efed4fb50bc5c77c41a.png

Não estão faltando alguns parâmetros a serem alimentados que possam estar ocasionando isso?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde!

#TK-4272 para análise do caso e parecer.

  • Obrigado 1
Consultor SAC ACBr

Diego Folieni
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 para o comentário
Compartilhar em outros sites

  • Consultores

Apenas para dar um retorno.

Fiz alguns testes.

Constatado que de fato, precisa ser alterado nas classes do C#, no entanto, também há necessidade de alteração no componente nativo.

Por favor, me informe, se está usando Lib Single Thread ou Multi Thread, x86 ou x64, StdCall ou Cdecl.

Estou fazendo as devidas, alterações para poder testar aqui e assim que o fizer, vou lhe enviar no privado uma versão complilada da Lib para que possa testar ai.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
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 para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde!

Por favor, substitua as seguintes classes no caminho ..\ACBr\Projetos\ACBrLib\Demos\C#\CTe\Imports\Dinamico\Shared\CTe.

Use a Lib que eu lhe enviei via mensagem privada e faça um novo teste.

Se conferir no Modelo CTe.ini não consta uma seção Entrega.

Dito isso, eu marquei na CTe.cs a classe Entrega como Obsoleta.

No ComplementoCTe.cs eu adicionei as propriedades da classe Entrega, marquei algumas propriedades da própria classe como Obsoletas e adicionei as propriedades TipoData, tpPer, TipoHora, tpHor.

Defina o TipoData e o tpPer assume o mesmo valor, mesma lógica se aplica ao TipoHora e o tpHor.

Por favor, queira realizar um teste com essas alterações e reportar o resultado.

CTe.cs ComplementoCTe.cs

  • Obrigado 1
Consultor SAC ACBr

Diego Folieni
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 para o comentário
Compartilhar em outros sites

  • Membros Pro
3 minutos atrás, Diego Foliene disse:

Boa tarde!

Por favor, substitua as seguintes classes no caminho ..\ACBr\Projetos\ACBrLib\Demos\C#\CTe\Imports\Dinamico\Shared\CTe.

Use a Lib que eu lhe enviei via mensagem privada e faça um novo teste.

Se conferir no Modelo CTe.ini não consta uma seção Entrega.

Dito isso, eu marquei na CTe.cs a classe Entrega como Obsoleta.

No ComplementoCTe.cs eu adicionei as propriedades da classe Entrega, marquei algumas propriedades da própria classe como Obsoletas e adicionei as propriedades TipoData, tpPer, TipoHora, tpHor.

Defina o TipoData e o tpPer assume o mesmo valor, mesma lógica se aplica ao TipoHora e o tpHor.

Por favor, queira realizar um teste com essas alterações e reportar o resultado.

CTe.cs 8.89 kB · 0 downloads ComplementoCTe.cs 1.72 kB · 0 downloads

Beleza, vou realizar os devidos testes e lhe dou um retorno.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia!

Alterações enviadas ao SVN nas Revisions 30246 e 30247.

  • Obrigado 1
Consultor SAC ACBr

Diego Folieni
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 para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
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 para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 270 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.