| ♥ 0 | Como é que obtenho através dos motores de integração o código AT nas guia de transporte na V10. Consigo gravar com sucesso a guia de remessa/transporte no primavera mas verifico que nunca me obtém o código da AT, através do motor, existe alguma maneira de forçar isso? Ou qual o procedimento correto para obtenção do código. Obrigado
Pegando no vosso exemplo, grava o documento correctamente mas não obtém o código AT. private void CmdSave_Click(object sender, EventArgs e)
{
VndBEDocumentoVenda invoice = new VndBEDocumentoVenda();
string strAvisos = string.Empty;
invoice.Tipodoc = "GR";
invoice.Entidade = txtEntidade.Text;
invoice.TipoEntidade = "C";
invoice.Serie = "2020";
try
{
PriEngine.Engine.Vendas.Documentos.PreencheDadosRelacionados(invoice);
if (listView1.Items.Count > 0)
{
foreach (ListViewItem item in listView1.Items)
{
VndBELinhasDocumentoVenda linhas = new VndBELinhasDocumentoVenda();
double qtd = Convert.ToDouble(item.SubItems[1].Text);
PriEngine.Engine.Vendas.Documentos.AdicionaLinha(invoice, item.SubItems[0].Text, ref qtd);
}
if (txtobs.Text.Length > 0)
{
PriEngine.Engine.Vendas.Documentos.AdicionaLinhaEspecial(invoice, vdTipoLinhaEspecial.vdLinha_Comentario, 0, txtobs.Text);
}
}
else
{
MessageBox.Show("There are no items.");
}
PriEngine.Engine.Vendas.Documentos.CalculaValoresTotais(invoice);
PriEngine.Engine.Vendas.Documentos.Actualiza(invoice, ref strAvisos);
}
catch (Exception ex)
{
MessageBox.Show("Unable to save document. \n" + ex.Message);
}
}
Marcado como spam |
Comentários Conseguiste resolver? Procedimento:
1) Criar guia (obj doc venda) 2) criar um objecto para comunicação no final da criação da guia. TTEBEATTransacao objTTEAT = new ITTEBEATTransacao(); objTTEAT.(...)
EstadoActual(...).TTEATEstadoTransaccao.PorEnviar);
TipoDocumentoLog((...)TTEATTipoDocumentoLog.Transporte); (preencher o objecto com esses dois campos específicos)
MotorLP.TransaccoesElectronicas.ATTransacoes.Actualiza(objTTEAT);
MotorLP.TransaccoesElectronicas.ATTransacoes.EnviaTransacaoID(objTTEAT.get_Id()); (A tabela no ERP onde é inserido o registo transAT ) Boa noite.
Ando às voltas com isto.
Não consigo que fale constante.
Alguns documentos aparecem na tabela, outros não.
É V9 ainda.
If MotorErp.Comercial.Series.DaValorAtributo("V", DocumentoVenda.Tipodoc, DocumentoVenda.Serie, "TipoComunicacao").ToString = "2" Then
MotorErp.Comercial.Vendas.ActualizaEstadoEnvioAT(DocumentoVenda.ID, EnumATTrataTrans.Enviado)
MotorErp.Comercial.Internos.ATComunicaDocumentoId(DocumentoVenda.ID, "V", StrErrosAvisosAT)
If Not String.IsNullOrEmpty(StrErrosAvisosAT) Then
StrErrosAvisosAT = String.Format("Comunicação à AT com o(s) seguinte(s) erros(s)/avisos(s):{0}{1}.{0}Obtenha mais opções/informações através do ERP.", vbNewLine, StrErrosAvisosAT)
End If
End If
DocumentoVenda.ATDocCodeID sempre vazia. |
| Resposta privada Boas.
Vê lá se entendes só com este troço de código: 'o documento/série estão configurados para comunicar transporte à AT???
If GSV_Motor.Base.Series.DaValorAtributo("V", ObjDocVenda.Tipodoc, ObjDocVenda.Serie, "TipoComunicacao").ToString = "2" Then
GSV_Motor.Vendas.Documentos.ActualizaEstadoEnvioAT(ObjDocVenda.ID, BasBE100.BasBETiposGcp.EnumATTrataTrans.Enviado)
GSV_Motor.Internos.Documentos.ATComunicaDocumentoId(ObjDocVenda.ID, "V", StrErrosAvisosAT)
If Not String.IsNullOrEmpty(StrErrosAvisosAT) Then
StrErrosAvisosAT = String.Format("Comunicação à AT com o(s) seguinte(s) erros(s)/avisos(s):{0}{1}.{0}Obtenha mais opções/informações através do ERP.", vbNewLine, StrErrosAvisos)
End If
End If
Marcado como spam | |
| Resposta privada Bom dia Na documentação da API disponvél no developer network na secção de documentação da API do ERP V10 se fizer uma pesquisa por "código" vai encontrar no BEDocumentoVenda a propriedade "ATDocCodeID". https://v10api.primaverabss.com/html/api/marketing_vendas/VndBE100.VndBEDocumentoVenda.html Marcado como spam Comentários Bom dia Sr. Sereno O meu problema não é aceder ao campo do código da AT "ATDocCodeID", o meu problema é que esse campo "ATDocCodeID" nunca obtém o código da AT. Depois da gravação está sempre vazio! No código exemplo de gravação da Guia de Remessa, será que falta lá alguma instrução para forçar o pedido do código ao webservice da AT. Após a gravação do documento através do motor de integração, se for a Gestão Comercial na Aplicação Desktop do Primavera e clicarem gravar nesta guia ele obtém logo o código, só pelo motor é que não consigo. Obrigado |