示例#1
0
        private Intelbras.Message.Helper.MSG0155 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm)
        {
            Intelbras.Message.Helper.MSG0155 objPollux = new Pollux.MSG0155(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), crm.Nome.Truncate(40));

            objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString();
            objPollux.ValorAprovado = crm.ValorAprovado;

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.NomeSolicitacaoBeneficio = crm.Nome;
            }
            else
            {
                throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido.");
            }

            if (crm.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida.");
            }

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular;
            }


            if (crm.BeneficioCanal != null)
            {
                objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioCanal não preenchido.");
            }

            if (crm.ValorSolicitado.HasValue)
            {
                objPollux.ValorSolicitado = crm.ValorSolicitado.Value;
            }


            objPollux.DescricaoSolicitacao = crm.Descricao;

            if (crm.StatusSolicitacao.HasValue)
            {
                objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value;
            }

            if (crm.State.HasValue)
            {
                objPollux.Situacao = crm.State.Value;
            }

            if (crm.Status.HasValue)
            {
                objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value;
            }

            if (crm.FormaPagamento != null)
            {
                objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) FormaPagamento não preenchida.");
            }

            if (crm.Canal != null)
            {
                objPollux.CodigoConta = crm.Canal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) Canal não preenchido.");
            }

            if (crm.BeneficioPrograma != null)
            {
                objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString();

                Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id);
                if (benefProg != null && benefProg.Codigo.HasValue)
                {
                    objPollux.BeneficioCodigo = benefProg.Codigo.Value;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioPrograma não preenchido.");
            }

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


            if (crm.TipoSolicitacao != null)
            {
                objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado.");
            }

            if (crm.SituacaoIrregularidades.HasValue)
            {
                objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value;
            }
            objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value);
            if (crm.AlteradaParaStockRotation.HasValue)
            {
                objPollux.AlteradaStockRotation = crm.AlteradaParaStockRotation.Value;
            }
            else
            {
                objPollux.AlteradaStockRotation = false;
            }

            if (crm.TipoPriceProtection.HasValue)
            {
                objPollux.TipoPriceProtection = crm.TipoPriceProtection.Value;
            }
            else
            {
                objPollux.TipoPriceProtection = (int)Enum.SolicitacaoBeneficio.TipoPriceProtection.Consumo;
            }
            //Novos Campos

            if (crm.AjusteSaldo.HasValue)
            {
                objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value;
            }

            if (crm.StatusCalculoPriceProtection.HasValue)
            {
                objPollux.StatusCalculoPriceProtection = crm.StatusCalculoPriceProtection.Value;
            }

            if (crm.ValorAbater.HasValue)
            {
                objPollux.ValorAbater = crm.ValorAbater.Value;
            }
            else
            {
                objPollux.ValorAbater = new decimal(0);
            }

            Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id);

            if (assistente != null)
            {
                objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value;
            }
            else
            {
                throw new ApplicationException("(CRM) Assistente não cadastrado / Obrigatório.");
            }

            Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id);

            if (supervisor != null)
            {
                objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
            }
            else
            {
                throw new ApplicationException("(CRM) Supervisor não cadastrado / Obrigatório.");
            }

            if (crm.Filial != null)
            {
                objPollux.CodigoFilial = crm.Filial.Id.ToString();
            }
            if (crm.StatusPagamento.HasValue)
            {
                objPollux.StatusPagamento = crm.StatusPagamento;
            }

            if (crm.ValorPago.HasValue)
            {
                objPollux.ValorPago = crm.ValorPago.Value;
            }

            if (crm.ValorCancelado.HasValue)
            {
                objPollux.ValorCancelado = crm.ValorCancelado.Value;
            }

            if (crm.DataCriacao.HasValue)
            {
                objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime();
            }
            else
            {
                throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório.");
            }

            if (crm.DataValidade.HasValue)
            {
                objPollux.DataValidade = crm.DataValidade;
            }
            else
            {
                throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório.");
            }

            if (crm.CondicaoPagamento != null)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id);
                if (condicaoPagamento != null)
                {
                    if (condicaoPagamento.Codigo.HasValue)
                    {
                        objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value;
                    }
                }
            }

            if (crm.DescartarVerba.HasValue)
            {
                objPollux.DescartarVerba = crm.DescartarVerba.Value;
            }

            if (!string.IsNullOrEmpty(crm.TrimestreCompetencia))
            {
                objPollux.TrimestreCompetencia = crm.TrimestreCompetencia;
            }
            else
            {
                throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório.");
            }

            objPollux.FormaCancelamento = crm.FormaCancelamento;

            return(objPollux);
        }
示例#2
0
        private Intelbras.Message.Helper.MSG0152 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm)
        {
            Intelbras.Message.Helper.MSG0152 objPollux = new Pollux.MSG0152(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40));

            objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString();
            objPollux.ValorAprovado = crm.ValorAprovado;

            if (!String.IsNullOrEmpty(crm.Nome))
            {
                objPollux.NomeSolicitacaoBeneficio = crm.Nome;
            }
            else
            {
                throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido.");
            }

            if (crm.UnidadedeNegocio != null)
            {
                UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id);
                if (unidadeNegocio != null)
                {
                    objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida.");
            }

            if (crm.ValorAcao.HasValue)
            {
                objPollux.ValorAcao = crm.ValorAcao.Value;
            }

            if (crm.ValorAcao.HasValue == false && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) Valor ação é obrigatório!");
            }

            if (!String.IsNullOrEmpty(crm.SituacaoIrregular))
            {
                objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular;
            }

            if (crm.AcaoSubsidiadaVmc != null)
            {
                objPollux.CodigoAcaoSubsidiadaVMC = crm.AcaoSubsidiadaVmc.Id.ToString();
            }

            if (crm.AcaoSubsidiadaVmc == null && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) AcaoSubsidiadaVmc não preenchida.");
            }

            if (crm.BeneficioCanal != null)
            {
                objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioCanal não preenchido.");
            }

            if (crm.ValorSolicitado.HasValue)
            {
                objPollux.ValorSolicitado = crm.ValorSolicitado.Value;
            }

            if (!String.IsNullOrEmpty(crm.Descricao))
            {
                objPollux.DescricaoSolicitacao = crm.Descricao;
            }

            if (crm.StatusSolicitacao.HasValue)
            {
                objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value;
            }

            if (crm.State.HasValue)
            {
                objPollux.Situacao = crm.State.Value;
            }
            else
            {
                objPollux.Situacao = 0; //ativo
            }
            if (crm.Status.HasValue)
            {
                objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value;
            }

            if (crm.FormaPagamento != null)
            {
                objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) FormaPagamento não preenchida.");
            }


            if (crm.DataIniAcao.HasValue)
            {
                objPollux.DataInicioAcao = crm.DataIniAcao.Value;
            }

            if (crm.DataFimAcao.HasValue)
            {
                objPollux.DataPrevistaRetornoAcao = crm.DataFimAcao.Value.ToLocalTime();
            }

            if (crm.DataFimAcao.HasValue == false && crm.AjusteSaldo == false)
            {
                throw new ArgumentException("(CRM) Data Prevista retorno ação é obrigatório!");
            }

            if (crm.Canal != null)
            {
                objPollux.CodigoConta = crm.Canal.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) Canal não preenchido.");
            }

            if (crm.BeneficioPrograma != null)
            {
                objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString();

                Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id);
                if (benefProg != null && benefProg.Codigo.HasValue)
                {
                    objPollux.BeneficioCodigo = benefProg.Codigo.Value;
                }
            }
            else
            {
                throw new ArgumentException("(CRM) BeneficioPrograma não preenchido.");
            }

            if (crm.AjusteSaldo.HasValue)
            {
                objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value;
            }

            if (crm.ValorAbater.HasValue)
            {
                objPollux.ValorAbater = (decimal)crm.ValorAbater.Value;
            }
            else
            {
                objPollux.ValorAbater = new decimal(0);
            }

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


            if (crm.TipoSolicitacao != null)
            {
                objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString();
            }
            else
            {
                throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado.");
            }

            if (crm.SituacaoIrregularidades.HasValue)
            {
                objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value;
            }
            objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value);

            //Novos Campos

            if (crm.Assistente == null)
            {
                throw new ArgumentException("(CRM) Assistente Na Solicitação não cadastrado / Campo Obrigatório.");
            }

            Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id);

            if (assistente != null)
            {
                objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value;
            }
            else
            {
                throw new ArgumentException("(CRM) Assistente não cadastrado / Obrigatório.");
            }
            Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id);

            if (supervisor != null)
            {
                objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS;
            }
            else
            {
                throw new ArgumentException("(CRM) Supervisor não cadastrado / Obrigatório.");
            }
            if (crm.Filial != null)
            {
                objPollux.CodigoFilial = crm.Filial.Id.ToString();
            }
            if (crm.StatusPagamento.HasValue)
            {
                objPollux.StatusPagamento = crm.StatusPagamento;
            }

            if (crm.ValorPago.HasValue)
            {
                objPollux.ValorPago = crm.ValorPago.Value;
            }

            if (crm.ValorCancelado.HasValue)
            {
                objPollux.ValorCancelado = crm.ValorCancelado.Value;
            }

            if (crm.DataCriacao.HasValue)
            {
                objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime();
            }
            else
            {
                objPollux.DataCriacao = DateTime.MinValue;
                //throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório.");
            }

            if (crm.DataValidade.HasValue)
            {
                objPollux.DataValidade = crm.DataValidade;
            }
            else
            {
                throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório.");
            }

            if (crm.CondicaoPagamento != null)
            {
                CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id);
                if (condicaoPagamento != null)
                {
                    if (condicaoPagamento.Codigo.HasValue)
                    {
                        objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value;
                    }
                }
            }

            if (crm.DescartarVerba.HasValue)
            {
                objPollux.DescartarVerba = crm.DescartarVerba.Value;
            }

            if (!string.IsNullOrEmpty(crm.TrimestreCompetencia))
            {
                objPollux.TrimestreCompetencia = crm.TrimestreCompetencia;
            }
            else
            {
                throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório.");
            }

            if (crm.FormaCancelamento.HasValue)
            {
                objPollux.FormaCancelamento = crm.FormaCancelamento.Value;
            }

            if (crm.ResultadoPrevisto.HasValue)
            {
                objPollux.ResultadoPrevisto = crm.ResultadoPrevisto.Value;
            }

            if (crm.ResultadoAlcancado.HasValue)
            {
                objPollux.ResultadoAlcancado = crm.ResultadoAlcancado.Value;
            }

            //Busca as unidades de negócio relacionadas ao Benefício do canal
            List <SolicitacaoXUnidades> lstUnidadesBenef = new Servicos.SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(crm.ID.Value);

            objPollux.UnidadesRelacionadas = this.ConverteLista(lstUnidadesBenef);

            #endregion

            return(objPollux);
        }