Forum
See question

Como tratar dos números de série nos documento de compra do tipo de saída?   

58 views
0
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.
O número de série [300200611] do artigo [XPTO] não se encontra disponível no armazém [A1]”

//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);

 

Faça login para poder traduzir
V10
Marked as spam
Created 4 years and 5 months ago jooarajo-2
j
jooarajo-2 Iniciante