예제 #1
0
        protected void lnkInsProd_Click(object sender, EventArgs e)
        {
            if (grdProdutosOrcamento.PageCount > 1)
            {
                grdProdutosOrcamento.PageIndex = grdProdutosOrcamento.PageCount - 1;
            }

            Controls.ctrlBenef benef = (Controls.ctrlBenef)grdProdutosOrcamento.FooterRow.FindControl("ctrlBenefInserir");

            var idOrcamento  = Request["IdOrca"].StrParaInt();
            var idProduto    = (hdfIdProduto?.Value?.StrParaInt()).GetValueOrDefault();
            var idAmbiente   = hdfIdProdAmbienteOrcamento.Value;
            var valorVendido = (((TextBox)grdProdutosOrcamento.FooterRow.FindControl("txtValorIns"))?.Text?.StrParaDecimal()).GetValueOrDefault();
            var percentualDescontoQuantidade = (((Controls.ctrlDescontoQtde)grdProdutosOrcamento.FooterRow.FindControl("ctrlDescontoQtde"))?.PercDescontoQtde).GetValueOrDefault();
            var quantidade             = (((TextBox)grdProdutosOrcamento.FooterRow.FindControl("txtQtdeIns"))?.Text?.Replace('.', ',')?.StrParaFloat()).GetValueOrDefault();
            var altura                 = (((TextBox)grdProdutosOrcamento.FooterRow.FindControl("txtAlturaIns"))?.Text?.StrParaFloat()).GetValueOrDefault();
            var alturaCalculada        = (((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfAlturaCalcIns"))?.Value?.StrParaFloat()).GetValueOrDefault();
            var largura                = (((TextBox)grdProdutosOrcamento.FooterRow.FindControl("txtLarguraIns"))?.Text?.StrParaInt()).GetValueOrDefault();
            var espessura              = ((TextBox)grdProdutosOrcamento.FooterRow.FindControl("txtEspessura")).Text.StrParaFloat();
            var redondo                = (((CheckBox)benef.FindControl("Redondo_chkSelecao"))?.Checked).GetValueOrDefault();
            var aliquotaIcms           = (((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfAliquotaIcmsProd"))?.Value?.Replace('.', ',')?.StrParaFloat()).GetValueOrDefault();
            var valorIcms              = (((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfValorIcmsProd"))?.Value?.Replace('.', ',')?.StrParaDecimal()).GetValueOrDefault();
            var tipoEntrega            = ((HiddenField)dtvOrcamento.FindControl("hdfTipoEntrega")).Value.StrParaInt();
            var idCliente              = ((HiddenField)dtvOrcamento.FindControl("hdfIdCliente")).Value.StrParaUint();
            var idAplicacao            = ((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfIdAplicacao"))?.Value?.StrParaInt();
            var idProcesso             = ((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfIdProcesso"))?.Value?.StrParaInt();
            var idProcessoFilha        = ((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfIdProcessoFilhos"))?.Value?.StrParaInt();
            var idAplicacaoFilha       = ((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfIdAplicacaoFilhos"))?.Value?.StrParaInt();
            var aplicarBenefComposicao = ((CheckBox)grdProdutosOrcamento.FooterRow.FindControl("chkAplicarBenefFilhos")).Checked;

            // Cria uma instância da classe ProdutosOrcamento.
            var produtoOrcamento = new ProdutosOrcamento();

            produtoOrcamento.IdOrcamento            = (uint)idOrcamento;
            produtoOrcamento.Qtde                   = quantidade;
            produtoOrcamento.ValorProd              = valorVendido;
            produtoOrcamento.PercDescontoQtde       = percentualDescontoQuantidade;
            produtoOrcamento.Altura                 = altura;
            produtoOrcamento.AlturaCalc             = alturaCalculada;
            produtoOrcamento.Largura                = largura;
            produtoOrcamento.IdProduto              = (uint)idProduto;
            produtoOrcamento.Espessura              = espessura;
            produtoOrcamento.Redondo                = redondo;
            produtoOrcamento.IdProdParent           = idAmbiente.StrParaUint();
            produtoOrcamento.IdAplicacao            = (uint?)idAplicacao;
            produtoOrcamento.IdProcesso             = (uint?)idProcesso;
            produtoOrcamento.IdAplicacaoFilhas      = idAplicacao;
            produtoOrcamento.IdProcessoFilhas       = idProcesso;
            produtoOrcamento.AliquotaIcms           = aliquotaIcms;
            produtoOrcamento.ValorIcms              = valorIcms;
            produtoOrcamento.AplicarBenefComposicao = aplicarBenefComposicao;

            var idLoja = OrcamentoDAO.Instance.ObterIdLoja(null, idOrcamento);

            if (produtoOrcamento.IdProduto > 0 && LojaDAO.Instance.ObtemCalculaIpiPedido(null, (uint)idLoja) && ClienteDAO.Instance.IsCobrarIpi(null, idCliente))
            {
                produtoOrcamento.AliquotaIpi = ProdutoDAO.Instance.ObtemAliqIpi(produtoOrcamento.IdProduto.Value);
            }

            produtoOrcamento.Beneficiamentos = benef.Beneficiamentos;

            try
            {
                // Insere o produto orçamento.
                produtoOrcamento.IdProd = ProdutosOrcamentoDAO.Instance.Insert(produtoOrcamento);

                ((HiddenField)grdProdutosOrcamento.FooterRow.FindControl("hdfAlturaCalcIns")).Value = string.Empty;

                grdProdutosOrcamento.DataBind();
                dtvOrcamento.DataBind();
                grdProdutosAmbienteOrcamento.DataBind();

                if (PedidoConfig.TelaCadastro.ManterCodInternoCampoAoInserirProduto)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(string), "novoProd", $"ultimoCodProd = '{ ProdutoDAO.Instance.GetCodInterno(null, (int)idProduto) }';", true);
                }
            }
            catch (Exception ex)
            {
                MensagemAlerta.ErrorMsg("Falha ao incluir produto no orçamento.", ex, Page);
                return;
            }
        }
예제 #2
0
        protected void ctrlBenef_Load(object sender, EventArgs e)
        {
            Controls.ctrlBenef benef         = (Controls.ctrlBenef)sender;
            GridViewRow        linhaControle = benef.Parent.Parent as GridViewRow;
            Control            codProd       = null;
            var tipoOrcamento = OrcamentoDAO.Instance.ObterTipoOrcamento(null, Request["idOrca"].StrParaInt());

            if (linhaControle.FindControl("lblCodProdIns") != null)
            {
                codProd = linhaControle.FindControl("lblCodProdIns");
            }
            else
            {
                codProd = linhaControle.FindControl("txtCodProdIns");
            }

            TextBox     txtAltura       = (TextBox)linhaControle.FindControl("txtAlturaIns");
            TextBox     txtEspessura    = (TextBox)linhaControle.FindControl("txtEspessura");
            TextBox     txtLargura      = (TextBox)linhaControle.FindControl("txtLarguraIns");
            HiddenField hdfPercComissao = (HiddenField)dtvOrcamento.FindControl("hdfPercComissao");
            TextBox     txtQuantidade   = (TextBox)linhaControle.FindControl("txtQtdeIns");
            HiddenField hdfTipoEntrega  = (HiddenField)dtvOrcamento.FindControl("hdfTipoEntrega");
            HiddenField hdfTotalM2      = null;

            if (!Beneficiamentos.UsarM2CalcBeneficiamentos)
            {
                if (linhaControle.FindControl("hdfTotM") != null)
                {
                    hdfTotalM2 = (HiddenField)linhaControle.FindControl("hdfTotM");
                }
                else if (linhaControle.FindControl("hdfTotMIns") != null)
                {
                    hdfTotalM2 = (HiddenField)linhaControle.FindControl("hdfTotMIns");
                }
            }
            else
            {
                if (linhaControle.FindControl("hdfTotMCalc") != null)
                {
                    hdfTotalM2 = (HiddenField)linhaControle.FindControl("hdfTotMCalc");
                }
                else if (linhaControle.FindControl("hdfTotMCalcIns") != null)
                {
                    hdfTotalM2 = (HiddenField)linhaControle.FindControl("hdfTotMCalcIns");
                }
            }

            TextBox     txtValorIns   = (TextBox)linhaControle.FindControl("txtValorIns");
            HiddenField hdfCliRevenda = (HiddenField)dtvOrcamento.FindControl("hdfCliRevenda");
            HiddenField hdfIdCliente  = (HiddenField)dtvOrcamento.FindControl("hdfIdCliente");
            HiddenField hdfCustoProd  = (HiddenField)linhaControle.FindControl("hdfCustoProd");

            benef.CampoAltura        = txtAltura;
            benef.CampoEspessura     = txtEspessura;
            benef.CampoLargura       = txtLargura;
            benef.CampoPercComissao  = hdfPercComissao;
            benef.CampoQuantidade    = txtQuantidade;
            benef.CampoTipoEntrega   = hdfTipoEntrega;
            benef.CampoTotalM2       = hdfTotalM2;
            benef.CampoValorUnitario = txtValorIns;
            benef.CampoCusto         = hdfCustoProd;
            benef.CampoProdutoID     = codProd;
            benef.CampoRevenda       = hdfCliRevenda;
            benef.CampoClienteID     = hdfIdCliente;
            benef.CampoAplicacaoID   = linhaControle.FindControl("hdfIdAplicacao");
            benef.CampoProcessoID    = linhaControle.FindControl("hdfIdProcesso");
            benef.CampoAplicacao     = linhaControle.FindControl("txtAplIns");
            benef.CampoProcesso      = linhaControle.FindControl("txtProcIns");
            benef.TipoBenef          = TipoBenef.Venda;
        }