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 Calcular(OrcamentodoCanalporProduto mOrcamentodoCanalporProduto, Trimestre trimestre, ref decimal valor, ref int quantidade) { decimal vlr = 0; int qtde = 0; List <OrcamentodoCanalDetalhadoporProduto> lstOrcCanalDetalhadaProdutos = RepositoryService.OrcamentodoCanalDetalhadoporProduto.ObterOrcCanalDetalhadoProdutos(mOrcamentodoCanalporProduto.ID.Value, trimestre.trimestre.Value); foreach (OrcamentodoCanalDetalhadoporProduto prod in lstOrcCanalDetalhadaProdutos) { #region if (prod.Mes == trimestre.Mes1) { prod.OrcamentoPlanejado = trimestre.Mes1Vlr.HasValue ? trimestre.Mes1Vlr.Value : 0; prod.QtdePlanejada = trimestre.Mes1Qtde.HasValue ? trimestre.Mes1Qtde.Value : 0; } else if (prod.Mes == trimestre.Mes2) { prod.OrcamentoPlanejado = trimestre.Mes2Vlr.HasValue ? trimestre.Mes2Vlr.Value : 0; prod.QtdePlanejada = trimestre.Mes2Qtde.HasValue ? trimestre.Mes2Qtde.Value : 0; } else if (prod.Mes == trimestre.Mes3) { prod.OrcamentoPlanejado = trimestre.Mes3Vlr.HasValue ? trimestre.Mes3Vlr.Value : 0; prod.QtdePlanejada = trimestre.Mes3Qtde.HasValue ? trimestre.Mes3Qtde.Value : 0; } RepositoryService.OrcamentodoCanalDetalhadoporProduto.Update(prod); vlr += prod.OrcamentoPlanejado.Value; qtde += (int)prod.QtdePlanejada; #endregion } valor = vlr; quantidade = qtde; }
public void RetornoDWCanalProduto(int ano, int trimestre) { List <OrcamentodaUnidade> lstOrcamentodaUnidade = RepositoryService.OrcamentodaUnidade.ListarOrcamentos(ano); if (lstOrcamentodaUnidade.Count == 0) { return; } DataTable dtOrcamentoCanalProduto = RepositoryService.OrcamentodoCanalporProduto.ListarCanalProdutoDW(ano, trimestre, lstOrcamentodaUnidade); foreach (DataRow item in dtOrcamentoCanalProduto.Rows) { UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["cd_unidade_negocio"].ToString()); Conta mConta = RepositoryService.Conta.ObterCanal(item["CD_Emitente"].ToString()); Product mProduto = RepositoryService.Produto.ObterPor(item["cd_item"].ToString()); if (mUnidadeNegocio != null && mConta != null && mProduto != null) { OrcamentodoCanalporProduto mOrcamentodoCanalporProduto = RepositoryService.OrcamentodoCanalporProduto .ObterOrcCanalProduto(mUnidadeNegocio.ID.Value, ano, trimestre, mConta.ID.Value, mProduto.ID.Value); if (mOrcamentodoCanalporProduto != null) { mOrcamentodoCanalporProduto.OrcamentoRealizado = decimal.Parse(item["vlr"].ToString()); mOrcamentodoCanalporProduto.QtdeRealizada = decimal.Parse(item["qtde"].ToString()); RepositoryService.OrcamentodoCanalporProduto.Update(mOrcamentodoCanalporProduto); } } } }
public void Calcular(OrcamentodoCanalporProduto mOrcamentodoCanalporProduto, Trimestre trimestre) { List <OrcamentodoCanalDetalhadoporProduto> lstOrcCanalDetalhadaProdutos = RepositoryService.OrcamentodoCanalDetalhadoporProduto.ObterOrcCanalDetalhadoProdutos(mOrcamentodoCanalporProduto.ID.Value, trimestre.trimestre.Value); foreach (OrcamentodoCanalDetalhadoporProduto prod in lstOrcCanalDetalhadaProdutos) { #region if (prod.Mes == trimestre.Mes1) { prod.OrcamentoPlanejado = trimestre.Mes1Vlr.Value; prod.QtdePlanejada = trimestre.Mes1Qtde.Value; } else if (prod.Mes == trimestre.Mes2) { prod.OrcamentoPlanejado = trimestre.Mes2Vlr.Value; prod.QtdePlanejada = trimestre.Mes2Qtde.Value; } else if (prod.Mes == trimestre.Mes3) { prod.OrcamentoPlanejado = trimestre.Mes3Vlr.Value; prod.QtdePlanejada = trimestre.Mes3Qtde.Value; } RepositoryService.OrcamentodoCanalDetalhadoporProduto.Update(prod); #endregion } }
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); }