public List <PotencialdoKAporFamilia> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano) { var lista = new List <PotencialdoKAporFamilia>(); string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='true' > <entity name='itbc_metadokaporsubfamilia' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <link-entity name='itbc_metadokaporfamilia' from='itbc_metadokaporfamiliaid' to='itbc_metadokaporfamiliaid' alias='fam' > <attribute name='itbc_metadokaporfamiliaid' 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 potencialFamilia = new PotencialdoKAporFamilia(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(potencialFamilia); } 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 RetornoDWKaFamilia(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); DataTable dtMetaCanal = RepositoryService.PotencialdoKAporFamilia.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()); FamiliaProduto mFamiliaProduto = RepositoryService.FamiliaProduto.ObterPor(item["CD_familia"].ToString()); if (mUnidadeNegocio != null && mContato != null && mSegmento != null && mFamiliaProduto != null) { PotencialdoKAporFamilia mPotencialdoKAporFamilia = RepositoryService.PotencialdoKAporFamilia.ObterPor(mUnidadeNegocio.ID.Value, mContato.ID.Value, ano, trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value); if (mPotencialdoKAporFamilia != null) { mPotencialdoKAporFamilia.PotencialRealizado = decimal.Parse(item["vlr"].ToString()); RepositoryService.PotencialdoKAporFamilia.Update(mPotencialdoKAporFamilia); } } } }