public Pollux.MSG0140 DefinirPropriedades(ProdutoEstabelecimento objModel) { #region Propriedades Crm->Xml Product produto = null; if (objModel.Produto != null) { produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(objModel.Produto.Id); } else { throw new Exception("Produto não encontrado!"); } Pollux.MSG0140 msg0140 = new Pollux.MSG0140(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(produto.Codigo, 40)); msg0140.CodigoProduto = produto.Codigo; if (objModel.Estabelecimento != null) { Estabelecimento estabelecimento = new Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimento(objModel.Estabelecimento.Id); if (estabelecimento.Codigo.HasValue) { msg0140.CodigoEstabelecimento = estabelecimento.Codigo.Value; } } //Não é preciso passar Status - Msg delete por default #endregion return(msg0140); }
public List <ProdutoProjeto> DefinirPropriedadesProdutos(Intelbras.Message.Helper.MSG0268 xml, ClientePotencial ClientePotencial) { List <ProdutoProjeto> lstRetorno = new List <ProdutoProjeto>(); #region Lista ProdutoProjeto foreach (var item in xml.ListaProdutosProjeto) { //verificar se o vinculo existe criar ou editar ProdutoProjeto produtoProjeto = new ProdutoProjeto(this.Organizacao, this.IsOffline); if (!String.IsNullOrEmpty(item.CodigoProdutoClientePotencial)) { ProdutoProjeto produtoProjetoTemp = new Servicos.RepositoryService().ProdutoProjeto.Retrieve(new Guid(item.CodigoProdutoClientePotencial)); //new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(item.CodigoProdutoClientePotencial); if (produtoProjeto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto não cadastrado no Crm!"; return(null); } produtoProjeto = produtoProjetoTemp; } if (!String.IsNullOrEmpty(item.CodigoProduto)) { Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(item.CodigoProduto); if (produto != null) { produtoProjeto.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 = "Codigo Produto não enviado."; return(null); } produtoProjeto.ClientePotencial = new Lookup(ClientePotencial.ID.Value, ""); produtoProjeto.ValorUnitario = (item.PrecoUnitario == null) ? 0 : item.PrecoUnitario; produtoProjeto.Quantidade = item.Quantidade; produtoProjeto.ValorTotal = (item.ValorTotal == null) ? 0 : item.ValorTotal; lstRetorno.Add(produtoProjeto); } #endregion return(lstRetorno); }
public Pollux.MSG0139 DefinirPropriedades(ProdutoEstabelecimento objModel) { #region Propriedades Crm->Xml Product produto = null; if (objModel.Produto != null) { produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(objModel.Produto.Id); } else { throw new Exception("Produto não encontrado!"); } Pollux.MSG0139 msg0139 = new Pollux.MSG0139(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(produto.Codigo, 40)); msg0139.CodigoProduto = produto.Codigo; if (objModel.Estabelecimento != null) { Estabelecimento estabelecimento = new Servicos.EstabelecimentoService(this.Organizacao, this.IsOffline).BuscaEstabelecimento(objModel.Estabelecimento.Id); if (estabelecimento.Codigo.HasValue) { msg0139.CodigoEstabelecimento = estabelecimento.Codigo.Value; } } if (objModel.Status.HasValue) { if (objModel.Status.Value == 1) { msg0139.Situacao = 0; } else { msg0139.Situacao = 1; } } #endregion return(msg0139); }
public Pollux.MSG0287 DefinirPropriedades(ProdutoCondicaoPagamento crm) { var condPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id); if (condPagamento == null) { throw new ArgumentException("(CRM) Condição de Pagamento Não Localizada"); } var produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.Produto.Id); if (produto == null) { throw new ArgumentException("(CRM) Produto Não Localizada"); } Pollux.MSG0287 retMsg = new Pollux.MSG0287(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), condPagamento.Codigo.ToString() + "+" + produto.Codigo.ToString()); retMsg.CodigoCondicaoPagamento = condPagamento.Codigo; retMsg.CodigoProduto = produto.Codigo; retMsg.Situacao = crm.Status; return(retMsg); }
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); }
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); }
public List <PrecoProduto> DefinirPropriedadesLista(Intelbras.Message.Helper.MSG0101 xml) { List <PrecoProduto> lstPrecoProduto = new List <PrecoProduto>(); List <String> lstCodProd = new List <String>(); foreach (var item in xml.ProdutosItens) { lstCodProd.Add(item.CodigoProduto); } List <Product> lstProduto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarProdutosPorCodigo(lstCodProd); Guid contaProduto = new Guid(); if (!String.IsNullOrEmpty(xml.Conta) && xml.Conta.Length == 36) { contaProduto = new Guid(xml.Conta); } else if (!String.IsNullOrEmpty(xml.Conta) && xml.Conta.Length < 36) { Conta conta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaContaPorCpfCnpj(xml.Conta); if (conta != null) { contaProduto = conta.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Canal não encontrado."; lstPrecoProduto = null; return(lstPrecoProduto); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Canal não enviado."; lstPrecoProduto = null; return(lstPrecoProduto); } foreach (var item in xml.ProdutosItens) { PrecoProduto precoProduto = new PrecoProduto(this.Organizacao, this.IsOffline); if (!String.IsNullOrEmpty(item.CodigoProduto)) { precoProduto.CodigoProduto = item.CodigoProduto; Product produto = new Product(this.Organizacao, this.IsOffline); produto = lstProduto.Where(x => x.Codigo == item.CodigoProduto).FirstOrDefault <Product>(); if (produto != null) { precoProduto.ProdutoId = produto.ID.Value; precoProduto.Produto = produto; if (item.TipoPortfolio == (int)Domain.Enum.Portfolio.Tipo.CrossSelling) { precoProduto.TipoCrossSelling = true; } else { precoProduto.TipoCrossSelling = false; } precoProduto.codEstabelecimento = item.CodigoEstabelecimento.Value; precoProduto.codUnidade = item.CodigoUnidadeNegocio; precoProduto.codFamiliaComl = item.CodigoFamiliaComercial; precoProduto.tipoPortofolio = item.TipoPortfolio.Value; } else { precoProduto.Produto = null; precoProduto.ProdutoId = Guid.Empty; precoProduto.ValorProduto = 0; precoProduto.MensagemErro = "Produto não cadastrado no Crm."; } } else { precoProduto.Produto = null; precoProduto.ProdutoId = Guid.Empty; precoProduto.ValorProduto = 0; precoProduto.MensagemErro = "Identificador do Produto não enviado."; } if (!String.IsNullOrEmpty(item.Moeda)) { precoProduto.Moeda = item.Moeda; } else { precoProduto.Produto = null; precoProduto.ProdutoId = Guid.Empty; precoProduto.ValorProduto = 0; precoProduto.MensagemErro = "Moeda não enviada."; } precoProduto.ContaId = contaProduto; decimal qtd = 0; if (Decimal.TryParse(item.Quantidade.ToString(), out qtd)) { try { precoProduto.Quantidade = (int)qtd; } catch { precoProduto.Produto = null; precoProduto.ProdutoId = Guid.Empty; precoProduto.ValorProduto = 0; precoProduto.MensagemErro = "Produto com 'Quantidade' fora do padrão."; } } else { precoProduto.Produto = null; precoProduto.ProdutoId = Guid.Empty; precoProduto.ValorProduto = 0; precoProduto.MensagemErro = "Produto com 'Quantidade' fora do padrão ou não enviado."; } precoProduto.ValorProduto = 0; lstPrecoProduto.Add(precoProduto); } return(lstPrecoProduto); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { var xml = this.CarregarMensagem <Pollux.MSG0100>(mensagem); List <ProdutoPortfolio> lstProdutoPortifolio = null; List <Pollux.Entities.ProdutoPortifolio> lstPolluxPortifolio = new List <Pollux.Entities.ProdutoPortifolio>(); ProdutoPortfolio objeto = this.DefinirPropriedades(xml); if (!String.IsNullOrEmpty(xml.Classificacao)) { Classificacao classif = new Servicos.ClassificacaoService(this.Organizacao, this.IsOffline).BuscaClassificacao(new Guid(xml.Classificacao)); if (classif != null) { classificacaoId = classif.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Classificação - " + xml.Classificacao + " - não cadastrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } else { //new resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "O campo Classificação é obrigatorio."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } if (!String.IsNullOrEmpty(xml.UnidadeNegocio)) { UnidadeNegocio unidadeNeg = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.UnidadeNegocio); if (unidadeNeg != null) { unidadeNegocioId = unidadeNeg.ID.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio - " + xml.UnidadeNegocio + " - não cadastrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } if (!String.IsNullOrEmpty(xml.Conta)) { Conta objetoConta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.Conta)); if (objetoConta != null && objetoConta.Status.Value == 0) { #region Conta sem categoria de canal ativa //Regra: É preciso recuperar as unidades de negócios com qual o canal possui relacionamento que estão registradas na entidade "Categorias do Canal". //Se não forem encontrados registros, o calculo do portfólio deve ser interrompido e deve ser retornado ao ESB como resultado "Falha"." var categoriaCanal = new Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor(objetoConta.ID, unidadeNegocioId); if (categoriaCanal == null || categoriaCanal.Count.Equals(0)) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM):Conta não possui relacionamento com unidades de negócio Intelbras"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } #endregion #region Nenhum portfólio encontrado if (unidadeNegocioId != null) { var portifolio = new Servicos.PortfolioService(this.Organizacao, this.IsOffline).ListPortifolios(unidadeNegocioId.Value, classificacaoId.Value); if (portifolio.Count == 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Não foram encontrados portfólios para a classificação da conta"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } #endregion #region Nenhum produto de portfólio encontrado lstProdutoPortifolio = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ProdutosPortfolio(objetoConta, classificacaoId, unidadeNegocioId); if (lstProdutoPortifolio != null && lstProdutoPortifolio.Count > 0) { lstPolluxPortifolio = this.CarregarListaProdutoPortifolio(lstProdutoPortifolio); } else { //verifica se existe portfolios sem produto var portifolio = new Servicos.PortfolioService(this.Organizacao, this.IsOffline).VerificaPortfolio(objetoConta, classificacaoId, unidadeNegocioId); if (portifolio.Count > 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Foram encontrados portfólios mas nenhum produto relacionado aos mesmos."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } else { //Erro Lista Portifolio vazia resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Não foram encontrados portfólios para a classificação da conta"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } #endregion } else { //Conta inativa ou não existe //Conta nao encontrada resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "(CRM): Conta não existente e/ ou inativa"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Identificador do Canal não enviado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } if (lstPolluxPortifolio.Count > 0) { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("ProdutoItem", lstPolluxPortifolio); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Produtos Itens não encontrados no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0100R1>(numeroMensagem, retorno)); } }
public List <Pollux.Entities.ProdutoPortifolio> CarregarListaProdutoPortifolio(List <ProdutoPortfolio> lstProdutoPortifolio) { List <Pollux.Entities.ProdutoPortifolio> lstPolluxPortifolio = new List <Pollux.Entities.ProdutoPortifolio>(); List <Guid> lstProdutoListaIds = new List <Guid>(); List <Product> lstProduto = new List <Product>(); List <Product> lstProdutoCompleto = new List <Product>(); foreach (var prodItem in lstProdutoPortifolio) { lstProdutoListaIds.Add(prodItem.Produto.Id); } if (lstProdutoListaIds.Count > 0) { lstProduto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarProduto(lstProdutoListaIds); } List <ProdutoTreinamento> lstProdTreinamentoCache = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ProdutoTreinamentoListarTodos(); List <TreinamentoCanal> lstTreinamentoCanalCache = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).TreinamentoCanalListarTodos(); foreach (Product produto in lstProduto) { //Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(item.Produto.Id); Pollux.Entities.ProdutoPortifolio objPollux = new Pollux.Entities.ProdutoPortifolio(); objPollux.CodigoProduto = produto.Codigo; objPollux.Bloqueado = false; objPollux.TemCache = false; objPollux.TipoPortfolio = lstProdutoPortifolio.Where(x => x.Produto.Id == produto.ID.Value).First().PortfolioTipo; if (produto.ExigeTreinamento.Value) { //Para cada um que requere certificação, localiza a lista de Treinamentos/Certificações requeridas na entidade Produtos x Treinamento/Certificação. List <ProdutoTreinamento> lstProdTreinamento = lstProdTreinamentoCache.Where(x => x.Produto.Id == produto.ID.Value).ToList(); //RepositoryService.ProdutoTreinamento.ListarPorProduto(prodPort.Produto.Id); foreach (ProdutoTreinamento prodTreinamento in lstProdTreinamento) { List <TreinamentoCanal> lstTreinamentoCanal = lstTreinamentoCanalCache.Where(y => y.Treinamento.Id == prodTreinamento.Treinamento.Id). Where(y => y.Canal.Id == lstProdutoPortifolio.First().CanalId).ToList(); //RepositoryService.TreinamentoCanal.ListarPor((Guid)prodTreinamento.Treinamento.Id, (Guid)canalId); //Para cada Treinamento encontrado, verifica quais estão com Status igual a “Não cumprido” na entidade Treinamentos do Canal (de mesmo Canal e Treinamento obtidos). if (lstTreinamentoCanal.Count(x => x.StatusCompromisso.Name == Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) > 0) { //Remove da lista de produtos do portfólio do passo 8, todos os produtos encontrados sem treinamento no passo 9 (remove da lista, não da base do CRM). //E apenas bloqueia o portfolio se tiver o flag marcado como sim //Product prodBloq = RepositoryService.Produto.ObterPor(prodTreinamento.Produto.Id); if (prodTreinamento.BloqueiaPortfolio.Value == (int)Enum.ProdutoTreinamento.BloqueiaPortfolio.Sim) { objPollux.Bloqueado = true; } } } } lstPolluxPortifolio.Add(objPollux); } return(lstPolluxPortifolio); }
public Model.Product DefinirPropriedades(Intelbras.Message.Helper.MSG0088 xml) { RetornaGuid retornaGUID = new RetornaGuid(this.Organizacao, this.IsOffline); var crm = new Product(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml if (!String.IsNullOrEmpty(xml.CodigoProduto)) { crm.Codigo = xml.CodigoProduto; } if (xml.DataAlteracaoPrecoVenda.HasValue) { crm.DataUltAlteracaoPVC = xml.DataAlteracaoPrecoVenda.Value; } Product prodRet = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(xml.CodigoProduto); if (prodRet != null) { crm.ID = prodRet.ID; } crm.IntegrarNoPlugin = true; if (!String.IsNullOrEmpty(xml.Nome)) { crm.Nome = xml.Nome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Nome não enviado."; return(crm); } crm.Status = xml.Situacao; if (xml.Situacao == 0) { crm.RazaoStatus = 1; } else { crm.RazaoStatus = (int)Enum.Produto.StatusCode.Descontinuado; } if (xml.TipoProduto.HasValue && System.Enum.IsDefined(typeof(Enum.Produto.TipoProduto), xml.TipoProduto)) { crm.TipoProdutoid = xml.TipoProduto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Tipo de produto não enviado ou inválido."; return(crm); } if (xml.NaturezaProduto.HasValue && System.Enum.IsDefined(typeof(Enum.Produto.NaturezaProduto), xml.NaturezaProduto)) { crm.NaturezaProduto = xml.NaturezaProduto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Natureza Produto não enviada ou inválida."; return(crm); } crm.GrupoEstoque = new Lookup(retornaGUID.GrupoEstoque(xml.GrupoEstoque.Value, ref resultadoPersistencia), ""); if (crm.GrupoEstoque.Id == Guid.Empty) { return(crm); } crm.UnidadeNegocio = new Lookup(retornaGUID.UnidadeNegocio(xml.UnidadeNegocio, ref resultadoPersistencia), ""); if (crm.UnidadeNegocio.Id == Guid.Empty) { return(crm); } crm.Segmento = new Lookup(retornaGUID.Segmento(xml.Segmento, ref resultadoPersistencia), ""); if (crm.Segmento.Id == Guid.Empty) { return(crm); } crm.FamiliaProduto = new Lookup(retornaGUID.FamiliaProduto(xml.Familia, ref resultadoPersistencia), ""); if (crm.FamiliaProduto.Id == Guid.Empty) { return(crm); } crm.SubfamiliaProduto = new Lookup(retornaGUID.SubfamiliaProduto(xml.SubFamilia, ref resultadoPersistencia), ""); if (crm.SubfamiliaProduto.Id == Guid.Empty) { return(crm); } crm.Origem = new Lookup(retornaGUID.Origem(xml.Origem, ref resultadoPersistencia), ""); if (crm.Origem.Id == Guid.Empty) { return(crm); } crm.UnidadePadrao = new Lookup(retornaGUID.UnidadeMedida(xml.UnidadeMedida, ref resultadoPersistencia), ""); if (crm.UnidadePadrao.Id == Guid.Empty) { return(crm); } crm.GrupoUnidades = new Lookup(retornaGUID.GrupoUnidadeMedida(xml.GrupoUnidadeMedida, ref resultadoPersistencia), ""); if (crm.GrupoUnidades.Id == Guid.Empty) { return(crm); } crm.FamiliaMaterial = new Lookup(retornaGUID.FamiliaMaterial(xml.FamiliaMaterial, ref resultadoPersistencia), ""); if (crm.FamiliaMaterial.Id == Guid.Empty) { return(crm); } crm.FamiliaComercial = new Lookup(retornaGUID.FamiliaComercial(xml.FamiliaComercial, ref resultadoPersistencia), ""); if (crm.FamiliaComercial.Id == Guid.Empty) { return(crm); } crm.ListaPrecoPadrao = new Lookup(retornaGUID.ListaPreco(xml.ListaPreco, ref resultadoPersistencia), ""); if (crm.ListaPrecoPadrao.Id == Guid.Empty) { return(crm); } crm.Moeda = new Lookup(retornaGUID.Moeda(xml.Moeda, ref resultadoPersistencia), ""); if (crm.Moeda.Id == Guid.Empty) { return(crm); } if (xml.QuantidadeDecimal.HasValue) { crm.QuantidadeDecimal = xml.QuantidadeDecimal.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Quantidade Decimal não enviado."; return(crm); } if (!String.IsNullOrEmpty(xml.Descricao)) { crm.Descricao = xml.Descricao; } else { crm.AddNullProperty("Descricao"); } if (xml.PesoEstoque.HasValue) { crm.PesoEstoque = xml.PesoEstoque.Value; } else { crm.AddNullProperty("PesoEstoque"); } if (!String.IsNullOrEmpty(xml.Fabricante)) { crm.NomeFornecedor = xml.Fabricante; } else { crm.AddNullProperty("NomeFornecedor"); } if (!String.IsNullOrEmpty(xml.NumeroPecaFabricante)) { crm.NumeroPecaFabricante = xml.NumeroPecaFabricante; } else { crm.AddNullProperty("NumeroPecaFabricante"); } if (xml.VolumeEstoque.HasValue) { crm.VolumeEstoque = xml.VolumeEstoque; } else { crm.AddNullProperty("VolumeEstoque"); } if (!String.IsNullOrEmpty(xml.ComplementoProduto)) { crm.Complemento = xml.ComplementoProduto; } else { crm.AddNullProperty("Complemento"); } if (!String.IsNullOrEmpty(xml.URL)) { crm.Url = xml.URL; } else { crm.AddNullProperty("Url"); } if (xml.QuantidadeDisponivel.HasValue) { crm.QuantidadeDisponivel = xml.QuantidadeDisponivel; } else { crm.AddNullProperty("QuantidadeDisponivel"); } if (!String.IsNullOrEmpty(xml.Fornecedor)) { crm.Fornecedor = xml.Fornecedor; } else { crm.AddNullProperty("Fornecedor"); } if (!String.IsNullOrEmpty(xml.EAN)) { crm.EAN = xml.EAN; } else { crm.AddNullProperty("EAN"); } if (!String.IsNullOrEmpty(xml.NCM)) { crm.NCM = xml.NCM; } else { crm.AddNullProperty("NCM"); } if (xml.AliquotaIPI.HasValue) { crm.PercentualIPI = xml.AliquotaIPI; } else { crm.AddNullProperty("PercentualIPI"); } if (!crm.ID.HasValue) { if (xml.ConsiderarOrcamentoMeta.HasValue) { crm.ConsideraOrcamentoMeta = xml.ConsiderarOrcamentoMeta; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "ConsiderarOrcamentoMeta não enviado."; return(crm); } if (xml.FaturamentoOutroProduto.HasValue) { crm.FaturamentoOutroProduto = xml.FaturamentoOutroProduto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "FaturamentoOutroProduto não enviado."; return(crm); } if (xml.QuantidadeMultipla.HasValue) { crm.QuantidadeMultiplaProduto = xml.QuantidadeMultipla; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "QuantidadeMultipla não enviada."; return(crm); } if (xml.ExigeTreinamento.HasValue) { crm.ExigeTreinamento = (bool)xml.ExigeTreinamento; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Exige Treinamento não enviado."; return(crm); } //if (xml.PassivelSolicitacaoBeneficio.HasValue) // crm.PermitirEmSolBenef = (bool)xml.PassivelSolicitacaoBeneficio; //else //{ // resultadoPersistencia.Sucesso = false; // resultadoPersistencia.Mensagem = "Passivel Solicitacao de Beneficio não enviado."; // return crm; //} if (xml.RebateAtivado.HasValue) { crm.RebatePosVendaAtivado = (bool)xml.RebateAtivado; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Rebate Ativado não enviado."; return(crm); } //if (xml.PassivelSolicitacaoBeneficio.HasValue) //{ // crm.PermitirEmSolBenef = (bool)xml.PassivelSolicitacaoBeneficio; //} //else //{ // resultadoPersistencia.Sucesso = false; // resultadoPersistencia.Mensagem = "Passível Solicitação de Benefício não enviado."; // return crm; //} //if (xml.TemMensagem.HasValue) //{ // if (xml.TemMensagem == true) // { // if (xml.DescricaoMensagem != null && xml.DescricaoMensagem != String.Empty) // crm.Mensagem = xml.DescricaoMensagem; // else // { // resultadoPersistencia.Sucesso = false; // resultadoPersistencia.Mensagem = "Descrição de Mensagem não enviada quando Tem Mensagem = Sim"; // return crm; // } // } // crm.TemMensagem = (bool)xml.TemMensagem; //} //else //{ // resultadoPersistencia.Sucesso = false; // resultadoPersistencia.Mensagem = "Tem Mensagem não enviado."; // return crm; //} if (xml.ShowRoom.HasValue) { crm.Showroom = xml.ShowRoom; } if (xml.ShowRoomRevendas.HasValue) { crm.ShowroomRevenda = xml.ShowRoomRevendas; } if (xml.Backup.HasValue) { crm.BackupDistribuidor = xml.Backup; } if (xml.BackupRevendas.HasValue) { crm.BackupRevenda = xml.BackupRevendas; } if (!String.IsNullOrEmpty(xml.DepositoPadrao)) { crm.DepositoPadrao = xml.DepositoPadrao; } else { crm.AddNullProperty("DepositoPadrao"); } if (xml.CodigoTipoDespesa.HasValue) { crm.CodigoTipoDespesa = xml.CodigoTipoDespesa; } if (xml.DestaqueNCM.HasValue) { crm.DestaqueNCM = xml.DestaqueNCM; } if (!String.IsNullOrEmpty(xml.NVE)) { crm.NVE = xml.NVE; } else { crm.AddNullProperty("NVE"); } if (!String.IsNullOrEmpty(xml.CodigoUnidadeFamilia)) { crm.CodigoUnidadeFamilia = xml.CodigoUnidadeFamilia; } else { crm.AddNullProperty("NVE"); } if (xml.TemMensagem.HasValue) { if (xml.TemMensagem == true) { if (xml.DescricaoMensagem != null && xml.DescricaoMensagem != String.Empty) { crm.Mensagem = xml.DescricaoMensagem; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Descrição de Mensagem não enviada quando Tem Mensagem = Sim"; return(crm); } } crm.TemMensagem = (bool)xml.TemMensagem; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Tem Mensagem não enviado."; return(crm); } } else { crm.ConsideraOrcamentoMeta = null; crm.QuantidadeMultiplaProduto = null; crm.FaturamentoOutroProduto = null; crm.ExigeTreinamento = null; crm.CustoAtual = null; crm.RebatePosVendaAtivado = null; crm.Showroom = null; } if (xml.EKit.HasValue) { crm.EKit = xml.EKit.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "É kit não enviado."; return(crm); } if (xml.EKit.Value) { if (xml.ProdutosFilhos == null || xml.ProdutosFilhos.Count == 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto definido como Kit mas não foram enviados os produtos filhos."; return(crm); } } else { if (xml.ProdutosFilhos != null && xml.ProdutosFilhos.Count > 0) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto definido como Kit = Não, mas foram enviados os produtos filhos."; return(crm); } } if (xml.TipoItem.HasValue) { crm.TipoItem = xml.TipoItem.Value; } #endregion return(crm); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem); usuarioIntegracao = usuario; Estado estado = null; Moeda moeda = null; UnidadeNegocio undadeNegocio = null; Guid? produtoId = null; Intelbras.Message.Helper.MSG0086 xml = this.CarregarMensagem <Pollux.MSG0086>(mensagem); #region Validações //Estado if (!String.IsNullOrEmpty(xml.Estado)) { estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.Estado); if (estado == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado: " + xml.Estado + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Estado obrigatório"; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Unidade de Negocio if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { undadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (undadeNegocio == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio: " + xml.CodigoUnidadeNegocio + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enviado ou fora do padrão(Guid)."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Moeda if (!String.IsNullOrEmpty(xml.Moeda)) { moeda = new Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorNome(xml.Moeda); if (moeda == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda: " + xml.Moeda + " não encontrada no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Moeda não enviado ou fora do padrão(Guid)."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } //Produto - não obrigatório if (!String.IsNullOrEmpty(xml.CodigoProduto)) { Product produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).BuscaPorCodigo(xml.CodigoProduto); if (produto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Produto código: " + xml.CodigoProduto + " não encontrado no Crm."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); } else { produtoId = produto.ID.Value; } } #endregion List <Intelbras.Message.Helper.Entities.ProdutoR1> lsTProdutos = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarPSDPPPSCF(undadeNegocio.ID.Value, moeda.ID.Value, estado.ID.Value, produtoId); if (lsTProdutos != null && lsTProdutos.Count > 0) { retorno.Add("ProdutosItens", lsTProdutos); resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Não foram encontrados registros que satisfaçam os critérios de pesquisa."; } retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0086R1>(numeroMensagem, retorno)); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { try { usuarioIntegracao = usuario; ClientePotencial clientePotencialConsulta = null; Oportunidade oportunidadeConsulta = null; var xml = this.CarregarMensagem <Pollux.MSG0269>(mensagem); Pollux.Entities.ProjetoItem projetoItem = new Pollux.Entities.ProjetoItem(); if (!string.IsNullOrEmpty(xml.NumeroProjeto)) { clientePotencialConsulta = new Servicos.LeadService(this.Organizacao, this.IsOffline).ObterPorNumeroProjeto(xml.NumeroProjeto); if (clientePotencialConsulta != null) { oportunidadeConsulta = new Servicos.RepositoryService().Oportunidade.BuscarPor(clientePotencialConsulta); } if (clientePotencialConsulta == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Valor do parâmetro " + xml.NumeroProjeto + " não encontrado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Parâmetro obrigatório para a consulta não enviado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } if (oportunidadeConsulta != null) { projetoItem.NumeroProjeto = clientePotencialConsulta.NumeroProjeto; projetoItem.ClassificacaoProjeto = 993520001; projetoItem.CodigoClientePotencial = oportunidadeConsulta.ClientePotencialOriginador.Id.ToString(); projetoItem.CodigoOportunidade = oportunidadeConsulta.Id.ToString(); projetoItem.SituacaoProjeto = ObterRazaoStatusOportunidade(oportunidadeConsulta); if (oportunidadeConsulta.RevendaIntegrador != null) { projetoItem.CodigoRevenda = oportunidadeConsulta.RevendaIntegrador.Id.ToString(); projetoItem.NomeRevenda = oportunidadeConsulta.RevendaIntegrador.Name; } if (oportunidadeConsulta.Distribuidor != null) { projetoItem.CodigoDistribuidor = oportunidadeConsulta.Distribuidor.Id.ToString(); projetoItem.NomeDistribuidor = oportunidadeConsulta.Distribuidor.Name; } if (oportunidadeConsulta.Executivo != null) { projetoItem.CodigoExecutivo = oportunidadeConsulta.Executivo.Id.ToString(); projetoItem.NomeExecutivo = oportunidadeConsulta.Executivo.Name; } projetoItem.CNPJCliente = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); projetoItem.RazaoSocial = clientePotencialConsulta.NomeDaEmpresa; projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato; if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial)) { projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial; } projetoItem.EmailContatoCliente = clientePotencialConsulta.Email; projetoItem.TipoProjeto = clientePotencialConsulta.TipoProjeto; if (clientePotencialConsulta.EnvolverEngenharia) { projetoItem.EnvolverEngenharia = 993520000; } else { projetoItem.EnvolverEngenharia = 993520001; } projetoItem.ReceitaEstimada = clientePotencialConsulta.ValorEstimado; projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada; UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id); if (unidadeNegocio != null) { projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; projetoItem.NomeUnidadeNegocio = unidadeNegocio.Nome; } projetoItem.DataCadastro = clientePotencialConsulta.DataCriacao; projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao; if (clientePotencialConsulta.CotacaoEnviada.HasValue) { projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada; } if (oportunidadeConsulta.DataEnvioCotacao.HasValue) { projetoItem.DataEnvioCotacao = oportunidadeConsulta.DataEnvioCotacao; } if (oportunidadeConsulta.TeveReuniao.HasValue) { projetoItem.TeveReuniao = oportunidadeConsulta.TeveReuniao; } if (oportunidadeConsulta.DataReuniao.HasValue) { projetoItem.DataReuniao = oportunidadeConsulta.DataReuniao; } if (oportunidadeConsulta.DataEstimativaAprovacao.HasValue) { projetoItem.DataEstimativaAprovacao = oportunidadeConsulta.DataEstimativaAprovacao; } if (oportunidadeConsulta.PropostaAprovada.HasValue) { projetoItem.PropostaAprovada = oportunidadeConsulta.PropostaAprovada; } if (oportunidadeConsulta.DataAprovacao.HasValue) { projetoItem.DataAprovacao = oportunidadeConsulta.DataAprovacao; } if (oportunidadeConsulta.DataEnvioPedidos.HasValue) { projetoItem.DataEnvioPedidos = oportunidadeConsulta.DataEnvioPedidos; } if (oportunidadeConsulta.PedidosFaturados.HasValue) { projetoItem.PedidosFaturados = oportunidadeConsulta.PedidosFaturados; } Usuario proprietarioOportunidade = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("opportunity", "opportunityid", oportunidadeConsulta.Id); if (proprietarioOportunidade != null) { projetoItem.CodigoExecutivoIntelbras = proprietarioOportunidade.Id.ToString(); projetoItem.NomeExecutivoIntelbras = proprietarioOportunidade.NomeCompleto; } } else { projetoItem.NumeroProjeto = clientePotencialConsulta.NumeroProjeto; projetoItem.ClassificacaoProjeto = 993520000; projetoItem.CodigoClientePotencial = clientePotencialConsulta.Id.ToString(); projetoItem.SituacaoProjeto = ObterRazaoStatusClientePotencial(clientePotencialConsulta); if (clientePotencialConsulta.RevendaIntegrador != null) { projetoItem.CodigoRevenda = clientePotencialConsulta.RevendaIntegrador.Id.ToString(); projetoItem.NomeRevenda = clientePotencialConsulta.RevendaIntegrador.Name; } if (clientePotencialConsulta.Distribuidor != null) { projetoItem.CodigoDistribuidor = clientePotencialConsulta.Distribuidor.Id.ToString(); projetoItem.NomeDistribuidor = clientePotencialConsulta.Distribuidor.Name; } if (clientePotencialConsulta.Executivo != null) { projetoItem.CodigoExecutivo = clientePotencialConsulta.Executivo.Id.ToString(); projetoItem.NomeExecutivo = clientePotencialConsulta.Executivo.Name; } projetoItem.CNPJCliente = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); projetoItem.RazaoSocial = clientePotencialConsulta.NomeDaEmpresa; projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato; if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial)) { projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial; } projetoItem.EmailContatoCliente = clientePotencialConsulta.Email; projetoItem.TipoProjeto = clientePotencialConsulta.TipoProjeto; if (clientePotencialConsulta.EnvolverEngenharia) { projetoItem.EnvolverEngenharia = 993520000; } else { projetoItem.EnvolverEngenharia = 993520001; } projetoItem.ReceitaEstimada = clientePotencialConsulta.ValorEstimado; projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada; UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id); if (unidadeNegocio != null) { projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; projetoItem.NomeUnidadeNegocio = unidadeNegocio.Nome; } projetoItem.DataCadastro = clientePotencialConsulta.DataCriacao; projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao; if (clientePotencialConsulta.CotacaoEnviada.HasValue) { projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada; } Usuario proprietario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("lead", "leadid", clientePotencialConsulta.Id); if (proprietario != null) { projetoItem.CodigoExecutivoIntelbras = proprietario.Id.ToString(); projetoItem.NomeExecutivoIntelbras = proprietario.NomeCompleto; } if (clientePotencialConsulta.TipoSolucao.HasValue) { projetoItem.TipoSolucao = clientePotencialConsulta.TipoSolucao; } } #region Endereço projetoItem.EnderecoClienteFinal = new Pollux.Entities.Endereco(); if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1CEP)) { projetoItem.EnderecoClienteFinal.CEP = clientePotencialConsulta.Endereco1CEP.Replace("-", "").PadLeft(8, '0'); } ; projetoItem.EnderecoClienteFinal.Logradouro = clientePotencialConsulta.Endereco1Rua; projetoItem.EnderecoClienteFinal.Numero = clientePotencialConsulta.Endereco1Numero; if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1Complemento)) { projetoItem.EnderecoClienteFinal.Complemento = clientePotencialConsulta.Endereco1Complemento; } projetoItem.EnderecoClienteFinal.Bairro = clientePotencialConsulta.Endereco1Bairro; if (clientePotencialConsulta.Endereco1Municipioid != null) { Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(clientePotencialConsulta.Endereco1Municipioid.Id); projetoItem.EnderecoClienteFinal.NomeCidade = municipio.Nome; projetoItem.EnderecoClienteFinal.Cidade = municipio.ChaveIntegracao; } if (clientePotencialConsulta.Endereco1Estadoid != null) { Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(clientePotencialConsulta.Endereco1Estadoid.Id); if (estado != null) { projetoItem.EnderecoClienteFinal.UF = estado.SiglaUF; projetoItem.EnderecoClienteFinal.Estado = estado.ChaveIntegracao; } } if (clientePotencialConsulta.Endereco1Pais != null) { Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(clientePotencialConsulta.Endereco1Pais.Id); if (pais != null) { projetoItem.EnderecoClienteFinal.NomePais = pais.Nome; projetoItem.EnderecoClienteFinal.Pais = pais.Nome; } } #endregion #region Atividades Projeto projetoItem.ListaAtividadesProjeto = new List <Pollux.Entities.AtividadeProjeto>(); List <Postagem> lstAtividadesClientePotencial = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(clientePotencialConsulta.Id); if (oportunidadeConsulta != null) { List <Postagem> lstAtividadesOportunidade = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(oportunidadeConsulta.Id); if (lstAtividadesOportunidade.Count > 0) { foreach (Postagem postagem in lstAtividadesOportunidade) { Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto(); atividadeProjeto.DataAtividade = postagem.CriadoEm; atividadeProjeto.CodigoContato = postagem.UsuarioAtividade.Id.ToString(); atividadeProjeto.UsuarioAtividade = postagem.UsuarioAtividade.Name; atividadeProjeto.DescricaoAtividade = postagem.Texto; projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto); } } } if (lstAtividadesClientePotencial.Count > 0) { foreach (Postagem postagem in lstAtividadesClientePotencial) { Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto(); atividadeProjeto.DataAtividade = postagem.CriadoEm; atividadeProjeto.CodigoContato = postagem.UsuarioAtividade.Id.ToString(); atividadeProjeto.UsuarioAtividade = postagem.UsuarioAtividade.Name; atividadeProjeto.DescricaoAtividade = postagem.Texto; projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto); } } #endregion #region Anexos Projeto projetoItem.ListaAnexosProjeto = new List <Pollux.Entities.AnexoProjeto>(); if (oportunidadeConsulta != null) { List <DocumentoSharePoint> lstAnexosOportunidade = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(oportunidadeConsulta.ID.Value); foreach (DocumentoSharePoint anexo in lstAnexosOportunidade) { try { string urlSite = ConfigurationManager.GetSettingValue("UrlSiteSharePoint"); string urlFolderDetail = ""; if (!string.IsNullOrEmpty(anexo.UrlAbsoluta)) { urlFolderDetail = anexo.UrlAbsoluta; } else if (!string.IsNullOrEmpty(anexo.UrlRelativa)) { urlFolderDetail = urlSite + "/opportunity/" + anexo.UrlRelativa; } using (ClientContext spClientContext = new ClientContext(urlSite)) { spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain); var rootWeb = spClientContext.Web; Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail); if (pastaPrincipal.Files.AreItemsAvailable) { spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders); spClientContext.ExecuteQuery(); FolderCollection folderCollection = pastaPrincipal.Folders; FileCollection fileCollection = pastaPrincipal.Files; foreach (var arquivo in fileCollection) { Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto(); anexoProjeto.NomeArquivo = arquivo.Name; anexoProjeto.DataArquivo = arquivo.TimeCreated; anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name; anexoProjeto.URL = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl); projetoItem.ListaAnexosProjeto.Add(anexoProjeto); } } } } catch { continue; } } } List <DocumentoSharePoint> lstAnexosClientePotencial = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(clientePotencialConsulta.ID.Value); foreach (DocumentoSharePoint anexo in lstAnexosClientePotencial) { try { string urlSite = ConfigurationManager.GetSettingValue("UrlSiteSharePoint"); string urlFolderDetail = ""; if (!string.IsNullOrEmpty(anexo.UrlAbsoluta)) { urlFolderDetail = anexo.UrlAbsoluta; } else if (!string.IsNullOrEmpty(anexo.UrlRelativa)) { urlFolderDetail = urlSite + "/lead/" + anexo.UrlRelativa; } using (ClientContext spClientContext = new ClientContext(urlSite)) { spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain); var rootWeb = spClientContext.Web; Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail); spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders); spClientContext.ExecuteQuery(); FolderCollection folderCollection = pastaPrincipal.Folders; FileCollection fileCollection = pastaPrincipal.Files; foreach (var arquivo in fileCollection) { Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto(); anexoProjeto.NomeArquivo = arquivo.Name; anexoProjeto.DataArquivo = arquivo.TimeLastModified; anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name; anexoProjeto.URL = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl); projetoItem.ListaAnexosProjeto.Add(anexoProjeto); } } } catch { continue; } } #endregion #region Produtos Projeto projetoItem.ListaProdutosProjeto = new List <Pollux.Entities.ProdutoProjeto>(); List <ProdutoProjeto> lstProdutosClientePotencial = new Servicos.ProdutoProjetoService(this.Organizacao, this.IsOffline).ListarPorClientePotencial(clientePotencialConsulta.Id); if (lstProdutosClientePotencial.Count > 0) { foreach (ProdutoProjeto produtoCliente in lstProdutosClientePotencial) { Pollux.Entities.ProdutoProjeto produtoProjeto = new Pollux.Entities.ProdutoProjeto(); var produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(produtoCliente.Produto.Id); produtoProjeto.CodigoProdutoClientePotencial = produtoCliente.Id.ToString(); produtoProjeto.CodigoProduto = produto.Codigo; produtoProjeto.DescricaoProduto = produto.Nome; produtoProjeto.Quantidade = produtoCliente.Quantidade; produtoProjeto.PrecoUnitario = produtoCliente.ValorUnitario; produtoProjeto.ValorTotal = produtoCliente.ValorTotal; projetoItem.ListaProdutosProjeto.Add(produtoProjeto); } } #endregion if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!"; retorno.Add("ProjetoItem", projetoItem); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } }
// TREINAMENTO // CASO DE USO 1 – GERAÇÃO TREINAMENTO E CERTIFICAÇÃO DO CANAL public void GeracaoTreinamentoECertificacaoDoCanal() { Trace = new SDKore.Helper.Trace("GeraTreinamento"); mensagemLog = new List <string>(); InserirLog(DateTime.Now + " - Inicio Geração Treinamento e Certificacao do Canal"); ParametroGlobal paramGlobal = ParametroGlobal.ListarParamGlobalPorTipoParam((int)Intelbras.CRM2013.Domain.Enum.TipoParametroGlobal.DatasTrimestre).FirstOrDefault(); if (paramGlobal == null) { throw new ApplicationException("A execução do monitoramento foi interrompida, o parâmetro global não foi encontrado ou está preenchido com valores incorretos."); } List <Conta> lstContas = ContaService.ListarContasParticipantes(); InserirLog(DateTime.Now + " - Foram encontrados " + lstContas.Count + " participantes do PCI para processar!"); foreach (Conta canal in lstContas) { try { InserirLog(string.Empty); InserirLog(DateTime.Now + " -- Canal[" + canal.CodigoMatriz + "]"); List <TreinamentoCanal> lstTreinamentoCanal = this.ListarTreinamentoPorCanal(canal.ID.Value); InserirLog(DateTime.Now + " --- Foram encontrados " + lstTreinamentoCanal.Count() + " treinamento do canal!"); // Inativa status de treinamentos e certificações this.InativaTreinamentosDeCanal(lstTreinamentoCanal); // lista produtos portifolios List <ProdutoPortfolio> lstProdutoPortifolio = new Servicos.ProdutoService(OrganizationName, isOffline).ProdutosPortfolio(canal, canal.Classificacao.Id, null); InserirLog(DateTime.Now + " --- Foram encontrados " + lstProdutoPortifolio.Count + " produtos do portfolio!"); // filtra produto por produto que exija treinamento var lstProdPortExigeTrein = lstProdutoPortifolio.Where(x => x.Product.ExigeTreinamento == true); InserirLog(DateTime.Now + " --- Foram encontrados " + lstProdPortExigeTrein.Count() + " produtos do portfolio que exigem treinamento!"); // para cada produto portifolio foreach (var prodPort in lstProdPortExigeTrein) { InserirLog(DateTime.Now + " ---- Produto: " + prodPort.Product.Codigo + " - Unidade Negocio: " + prodPort.Product.UnidadeNegocio.Name); List <CompromissosDoCanal> lstCompCanal = new List <CompromissosDoCanal>(); // se forma de apuração de beneficio e compromisso do canal for por filial if (canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Por_Filiais || canal.TipoConta == (int)Enum.Conta.MatrizOuFilial.Matriz) { // compromisso do canal 33 lstCompCanal = CompromissosDoCanal.ListarPorCod33EPorMatriz(canal.ID.Value, prodPort.Product.UnidadeNegocio.Id); } else if (canal.ApuracaoBeneficiosCompromissos.Value == (int)Enum.Conta.ApuracaoDeBeneficiosECompromissos.Centralizada_Na_Matriz && canal.TipoConta == (int)Enum.Conta.MatrizOuFilial.Filial) { lstCompCanal = CompromissosDoCanal.ListarPorCod33EPorMatriz(canal.ContaPrimaria.Id, prodPort.Product.UnidadeNegocio.Id); } InserirLog(DateTime.Now + " ----- Foram encontrados " + lstCompCanal.Count() + " Compromisso do Canal "); if (lstCompCanal.Count() > 0) { // lista de produto treinamento certificação List <ProdutoTreinamento> lstProdTrei = ProdutoTreinamento.ListarPorProduto(prodPort.Produto.Id); InserirLog(DateTime.Now + " ------ Foram encontrados " + lstProdTrei.Count() + " Produtos do Treinamento "); // Cria TReinamento do canal ou ativa se ja existir foreach (var prodTrei in lstProdTrei) { InserirLog(DateTime.Now + " ------- Produto por Treinamento Certificação: " + prodTrei.Treinamento.Name); this.CriaTreinamentoCanalOuAtiva(prodTrei.Treinamento.Id, prodTrei.Treinamento.Name, canal, lstCompCanal[0].ID); } } } } catch (Exception ex) { string mensagem = SDKore.Helper.Error.Handler(ex); InserirLog(DateTime.Now + " - ERRO: " + mensagem); } } InserirLog(string.Empty); InserirLog(DateTime.Now + " - Fim GeracaoTreinamentoECertificacaoDoCanal"); this.EnviaEmailDeLog("Geracao Treinamento e Certificação"); }
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); }