public void RetornoDWMetaCanalFamilia(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanalFamilia = RepositoryService.MetadoCanalporFamilia.ListarMetaCanalFamiliaDW(ano, trimestre, lstMetadaUnidade); foreach (DataRow item in dtMetaCanalFamilia.Rows) { UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["CD_Unidade_Negocio"].ToString()); Segmento mSegmento = RepositoryService.Segmento.ObterPor(item["cd_segmento"].ToString()); FamiliaProduto mFamiliaProduto = RepositoryService.FamiliaProduto.ObterPor(item["CD_familia"].ToString()); Conta mConta = RepositoryService.Conta.ObterCanal(item["CD_Emitente"].ToString()); if (mUnidadeNegocio != null && mConta != null && mSegmento != null && mFamiliaProduto != null) { MetadoCanalporFamilia mMetadoCanalporFamilia = RepositoryService.MetadoCanalporFamilia.Obterpor(mUnidadeNegocio.ID.Value, mConta.ID.Value, ano, trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value); if (mMetadoCanalporFamilia != null) { mMetadoCanalporFamilia.MetaRealizada = decimal.Parse(item["vlr"].ToString()); RepositoryService.MetadoCanalporFamilia.Update(mMetadoCanalporFamilia); } } } }
public void Criar(MetadoCanalporFamilia mMetadoCanalporFamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado) { MetadoCanalporSubFamilia mMetadoCanalporSubFamilia; var lstOrcamentoporSegSubFamilia = (from x in lstOrcamentoDetalhado group x by string.Format("{0}/{1}/{2}", x.Segmento.Id, x.Familia.Id, x.SubFamilia.Id)); foreach (var OrcaSegSubFamilia in lstOrcamentoporSegSubFamilia) { //mMetadoCanalporSubFamilia = RepositoryService.MetadoCanalporSubFamilia.Obterpor(OrcaSegSubFamilia.First().Canal.Id, OrcaSegSubFamilia.First().Familia.Id, mMetadoCanalporFamilia.ID.Value, OrcaSegSubFamilia.First().Segmento.Id, OrcaSegSubFamilia.First().SubFamilia.Id, mMetadoCanalporFamilia.Trimestre.Value); mMetadoCanalporSubFamilia = RepositoryService.MetadoCanalporSubFamilia.Obterpor(OrcaSegSubFamilia.First().UnidadeNegocio.Id, OrcaSegSubFamilia.First().Canal.Id, mMetadoCanalporFamilia.Ano.Value, mMetadoCanalporFamilia.Trimestre.Value, OrcaSegSubFamilia.First().Segmento.Id, OrcaSegSubFamilia.First().Familia.Id, OrcaSegSubFamilia.First().SubFamilia.Id); if (mMetadoCanalporSubFamilia == null) { mMetadoCanalporSubFamilia = new MetadoCanalporSubFamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mMetadoCanalporSubFamilia.ID = Guid.NewGuid(); mMetadoCanalporSubFamilia.UnidadedeNegocio = mMetadoCanalporFamilia.UnidadedeNegocio; mMetadoCanalporSubFamilia.Ano = mMetadoCanalporFamilia.Ano; mMetadoCanalporSubFamilia.Trimestre = mMetadoCanalporFamilia.Trimestre; mMetadoCanalporSubFamilia.Segmento = new Lookup(OrcaSegSubFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mMetadoCanalporSubFamilia.Familia = new Lookup(OrcaSegSubFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>()); mMetadoCanalporSubFamilia.SubFamilia = new Lookup(OrcaSegSubFamilia.First().SubFamilia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.SubfamiliaProduto>()); mMetadoCanalporSubFamilia.MetadoCanalporFamilia = new Lookup(mMetadoCanalporFamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.MetadoCanalporFamilia>()); mMetadoCanalporSubFamilia.Nome = (mMetadoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Length > 99 ? (mMetadoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Substring(1, 99) : (mMetadoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name); mMetadoCanalporSubFamilia.Canal = new Lookup(OrcaSegSubFamilia.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>()); RepositoryService.MetadoCanalporSubFamilia.Create(mMetadoCanalporSubFamilia); } //ServiceOrcamentodoCanalporProduto.Criar(mMetadoCanalporSubFamilia, OrcaSegSubFamilia.ToList(), OrcaSegSubFamilia.First().SubFamilia.Id, canalId); ServiceMetadoCanalporProduto.Criar(mMetadoCanalporSubFamilia, lstOrcamentoDetalhado); } }
public List <MetadoCanalporFamilia> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Guid canalId) { var lista = new List <MetadoCanalporFamilia>(); string fetch = @" <fetch aggregate='true' no-lock='true' > <entity name='itbc_metadocanalporsubfamilia' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <link-entity name='itbc_metadocanalporfamilia' from='itbc_metadocanalporfamiliaid' to='itbc_metadocanalporfamiliaid' > <attribute name='itbc_metadocanalporfamiliaid' alias='id' groupby='true' /> <filter type='and' > <condition attribute='itbc_ano' operator='eq' value='{0}' /> <condition attribute='itbc_unidadedenegocioid' operator='eq' value='{1}' /> <condition attribute='itbc_canalid' operator='eq' value='{2}' /> </filter> </link-entity> </entity> </fetch>"; fetch = string.Format(fetch, ano, unidadeNegocioId, canalId); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var meta = new MetadoCanalporFamilia(OrganizationName, IsOffline, Provider) { ID = (Guid)((AliasedValue)(item.Attributes["id"])).Value, MetaPlanejada = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value, MetaRealizada = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value }; lista.Add(meta); } return(lista); }