Exemple #1
0
        private List <Pollux.Entities.ProdutoSolicitacaoItem> RetornaListaItens(Guid solicitacaoId)
        {
            List <Pollux.Entities.ProdutoSolicitacaoItem> lstRetorno = new List <Pollux.Entities.ProdutoSolicitacaoItem>();

            List <ProdutosdaSolicitacao> lstProdutoSolicitacao = new Servicos.ProdutosdaSolicitacaoService(this.Organizacao, this.IsOffline).ListarPorSolicitacao(solicitacaoId);

            foreach (var itemProdSol in lstProdutoSolicitacao)
            {
                Pollux.Entities.ProdutoSolicitacaoItem objItemPollux = new Pollux.Entities.ProdutoSolicitacaoItem();
                if (itemProdSol.Produto != null)
                {
                    Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(itemProdSol.Produto.Id);
                    if (produto != null)
                    {
                        objItemPollux.CodigoProduto = produto.Codigo;
                    }
                    else
                    {
                        throw new ArgumentException("(CRM) Produto do Item não preenchido");
                    }
                }
                objItemPollux.Situacao = itemProdSol.State.Value;

                objItemPollux.Proprietario     = "259A8E4F-15E9-E311-9420-00155D013D39";
                objItemPollux.TipoProprietario = "systemuser";

                if (itemProdSol.BeneficioPrograma != null)
                {
                    objItemPollux.CodigoBeneficio = itemProdSol.BeneficioPrograma.Id.ToString();
                }
                else
                {
                    throw new Exception("(CRM) Código do Benefício não preenchido.");
                }

                objItemPollux.CodigoSolicitacaoBeneficio = solicitacaoId.ToString();
                if (!itemProdSol.ValorUnitario.HasValue)
                {
                    objItemPollux.ValorUnitario = 0;
                }
                else
                {
                    objItemPollux.ValorUnitario = itemProdSol.ValorUnitario.Value;
                }

                if (!itemProdSol.ValorTotal.HasValue)
                {
                    objItemPollux.ValorTotal = 0;
                }
                else
                {
                    objItemPollux.ValorTotal = itemProdSol.ValorTotal.Value;
                }

                if (itemProdSol.Fatura != null)
                {
                    Fatura fatura = new Servicos.FaturaService(this.Organizacao, this.IsOffline).ObterPor(itemProdSol.Fatura.Id);

                    if (fatura != null)
                    {
                        objItemPollux.ChaveIntegracaoNotaFiscal = fatura.ChaveIntegracao;
                    }
                }

                if (itemProdSol.QuantidadeAprovada.HasValue)
                {
                    objItemPollux.QuantidadeAprovado = itemProdSol.QuantidadeAprovada.Value;
                }

                if (itemProdSol.ValorUnitarioAprovado.HasValue)
                {
                    objItemPollux.ValorUnitarioAprovado = itemProdSol.ValorUnitarioAprovado.Value;
                }

                if (itemProdSol.ValorTotalAprovado.HasValue)
                {
                    objItemPollux.ValorTotalAprovado = itemProdSol.ValorTotalAprovado.Value;
                }

                objItemPollux.Quantidade = itemProdSol.QuantidadeSolicitada.Value;
                //Campos Novas
                objItemPollux.CodigoProdutoSolicitacao = itemProdSol.ID.Value.ToString();
                Estabelecimento estabelecimento = new Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimento(itemProdSol.Estabelecimento.Id);

                if (estabelecimento != null && estabelecimento.Codigo.HasValue)
                {
                    objItemPollux.CodigoEstabelecimento = estabelecimento.Codigo.Value;
                }
                else
                {
                    throw new ArgumentException("(CRM) Estabelecimento/codigo Estabelecimento não cadastrado no Crm.");
                }

                objItemPollux.Acao = "A";

                if (itemProdSol.QuantidadeCancelada.HasValue)
                {
                    objItemPollux.QuantidadeCancelada = itemProdSol.QuantidadeCancelada.Value;
                }

                if (itemProdSol.ValorPago.HasValue)
                {
                    objItemPollux.ValorPago = itemProdSol.ValorPago.Value;
                }

                if (itemProdSol.ValorCancelado.HasValue)
                {
                    objItemPollux.ValorCancelado = itemProdSol.ValorCancelado.Value;
                }

                lstRetorno.Add(objItemPollux);
            }

            return(lstRetorno);
        }
Exemple #2
0
        public Fatura DefinirPropriedades(Intelbras.Message.Helper.MSG0094 xml)
        {
            Fatura crm = new Fatura(this.Organizacao, this.IsOffline);

            if (!String.IsNullOrEmpty(xml.NumeroNotaFiscal))
            {
                crm.NumeroNF = xml.NumeroNotaFiscal;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "NumeroNotaFiscal não enviado.";
                return(crm);
            }

            crm.Serie     = xml.NumeroSerie;
            crm.ClienteId = new Lookup(new Guid(xml.CodigoClienteCRM), xml.TipoObjetoCliente);


            crm.ChaveIntegracao = xml.ChaveIntegracao; //NumeroPedido.ToString();

            if (xml.NumeroPedido != null)
            {
                Pedido pedido = new Servicos.PedidoService(this.Organizacao, this.IsOffline).BuscaPedidoEMS(xml.NumeroPedido.ToString());
                if (pedido != null)
                {
                    crm.PedidoCRM = new Lookup(pedido.ID.Value, "");

                    Fatura fatura = new Servicos.FaturaService(this.Organizacao, this.IsOffline).ObterFaturaPorPedidoEMS(xml.NumeroPedido.ToString());
                    if (fatura != null)
                    {
                        crm.ID = fatura.ID.Value;
                    }
                }
            }

            if (!String.IsNullOrEmpty(xml.NumeroPedidoCliente))
            {
                crm.PedidoCliente = xml.NumeroPedidoCliente;
            }
            else
            {
                crm.AddNullProperty("PedidoCliente");
            }

            if (!String.IsNullOrEmpty(xml.Descricao))
            {
                crm.Descricao = xml.Descricao;
            }
            else
            {
                crm.AddNullProperty("Descricao");
            }

            //Service Estabelecimento
            Estabelecimento ObjEstabelecimento = new Intelbras.CRM2013.Domain.Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimentoPorCodigo(xml.Estabelecimento.Value);

            if (ObjEstabelecimento != null)
            {
                crm.Estabelecimento = new Lookup((Guid)ObjEstabelecimento.ID, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador do Estabelecimento não encontrado.";
                return(crm);
            }

            //Service Condição Pagamento
            CondicaoPagamento ObjCondicaoPagamento = null;

            if (xml.CondicaoPagamento.HasValue)
            {
                ObjCondicaoPagamento = new Intelbras.CRM2013.Domain.Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamentoPorCodigo(xml.CondicaoPagamento.Value);

                if (ObjCondicaoPagamento != null)
                {
                    crm.CondicaoPagamento = new Lookup((Guid)ObjCondicaoPagamento.ID, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador da Condição de Pagamento não encontrado.";
                    return(crm);
                }
            }
            else
            {
                crm.AddNullProperty("CondicaoPagamento");
            }

            crm.NomeAbreviado = xml.NomeAbreviadoCliente;

            //Service Natureza Operação
            NaturezaOperacao ObjNaturezaOperacao = new Intelbras.CRM2013.Domain.Servicos.NaturezaOperacaoService(this.Organizacao, this.IsOffline).BuscaNaturezaOperacaoPorCodigo(xml.NaturezaOperacao);

            if (ObjNaturezaOperacao != null)
            {
                crm.NaturezaOperacao = new Lookup((Guid)ObjNaturezaOperacao.ID, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador da Natureza de Operação não encontrado.";
                return(crm);
            }

            //Service Moeda
            Moeda ObjMoeda = new Intelbras.CRM2013.Domain.Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorCodigo(xml.Moeda);

            if (ObjMoeda != null)
            {
                crm.Moeda = new Lookup((Guid)ObjMoeda.ID, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador da Moeda não encontrado.";
                return(crm);
            }

            //Service para resolver o status
            if (System.Enum.IsDefined(typeof(Enum.Fatura.Status), xml.SituacaoNota))
            {
                crm.Status = xml.SituacaoNota;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador da Situação da nota não encontrado.";
                return(crm);
            }

            if (System.Enum.IsDefined(typeof(Enum.Fatura.RazaoStatus), xml.SituacaoEntrega))
            {
                crm.RazaoStatus = xml.SituacaoEntrega;
            }

            crm.DataEmissao = xml.DataEmissao;

            if (xml.DataSaida.HasValue)
            {
                crm.DataSaida = xml.DataSaida;
            }
            else
            {
                crm.AddNullProperty("DataSaida");
            }

            if (xml.DataEntrega.HasValue)
            {
                crm.DataEntrega = xml.DataEntrega;
            }
            else
            {
                crm.AddNullProperty("DataEntrega");
            }

            if (xml.DataConfirmacao != null)
            {
                crm.DataConfirmacao = xml.DataConfirmacao;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "DataConfirmacao não enviada.";
                return(crm);
            }

            if (xml.DataCancelamento.HasValue)
            {
                crm.DataCancelamento = xml.DataCancelamento;
            }
            else
            {
                crm.AddNullProperty("DataCancelamento");
            }

            if (xml.DataConclusao.HasValue)
            {
                crm.DataConclusao = xml.DataConclusao;
            }
            else
            {
                crm.AddNullProperty("DataConclusao");
            }

            crm.ValorFrete = xml.ValorFrete;

            crm.PesoLiquido = xml.PesoLiquido;

            crm.PesoBruto = xml.PesoBruto;

            if (!String.IsNullOrEmpty(xml.Observacao))
            {
                crm.Observacao = xml.Observacao;
            }
            else
            {
                crm.AddNullProperty("Observacao");
            }

            crm.Volume = xml.Volume.ToString();

            crm.BaseICMS            = xml.ValorBaseICMS;
            crm.ValorICMS           = xml.ValorICMS;
            crm.ValorIPI            = xml.ValorIPI;
            crm.BaseSubstTributaria = xml.ValorBaseSubstituicaoTributaria;
            crm.ValorSubstituicao   = xml.ValorSubstituicaoTributaria;
            crm.ClienteRetira       = xml.RetiraNoLocal;

            if (xml.MetodoEntrega.HasValue)
            {
                crm.MetodoEntrega = xml.MetodoEntrega;
            }
            else
            {
                crm.AddNullProperty("MetodoEntrega");
            }

            //Service Transportadora
            Transportadora ObjTransportadora = new Intelbras.CRM2013.Domain.Servicos.TransportadoraService(this.Organizacao, this.IsOffline).ObterPorCodigoTransportadora(xml.Transportadora.Value);

            if (ObjTransportadora != null)
            {
                crm.Transportadora = new Lookup((Guid)ObjTransportadora.ID, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador da Transportadora não encontrado.";
                return(crm);
            }

            crm.Frete = xml.Frete;

            //crm.CondicoesFrete = xml.tipo;

            if (!String.IsNullOrEmpty(xml.TelefoneCobranca))
            {
                crm.TelefoneCobranca = xml.TelefoneCobranca;
            }
            else
            {
                crm.AddNullProperty("TelefoneCobranca");
            }

            if (!String.IsNullOrEmpty(xml.FaxCobranca))
            {
                crm.FaxCobranca = xml.FaxCobranca;
            }
            else
            {
                crm.AddNullProperty("FaxCobranca");
            }

            //Removido essa validação para que as NF de clientes estrangeiros sejam integrados no CRM
            //if (!String.IsNullOrEmpty(xml.CNPJ))
            //    crm.CpfCnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(xml.CNPJ);
            //else if (!String.IsNullOrEmpty(xml.CPF))
            //    crm.CpfCnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCpf(xml.CPF);
            //else
            //{
            //    resultadoPersistencia.Sucesso = false;
            //    resultadoPersistencia.Mensagem = "CNPJ/CPF não enviado.";
            //    return crm;
            //}

            if (!String.IsNullOrEmpty(xml.InscricaoEstadual))
            {
                crm.InscricaoEstadual = xml.InscricaoEstadual;
            }
            else
            {
                crm.AddNullProperty("InscricaoEstadual");
            }

            if (!string.IsNullOrEmpty(xml.Oportunidade))
            {
                crm.Oportunidade = new Lookup(new Guid(xml.Oportunidade), "");
            }

            xml.PrecoBloqueado = xml.PrecoBloqueado;

            if (xml.ValorDesconto.HasValue)
            {
                crm.ValorDescontoFatura = xml.ValorDesconto;
            }
            else
            {
                crm.AddNullProperty("ValorDescontoFatura");
            }

            if (xml.PercentualDesconto.HasValue)
            {
                crm.DescontoGlobalTotal = xml.PercentualDesconto;
            }
            else
            {
                crm.AddNullProperty("DescontoGlobalTotal");
            }

            //Service Lista Preço
            ListaPreco ObjListaPreco = new Intelbras.CRM2013.Domain.Servicos.ListaPrecoService(this.Organizacao, this.IsOffline).BuscaListaPreco(xml.ListaPreco);

            if (ObjListaPreco != null)
            {
                crm.ListaPrecos = new Lookup((Guid)ObjListaPreco.ID, "");
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Identificador da Lista de Preço não encontrado.";
                return(crm);
            }

            crm.Prioridade = xml.Prioridade;

            if (xml.ValorTotal.HasValue)
            {
                crm.ValorTotal = xml.ValorTotal;
            }
            else
            {
                crm.AddNullProperty("ValorTotal");
            }

            if (xml.ValorTotalImpostos.HasValue)
            {
                crm.TotalImpostos = xml.ValorTotalImpostos;
            }
            else
            {
                crm.AddNullProperty("TotalImpostos");
            }

            //if (xml.ValorTotalProdutosSemImposto.HasValue)
            //    crm.ValorTotalProdutosSemIPIST = xml.ValorTotalProdutosSemImposto;

            if (xml.ValorTotalSemFrete.HasValue)
            {
                crm.ValorTotalSemFrete = xml.ValorTotalSemFrete;
            }
            else
            {
                crm.AddNullProperty("ValorTotalSemFrete");
            }

            if (xml.ValorTotalDesconto.HasValue)
            {
                crm.DescontoTotal = xml.ValorTotalDesconto;
            }
            else
            {
                crm.AddNullProperty("DescontoTotal");
            }

            if (xml.ValorTotalProdutos.HasValue)
            {
                crm.TotalProdutosComIPIST = xml.ValorTotalProdutos;
            }
            else
            {
                crm.AddNullProperty("TotalProdutosComIPIST");
            }

            if (xml.ValorTotalProdutosSemImposto.HasValue)
            {
                crm.ValorTotalProdutosSemIPIST = xml.ValorTotalProdutosSemImposto;
            }
            else
            {
                crm.AddNullProperty("ValorTotalProdutosSemIPIST");
            }

            //Service Endereco Entrega

            if (!string.IsNullOrEmpty(xml.EnderecoEntrega.CaixaPostal))
            {
                crm.EnderecoEntregaCaixaPostal = xml.EnderecoEntrega.CaixaPostal;
            }
            else
            {
                crm.AddNullProperty("EnderecoEntregaCaixaPostal");
            }

            if (!string.IsNullOrEmpty(xml.EnderecoEntrega.NomeEndereco))
            {
                crm.NomeEntrega = xml.EnderecoEntrega.NomeEndereco;
            }
            else
            {
                crm.AddNullProperty("NomeEntrega");
            }

            crm.CEPEntrega            = xml.EnderecoEntrega.CEP;
            crm.EnderecoEntregaRua    = xml.EnderecoEntrega.Logradouro;
            crm.EnderecoEntregaNumero = xml.EnderecoEntrega.Numero;
            crm.BairroEntrega         = xml.EnderecoEntrega.Bairro;
            crm.ComplementoEntrega    = xml.EnderecoEntrega.Complemento;
            crm.TipoNotaFiscal        = xml.TipoNotaFiscal;
            crm.NotaDevolucao         = xml.NotaDevolucao;
            crm.IdentificadorUnicoNfe = xml.IdentificadorUnicoNFE;

            if (!string.IsNullOrEmpty(xml.EnderecoEntrega.Complemento))
            {
                crm.ComplementoEntrega = xml.EnderecoEntrega.Complemento;
            }
            else
            {
                crm.AddNullProperty("ComplementoEntrega");
            }


            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.Cidade))
            {
                Model.Municipio cidade = new Model.Municipio(this.Organizacao, this.IsOffline);
                cidade = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaMunicipio(xml.EnderecoEntrega.Cidade);

                if (cidade != null && cidade.ID.HasValue)
                {
                    crm.EnderecoEntregaCidade = new Lookup(cidade.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador da Cidade não encontrado!";
                    return(crm);
                }
            }

            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.Estado))
            {
                Model.Estado estado = new Model.Estado(this.Organizacao, this.IsOffline);
                estado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.EnderecoEntrega.Estado);

                if (estado != null && estado.ID.HasValue)
                {
                    crm.EnderecoEntregaEstado = new Lookup(estado.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador do Estado não encontrado!";
                    return(crm);
                }
            }

            ///Service Pais
            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.Pais))
            {
                Model.Pais pais = new Model.Pais(this.Organizacao, this.IsOffline);
                pais = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaPais(xml.EnderecoEntrega.Pais);

                if (pais != null && pais.ID.HasValue)
                {
                    crm.EnderecoEntregaPais = new Lookup(pais.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador do País não encontrado.";
                    return(crm);
                }
            }

            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.NomeContato))
            {
                crm.NomeEntrega = xml.EnderecoEntrega.NomeContato;
            }
            else
            {
                crm.AddNullProperty("NomeEntrega");
            }


            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.Telefone))
            {
                crm.TelefoneEntrega = xml.EnderecoEntrega.Telefone;
            }
            else
            {
                crm.AddNullProperty("TelefoneEntrega");
            }


            if (!String.IsNullOrEmpty(xml.EnderecoEntrega.Fax))
            {
                crm.FaxEntrega = xml.EnderecoEntrega.Fax;
            }
            else
            {
                crm.AddNullProperty("FaxEntrega");
            }


            #region Representante

            crm.IntegradoRepresentanteComErro = false;
            crm.IntegradoComErros             = false;
            crm.RepresentanteOriginal         = xml.Representante.ToString();

            Contato ObjRepresentante = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline)
                                       .BuscaContatoPorCodigoRepresentante(xml.Representante.ToString());

            if (ObjRepresentante != null)
            {
                crm.KARepresentante = new Lookup(ObjRepresentante.ID.Value, "");
            }
            else
            {
                crm.IntegradoRepresentanteComErro = true;
                crm.IntegradoComErros             = true;
                crm.KARepresentante = new Lookup(ObterRepresentatePadrao(), "");
            }

            #endregion

            return(crm);
        }
Exemple #3
0
        private List <ProdutosdaSolicitacao> DefinirPropriedadesItens(List <Pollux.Entities.ProdutoSolicitacaoItem> listSolicitacaoItens, string origem, Guid?solicitacaoID)
        {
            List <ProdutosdaSolicitacao> lstRetorno = new List <ProdutosdaSolicitacao>();

            #region Lista ProdutoSoliciatacao
            foreach (var itemPollux in listSolicitacaoItens.Where(x => x.Situacao == (int)Enum.ProdutoSolicitacao.Status.Ativo))
            {
                ProdutosdaSolicitacao produtoSolicitacao = new ProdutosdaSolicitacao(this.Organizacao, this.IsOffline);

                if (!String.IsNullOrEmpty(itemPollux.CodigoProduto))
                {
                    Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(itemPollux.CodigoProduto);
                    if (produto != null)
                    {
                        produtoSolicitacao.Produto = new Lookup(produto.ID.Value, "");
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Produto não cadastrado no Crm!";
                        return(null);
                    }
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoProduto não enviado.";
                    return(null);
                }

                #region SETA ORIGEM PARA REGRA DE NEGOCIO ESPECIFICA (2)
                if (!string.IsNullOrEmpty(origem))
                {
                    produtoSolicitacao.IntegradoDe = origem;
                }
                else
                {
                    produtoSolicitacao.AddNullProperty("IntegradoDe");
                }
                #endregion

                if (!String.IsNullOrEmpty(itemPollux.CodigoBeneficio) && itemPollux.CodigoBeneficio.Length == 36)
                {
                    Beneficio beneficio = new Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(new Guid(itemPollux.CodigoBeneficio));
                    if (beneficio != null)
                    {
                        produtoSolicitacao.BeneficioPrograma = new Lookup(beneficio.ID.Value, "");
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "CodigoBeneficio do ProdutoSolicitacao : " + itemPollux.CodigoBeneficio + " - não cadastrado no Crm.";
                        return(null);
                    }
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "CodigoBeneficio não Enviado ou fora do padrão(Guid).";
                    return(null);
                }
                if (solicitacaoID.HasValue)
                {
                    produtoSolicitacao.SolicitacaoBeneficio = new Lookup(solicitacaoID.Value, "");
                }

                produtoSolicitacao.ValorUnitario = itemPollux.ValorUnitario;
                produtoSolicitacao.ValorTotal    = itemPollux.ValorTotal;
                if (!String.IsNullOrEmpty(itemPollux.ChaveIntegracaoNotaFiscal))
                {
                    Fatura fatura = new Servicos.FaturaService(this.Organizacao, this.IsOffline).ObterPorChaveIntergacao(itemPollux.ChaveIntegracaoNotaFiscal);
                    if (fatura != null)
                    {
                        produtoSolicitacao.Fatura = new Lookup(fatura.ID.Value, "");
                    }
                    else
                    {
                        resultadoPersistencia.Sucesso  = false;
                        resultadoPersistencia.Mensagem = "Fatura referente ChaveIntegracaoNotaFiscal: " + itemPollux.ChaveIntegracaoNotaFiscal + " - não cadastrado no Crm.";
                        return(null);
                    }
                }

                if (itemPollux.QuantidadeAprovado.HasValue)
                {
                    produtoSolicitacao.QuantidadeAprovada = itemPollux.QuantidadeAprovado;
                }
                else
                {
                    produtoSolicitacao.AddNullProperty("QuantidadeAprovada");
                }

                if (itemPollux.ValorUnitarioAprovado.HasValue)
                {
                    produtoSolicitacao.ValorUnitarioAprovado = itemPollux.ValorUnitarioAprovado;
                }
                else
                {
                    produtoSolicitacao.AddNullProperty("ValorUnitarioAprovado");
                }

                if (itemPollux.ValorTotalAprovado.HasValue)
                {
                    produtoSolicitacao.ValorTotalAprovado = itemPollux.ValorTotalAprovado;
                }
                else
                {
                    produtoSolicitacao.AddNullProperty("ValorTotalAprovado");
                }

                produtoSolicitacao.QuantidadeSolicitada = itemPollux.Quantidade;
                //Novos campos

                if (!String.IsNullOrEmpty(itemPollux.CodigoProdutoSolicitacao))
                {
                    produtoSolicitacao.ID = new Guid(itemPollux.CodigoProdutoSolicitacao);
                }

                produtoSolicitacao.Acao = itemPollux.Acao;

                Estabelecimento estabelecimento = new Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimentoPorCodigo(itemPollux.CodigoEstabelecimento.Value);

                if (estabelecimento != null)
                {
                    produtoSolicitacao.Estabelecimento = new Lookup(estabelecimento.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Estabelecimento codigo : " + itemPollux.CodigoEstabelecimento.ToString() + " - não cadastrado no Crm.";
                    return(null);
                }

                if (itemPollux.Situacao.HasValue)
                {
                    produtoSolicitacao.State = itemPollux.Situacao.Value;
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Situacao não informado favor verificar integração.";
                    return(null);
                }

                if (itemPollux.QuantidadeCancelada.HasValue)
                {
                    produtoSolicitacao.QuantidadeCancelada = itemPollux.QuantidadeCancelada.Value;
                }

                if (itemPollux.ValorPago.HasValue)
                {
                    produtoSolicitacao.ValorPago = itemPollux.ValorPago.Value;
                }

                if (itemPollux.ValorCancelado.HasValue)
                {
                    produtoSolicitacao.ValorCancelado = itemPollux.ValorCancelado.Value;
                }

                if (itemPollux.QuantidadeAjustada.HasValue)
                {
                    produtoSolicitacao.QuantidadeAjustada = itemPollux.QuantidadeAjustada.Value;
                }

                lstRetorno.Add(produtoSolicitacao);
            }
            #endregion

            return(lstRetorno);
        }
Exemple #4
0
        private List <Intelbras.Message.Helper.Entities.ObterSolicitacaoItem> RetornaSolicitacaoItens(Intelbras.CRM2013.Domain.Model.SolicitacaoBeneficio objSolicitacaoBeneficio)
        {
            List <Intelbras.Message.Helper.Entities.ObterSolicitacaoItem> lstSolicitacaoItens = new List <Intelbras.Message.Helper.Entities.ObterSolicitacaoItem>();
            var lstProdSolicitacao = new Servicos.ProdutosdaSolicitacaoService(this.Organizacao, this.IsOffline).ListarPorSolicitacao(objSolicitacaoBeneficio.ID.Value);

            if (lstProdSolicitacao != null && lstProdSolicitacao.Count > 0)
            {
                foreach (var produtoDaSolicitacao in lstProdSolicitacao)
                {
                    Intelbras.Message.Helper.Entities.ObterSolicitacaoItem itemSolicitacao = new Intelbras.Message.Helper.Entities.ObterSolicitacaoItem();

                    itemSolicitacao.CodigoProdutoSolicitacao   = produtoDaSolicitacao.ID.Value.ToString();
                    itemSolicitacao.CodigoSolicitacaoBeneficio = objSolicitacaoBeneficio.ID.Value.ToString();
                    Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(produtoDaSolicitacao.Produto.Id);
                    if (produto != null)
                    {
                        itemSolicitacao.CodigoProduto   = produto.Codigo;
                        itemSolicitacao.NomeProduto     = produto.Nome;
                        itemSolicitacao.CodigoBeneficio = objSolicitacaoBeneficio.BeneficioPrograma.Id.ToString();
                        itemSolicitacao.NomeBeneficio   = objSolicitacaoBeneficio.BeneficioPrograma.Name;
                    }
                    else
                    {
                        throw new Exception("Produto ID :" + produtoDaSolicitacao.ID.Value.ToString() + "não encontrado!");
                    }
                    if (produtoDaSolicitacao.ValorUnitario.HasValue)
                    {
                        itemSolicitacao.ValorUnitario = produtoDaSolicitacao.ValorUnitario.Value;
                    }
                    else
                    {
                        itemSolicitacao.ValorUnitario = 0;
                    }

                    if (produtoDaSolicitacao.QuantidadeSolicitada.HasValue)
                    {
                        itemSolicitacao.Quantidade = Convert.ToInt32(produtoDaSolicitacao.QuantidadeSolicitada.Value);//Mudar Willer
                    }
                    else
                    {
                        itemSolicitacao.Quantidade = 0;
                    }

                    if (produtoDaSolicitacao.ValorTotal.HasValue)
                    {
                        itemSolicitacao.ValorTotal = produtoDaSolicitacao.ValorTotal.Value;
                    }
                    else
                    {
                        itemSolicitacao.ValorTotal = 0;
                    }

                    if (produtoDaSolicitacao.ValorUnitarioAprovado.HasValue)
                    {
                        itemSolicitacao.ValorUnitarioAprovado = produtoDaSolicitacao.ValorUnitarioAprovado.Value;
                    }
                    else
                    {
                        itemSolicitacao.ValorUnitarioAprovado = 0;
                    }

                    if (produtoDaSolicitacao.ValorTotalAprovado.HasValue)
                    {
                        itemSolicitacao.ValorTotalAprovado = produtoDaSolicitacao.ValorTotalAprovado.Value;
                    }
                    else
                    {
                        itemSolicitacao.ValorTotalAprovado = 0;
                    }

                    if (produtoDaSolicitacao.QuantidadeAprovada.HasValue)
                    {
                        itemSolicitacao.QuantidadeAprovado = Convert.ToInt32(produtoDaSolicitacao.QuantidadeAprovada.Value);//Mudar Willer
                    }
                    else
                    {
                        itemSolicitacao.QuantidadeAprovado = 0;
                    }

                    if (produtoDaSolicitacao.Fatura != null)
                    {
                        Fatura fatura = new Servicos.FaturaService(this.Organizacao, this.IsOffline).ObterPor(produtoDaSolicitacao.Fatura.Id);
                        if (fatura != null)
                        {
                            itemSolicitacao.ChaveIntegracaoNotaFiscal = fatura.ChaveIntegracao;
                            itemSolicitacao.NomeNotaFiscal            = fatura.NomeAbreviado;
                        }
                    }

                    itemSolicitacao.Proprietario     = usuarioIntegracao.ID.Value.ToString();
                    itemSolicitacao.NomeProprietario = usuarioIntegracao.Nome;
                    itemSolicitacao.TipoProprietario = "systemuser";

                    if (produtoDaSolicitacao.Estabelecimento != null)
                    {
                        Estabelecimento estabelecimento = new Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimento(produtoDaSolicitacao.Estabelecimento.Id);
                        if (estabelecimento != null && estabelecimento.Codigo.HasValue)
                        {
                            itemSolicitacao.NomeEstabelecimento   = estabelecimento.Nome;
                            itemSolicitacao.CodigoEstabelecimento = estabelecimento.Codigo.Value;
                        }
                        else
                        {
                            itemSolicitacao.NomeEstabelecimento   = "N/A";
                            itemSolicitacao.CodigoEstabelecimento = 0;
                        }
                    }
                    else
                    {
                        itemSolicitacao.NomeEstabelecimento   = "N/A";
                        itemSolicitacao.CodigoEstabelecimento = 0;
                    }

                    itemSolicitacao.Situacao = produtoDaSolicitacao.State.Value;

                    if (produtoDaSolicitacao.State.Value.Equals(0))
                    {
                        itemSolicitacao.NomeSituacao = "Ativo";
                    }
                    else if (produtoDaSolicitacao.State.Value.Equals(1))
                    {
                        itemSolicitacao.NomeSituacao = "Inativo";
                    }

                    if (produtoDaSolicitacao.QuantidadeCancelada.HasValue)
                    {
                        itemSolicitacao.QuantidadeCancelada = produtoDaSolicitacao.QuantidadeCancelada.Value;
                    }

                    if (produtoDaSolicitacao.ValorPago.HasValue)
                    {
                        itemSolicitacao.ValorPago = produtoDaSolicitacao.ValorPago.Value;
                    }

                    if (produtoDaSolicitacao.QuantidadeAjustada.HasValue)
                    {
                        itemSolicitacao.QuantidadeAjustada = produtoDaSolicitacao.QuantidadeAjustada.Value;
                    }

                    if (produtoDaSolicitacao.ValorCancelado.HasValue)
                    {
                        itemSolicitacao.ValorCancelado = produtoDaSolicitacao.ValorCancelado.Value;
                    }

                    lstSolicitacaoItens.Add(itemSolicitacao);
                }
            }

            return(lstSolicitacaoItens);
        }