| ♥ 0 | Olá Bom dia, Estou a fazer um webapi do documento de stock em que transfiro stock de um armazem para outro, no entanto os números de série não aparecem no V10 ou provávelmente nem existe transferência dos números de série. Quando vou ver a nova transferência no V10, não mostra nenhum número de série na transferência. //inputStock é os params todos que é enviado. InvBEDocumentoTransf docStock = new InvBEDocumentoTransf();
docStock.Tipodoc = inputStock.TipoDoc;
docStock.Serie = inputStock.Serie;
docStock.Entidade = inputStock.Entidade;
docStock.TipoEntidade = inputStock.TipoEntidade;
docStock.Data = DateTime.Now;
if(eStock.Linhas != null && eStock.Linhas.Count > 0)
{
InvBELinhasOrigemTransf ListOrigem = new InvBELinhasOrigemTransf();
foreach (BaseStockLinha Linha in eStock.Linhas)
{
BasBEArtigo artigo = _motor.PriEngine.Engine.Base.Artigos.Edita(Linha.Artigo);
InvBELinhaOrigemTransf Origem = new InvBELinhaOrigemTransf();
Origem.Descricao = artigo.Descricao;
Origem.Artigo = Linha.Artigo;
Origem.Armazem = Linha.Armazem;
Origem.Localizacao = Linha.Localizacao;
Origem.Quantidade = Linha.Quantidade;
Origem.INV_EstadoOrigem = "DISP";
if (artigo.TrataNumerosSerie)
{
//numero serie
if (Linha.NumerosSerie != null && Linha.NumerosSerie.Count > 0)
{
BasBENumerosSerie ListNumbSerie = new BasBENumerosSerie();
foreach (BaseSerie NumbSerie in Linha.NumerosSerie)
{
ListNumbSerie.Insere(new BasBENumeroSerie
{
Manual = 1,
Modulo = "S",
NumeroSerie = NumbSerie.NumeroSerie
});
}
Origem.NumerosSerie = ListNumbSerie;
}
//linhas
if (Linha.LinhaDestino != null && Linha.LinhaDestino.Count > 0)
{
InvBELinhasDestinoTransf ListDestino = new InvBELinhasDestinoTransf();
foreach (BaseDestino Destino in Linha.LinhaDestino)
{
InvBELinhaDestinoTransf LinhaTransferencia = new InvBELinhaDestinoTransf();
LinhaTransferencia.Armazem = Destino.Armazem;
LinhaTransferencia.Localizacao = Destino.Localizacao;
LinhaTransferencia.Quantidade = Destino.Quantidade;
LinhaTransferencia.INV_EstadoDestino = "DISP";
if (Destino.NumerosSerie != null && Destino.NumerosSerie.Count > 0)
{
BasBENumerosSerie ListNumbSerie = new BasBENumerosSerie();
foreach (BaseSerie NumbSerie in Destino.NumerosSerie)
{
StdBELista SerieId = _motor.PriEngine.Engine.Consulta($"SELECT Id FROM INV_NumerosSerie WITH (NOLOCK) WHERE Artigo LIKE '{Linha.Artigo}' AND Armazem LIKE '{Linha.Armazem}' AND Localizacao LIKE '{Linha.Localizacao}' AND NumeroSerie LIKE '{NumbSerie.NumeroSerie}'");
if (SerieId != null && SerieId.NumLinhas() > 0)
{
SerieId.Inicio();
ListNumbSerie.Insere(new BasBENumeroSerie
{
IdNumeroSerie = SerieId.Valor("Id").ToString(),
Manual = 1,
Modulo = "S",
NumeroSerie = NumbSerie.NumeroSerie
});
}
}
LinhaTransferencia.NumerosSerie = ListNumbSerie;
}
ListDestino.Insere(LinhaTransferencia);
}
Origem.LinhasDestino = ListDestino;
}
}
ListOrigem.Insere(Origem);
}
gcpBEStock.LinhasOrigem = ListOrigem;
}
_motor.PriEngine.Engine.Inventario.Transferencias.PreencheDadosRelacionados(docStock);
string errors = string.Empty;
_motor.PriEngine.Engine.Inventario.Transferencias.Actualiza(docStock,ref errors);
Marked as spam |
Como tratar dos números de serie em documento de stock?
126 views