Esempio n. 1
0
        public List <IdentificacaoProduto> OrigemNumero(string numero, int origemTipo, string serieNumeral, out int origemID)
        {
            if (origemTipo == 0)
            {
                Validacao.Add(Mensagem.Lote.OrigemObrigatorio);
            }

            if (string.IsNullOrEmpty(numero) && !IsEditar)
            {
                Validacao.Add(Mensagem.Lote.OrigemNumeroObrigatorio(string.Empty));
            }
            else
            {
                switch ((eDocumentoFitossanitarioTipo)origemTipo)
                {
                case eDocumentoFitossanitarioTipo.CFO:
                    EmissaoCFOBus emissaoCFOBus = new EmissaoCFOBus();
                    EmissaoCFO    CFO           = emissaoCFOBus.ObterPorNumero(Convert.ToInt64(numero), credenciado: false, serieNumero: serieNumeral);

                    if (CFO.Id > 0)
                    {
                        origemID = CFO.Id;
                        return(CFO.Produtos);
                    }

                    Validacao.Add(Mensagem.Lote.OrigemNumeroInexistente(eDocumentoFitossanitarioTipo.CFO.ToString()));
                    break;

                case eDocumentoFitossanitarioTipo.CFOC:
                    EmissaoCFOCBus emissaoCFOCBus = new EmissaoCFOCBus();
                    EmissaoCFOC    CFOC           = emissaoCFOCBus.ObterPorNumero(Convert.ToInt64(numero), credenciado: false, serieNumero: serieNumeral);

                    if (CFOC.Id > 0)
                    {
                        origemID = CFOC.Id;
                        return(CFOC.Produtos);
                    }

                    Validacao.Add(Mensagem.Lote.OrigemNumeroInexistente(eDocumentoFitossanitarioTipo.CFOC.ToString()));
                    break;

                case eDocumentoFitossanitarioTipo.PTVOutroEstado:

                    PTVOutroBus ptvOutroBus = new PTVOutroBus();
                    PTVOutro    ptvOutro    = ptvOutroBus.ObterPorNumero(Convert.ToInt64(numero), credenciado: false);

                    if (ptvOutro.Id > 0)
                    {
                        origemID = ptvOutro.Id;

                        List <IdentificacaoProduto> lista = new List <IdentificacaoProduto>();
                        foreach (var item in ptvOutro.Produtos)
                        {
                            IdentificacaoProduto itemLista = new IdentificacaoProduto();
                            itemLista.CulturaId       = item.Cultura;
                            itemLista.CulturaTexto    = item.CulturaTexto;
                            itemLista.CultivarId      = item.Cultivar;
                            itemLista.CultivarTexto   = item.CultivarTexto;
                            itemLista.UnidadeMedidaId = item.UnidadeMedida;
                            itemLista.Quantidade      = item.Quantidade;
                            lista.Add(itemLista);
                        }

                        return(lista);
                    }

                    Validacao.Add(Mensagem.Lote.OrigemNumeroInexistente("PTV de outro estado"));

                    break;

                case eDocumentoFitossanitarioTipo.PTV:

                    PTVInternoBus ptvBus = new PTVInternoBus();
                    PTV           ptv    = ptvBus.ObterPorNumero(Convert.ToInt64(numero));

                    if (ptv.Id > 0)
                    {
                        origemID = ptv.Id;

                        List <IdentificacaoProduto> lista = new List <IdentificacaoProduto>();
                        foreach (var item in ptv.Produtos)
                        {
                            IdentificacaoProduto itemLista = new IdentificacaoProduto();
                            itemLista.CulturaId       = item.Cultura;
                            itemLista.CulturaTexto    = item.CulturaTexto;
                            itemLista.CultivarId      = item.Cultivar;
                            itemLista.CultivarTexto   = item.CultivarTexto;
                            itemLista.UnidadeMedidaId = item.UnidadeMedida;
                            itemLista.Quantidade      = item.Quantidade;
                            lista.Add(itemLista);
                        }

                        return(lista);
                    }

                    Validacao.Add(Mensagem.Lote.OrigemNumeroInexistente("PTV"));
                    break;
                }
            }

            origemID = 0;
            return(null);
        }