Пример #1
0
        public DadosMemoriaCalculo[] GetDadosMemoriaCalculo(PedidoEspelho pedEsp)
        {
            Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(pedEsp.IdPedido);

            var retorno          = new List <DadosMemoriaCalculo>();
            var ambientesSomados = new List <uint>();

            var produtos = ProdutosPedidoEspelhoDAO.Instance.GetByPedido(pedEsp.IdPedido, false);

            foreach (ProdutosPedidoEspelho ppe in produtos)
            {
                float qtdeSomar = 0;
                if (ped.TipoPedido == (int)Pedido.TipoPedidoEnum.MaoDeObra && !ambientesSomados.Contains(ppe.IdAmbientePedido.Value))
                {
                    qtdeSomar = ppe.QtdeAmbiente;
                    ambientesSomados.Add(ppe.IdAmbientePedido.Value);
                }

                retorno.Add(new DadosMemoriaCalculo(ppe, ped, qtdeSomar));

                foreach (ProdutoPedidoEspelhoBenef ppeb in ppe.Beneficiamentos.ToProdutosPedidoEspelho())
                {
                    retorno.Add(new DadosMemoriaCalculo(ppeb));
                }
            }

            return(retorno.ToArray());
        }
Пример #2
0
        public MemoriaCalculo[] GetMemoriaCalculo(PedidoEspelho pedEsp)
        {
            List <MemoriaCalculo> retorno = new List <MemoriaCalculo>();

            retorno.Add(new MemoriaCalculo(pedEsp));

            return(retorno.ToArray());
        }
Пример #3
0
 /// <summary>
 /// Remove desconto no valor dos produtos e consequentemente no valor do pedido
 /// </summary>
 internal bool RemoverDesconto(GDASession sessao, PedidoEspelho pedidoEspelho, uint idAmbientePedido,
                               IEnumerable <ProdutosPedidoEspelho> produtosPedidoEspelho)
 {
     return(DescontoAcrescimo.Instance.RemoverDescontoAmbiente(
                sessao,
                pedidoEspelho,
                produtosPedidoEspelho
                ));
 }
Пример #4
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ListaDto"/>.
        /// </summary>
        /// <param name="pedidoConferencia">A model de pedido em conferência.</param>
        internal ListaDto(PedidoEspelho pedidoConferencia)
        {
            this.Id = (int)pedidoConferencia.IdPedido;
            this.PedidoGeradoParceiro = pedidoConferencia.GeradoParceiro;
            this.PedidoImportado      = pedidoConferencia.Importado;
            this.Situacao             = pedidoConferencia.DescrSituacao;
            this.Cliente = new IdNomeDto
            {
                Id   = (int)pedidoConferencia.IdCli,
                Nome = BibliotecaTexto.GetThreeFirstWords(pedidoConferencia.NomeCli),
            };

            this.NomeLoja                   = pedidoConferencia.NomeLoja;
            this.NomeConferente             = pedidoConferencia.ResponsavelConferecia;
            this.TotalPedidoComercial       = pedidoConferencia.TotalPedido;
            this.TotalPedidoConferencia     = pedidoConferencia.Total;
            this.DataCadastroConferencia    = pedidoConferencia.DataEspelho;
            this.DataFinalizacaoConferencia = pedidoConferencia.DataConf;
            this.TotalM2                            = (decimal)pedidoConferencia.TotM;
            this.QuantidadePecas                    = (int)pedidoConferencia.QtdePecas;
            this.Peso                               = (decimal)pedidoConferencia.Peso;
            this.DataEntregaPedidoComercial         = pedidoConferencia.DataEntrega;
            this.DataEntregaOriginalPedidoComercial = pedidoConferencia.DataEntregaOriginal;
            this.FastDelivery                       = pedidoConferencia.FastDelivery;
            this.DataEntregaFabrica                 = pedidoConferencia.DataFabrica;
            this.SituacaoCnc                        = new IdNomeDto
            {
                Id   = pedidoConferencia.SituacaoCnc,
                Nome = pedidoConferencia.DescrSituacaoCnc,
            };

            this.PedidoConferido = pedidoConferencia.PedidoConferido;
            this.ComprasGeradas  = !string.IsNullOrEmpty(pedidoConferencia.CompraGerada) ? pedidoConferencia.CompraGerada.Split(',').Select(f => f.StrParaInt()) : new List <int>();
            this.CorLinhaTabela  = pedidoConferencia.CorLinhaLista.ToString();

            this.Permissoes = new PermissoesDto
            {
                Editar   = pedidoConferencia.EditVisible,
                Cancelar = pedidoConferencia.CancelarVisible,
                Reabrir  = pedidoConferencia.ExibirReabrir,
                Imprimir = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirMemoriaCalculo       = pedidoConferencia.ExibirRelatorioCalculo,
                UsarControleReposicao        = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando && pedidoConferencia.UsarControleReposicao,
                AnexarArquivos               = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirProjeto              = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                AssociarImagemAsPecas        = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirProdutosAComprar     = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ExibirSituacaoCnc            = pedidoConferencia.ExibirSituacaoCnc,
                ExibirSituacaoCncConferencia = pedidoConferencia.ExibirSituacaoCncConferencia,
                ExibirConferirPedido         = pedidoConferencia.ConferirPedidoVisible,
                LogAlteracoes = LogAlteracaoDAO.Instance.TemRegistro(LogAlteracao.TabelaAlteracao.PedidoEspelho, pedidoConferencia.IdPedido, null),
                PedidoImportadoPodeGerarArquivo = !pedidoConferencia.Importado || pedidoConferencia.PedidoConferido,
            };
        }
Пример #5
0
 internal void FinalizarAplicacaoAcrescimoDesconto(GDASession sessao, PedidoEspelho pedidoEspelho,
                                                   IEnumerable <ProdutosPedidoEspelho> produtosPedidoEspelho, bool atualizar)
 {
     if (atualizar)
     {
         foreach (var produto in produtosPedidoEspelho)
         {
             ProdutosPedidoEspelhoDAO.Instance.Update(sessao, produto, pedidoEspelho);
         }
     }
 }
Пример #6
0
 /// <summary>
 /// Aplica desconto no valor dos produtos e consequentemente no valor do pedido
 /// </summary>
 internal bool AplicarDesconto(GDASession sessao, PedidoEspelho pedidoEspelho, uint idAmbientePedido, int tipoDesconto, decimal desconto,
                               IEnumerable <ProdutosPedidoEspelho> produtosPedidoEspelho)
 {
     return(DescontoAcrescimo.Instance.AplicarDescontoAmbiente(
                sessao,
                pedidoEspelho,
                tipoDesconto,
                desconto,
                produtosPedidoEspelho
                ));
 }
Пример #7
0
        protected void dtvPedido_ItemCommand(object sender, DetailsViewCommandEventArgs e)
        {
            if (e.CommandName == "Atualizar" || e.CommandName == "Recalcular")
            {
                try
                {
                    var pe = new PedidoEspelho();
                    pe.IdPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]);

                    var pedidoEspelho = PedidoEspelhoDAO.Instance.GetElementByPrimaryKey(null, pe.IdPedido);

                    pe.TipoDesconto   = ((DropDownList)dtvPedido.FindControl("drpTipoDesconto")) != null ? ((DropDownList)dtvPedido.FindControl("drpTipoDesconto")).SelectedValue.StrParaInt() : pedidoEspelho.TipoDesconto;
                    pe.Desconto       = ((TextBox)dtvPedido.FindControl("txtDesconto")) != null ? ((TextBox)dtvPedido.FindControl("txtDesconto")).Text.StrParaDecimal() : pedidoEspelho.Desconto;
                    pe.TipoAcrescimo  = ((DropDownList)dtvPedido.FindControl("drpTipoAcrescimo")) != null ? ((DropDownList)dtvPedido.FindControl("drpTipoAcrescimo")).SelectedValue.StrParaInt() : pedidoEspelho.TipoAcrescimo;
                    pe.Acrescimo      = ((TextBox)dtvPedido.FindControl("txtAcrescimo")) != null ? ((TextBox)dtvPedido.FindControl("txtAcrescimo")).Text.StrParaDecimal() : pedidoEspelho.Acrescimo;
                    pe.DataFabrica    = ((Glass.UI.Web.Controls.ctrlData)dtvPedido.FindControl("ctrlDataFabrica")) != null ? ((Glass.UI.Web.Controls.ctrlData)dtvPedido.FindControl("ctrlDataFabrica")).Data : pedidoEspelho.DataFabrica;
                    pe.Obs            = ((TextBox)dtvPedido.FindControl("txtObs")) != null ? ((TextBox)dtvPedido.FindControl("txtObs")).Text : pedidoEspelho.Obs;
                    pe.IdComissionado = ((HiddenField)dtvPedido.FindControl("hdfIdComissionado")) != null ? ((HiddenField)dtvPedido.FindControl("hdfIdComissionado")).Value.StrParaUintNullable() : pedidoEspelho.IdComissionado;
                    pe.PercComissao   = ((HiddenField)dtvPedido.FindControl("hdfPercComissao")) != null ? ((HiddenField)dtvPedido.FindControl("hdfPercComissao")).Value.StrParaFloat() : pedidoEspelho.PercComissao;

                    PedidoEspelhoDAO.Instance.UpdateDados(null, pe, e.CommandName == "Recalcular");

                    dtvPedido.DataBind();
                    grdAmbiente.DataBind();
                    grdProdutos.DataBind();

                    if (e.CommandName == "Recalcular")
                    {
                        MensagemAlerta.ShowMsg("Pedido recalculado com sucesso!", Page);
                    }
                    else
                    {
                        MensagemAlerta.ShowMsg("Pedido atualizado com sucesso!", Page);
                    }
                }
                catch (Exception ex)
                {
                    if (e.CommandName == "Recalcular")
                    {
                        MensagemAlerta.ErrorMsg("Falha ao recalcular o pedido.", ex, Page);
                    }
                    else
                    {
                        MensagemAlerta.ErrorMsg("Falha ao atualizar o pedido.", ex, Page);
                    }
                }
            }
        }
Пример #8
0
        protected void chkImprimir_DataBinding(object sender, EventArgs e)
        {
            GridViewRow linha = ((CheckBox)sender).Parent.Parent as GridViewRow;

            if (linha == null)
            {
                return;
            }

            PedidoEspelho pe = linha.DataItem as PedidoEspelho;

            if (pe == null)
            {
                return;
            }

            ((CheckBox)sender).Attributes.Add("IdPedido", pe.IdPedido.ToString());
        }
Пример #9
0
        public MemoriaCalculo(PedidoEspelho pe)
        {
            Pedido p = PedidoDAO.Instance.GetElementByPrimaryKey(pe.IdPedido);

            Id               = "Pedido PCP: " + pe.IdPedido;
            IdProjeto        = pe.IdProjeto != null ? "Projeto: " + pe.IdProjeto.Value : "";
            NomeCliente      = pe.IdCli + " - " + ClienteDAO.Instance.GetNome(pe.IdCli);
            NomeFuncionario  = FuncionarioDAO.Instance.GetNome(p.IdFunc);
            Data             = pe.DataConf.GetValueOrDefault(p.DataCad);
            NomeLoja         = LojaDAO.Instance.GetNome(p.IdLoja);
            NomeComissionado = pe.IdComissionado > 0 ? ComissionadoDAO.Instance.GetNome(pe.IdComissionado.Value) : String.Empty;
            PercComissao     = pe.PercComissao;
            ValorComissao    = pe.ValorComissao;
            TextoDesconto    = pe.TextoDescontoTotalPerc;
            TextoAcrescimo   = pe.TextoAcrescimoTotalPerc;
            ValorDesconto    = pe.DescontoTotal;
            ValorIpi         = pe.ValorIpi;
        }
Пример #10
0
        /// <summary>
        /// Importa os beneficiamentos do produto pedido
        /// </summary>
        /// <param name="idProdPed">De qual produto de pedido importar</param>
        /// <param name="idProdPedEsp">Qual produto do pedido espelho será beneficiado</param>
        internal void ImportaProdPedBenef(GDASession sessao, uint idProdPed, uint idProdPedEsp, PedidoEspelho pedidoEspelho)
        {
            if (Glass.Conversoes.StrParaInt(objPersistence.ExecuteScalar(sessao, "Select Count(*) From produto_pedido_benef Where idProdPed=" + idProdPed).ToString()) <= 0)
            {
                return;
            }

            string sql = @"Insert Into produto_pedido_espelho_benef (IdBenefConfig, IdProdPed, Qtd, Valor, LapLarg, LapAlt, 
                BisLarg, BisAlt, EspBisote, EspFuro, Custo, valorComissao, valorAcrescimo, valorAcrescimoProd, valorDesconto, valorDescontoProd, ValorUnit)
                Select IdBenefConfig, {0} as IdProdPed, Qtd, Valor, LapLarg, LapAlt, BisLarg, BisAlt, EspBisote, EspFuro, Custo, valorComissao, 
                valorAcrescimo, valorAcrescimoProd, valorDesconto, valorDescontoProd, ValorUnit From produto_pedido_benef Where idProdPed={1}";

            objPersistence.ExecuteCommand(sessao, String.Format(sql, idProdPedEsp, idProdPed));

            ProdutosPedidoEspelhoDAO.Instance.UpdateValorBenef(sessao, idProdPedEsp, pedidoEspelho);
        }
Пример #11
0
 internal ContainerCalculoDTO(PedidoEspelho pedidoEspelho)
     : this(pedidoEspelho as IContainerCalculo)
 {
     Tipo = TipoContainer.Pedido;
 }
Пример #12
0
        internal int Update(GDASession sessao, AmbientePedidoEspelho objUpdate, PedidoEspelho pedidoEspelho)
        {
            /* Chamado 23293. */
            if ((pedidoEspelho as IContainerCalculo).MaoDeObra && objUpdate.Qtde == 0)
            {
                throw new Exception("Informe a quantidade do ambiente.");
            }

            objUpdate.IdItemProjeto            = ObtemValorCampo <uint?>(sessao, "idItemProjeto", "idAmbientePedido=" + objUpdate.IdAmbientePedido);
            objUpdate.IdAmbientePedidoOriginal = ObtemValorCampo <uint?>(sessao, "idAmbientePedidoOrig", "idAmbientePedido=" + objUpdate.IdAmbientePedido);

            var produtosPedidoEspelho = ProdutosPedidoEspelhoDAO.Instance.GetByAmbiente(sessao, objUpdate.IdAmbientePedido);

            int     tipoAcrescimo    = ObtemValorCampo <int>(sessao, "tipoAcrescimo", "idAmbientePedido=" + objUpdate.IdAmbientePedido);
            decimal acrescimo        = ObtemValorCampo <decimal>(sessao, "acrescimo", "idAmbientePedido=" + objUpdate.IdAmbientePedido);
            bool    alterarAcrescimo = objUpdate.TipoAcrescimo != tipoAcrescimo || objUpdate.Acrescimo != acrescimo;

            if (alterarAcrescimo)
            {
                RemoverAcrescimo(sessao, pedidoEspelho, objUpdate.IdAmbientePedido, produtosPedidoEspelho);
                AplicarAcrescimo(sessao, pedidoEspelho, objUpdate.IdAmbientePedido, objUpdate.TipoAcrescimo, objUpdate.Acrescimo, produtosPedidoEspelho);
            }

            int     tipoDesconto    = ObtemValorCampo <int>(sessao, "tipoDesconto", "idAmbientePedido=" + objUpdate.IdAmbientePedido);
            decimal desconto        = ObtemValorCampo <decimal>(sessao, "desconto", "idAmbientePedido=" + objUpdate.IdAmbientePedido);
            var     alterarDesconto = objUpdate.TipoDesconto != tipoDesconto || objUpdate.Desconto != desconto;

            if (alterarDesconto)
            {
                RemoverDesconto(sessao, pedidoEspelho, objUpdate.IdAmbientePedido, produtosPedidoEspelho);
                AplicarDesconto(sessao, pedidoEspelho, objUpdate.IdAmbientePedido, objUpdate.TipoDesconto, objUpdate.Desconto, produtosPedidoEspelho);
            }

            FinalizarAplicacaoAcrescimoDesconto(sessao, pedidoEspelho, produtosPedidoEspelho, alterarAcrescimo || alterarDesconto);

            int retorno = base.Update(sessao, objUpdate);

            if ((pedidoEspelho as IContainerCalculo).MaoDeObra)
            {
                objPersistence.ExecuteCommand(sessao, "update produtos_pedido_espelho set altura=" + objUpdate.Altura.Value +
                                              ", largura=" + objUpdate.Largura.Value + " where idAmbientePedido=" + objUpdate.IdAmbientePedido +
                                              " and (altura<>0 or largura<>0)");

                // Atualiza todos os produtos deste ambiente, caso a quantidade/m² do ambiente tenha sido alterada é necessário recalcular
                // os valores dos produtos associados ao mesmo
                foreach (ProdutosPedidoEspelho ppe in ProdutosPedidoEspelhoDAO.Instance.GetByAmbiente(sessao, objUpdate.IdAmbientePedido))
                {
                    ProdutosPedidoEspelhoDAO.Instance.Update(sessao, ppe);
                }

                // Após atualizar a altura e largura dos produtos deste ambiente, a mesma alteração deve ser aplicada nos clones
                foreach (ProdutosPedidoEspelho ppe in ProdutosPedidoEspelhoDAO.Instance.GetByAmbienteFast(sessao, 0, objUpdate.IdAmbientePedido))
                {
                    ProdutosPedidoEspelhoDAO.Instance.RemoverClone(sessao, pedidoEspelho, ppe.IdProdPed);
                    ProdutosPedidoEspelhoDAO.Instance.CriarClone(sessao, pedidoEspelho, ppe, true, false);
                }
            }

            PedidoEspelhoDAO.Instance.UpdateTotalPedido(sessao, objUpdate.IdPedido);

            return(retorno);
        }