Exemplo n.º 1
0
        protected void lnkChildInsProdComposicao_Click(object sender, ImageClickEventArgs e)
        {
            if (grdProdutosOrcamentoComposicao.PageCount > 1)
            {
                grdProdutosOrcamentoComposicao.PageIndex = grdProdutosOrcamentoComposicao.PageCount - 1;
            }

            ctrlBenef   benef         = (ctrlBenef)grdProdutosOrcamentoComposicao.FooterRow.FindControl("ctrlChildBenefInserirComposicao");
            GridViewRow linhaControle = benef.Parent.Parent as GridViewRow;
            Control     mainTable     = linhaControle.Parent;

            while (mainTable.ID != "mainTable")
            {
                mainTable = mainTable.Parent;
            }

            var dtvOrcamento  = (DetailsView)mainTable.FindControl("dtvOrcamento");
            var hdfIdAmbiente = (HiddenField)mainTable.FindControl("hdfIdProdAmbienteOrcamento");
            var idOrcamento   = Request["idOrca"].StrParaInt();
            var idProd        = (hdfChildIdProdutoComposicao?.Value?.StrParaInt()).GetValueOrDefault();
            var altura        = (((TextBox)grdProdutosOrcamentoComposicao.FooterRow.FindControl("txtChildAlturaComposicaoIns"))?.Text?.StrParaFloat()).GetValueOrDefault();
            var largura       = (((TextBox)grdProdutosOrcamentoComposicao.FooterRow.FindControl("txtChildLarguraComposicaoIns"))?.Text?.StrParaInt()).GetValueOrDefault();
            var espessura     = (((TextBox)grdProdutosOrcamentoComposicao.FooterRow.FindControl("txtChildEspessuraComposicao"))?.Text?.StrParaFloat()).GetValueOrDefault();
            var redondo       = (((CheckBox)benef.FindControl("Redondo_chkSelecao"))?.Checked).GetValueOrDefault();
            var aliquotaIcms  = (((HiddenField)grdProdutosOrcamentoComposicao.FooterRow.FindControl("hdfChildAliquotaIcmsProdComposicao"))?.Value?.Replace('.', ',')?.StrParaFloat()).GetValueOrDefault();
            var valorIcms     = (((HiddenField)grdProdutosOrcamentoComposicao.FooterRow.FindControl("hdfChildValorIcmsProdComposicao"))?.Value?.Replace('.', ',')?.StrParaDecimal()).GetValueOrDefault();
            var tipoEntrega   = (((HiddenField)dtvOrcamento.FindControl("hdfTipoEntrega"))?.Value?.StrParaInt()).GetValueOrDefault();
            var idCliente     = (((HiddenField)dtvOrcamento.FindControl("hdfIdCliente"))?.Value?.StrParaUint()).GetValueOrDefault();

            // Cria uma instância do ProdutosOrcamento
            var produtoOrcamento = new ProdutosOrcamento();

            produtoOrcamento.IdOrcamento      = (uint)idOrcamento;
            produtoOrcamento.Qtde             = ((TextBox)grdProdutosOrcamentoComposicao.FooterRow.FindControl("txtChildQtdeComposicaoIns"))?.Text?.Replace('.', ',')?.StrParaFloat();
            produtoOrcamento.ValorProd        = ((TextBox)grdProdutosOrcamentoComposicao.FooterRow.FindControl("txtChildValorComposicaoIns"))?.Text?.StrParaDecimal();
            produtoOrcamento.PercDescontoQtde = ((ctrlDescontoQtde)grdProdutosOrcamentoComposicao.FooterRow.FindControl("ctrlDescontoQtdeComposicao")).PercDescontoQtde;
            produtoOrcamento.Altura           = altura;
            produtoOrcamento.Largura          = largura;
            produtoOrcamento.IdProd           = (uint)idProd;
            produtoOrcamento.Espessura        = espessura;
            produtoOrcamento.Redondo          = redondo;
            produtoOrcamento.IdProdParent     = hdfIdAmbiente.Value.StrParaUint();
            produtoOrcamento.IdAplicacao      = ((HiddenField)grdProdutosOrcamentoComposicao.FooterRow.FindControl("hdfChildIdAplicacaoComposicao"))?.Value?.StrParaUint();
            produtoOrcamento.IdProcesso       = ((HiddenField)grdProdutosOrcamentoComposicao.FooterRow.FindControl("hdfChildIdProcessoComposicao"))?.Value?.StrParaUint();
            produtoOrcamento.AliquotaIcms     = aliquotaIcms;
            produtoOrcamento.ValorIcms        = valorIcms;

            var idLoja = OrcamentoDAO.Instance.ObterIdLoja(null, idOrcamento);
            var lojaCalculaIpiPedido = LojaDAO.Instance.ObtemCalculaIpiPedido(null, (uint)idLoja);

            if (lojaCalculaIpiPedido && ClienteDAO.Instance.IsCobrarIpi(null, idCliente))
            {
                produtoOrcamento.AliquotaIpi = ProdutoDAO.Instance.ObtemAliqIpi(produtoOrcamento.IdProduto.Value);
            }

            produtoOrcamento.Beneficiamentos       = benef.Beneficiamentos;
            produtoOrcamento.IdProdOrcamentoParent = (int?)IdProdOrcamento;

            try
            {
                // Insere o produto_orcamento
                produtoOrcamento.IdProd = ProdutosOrcamentoDAO.Instance.Insert(produtoOrcamento);

                if (PedidoConfig.TelaCadastro.ManterCodInternoCampoAoInserirProduto)
                {
                    var codInternoProduto = ProdutoDAO.Instance.GetCodInterno(null, (int)idProd);
                    Page.ClientScript.RegisterClientScriptBlock(typeof(string), "novoProd", $"ultimoCodProd = '{ codInternoProduto }';", true);
                }

                BindControls();
            }
            catch (Exception ex)
            {
                MensagemAlerta.ErrorMsg("Falha ao incluir produto no orçamento.", ex, Page);
                return;
            }
        }