Пример #1
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                IWorkflowContext            workflowContext = context.GetExtension <IWorkflowContext>();
                IOrganizationServiceFactory serviceFactory  = context.GetExtension <IOrganizationServiceFactory>();
                IOrganizationService        service         = serviceFactory.CreateOrganizationService(workflowContext.UserId);

                RepositoryService     RepositoryService = new RepositoryService(workflowContext.OrganizationName, workflowContext.IsExecutingOffline);
                HistoricoDistribuidor historico         = RepositoryService.HistoricoDistribuidor.Retrieve(workflowContext.PrimaryEntityId);
                string   datasExecucao    = SDKore.Configuration.ConfigurationManager.GetSettingValue("Intelbras.CRM2013.Application.Workflow.DataExecucaohistoricoDistribuidor", true);
                string[] datas            = datasExecucao.Split(';');
                bool     controleExecucao = false;
                foreach (string data in datas)
                {
                    if (Convert.ToDateTime(data + "/" + DateTime.Now.Year.ToString()) == DateTime.Now.Date)
                    {
                        //if (DateTime.Now.Day == 1 && (DateTime.Now.Month == 1 || DateTime.Now.Month == 4 || DateTime.Now.Month == 7 || DateTime.Now.Month == 10))
                        //if (DateTime.Now.Day == 24 && (DateTime.Now.Month == 1 || DateTime.Now.Month == 3 || DateTime.Now.Month == 7 || DateTime.Now.Month == 10))
                        //{
                        //1- Identificar os registros ativos na entidade "Histórico de Ditribuidores" cuja data de início seja maior ou igual a data de início do trimestre
                        if (historico.DataInicio.HasValue && historico.DataInicio.Value.Date <= DateTime.Now.Date && historico.DataFim.HasValue && historico.DataFim.Value.Date >= DateTime.Now.Date)
                        {
                            RepositoryService.HistoricoDistribuidor.AlterarStatus(historico.ID.Value, 993520000); //Fluxo Concluído 993.520.000

                            //2- Nas revendas relacionadas à esses registros, alterar o valor do atributo "Distribuidor Preferencial" para registrar o novo distribuidor.
                            Conta conta = RepositoryService.Conta.Retrieve(historico.Revenda.Id);
                            conta.ID = historico.Revenda.Id;
                            RepositoryService.Conta.Update(conta);

                            //Cada alteração deverá disparar uma mensagem "MSG0072 - REGISTRA_CONTA" para atualizar os sistemas envolvidos.
                            string nomeAbrevMatriEconom = String.Empty;
                            string nomeAbrevRet         = String.Empty;
                            string codigoClienteRet     = String.Empty;
                            var    mensagem             = new Domain.Integracao.MSG0072(workflowContext.OrganizationName, workflowContext.IsExecutingOffline);
                            mensagem.Enviar(conta, ref nomeAbrevRet, ref codigoClienteRet, ref nomeAbrevMatriEconom);
                            controleExecucao = true;
                        }
                        else if (historico.DataFim.HasValue && historico.DataFim.Value.Date < DateTime.Now.Date)
                        {
                            RepositoryService.HistoricoDistribuidor.AlterarStatus(historico.ID.Value, 993520000); //Fluxo Concluído 993.520.000
                        }
                        else
                        {
                            //Mantém o registro ativo
                            RepositoryService.HistoricoDistribuidor.AlterarStatus(historico.ID.Value, 0);
                        }
                    }
                }
                if (!controleExecucao)
                {
                    //Mantém o registro ativo
                    RepositoryService.HistoricoDistribuidor.AlterarStatus(historico.ID.Value, 0);
                }
            }
            catch (Exception e)
            {
                SDKore.Helper.Error.Create(e, System.Diagnostics.EventLogEntryType.Information);
                throw new InvalidWorkflowException(e.Message + " :: " + e.StackTrace, e);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("PCI-Log de Atualização do Distribuidor Preferencial das Revendas");
            Console.WriteLine("Inicio do processo.");

            string organizationName       = SDKore.Configuration.ConfigurationManager.GetSettingValue("OrganizacaoIntelbras");
            var    parametroGlobalService = new ParametroGlobalService(organizationName, false);

            var parametroGlobal = parametroGlobalService.ObterPor((int)TipoParametroGlobal.DataHistoricoDistribuidorRevenda);

            if (parametroGlobal == null || string.IsNullOrEmpty(parametroGlobal.Valor))
            {
                Console.WriteLine("Erro: (CRM) Parametro Global Data Histórico Distribuidor não configurado.");
                Console.WriteLine("Fim do processo.");
                GravaLog("Erro: (CRM) Parametro Global Data Histórico Distribuidor não configurado.");
                return;
            }

            var datasExecucao = parametroGlobal.Valor;

            string[] datas = datasExecucao.Split(';');

            foreach (string data in datas)
            {
                Console.WriteLine("Processando.");
                DateTime dataProcessar = Convert.ToDateTime(String.Format("{0}/{1}", data, DateTime.Now.Year.ToString()));
                if (dataProcessar == DateTime.Now.Date)
                {
                    var service      = new HistoricoDistribuidorService(organizationName, false);
                    var contaService = new ContaService(organizationName, false);
                    var historicos   = service.ListarPorPeriodo(dataProcessar);

                    foreach (var historico in historicos)
                    {
                        try
                        {
                            //2- Nas revendas relacionadas à esses registros, alterar o valor do atributo "Distribuidor Preferencial" para registrar o novo distribuidor.
                            var conta = contaService.BuscaConta(historico.Revenda.Id);
                            Console.WriteLine("Processando: " + conta.RazaoSocial);
                            conta.ID = historico.Revenda.Id;
                            conta.IntegrarNoPlugin      = true;
                            conta.DistribuidorPrincipal = new Lookup(historico.Distribuidor.Id, "");
                            contaService.Persistir(conta);

                            //Cada alteração deverá disparar uma mensagem "MSG0072 - REGISTRA_CONTA" para atualizar os sistemas envolvidos.
                            string nomeAbrevMatriEconom = String.Empty;
                            string nomeAbrevRet         = String.Empty;
                            string codigoClienteRet     = String.Empty;
                            var    mensagem             = new Domain.Integracao.MSG0072(organizationName, false);
                            mensagem.Enviar(conta, ref nomeAbrevRet, ref codigoClienteRet, ref nomeAbrevMatriEconom);

                            service.AlterarStatus(historico.ID.Value, 993520000); //Fluxo Concluído 993.520.000
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Erro : " + ex.Message);
                            GravaLog(ex.Message);
                        }
                    }
                }
            }
        }