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()); }
public MemoriaCalculo[] GetMemoriaCalculo(PedidoEspelho pedEsp) { List <MemoriaCalculo> retorno = new List <MemoriaCalculo>(); retorno.Add(new MemoriaCalculo(pedEsp)); return(retorno.ToArray()); }
/// <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 )); }
/// <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, }; }
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); } } }
/// <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 )); }
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); } } } }
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()); }
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; }
/// <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); }
internal ContainerCalculoDTO(PedidoEspelho pedidoEspelho) : this(pedidoEspelho as IContainerCalculo) { Tipo = TipoContainer.Pedido; }
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); }