public void RetornoDWKaSubFamilia(int ano, int trimestre) { List <MetadaUnidade> lstMetadaUnidade = RepositoryService.MetadaUnidade.ListarMetas(ano); if (lstMetadaUnidade.Count == 0) { return; } DataTable dtMetaCanal = RepositoryService.PotencialdoKAporSubfamilia.ListarMetaTrimestreDW(ano, trimestre, lstMetadaUnidade); foreach (DataRow item in dtMetaCanal.Rows) { UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["CD_Unidade_Negocio"].ToString()); Contato mContato = RepositoryService.Contato.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()); if (mUnidadeNegocio != null && mContato != null && mSegmento != null && mFamiliaProduto != null && mSubfamiliaProduto != null) { PotencialdoKAporSubfamilia mPotencialdoKAporSubfamilia = RepositoryService.PotencialdoKAporSubfamilia .Obter(mUnidadeNegocio.ID.Value, mContato.ID.Value, ano, trimestre, mSegmento.ID.Value, mFamiliaProduto.ID.Value, mSubfamiliaProduto.ID.Value); if (mPotencialdoKAporSubfamilia != null) { mPotencialdoKAporSubfamilia.PotencialRealizado = decimal.Parse(item["vlr"].ToString()); RepositoryService.PotencialdoKAporSubfamilia.Update(mPotencialdoKAporSubfamilia); } } } }
public void Criar(PotencialdoKAporSubfamilia mPotencialdoKAporSubfamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid representanteId, int numTrimestre) { PotencialdoKAporProduto mPotencialdoKAporProduto = null; 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) { mPotencialdoKAporSubfamilia = RepositoryService.PotencialdoKAporSubfamilia.Retrieve(mPotencialdoKAporSubfamilia.ID.Value); if (OrcaProduto.First().Produto.Id != Guid.Empty) { var tempProduto = RepositoryService.PotencialdoKAporProduto.Obter(representanteId, OrcaProduto.First().Produto.Id, OrcaProduto.First().SubFamilia.Id, mPotencialdoKAporSubfamilia.ID.Value, (int)mPotencialdoKAporSubfamilia.Trimestre); if (tempProduto == null) { mPotencialdoKAporProduto = new PotencialdoKAporProduto(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mPotencialdoKAporProduto.ID = Guid.NewGuid(); mPotencialdoKAporProduto.Ano = mPotencialdoKAporSubfamilia.Ano; mPotencialdoKAporProduto.Trimestre = numTrimestre; mPotencialdoKAporProduto.Produto = new Lookup(OrcaProduto.First().Produto.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Product>()); mPotencialdoKAporProduto.PotencialdoKAporSubfamilia = new Lookup(mPotencialdoKAporSubfamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKAporSubfamilia>()); mPotencialdoKAporProduto.Nome = OrcaProduto.First().Produto.Name; mPotencialdoKAporProduto.KAouRepresentante = new Lookup(representanteId, SDKore.Crm.Util.Utility.GetEntityName <Model.Contato>()); RepositoryService.PotencialdoKAporProduto.Create(mPotencialdoKAporProduto); ServiceMetaDetalhadadoKAporProduto.Criar(mPotencialdoKAporProduto); } } } }
public List <PotencialdoKAporSubfamilia> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano, Domain.Enum.OrcamentodaUnidade.Trimestres trimestre) { var lista = new List <PotencialdoKAporSubfamilia>(); string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='true' > <entity name='itbc_metadokaporproduto' > <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' /> <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' /> <link-entity name='itbc_metadokaporsubfamilia' from='itbc_metadokaporsubfamiliaid' to='itbc_metadokaporsubfamiliaid' link-type='inner' alias='sub' > <attribute name='itbc_metadokaporsubfamiliaid' 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_trimestre' operator='eq' value='{2}' /> </filter> </link-entity> </entity> </fetch>"; fetch = string.Format(fetch, ano, unidadeNegocioId, (int)trimestre); var retrieveMultiple = new RetrieveMultipleRequest() { Query = new FetchExpression(fetch) }; EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection; foreach (var item in collection.Entities) { var potencialSubfamilia = new PotencialdoKAporSubfamilia(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 }; lista.Add(potencialSubfamilia); } return(lista); }
public void Criar(PotencialdoKAporFamilia mPotencialdoKAporFamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid representanteId, int numTrimestre) { PotencialdoKAporSubfamilia mPotencialdoKAporSubfamilia = null; 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) { mPotencialdoKAporFamilia = RepositoryService.PotencialdoKAporFamilia.Retrieve(mPotencialdoKAporFamilia.ID.Value); PotencialdoKAporSubfamilia tempSubFamilia = RepositoryService.PotencialdoKAporSubfamilia.Obterpor(representanteId, OrcaSegSubFamilia.First().Familia.Id, mPotencialdoKAporFamilia.ID.Value, OrcaSegSubFamilia.First().Segmento.Id, OrcaSegSubFamilia.First().SubFamilia.Id, mPotencialdoKAporFamilia.Trimestre.HasValue ? mPotencialdoKAporFamilia.Trimestre.Value : int.MinValue); if (tempSubFamilia == null) { mPotencialdoKAporSubfamilia = new PotencialdoKAporSubfamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mPotencialdoKAporSubfamilia.ID = Guid.NewGuid(); mPotencialdoKAporSubfamilia.UnidadedeNegocio = mPotencialdoKAporFamilia.UnidadedeNegocio; mPotencialdoKAporSubfamilia.Ano = mPotencialdoKAporFamilia.Ano; mPotencialdoKAporSubfamilia.Trimestre = numTrimestre; mPotencialdoKAporSubfamilia.Segmento = new Lookup(OrcaSegSubFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mPotencialdoKAporSubfamilia.FamiliadeProduto = new Lookup(OrcaSegSubFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>()); mPotencialdoKAporSubfamilia.SubfamiliadeProduto = new Lookup(OrcaSegSubFamilia.First().SubFamilia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.SubfamiliaProduto>()); mPotencialdoKAporSubfamilia.PotencialdoKAporFamilia = new Lookup(mPotencialdoKAporFamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKAporFamilia>()); mPotencialdoKAporSubfamilia.Nome = (mPotencialdoKAporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Length > 99 ? (mPotencialdoKAporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Substring(1, 99) : (mPotencialdoKAporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name); mPotencialdoKAporSubfamilia.KAouRepresentante = new Lookup(representanteId, SDKore.Crm.Util.Utility.GetEntityName <Model.Contato>()); RepositoryService.PotencialdoKAporSubfamilia.Create(mPotencialdoKAporSubfamilia); } if (tempSubFamilia != null) { ServicePotencialdoKAporProduto.Criar(tempSubFamilia, OrcaSegSubFamilia.ToList(), representanteId, numTrimestre); } else { ServicePotencialdoKAporProduto.Criar(mPotencialdoKAporSubfamilia, OrcaSegSubFamilia.ToList(), representanteId, numTrimestre); } } }