public void RetornoDWCanalSubFamilia(int ano, int trimestre) { List <OrcamentodaUnidade> lstOrcamentodaUnidade = RepositoryService.OrcamentodaUnidade.ListarOrcamentos(ano); if (lstOrcamentodaUnidade.Count == 0) { return; } DataTable dtOrcamentoSubFamilia = RepositoryService.OrcamentodoCanalporSubFamilia.ListarCanalSubFamiliaDW(ano, trimestre, lstOrcamentodaUnidade); foreach (DataRow item in dtOrcamentoSubFamilia.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) { OrcamentodoCanalporSubFamilia mOrcamentodoCanalporSubFamilia = RepositoryService.OrcamentodoCanalporSubFamilia .Obter(mUnidadeNegocio.ID.Value, ano, trimestre, mConta.ID.Value, mSegmento.ID.Value, mFamiliaProduto.ID.Value, mSubfamiliaProduto.ID.Value); if (mOrcamentodoCanalporSubFamilia != null) { mOrcamentodoCanalporSubFamilia.OrcamentoRealizado = decimal.Parse(item["vlr"].ToString()); RepositoryService.OrcamentodoCanalporSubFamilia.Update(mOrcamentodoCanalporSubFamilia); } } } }
public void Criar(OrcamentodoCanalporFamilia mOrcamentodoCanalporFamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid familiaId, Guid canalId) { OrcamentodoCanalporSubFamilia mOrcamentodoCanalporSubFamilia; var lstOrcamentoporSegSubFamilia = (from x in lstOrcamentoDetalhado //where x.Familia.Id == familiaId && x.Canal.Id == canalId group x by string.Format("{0}/{1}/{2}", x.Segmento.Id, x.Familia.Id, x.SubFamilia.Id)); foreach (var OrcaSegSubFamilia in lstOrcamentoporSegSubFamilia) { mOrcamentodoCanalporSubFamilia = RepositoryService.OrcamentodoCanalporSubFamilia.ObterPorSubFamiliaTrimestreCanal(OrcaSegSubFamilia.First().Canal.Id, OrcaSegSubFamilia.First().Familia.Id, mOrcamentodoCanalporFamilia.ID.Value, OrcaSegSubFamilia.First().Segmento.Id, OrcaSegSubFamilia.First().SubFamilia.Id, mOrcamentodoCanalporFamilia.Trimestre.Value); if (mOrcamentodoCanalporSubFamilia == null) { mOrcamentodoCanalporSubFamilia = new OrcamentodoCanalporSubFamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mOrcamentodoCanalporSubFamilia.ID = Guid.NewGuid(); mOrcamentodoCanalporSubFamilia.UnidadedeNegocio = mOrcamentodoCanalporFamilia.UnidadedeNegocio; mOrcamentodoCanalporSubFamilia.Ano = mOrcamentodoCanalporFamilia.Ano; mOrcamentodoCanalporSubFamilia.Trimestre = mOrcamentodoCanalporFamilia.Trimestre; mOrcamentodoCanalporSubFamilia.Segmento = new Lookup(OrcaSegSubFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>()); mOrcamentodoCanalporSubFamilia.FamiliadeProduto = new Lookup(OrcaSegSubFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>()); mOrcamentodoCanalporSubFamilia.SubFamilia = new Lookup(OrcaSegSubFamilia.First().SubFamilia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.SubfamiliaProduto>()); mOrcamentodoCanalporSubFamilia.OrcamentodoCanalporFamilia = new Lookup(mOrcamentodoCanalporFamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentodoCanalporFamilia>()); mOrcamentodoCanalporSubFamilia.Nome = (mOrcamentodoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Length > 99 ? (mOrcamentodoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name).Substring(1, 99) : (mOrcamentodoCanalporFamilia.Nome + " - " + OrcaSegSubFamilia.First().SubFamilia.Name); mOrcamentodoCanalporSubFamilia.Canal = new Lookup(canalId, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>()); RepositoryService.OrcamentodoCanalporSubFamilia.Create(mOrcamentodoCanalporSubFamilia); } ServiceOrcamentodoCanalporProduto.Criar(mOrcamentodoCanalporSubFamilia, OrcaSegSubFamilia.ToList(), OrcaSegSubFamilia.First().SubFamilia.Id, canalId); } }
public void Criar(OrcamentodoCanalporSubFamilia mOrcamentodoCanalporSubFamilia, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid subfamiliaId, Guid canalId) { OrcamentodoCanalporProduto mOrcamentodaUnidadeporProduto; 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) { mOrcamentodaUnidadeporProduto = RepositoryService.OrcamentodoCanalporProduto.ObterOrcCanalProduto(canalId, OrcaProduto.First().Produto.Id, mOrcamentodoCanalporSubFamilia.ID.Value, (int)mOrcamentodoCanalporSubFamilia.Trimestre); if (mOrcamentodaUnidadeporProduto == null) { mOrcamentodaUnidadeporProduto = new OrcamentodoCanalporProduto(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider); mOrcamentodaUnidadeporProduto.ID = Guid.NewGuid(); mOrcamentodaUnidadeporProduto.Ano = mOrcamentodoCanalporSubFamilia.Ano; //mOrcamentodaUnidadeporProduto.UnidadeNegocio = new Lookup(OrcaProduto.First().UnidadeNegocio.Id, SDKore.Crm.Util.Utility.GetEntityName<UnidadeNegocio>()); mOrcamentodaUnidadeporProduto.Trimestre = mOrcamentodoCanalporSubFamilia.Trimestre; mOrcamentodaUnidadeporProduto.Produto = new Lookup(OrcaProduto.First().Produto.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Product>()); mOrcamentodaUnidadeporProduto.OrcamentodoCanalporSubFamilia = new Lookup(mOrcamentodoCanalporSubFamilia.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentodoCanalporSubFamilia>()); mOrcamentodaUnidadeporProduto.Nome = OrcaProduto.First().Produto.Name; mOrcamentodaUnidadeporProduto.Canal = new Lookup(OrcaProduto.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>()); RepositoryService.OrcamentodoCanalporProduto.Create(mOrcamentodaUnidadeporProduto); ServiceOrcamentodoCanalDetalhadoporProduto.Criar(mOrcamentodaUnidadeporProduto, canalId); } } } }
public void Atualizar(OrcamentoDetalhado mOrcamentoDetalhado, OrcamentodoCanalporSubFamilia mOrcCanalporSubFamilia, Trimestre trimestre) { OrcamentodoCanalporProduto mOrcamentodoCanalporProduto = RepositoryService.OrcamentodoCanalporProduto.ObterOrcamentoCanalporProduto(mOrcamentoDetalhado.ProdutoID.Value, mOrcCanalporSubFamilia.ID.Value); mOrcamentodoCanalporProduto.OrcamentoPlanejado += trimestre.Mes1Vlr.Value + trimestre.Mes2Vlr.Value + trimestre.Mes3Vlr.Value; mOrcamentodoCanalporProduto.QtdePlanejada += trimestre.Mes1Qtde.Value + trimestre.Mes2Qtde.Value + trimestre.Mes3Qtde.Value; ServiceOrcamentodoCanalDetalhadoporProduto.Calcular(mOrcamentodoCanalporProduto, trimestre); RepositoryService.OrcamentodoCanalporProduto.Update(mOrcamentodoCanalporProduto); }