public void RetornoDWDetalhadoProduto(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanal = RepositoryService.PotencialDetalhadodoSupervisorporProduto.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()); SubfamiliaProduto mSubfamiliaProduto = RepositoryService.SubfamiliaProduto.ObterPor(item["CD_subfamilia"].ToString()); Product mProduto = RepositoryService.Produto.ObterPor(item["cd_item"].ToString()); if (mUnidadeNegocio != null && mUsuario != null && mSegmento != null && mFamiliaProduto != null && mSubfamiliaProduto != null && mProduto != null) { PotencialdoSupervisorporProduto mPotencialdoSupervisorporProduto = RepositoryService.PotencialdoSupervisorporProduto .Obter(mUnidadeNegocio.ID.Value, mUsuario.ID.Value, Convert.ToInt32(item["cd_ano"].ToString()), trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value, mSubfamiliaProduto.ID.Value, mProduto.ID.Value); if (mPotencialdoSupervisorporProduto != null) { PotencialdoSupervisorporProdutoDetalhado mPotencialDetalhadodoSupervisorporProduto = RepositoryService.PotencialDetalhadodoSupervisorporProduto .Obter(Convert.ToInt32(item["cd_ano"].ToString()), trimestre, Convert.ToInt32(item["cd_mes"].ToString()), mProduto.ID.Value, mUsuario.ID.Value, mPotencialdoSupervisorporProduto.ID.Value); if (mPotencialDetalhadodoSupervisorporProduto != null) { mPotencialdoSupervisorporProduto.PotencialRealizado = decimal.Parse(item["vlr"].ToString()); mPotencialdoSupervisorporProduto.QtdeRealizada = decimal.Parse(item["qtde"].ToString()); RepositoryService.PotencialdoSupervisorporProduto.Update(mPotencialdoSupervisorporProduto); } } } } }
public List <PotencialdoSupervisorporProdutoDetalhado> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Domain.Enum.OrcamentodaUnidadeDetalhadoporProduto.Mes mes) { var lista = new List <PotencialdoSupervisorporProdutoDetalhado>(); string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='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' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_unidadedenegocioid' operator='eq' value='{1}' /> </filter> <link-entity name='itbc_metadokaporfamilia' from='itbc_metadokaporsegmentoid' to='itbc_metadokaporsegmentoid' > <link-entity name='itbc_metadokaporsubfamilia' from='itbc_metadokaporfamiliaid' to='itbc_metadokaporfamiliaid' > <link-entity name='itbc_metadokaporproduto' from='itbc_metadokaporsubfamiliaid' to='itbc_metadokaporsubfamiliaid' > <attribute name='itbc_produtoid' alias='produto' groupby='true' /> <link-entity name='itbc_metadetalhadadokaporproduto' from='itbc_metadokaporprodutoid' to='itbc_metadokaporprodutoid' > <attribute name='itbc_qtderealizada' alias='quantidade_realizada' aggregate='sum' /> <attribute name='itbc_qtdeplanejada' alias='quantidade_planejada' aggregate='sum' /> <filter type='and' > <condition attribute='itbc_mes' operator='eq' value='{2}' /> </filter> </link-entity> </link-entity> </link-entity> </link-entity> </entity> </fetch>"; fetch = string.Format(fetch, ano, unidadeNegocioId, (int)mes); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var produto = ((EntityReference)((AliasedValue)item.Attributes["produto"]).Value); var supervisor = ((EntityReference)((AliasedValue)item.Attributes["supervisor"]).Value); var potencial = new PotencialdoSupervisorporProdutoDetalhado(OrganizationName, IsOffline, Provider) { PotencialPlanejado = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value, PotencialRealizado = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value, QtdePlanejada = (decimal)((AliasedValue)item.Attributes["quantidade_planejada"]).Value, QtdeRealizada = (decimal)((AliasedValue)item.Attributes["quantidade_realizada"]).Value, Supervisor = new SDKore.DomainModel.Lookup(supervisor.Id, supervisor.Name, supervisor.LogicalName), Mes = (int)mes, Ano = ano, Produto = new SDKore.DomainModel.Lookup(produto.Id, produto.Name, produto.LogicalName) }; lista.Add(potencial); } return(lista); }