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);
                    }
                }
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }
Example #4
0
        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);
        }