public bool ExisteDuplicidade(HistoricoDistribuidor historicoDistribuidor, Boolean create, ParametroGlobal qtdDistribuidorPreferencial) { if (historicoDistribuidor.Revenda != null) { if (create || (historicoDistribuidor.Status.HasValue && historicoDistribuidor.Status.Value == (int)Enum.HistoricoDistribuidor.Statecode.Ativo)) { var lista = new List <HistoricoDistribuidor>(); if (historicoDistribuidor.DataFim == null) { lista = RepositoryService.HistoricoDistribuidor.ListarPorRevendaSemDataFim(historicoDistribuidor.Revenda.Id, historicoDistribuidor.DataInicio); } else { lista = RepositoryService.HistoricoDistribuidor.ListarPorRevendaComDataFim(historicoDistribuidor.Revenda.Id, historicoDistribuidor.DataInicio, historicoDistribuidor.DataFim); } if (historicoDistribuidor.ID.HasValue) { lista.RemoveAll(x => x.ID.Value == historicoDistribuidor.ID.Value); } if (lista.Count >= Convert.ToInt32(qtdDistribuidorPreferencial.Valor)) //valida quantidade cadastrada no parâmetro global { return(lista.Count > 0); } } } return(false); }
public bool ValidaDataRetroativa(HistoricoDistribuidor historicoDistribuidor) { if (historicoDistribuidor.DataFim.HasValue && historicoDistribuidor.DataFim < historicoDistribuidor.DataInicio) { throw new ArgumentException("(CRM) O campo 'Data Fim' não pode ser menor que a 'Data Início'!"); } return(true); }
public void ValidaDuplicidade(HistoricoDistribuidor historicoDistribuidor, Boolean create) { var quantidadeDistribuidorPreferencial = RepositoryService.ParametroGlobal.ObterPorCodigoTipoParametroGlobal((int)Domain.Enum.TipoParametroGlobal.QuantidadeDistribuidorPref); if (ValidaDataRetroativa(historicoDistribuidor)) { if (ExisteDuplicidade(historicoDistribuidor, create, quantidadeDistribuidorPreferencial)) { throw new ArgumentException("(CRM) Já existem outros " + quantidadeDistribuidorPreferencial.Valor + " registros ativos na mesma data de vigência."); } } }
public Model.HistoricoDistribuidor DefinirPropriedades(Intelbras.Message.Helper.MSG0179 xml) { if (string.IsNullOrEmpty(xml.CodigoDistribuidor)) { throw new ArgumentException("(CRM) O campo 'CodigoDistribuidor' é obrigatório!"); } if (string.IsNullOrEmpty(xml.CodigoConta)) { throw new ArgumentException("(CRM) O campo 'CodigoConta' é obrigatório!"); } if (!xml.DataInicio.HasValue) { throw new ArgumentException("(CRM) O campo 'DataInicio' é obrigatório!"); } if (string.IsNullOrEmpty(xml.Nome)) { throw new ArgumentException("(CRM) O campo 'Nome' é obrigatório!"); } var historicoDistribuidor = new HistoricoDistribuidor(this.Organizacao, this.IsOffline) { Nome = xml.Nome, Distribuidor = new SDKore.DomainModel.Lookup(new Guid(xml.CodigoDistribuidor), SDKore.Crm.Util.Utility.GetEntityName <Conta>()), Revenda = new SDKore.DomainModel.Lookup(new Guid(xml.CodigoConta), SDKore.Crm.Util.Utility.GetEntityName <Conta>()), DataInicio = xml.DataInicio, DataFim = xml.DataFim, MotivoTroca = xml.MotivoTroca, Status = xml.Situacao }; //verifica se tem distribuidor pai if (!string.IsNullOrEmpty(xml.CodigoHistoricoDistribuidorAnterior)) { historicoDistribuidor.DistribuidorPai = new SDKore.DomainModel.Lookup(new Guid(xml.CodigoHistoricoDistribuidorAnterior), SDKore.Crm.Util.Utility.GetEntityName <Conta>()); } //Controle Looping Msg historicoDistribuidor.IntegrarNoPlugin = true; Guid id; if (Guid.TryParse(xml.CodigoHistoricoDistribuidor, out id)) { historicoDistribuidor.ID = id; } return(historicoDistribuidor); }
public void ValidaCamposObrigatorios(HistoricoDistribuidor historicoDistribuidor) { if (historicoDistribuidor.Revenda == null) { throw new ArgumentException("(CRM) O campo 'Revenda' é obrigatório!"); } if (historicoDistribuidor.Distribuidor == null) { throw new ArgumentException("(CRM) O campo 'Distribuidor' é obrigatório!"); } if (!historicoDistribuidor.DataInicio.HasValue) { throw new ArgumentException("(CRM) O campo 'Data Início' é obrigatório!"); } }
public Intelbras.Message.Helper.MSG0179 DefinirPropriedades(HistoricoDistribuidor historicoDistribuidor) { var xml = new Intelbras.Message.Helper.MSG0179(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), historicoDistribuidor.Nome.Truncate(40)); xml.CodigoHistoricoDistribuidor = historicoDistribuidor.ID.Value.ToString(); xml.Nome = historicoDistribuidor.Nome; xml.MotivoTroca = historicoDistribuidor.MotivoTroca; if (historicoDistribuidor.DataInicio.HasValue) { xml.DataInicio = historicoDistribuidor.DataInicio.Value.ToLocalTime(); } else { xml.DataInicio = null; } if (historicoDistribuidor.DataFim.HasValue) { xml.DataFim = historicoDistribuidor.DataFim.Value.ToLocalTime(); } else { xml.DataFim = null; } xml.Situacao = (historicoDistribuidor.Status.HasValue ? historicoDistribuidor.Status.Value : (int)Enum.StateCode.Ativo); if (historicoDistribuidor.Revenda != null) { xml.CodigoConta = historicoDistribuidor.Revenda.Id.ToString(); } if (historicoDistribuidor.Distribuidor != null) { xml.CodigoDistribuidor = historicoDistribuidor.Distribuidor.Id.ToString(); } if (historicoDistribuidor.DistribuidorPai != null) { xml.CodigoHistoricoDistribuidorAnterior = historicoDistribuidor.DistribuidorPai.Id.ToString(); } return(xml); }
public string Enviar(HistoricoDistribuidor objModel) { var mensagem = DefinirPropriedades(objModel); var integracao = new Servicos.Integracao(this.Organizacao, this.IsOffline); string retMsg = string.Empty; if (integracao.EnviarMensagemBarramento(mensagem.GenerateMessage(true), "1", "1", out retMsg)) { var retorno = CarregarMensagem <Pollux.MSG0179R1>(retMsg); if (!retorno.Resultado.Sucesso) { throw new ArgumentException("(CRM) " + retorno.Resultado.Mensagem); } } else { Intelbras.Message.Helper.ERR0001 erro001 = CarregarMensagem <Pollux.ERR0001>(retMsg); throw new ArgumentException(string.Concat("(CRM) Erro de Integração \n", erro001.GenerateMessage(false))); } return(retMsg); }
public Guid Persistir(HistoricoDistribuidor item) { HistoricoDistribuidor historicoDistribuidor = new HistoricoDistribuidor(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); if (item.ID.HasValue) { RepositoryService.HistoricoDistribuidor.Update(item); historicoDistribuidor = RepositoryService.HistoricoDistribuidor.Retrieve(item.ID.Value); if (item.Status != null && !item.Status.Equals(historicoDistribuidor.Status) && item.ID != null) { MudarStatus(item.ID.Value, item.Status.Value); } } else { item.ID = RepositoryService.HistoricoDistribuidor.Create(item); } return(item.ID.Value); }
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); } }
public void Atualizar(HistoricoDistribuidor historicoDistribuidor) { RepositoryService.HistoricoDistribuidor.Update(historicoDistribuidor); }
public void Integrar(HistoricoDistribuidor historicoDistribuidor) { var mensagem = new Intelbras.CRM2013.Domain.Integracao.MSG0179(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline); mensagem.Enviar(historicoDistribuidor); }