| ♥ 0 | Olá Bom dia, Estou a tentar fazer um webapi do documento de compra e ando com um problema com os números de séries para documentos de saída por exemplo o “VNC”. Está sempre a dar o erro: “Erro ao integrar o Documento no Inventário. //inputCompra são os params todos que são enviados.
CmpBEDocumentoCompra docCompra = new CmpBEDocumentoCompra();
//campos do documento
docCompra.Nome = inputCompra.Nome;
docCompra.Tipodoc = inputCompra.TipoDoc;
docCompra.Serie = inputCompra.Serie;
docCompra.Entidade = inputCompra.Entidade;
docCompra.TipoEntidade = inputCompra.TipoEntidade;
...
_motor.PriEngine.Engine.Compras.Documentos.PreencheDadosRelacionados(docCompra);
CmpBELinhasDocumentoCompra ListLinhaCompra = docCompra.Linhas;
if(inputCompra.Linhas != null && inputCompra.Linhas.Count > 0)
{
foreach (BaseCompraLinha BCompraLinha in inputCompra.Linhas)
{
double Quantidade = BCompraLinha.Quantidade;
string Armazem = BCompraLinha.Armazem;
string Localizacao = BCompraLinha.Localizacao;
//criar linha
_motor.PriEngine.Engine.Compras.Documentos.AdicionaLinha(docCompra,BCompraLinha.Artigo,ref Quantidade,ref Armazem,ref Localizacao,BCompraLinha.PrecUnit);
CmpBELinhaDocumentoCompra CompraUltimaLinha = docCompra.Linhas.Last();
//tratar de números de serie
if (BCompraLinha.NumerosDeSerie != null && BCompraLinha.NumerosDeSerie.Count > 0)
{
foreach (BaseSerie SerieNumero in BCompraLinha.NumerosDeSerie)
{
switch (docCompra.Tipodoc)
{
case "S"://saida
StdBELista ListNumeroSerie = _motor.PriEngine.Engine.Inventario.NumerosSerie.ListaNumerosSerie(BCompraLinha.Artigo, BCompraLinha.Armazem, BCompraLinha.Localizacao);
if (ListNumeroSerie != null && ListNumeroSerie.NumLinhas() > 0)
{
ListNumeroSerie.Inicio();
for (int i = 0; i < ListNumeroSerie.NumLinhas(); i++)
{
if (ListNumeroSerie.Valor("NumeroSerie") != null && SerieNumero.NumeroSerie == ListNumeroSerie.Valor("NumeroSerie"))
{
if (ListNumeroSerie.Valor("EstadoStock") == "DISP")
{
CompraUltimaLinha.NumerosSerie.Insere(new BasBENumeroSerie
{
IdNumeroSerie = ListNumeroSerie.Valor("IdNumeroSerie").ToString(),
NumeroSerie = ListNumeroSerie.Valor("NumeroSerie")
});
}
}
else
{
ListNumeroSerie.Seguinte();
}
}
}
break;
case "E"://entrada
CompraUltimaLinha.NumerosSerie.Insere(new BasBENumeroSerie
{
IdNumeroSerie = Guid.NewGuid().ToString(),
Manual = 1,
Modulo = "C",
NumeroSerie = SerieNumero.NumeroSerie
});
break;
default:
break;
}
}
}
}
}
_motor.PriEngine.Engine.Compras.Documentos.Actualiza(docCompra);
Marked as spam |
Como tratar dos números de série nos documento de compra do tipo de saída?
58 views