protected void btnSalvar_Click(object sender, EventArgs e)
 {
     try
     {
         Domain.Servicos.PoliticaComercialService polComServ = new Domain.Servicos.PoliticaComercialService(ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"), false);
         polComServ.InsereProdutosporFamiliaComercial(Request["politicaComercialId"], hdFamilias.Value, Convert.ToInt32(txtQtdIni.Text), Convert.ToInt32(txtQtdFin.Text), Convert.ToDouble(txtFator.Text));
         pnCampos.Visible = false;
         ClientScript.RegisterStartupScript(typeof(Page), "fechar", "window.close();", true);
     }
     catch (Exception erro)
     {
         ClientScript.RegisterStartupScript(typeof(Page), "fechar", "alert('" + erro.Message + "')", true);
     }
 }
예제 #2
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            PoliticaComercialServ = new Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline);

            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService        service        = serviceFactory.CreateOrganizationService(null);

            try
            {
                Entity entidade = new Entity();
                Domain.Model.PoliticaComercial politicaComercialAtual = new Domain.Model.PoliticaComercial(context.OrganizationName, context.IsExecutingOffline);

                if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                {
                    switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                    {
                    case Domain.Enum.Plugin.MessageName.Create:

                        #region Popula o objeto politicaComercialAtual com o contexto

                        entidade = (Entity)context.InputParameters["Target"];
                        politicaComercialAtual = entidade.Parse <Domain.Model.PoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                        #endregion
                        if (politicaComercialAtual.Status.Value == (int)Domain.Enum.PoliticaComercial.Status.Ativo)
                        {
                            JaExistePoliticaComercial(politicaComercialAtual);
                        }

                        break;

                    case Domain.Enum.Plugin.MessageName.Update:

                        if (context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity)
                        {
                            #region Popula o objeto politicaComercial com a pre-image

                            entidade = (Entity)context.PreEntityImages["imagem"];
                            Domain.Model.PoliticaComercial politicaOriginal = entidade.Parse <Domain.Model.PoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                            #endregion

                            #region Popula objeto politicaComercial com o contexto alterado

                            Entity entidadeAlterada = (Entity)context.InputParameters["Target"];
                            Domain.Model.PoliticaComercial politicaAlterada = entidadeAlterada.Parse <Domain.Model.PoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                            #endregion

                            #region Popula objeto politicaComercial mesclando o que foi alterado com os dados originais, para efeito de validação

                            politicaComercialAtual.Categoria       = politicaAlterada.Categoria != null ? politicaAlterada.Categoria : politicaOriginal.Categoria;
                            politicaComercialAtual.Classificacao   = politicaAlterada.Classificacao != null ? politicaAlterada.Classificacao : politicaOriginal.Classificacao;
                            politicaComercialAtual.Estabelecimento = politicaAlterada.Estabelecimento != null ? politicaAlterada.Estabelecimento : politicaOriginal.Estabelecimento;
                            politicaComercialAtual.ID = politicaAlterada.ID.HasValue ? politicaAlterada.ID : politicaOriginal.ID;
                            politicaComercialAtual.AplicarPoliticaPara = politicaAlterada.AplicarPoliticaPara != null ? politicaAlterada.AplicarPoliticaPara : politicaOriginal.AplicarPoliticaPara;
                            politicaComercialAtual.UnidadeNegocio      = politicaAlterada.UnidadeNegocio != null ? politicaAlterada.UnidadeNegocio : politicaOriginal.UnidadeNegocio;
                            politicaComercialAtual.TipoDePolitica      = politicaAlterada.TipoDePolitica != null ? politicaAlterada.TipoDePolitica : politicaOriginal.TipoDePolitica;
                            politicaComercialAtual.DataInicio          = politicaAlterada.DataInicio.HasValue ? politicaAlterada.DataInicio : politicaOriginal.DataInicio;
                            politicaComercialAtual.DataFim             = politicaAlterada.DataFim.HasValue ? politicaAlterada.DataFim : politicaOriginal.DataFim;

                            politicaComercialAtual.Status = politicaAlterada.Status != null ? politicaAlterada.Status : politicaOriginal.Status;

                            #endregion
                            if (politicaComercialAtual.Status.Value == (int)Domain.Enum.PoliticaComercial.Status.Ativo)
                            {
                                List <Guid> lstPoliticaEstado = new List <Guid>(), lstPoliticaCanais = new List <Guid>();
                                //Se ele tiver alterado o status ou a data de inicio ou de fim verifica as services de estado e canais relacionados
                                if ((politicaAlterada.Status != null && politicaOriginal.Status != politicaAlterada.Status) ||
                                    politicaAlterada.DataInicio != null && politicaOriginal.DataInicio != politicaAlterada.DataInicio ||
                                    politicaAlterada.DataFim != null && politicaOriginal.DataFim != politicaAlterada.DataFim)
                                {
                                    lstPoliticaEstado = new Intelbras.CRM2013.Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline, service).ListarEstadosDaPoliticaComercial(politicaComercialAtual.ID.Value);
                                    lstPoliticaCanais = new Intelbras.CRM2013.Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline, service).ListarCanaisDaPoliticaComercial(politicaComercialAtual.ID.Value);

                                    bool respostaEstados = false, respostaCanais = false;
                                    if (lstPoliticaEstado.Count > 0)
                                    {
                                        respostaEstados = new Intelbras.CRM2013.Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline, service).VerificarDuplicidadePoliticaRegistros(politicaComercialAtual, lstPoliticaEstado, "estado", false);
                                    }
                                    if (lstPoliticaCanais.Count > 0)
                                    {
                                        respostaCanais = new Intelbras.CRM2013.Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline, service).VerificarDuplicidadePoliticaRegistros(politicaComercialAtual, lstPoliticaCanais, "conta", false);
                                    }

                                    if (respostaEstados == true)
                                    {
                                        throw new InvalidPluginExecutionException("(CRM)Não é possível realizar a operação: O estado informado já está vinculado à outra política comercial com o mesmo tipo, aplicação, estabelecimento, unidade de negócio e data de vigência");
                                    }

                                    if (respostaCanais == true)
                                    {
                                        throw new InvalidPluginExecutionException("(CRM)Não é possível realizar a operação: O canal informado já está vinculado à outra política comercial com o mesmo tipo, aplicação, estabelecimento, unidade de negócio e data de vigência");
                                    }

                                    if (lstPoliticaEstado.Count == 0 && lstPoliticaCanais.Count == 0)
                                    {
                                        JaExistePoliticaComercial(politicaComercialAtual);
                                    }
                                }
                            }
                        }

                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                SDKore.Helper.Error.Handler(ex);
                throw;
            }
        }
예제 #3
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            PoliticaComercialServ = new Domain.Servicos.PoliticaComercialService(context.OrganizationName, context.IsExecutingOffline);

            try
            {
                Entity entidade = new Entity();
                Domain.Model.ProdutoPoliticaComercial produtoPCAtual = new Domain.Model.ProdutoPoliticaComercial(context.OrganizationName, context.IsExecutingOffline);

                if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                {
                    switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                    {
                    case Domain.Enum.Plugin.MessageName.Create:

                        #region Popula o objeto politicaComercialAtual com o contexto

                        entidade       = (Entity)context.InputParameters["Target"];
                        produtoPCAtual = entidade.Parse <Domain.Model.ProdutoPoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                        #endregion

                        ValidacoesFormulario(produtoPCAtual);
                        JaExisteProdutoIntervalo(produtoPCAtual);


                        break;

                    case Domain.Enum.Plugin.MessageName.Update:

                        if (context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity)
                        {
                            #region Popula o objeto politicaComercial com a pre-image

                            entidade = (Entity)context.PreEntityImages["imagem"];
                            Domain.Model.ProdutoPoliticaComercial ProdutoPCOriginal = entidade.Parse <Domain.Model.ProdutoPoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                            #endregion

                            #region Popula objeto politicaComercial com o contexto alterado

                            Entity entidadeAlterada = (Entity)context.InputParameters["Target"];
                            Domain.Model.ProdutoPoliticaComercial produtoPCAlterada = entidadeAlterada.Parse <Domain.Model.ProdutoPoliticaComercial>(context.OrganizationName, context.IsExecutingOffline);

                            #endregion

                            #region Popula objeto politicaComercial mesclando o que foi alterado com os dados originais, para efeito de validação

                            produtoPCAtual.PoliticaComercial = produtoPCAlterada.PoliticaComercial != null ? produtoPCAlterada.PoliticaComercial : ProdutoPCOriginal.PoliticaComercial;
                            produtoPCAtual.Produto           = produtoPCAlterada.Produto != null ? produtoPCAlterada.Produto : ProdutoPCOriginal.Produto;
                            produtoPCAtual.QtdInicial        = produtoPCAlterada.QtdInicial != null ? produtoPCAlterada.QtdInicial : ProdutoPCOriginal.QtdInicial;
                            produtoPCAtual.QtdFinal          = produtoPCAlterada.QtdFinal != null ? produtoPCAlterada.QtdFinal : ProdutoPCOriginal.QtdFinal;
                            produtoPCAtual.ID = produtoPCAlterada.ID.HasValue ? produtoPCAlterada.ID : ProdutoPCOriginal.ID;
                            produtoPCAtual.DataInicioVigencia = produtoPCAlterada.DataInicioVigencia != null ? produtoPCAlterada.DataInicioVigencia : ProdutoPCOriginal.DataInicioVigencia;
                            produtoPCAtual.DataFimVigencia    = produtoPCAlterada.DataFimVigencia != null ? produtoPCAlterada.DataFimVigencia : ProdutoPCOriginal.DataFimVigencia;


                            #endregion
                            ValidacoesFormulario(produtoPCAtual);
                            JaExisteProdutoIntervalo(produtoPCAtual);
                        }

                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                var msg = Util.Utilitario.TratarErro(ex);
                throw new InvalidPluginExecutionException(msg);
            }
        }