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; } }