public void Criar(PotencialdoSupervisorporSegmento mPotencialdoSupervisorporSegmento, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado) { PotencialdoSupervisorporFamilia mPotencialdoSupervisorporFamilia; var lstorcamentoporsegfamilia = (from x in lstOrcamentoDetalhado group x by string.Format("{0}/{1}", x.Familia.Id, x.Segmento.Id)); foreach (var OrcaSegFamilia in lstorcamentoporsegfamilia) { mPotencialdoSupervisorporFamilia = RepositoryService.PotencialdoSupervisorporFamilia.Obter(OrcaSegFamilia.First().Segmento.Id, OrcaSegFamilia.First().Familia.Id, mPotencialdoSupervisorporSegmento.ID.Value, OrcaSegFamilia.First().Canal.Id, mPotencialdoSupervisorporSegmento.Trimestre.Value); if (mPotencialdoSupervisorporFamilia == null) { mPotencialdoSupervisorporFamilia = new PotencialdoSupervisorporFamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mPotencialdoSupervisorporFamilia.ID = Guid.NewGuid(); mPotencialdoSupervisorporFamilia.Supervisor = new Lookup(OrcaSegFamilia.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Usuario>()); mPotencialdoSupervisorporFamilia.UnidadedeNegocio = mPotencialdoSupervisorporSegmento.UnidadedeNegocios; mPotencialdoSupervisorporFamilia.Ano = mPotencialdoSupervisorporSegmento.Ano; mPotencialdoSupervisorporFamilia.Trimestre = mPotencialdoSupervisorporSegmento.Trimestre; mPotencialdoSupervisorporFamilia.Segmento = new Lookup(OrcaSegFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mPotencialdoSupervisorporFamilia.FamiliadoProduto = new Lookup(OrcaSegFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>()); mPotencialdoSupervisorporFamilia.PotencialdoSupervisorporSegmento = new Lookup(mPotencialdoSupervisorporSegmento.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoSupervisorporSegmento>()); mPotencialdoSupervisorporFamilia.Nome = (mPotencialdoSupervisorporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).ToString().Length > 99 ? (mPotencialdoSupervisorporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).Substring(1, 99) : (mPotencialdoSupervisorporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name); RepositoryService.PotencialdoSupervisorporFamilia.Create(mPotencialdoSupervisorporFamilia); } ServicePotencialdoSupervisorporSubfamilia.Criar(mPotencialdoSupervisorporFamilia, OrcaSegFamilia.ToList()); } }
public List <PotencialdoSupervisorporFamilia> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Domain.Enum.OrcamentodaUnidade.Trimestres?trimestre = null) { var lista = new List <PotencialdoSupervisorporFamilia>(); string fetch = @"<fetch aggregate='true' no-lock='true'> <entity name='itbc_metadokaporsegmento' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <attribute name='itbc_supervisorid' alias='supervisor' groupby='true' /> <attribute name='itbc_trimestre' alias='trimestre' groupby='true' /> <attribute name='itbc_segmentoid' alias='segmento' groupby='true' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_unidadedenegocioid' operator='eq' value='{1}' /> {2} </filter> <link-entity name='itbc_metadokaporfamilia' from='itbc_metadokaporsegmentoid' to='itbc_metadokaporsegmentoid' > <attribute name='itbc_familiadeprodutoid' alias='familia' groupby='true' /> </link-entity> </entity> </fetch>"; string filterTrimestre = string.Empty; if (trimestre.HasValue) { filterTrimestre = string.Format(@"<condition attribute='itbc_trimestre' operator='eq' value='{0}' />", (int)trimestre.Value); } fetch = string.Format(fetch, ano, unidadeNegocioId, filterTrimestre); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var familia = ((EntityReference)((AliasedValue)item.Attributes["familia"]).Value); var supervisor = ((EntityReference)((AliasedValue)item.Attributes["supervisor"]).Value); var segmento = ((EntityReference)((AliasedValue)item.Attributes["segmento"]).Value); var potencial = new PotencialdoSupervisorporFamilia(OrganizationName, IsOffline, Provider) { PotencialPlanejado = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value, PotencialRealizado = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value, FamiliadoProduto = new SDKore.DomainModel.Lookup(familia.Id, familia.Name, familia.LogicalName), Supervisor = new SDKore.DomainModel.Lookup(supervisor.Id, supervisor.Name, supervisor.LogicalName), Segmento = new SDKore.DomainModel.Lookup(segmento.Id, segmento.Name, segmento.LogicalName), Trimestre = ((OptionSetValue)((AliasedValue)item.Attributes["trimestre"]).Value).Value }; lista.Add(potencial); } return(lista); }
public void RetornoDWFamilia(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); DataTable dtMetaCanal = RepositoryService.PotencialdoSupervisorporFamilia.ListarMetaTrimestreDW(ano, trimestre, lstMetadaUnidade); foreach (DataRow item in dtMetaCanal.Rows) { UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["CD_Unidade_Negocio"].ToString()); Usuario mUsuario = RepositoryService.Usuario.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 && mUsuario != null && mSegmento != null && mFamiliaProduto != null) { PotencialdoSupervisorporFamilia mPotencialdoSupervisorporFamilia = RepositoryService.PotencialdoSupervisorporFamilia.Obter(mUnidadeNegocio.ID.Value, mUsuario.ID.Value, ano, trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value); if (mPotencialdoSupervisorporFamilia != null) { mPotencialdoSupervisorporFamilia.PotencialRealizado = decimal.Parse(item["vlr"].ToString()); RepositoryService.PotencialdoSupervisorporFamilia.Update(mPotencialdoSupervisorporFamilia); } } } }