public void AtualizarFaturamentoDoSegmentoRepresentante(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanal = RepositoryService.PotencialdoKAporSegmento.ListarMetaTrimestreDW(ano, trimestre, lstMetadaUnidade); foreach (DataRow item in dtMetaCanal.Rows) { UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["CD_Unidade_Negocio"].ToString()); Contato mContato = RepositoryService.Contato.ObterPor(item["CD_representante"].ToString()); Segmento mSegmento = RepositoryService.Segmento.ObterPor(item["cd_segmento"].ToString()); if (mUnidadeNegocio != null && mContato != null && mSegmento != null) { PotencialdoKAporSegmento mPotencialdoKAporSegmento = RepositoryService.PotencialdoKAporSegmento.Obter(mUnidadeNegocio.ID.Value, mContato.ID.Value, ano, trimestre, mSegmento.ID.Value); if (mPotencialdoKAporSegmento != null) { mPotencialdoKAporSegmento.PotencialRealizado = item.Field <decimal>("vlr"); RepositoryService.PotencialdoKAporSegmento.Update(mPotencialdoKAporSegmento); } } } }
public void Criar(PotencialdoKAporTrimestre mPotencialdoKATrimestre, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid representanteId, int numTrimestre) { PotencialdoKAporSegmento mPotencialdoKAporSegmento = null; var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado group x by string.Format("{0}", x.Familia.Id)); foreach (var OrcaSegmento in lstOrcamentoporSegmento) { mPotencialdoKATrimestre = RepositoryService.PotencialdoKAporTrimestre.Retrieve(mPotencialdoKATrimestre.ID.Value); List <PotencialdoKAporSegmento> tempSegmento = RepositoryService.PotencialdoKAporSegmento.__Obter(mPotencialdoKATrimestre.UnidadedeNegocio.Id, representanteId, numTrimestre, mPotencialdoKATrimestre.ID.Value, OrcaSegmento.First().Segmento.Id); if (tempSegmento.Count == 0) { PortfoliodoKeyAccountRepresentantes portfolioKA = RepositoryService.PortfoliodoKeyAccountRepresentantes.ObterPor(mPotencialdoKATrimestre.UnidadedeNegocio.Id, representanteId); if (portfolioKA.Segmento != null) { if (OrcaSegmento.First().Segmento.Id != portfolioKA.Segmento.Id) { continue; } } mPotencialdoKAporSegmento = new PotencialdoKAporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mPotencialdoKAporSegmento.ID = Guid.NewGuid(); mPotencialdoKAporSegmento.Nome = mPotencialdoKATrimestre.Nome + " - " + OrcaSegmento.First().Segmento.Name; mPotencialdoKAporSegmento.UnidadedeNegocio = mPotencialdoKATrimestre.UnidadedeNegocio; mPotencialdoKAporSegmento.Ano = mPotencialdoKATrimestre.Ano; mPotencialdoKAporSegmento.KAouRepresentante = new Lookup(representanteId, SDKore.Crm.Util.Utility.GetEntityName <Model.Contato>()); mPotencialdoKAporSegmento.Segmento = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mPotencialdoKAporSegmento.Trimestre = numTrimestre; mPotencialdoKAporSegmento.PotencialKaTrimestre = new Lookup(mPotencialdoKATrimestre.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKAporTrimestre>()); RepositoryService.PotencialdoKAporSegmento.Create(mPotencialdoKAporSegmento); ServicePotencialdoKAporFamilia.Criar(mPotencialdoKAporSegmento, OrcaSegmento.ToList(), representanteId, numTrimestre); } else { ServicePotencialdoKAporFamilia.Criar(tempSegmento[0], OrcaSegmento.ToList(), representanteId, numTrimestre); } } }
public List <PotencialdoKAporSegmento> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano) { var lista = new List <PotencialdoKAporSegmento>(); string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='true' > <entity name='itbc_metadokaporfamilia' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <link-entity name='itbc_metadokaporsegmento' from='itbc_metadokaporsegmentoid' to='itbc_metadokaporsegmentoid' alias='seg' > <attribute name='itbc_metadokaporsegmentoid' alias='id' groupby='true' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_unidadedenegocioid' operator='eq' value='{1}' /> </filter> </link-entity> </entity> </fetch>"; fetch = string.Format(fetch, ano, unidadeNegocioId); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var potencialSegmento = new PotencialdoKAporSegmento(OrganizationName, IsOffline, Provider) { ID = (Guid)((AliasedValue)(item.Attributes["id"])).Value, PotencialPlanejado = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value, PotencialRealizado = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value }; lista.Add(potencialSegmento); } return(lista); }
public void Criar(PotencialdoKAporSegmento mPotencialdoKAporSegmento, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid representanteId, int numTrimestre) { PotencialdoKAporFamilia mPotencialdoKAporFamilia = null; var lstorcamentoporsegfamilia = (from x in lstOrcamentoDetalhado group x by string.Format("{0}/{1}", x.Familia.Id, x.Segmento.Id)); foreach (var OrcaSegFamilia in lstorcamentoporsegfamilia) { mPotencialdoKAporSegmento = RepositoryService.PotencialdoKAporSegmento.Retrieve(mPotencialdoKAporSegmento.ID.Value); PotencialdoKAporFamilia tempFamilia = RepositoryService.PotencialdoKAporFamilia.ObterPor(OrcaSegFamilia.First().Segmento.Id, OrcaSegFamilia.First().Familia.Id, representanteId, numTrimestre); if (tempFamilia == null) { mPotencialdoKAporFamilia = new PotencialdoKAporFamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mPotencialdoKAporFamilia.ID = Guid.NewGuid(); mPotencialdoKAporFamilia.KAouRepresentante = new Lookup(representanteId, SDKore.Crm.Util.Utility.GetEntityName <Model.Contato>()); mPotencialdoKAporFamilia.UnidadedeNegocio = mPotencialdoKAporSegmento.UnidadedeNegocio; mPotencialdoKAporFamilia.Ano = mPotencialdoKAporSegmento.Ano; mPotencialdoKAporFamilia.Trimestre = numTrimestre; mPotencialdoKAporFamilia.Segmento = new Lookup(OrcaSegFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mPotencialdoKAporFamilia.FamiliadeProduto = new Lookup(OrcaSegFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>()); mPotencialdoKAporFamilia.PotencialdoKAporSegmento = new Lookup(mPotencialdoKAporSegmento.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKAporSegmento>()); mPotencialdoKAporFamilia.Nome = (mPotencialdoKAporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).ToString().Length > 99 ? (mPotencialdoKAporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).Substring(1, 99) : (mPotencialdoKAporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name); RepositoryService.PotencialdoKAporFamilia.Create(mPotencialdoKAporFamilia); } if (tempFamilia != null) { ServicePotencialdoKAporSubFamilia.Criar(tempFamilia, OrcaSegFamilia.ToList(), representanteId, numTrimestre); } else { ServicePotencialdoKAporSubFamilia.Criar(mPotencialdoKAporFamilia, OrcaSegFamilia.ToList(), representanteId, numTrimestre); } } }
public void AtualizarFaturamentoDoSegmentoRepresentante(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanal = RepositoryService.PotencialdoKAporSegmento.ListarMetaTrimestreDW(ano, trimestre, lstMetadaUnidade); List <UnidadeNegocio> unidadeNegocioAll = RepositoryService.UnidadeNegocio.ListarTodosChaveIntegracao(); Dictionary <string, UnidadeNegocio> unidadeNegocioMap = new Dictionary <string, UnidadeNegocio>(); foreach (var tmpVar in unidadeNegocioAll) { if (tmpVar.ChaveIntegracao != null) { unidadeNegocioMap.Add(tmpVar.ChaveIntegracao, tmpVar); } } List <Contato> representatesAll = RepositoryService.Contato.ListarKaRepresentantes(null); Dictionary <string, Contato> representatesMap = new Dictionary <string, Contato>(); foreach (var tmpVar in representatesAll) { if (tmpVar.CodigoRepresentante != null) { representatesMap.Add(tmpVar.CodigoRepresentante, tmpVar); } } List <Segmento> segmentosAll = RepositoryService.Segmento.ListarTodos(); Dictionary <string, Segmento> segmentosMap = new Dictionary <string, Segmento>(); foreach (var tmpVar in segmentosAll) { if (tmpVar.CodigoSegmento != null) { segmentosMap.Add(tmpVar.CodigoSegmento, tmpVar); } } foreach (DataRow item in dtMetaCanal.Rows) { if (item.IsNull("CD_Unidade_Negocio") || item.IsNull("CD_representante")) { continue; } if (unidadeNegocioMap.ContainsKey(item.Field <string>("CD_Unidade_Negocio")) && representatesMap.ContainsKey(item["CD_representante"].ToString()) && segmentosMap.ContainsKey(item["cd_segmento"].ToString())) { UnidadeNegocio mUnidadeNegocio = unidadeNegocioMap[item.Field <string>("CD_Unidade_Negocio")]; Contato mContato = representatesMap[item["CD_representante"].ToString()]; Segmento mSeg = segmentosMap[item["cd_segmento"].ToString()]; PotencialdoKAporSegmento mPotencialdoKAporSegmento = RepositoryService.PotencialdoKAporSegmento.Obter(mUnidadeNegocio.ID.Value, mContato.ID.Value, ano, trimestre, mSeg.ID.Value); if (mPotencialdoKAporSegmento != null) { mPotencialdoKAporSegmento.PotencialRealizado = item.Field <decimal>("vlr"); RepositoryService.PotencialdoKAporSegmento.Update(mPotencialdoKAporSegmento); } } } }