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