public List <PotencialdoKAporProduto> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Domain.Enum.OrcamentodaUnidadeDetalhadoporProduto.Mes mes) { var lista = new List <PotencialdoKAporProduto>(); string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='true' > <entity name='itbc_metadetalhadadokaporproduto' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_qtdeplanejada' alias='quantidade_planejada' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <attribute name='itbc_qtderealizada' alias='quantidade_realizado' aggregate='sum' /> <filter type='and' > <condition attribute='itbc_mes' operator='eq' value='{2}' /> </filter> <link-entity name='itbc_metadokaporproduto' from='itbc_metadokaporprodutoid' to='itbc_metadokaporprodutoid' link-type='inner' alias='prod' > <attribute name='itbc_metadokaporprodutoid' alias='id' groupby='true' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_unidade_negociosid' operator='eq' value='{1}' /> </filter> </link-entity> </entity> </fetch>"; fetch = string.Format(fetch, ano, unidadeNegocioId, mes); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var potencialProduto = new PotencialdoKAporProduto(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, QtdePlanejada = (decimal)((AliasedValue)(item.Attributes["quantidade_planejada"])).Value, QtdeRealizada = (decimal)((AliasedValue)(item.Attributes["quantidade_realizado"])).Value }; lista.Add(potencialProduto); } return(lista); }
public List <MetaDetalhadadaUnidadeporProduto> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Domain.Enum.OrcamentodaUnidadeDetalhadoporProduto.Mes mes) { var lista = new List <MetaDetalhadadaUnidadeporProduto>(); string fetch = @"<fetch aggregate='true' no-lock='true' > <entity name='itbc_potencialdetalhadosuper_produto' > <attribute name='itbc_potencialplanejado' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_potencialrealizado' alias='valor_realizado' aggregate='sum' /> <attribute name='itbc_produtoid' alias='produto' groupby='true' /> <attribute name='itbc_qtdeplanejada' alias='quantidade_planejada' aggregate='sum' /> <attribute name='itbc_qtderealizada' alias='quantidade_realizada' aggregate='sum' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_mes' operator='eq' value='{2}' /> <condition attribute='itbc_unidade_negociosid' operator='eq' value='{1}' /> </filter> </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 potencial = new MetaDetalhadadaUnidadeporProduto(OrganizationName, IsOffline, Provider) { MetaPlanejada = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value, MetaRealizada = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value, QtdePlanejada = (decimal)((AliasedValue)item.Attributes["quantidade_planejada"]).Value, QtdeRealizada = (decimal)((AliasedValue)item.Attributes["quantidade_realizada"]).Value, Mes = (int)mes, Ano = ano, Produto = new SDKore.DomainModel.Lookup(produto.Id, produto.Name, produto.LogicalName) }; lista.Add(potencial); } return(lista); }