public void Criar(MetadoCanalporSubFamilia mMetadoCanalporSubFamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado) { MetadoCanalporProduto mMetadoCanalporProduto; var lstOrcamentoporSegSubFamilia = (from x in lstOrcamentoDetalhado group x by string.Format("{0}/{1}/{2}/{3}", x.Segmento.Id, x.Familia.Id, x.SubFamilia.Id, x.Produto.Id)); foreach (var OrcaProduto in lstOrcamentoporSegSubFamilia) { if (OrcaProduto.First().Produto.Id != Guid.Empty) { mMetadoCanalporProduto = RepositoryService.MetadoCanalporProduto.Obter(OrcaProduto.First().Canal.Id, OrcaProduto.First().Produto.Id, OrcaProduto.First().SubFamilia.Id, mMetadoCanalporSubFamilia.ID.Value, (int)mMetadoCanalporSubFamilia.Ano.Value, (int)mMetadoCanalporSubFamilia.Trimestre); if (mMetadoCanalporProduto == null) { mMetadoCanalporProduto = new MetadoCanalporProduto(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mMetadoCanalporProduto.ID = Guid.NewGuid(); mMetadoCanalporProduto.Ano = mMetadoCanalporSubFamilia.Ano; mMetadoCanalporProduto.Trimestre = mMetadoCanalporSubFamilia.Trimestre; mMetadoCanalporProduto.Produto = new Lookup(OrcaProduto.First().Produto.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Product>()); mMetadoCanalporProduto.MetadoCanalporSubFamilia = new Lookup(mMetadoCanalporSubFamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.MetadoCanalporSubFamilia>()); mMetadoCanalporProduto.Nome = OrcaProduto.First().Produto.Name; mMetadoCanalporProduto.Canal = new Lookup(OrcaProduto.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>()); RepositoryService.MetadoCanalporProduto.Create(mMetadoCanalporProduto); ServiceMetaDetalhadadoCanalporProduto.Criar(mMetadoCanalporProduto); } } } }
public void RetornoDWMetaCanalSubFamilia(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanalSubFamilia = RepositoryService.MetadoCanalporSubFamilia.ListarMetaCanalSubFamiliaDW(ano, trimestre, lstMetadaUnidade); foreach (DataRow item in dtMetaCanalSubFamilia.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()); SubfamiliaProduto mSubfamiliaProduto = RepositoryService.SubfamiliaProduto.ObterPor(item["CD_subfamilia"].ToString()); if (mUnidadeNegocio != null && mSegmento != null && mFamiliaProduto != null && mConta != null && mSubfamiliaProduto != null) { MetadoCanalporSubFamilia mMetadoCanalporSubFamilia = RepositoryService.MetadoCanalporSubFamilia .Obterpor(mUnidadeNegocio.ID.Value, mConta.ID.Value, ano, trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value, mSubfamiliaProduto.ID.Value); if (mMetadoCanalporSubFamilia != null) { mMetadoCanalporSubFamilia.MetaRealizada = decimal.Parse(item["vlr"].ToString()); RepositoryService.MetadoCanalporSubFamilia.Update(mMetadoCanalporSubFamilia); } } } }
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 <MetadoCanalporSubFamilia> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Guid canalId) { var lista = new List <MetadoCanalporSubFamilia>(); string fetch = @"<fetch aggregate='true' no-lock='true' > <entity name='itbc_metadocanalporproduto' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <link-entity name='itbc_metadocanalporsubfamilia' from='itbc_metadocanalporsubfamiliaid' to='itbc_metadocanalporsubfamiliaid' > <attribute name='itbc_metadocanalporsubfamiliaid' alias='id' groupby='true' /> <filter type='and' > <condition attribute='itbc_unidadedenegociosid' operator='eq' value='{1}' /> <condition attribute='itbc_ano' operator='eq' value='{0}' /> <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 MetadoCanalporSubFamilia(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); }