public DadosMemoriaCalculo(ProdutoPedidoBenef ppb) { BenefConfig bc = BenefConfigDAO.Instance.GetElement(ppb.IdBenefConfig); ProdutosPedido pai = ProdutosPedidoDAO.Instance.GetElement(ppb.IdProdPed); BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, ppb.IdBenefConfig, pai.IdProd); int tipoEntrega = PedidoDAO.Instance.ObtemTipoEntrega(pai.IdPedido); bool maoDeObra = PedidoDAO.Instance.IsMaoDeObra(null, pai.IdPedido); Codigo = pai.CodInterno; Ambiente = !maoDeObra ? pai.Ambiente : AmbientePedidoDAO.Instance.ObtemPecaVidroQtd(pai.IdAmbientePedido.Value); DescrAmbiente = pai.DescrAmbiente; _descricao = " " + bc.DescricaoCompleta.Trim(); Redondo = false; Qtde = ppb.Qtd; ValorTabela = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntrega, PedidoDAO.Instance.ObtemIdCliente(null, pai.IdPedido)); Custo = bcp.Custo; CustoTotal = ppb.Custo; Valor = ppb.ValorUnit; ValorTotal = ppb.Valor; if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao) { _descricao += " " + Utils.MontaDescrLapBis(ppb.BisAlt, ppb.BisLarg, ppb.LapAlt, ppb.LapLarg, ppb.EspBisote, null, null, false); } if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem) { ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorVendido, 2); } TipoCalculo = 0; }
protected void txt_EspessuraComposicao_DataBinding(object sender, EventArgs e) { TextBox txt = (TextBox)sender; GridViewRow linhaControle = txt.Parent.Parent as GridViewRow; ProdutosPedido prodPed = linhaControle.DataItem as ProdutosPedido; txt.Enabled = prodPed.Espessura <= 0; }
public ProdutosPedidoRpt(ProdutosPedido prodPed, bool incluirQtdeAmbiente) { IdProdPed = prodPed.IdProdPed; IdPedido = prodPed.IdPedido; TituloAltLarg1 = prodPed.TituloAltLarg1; TituloAltLarg2 = prodPed.TituloAltLarg2; IdAmbientePedido = prodPed.IdAmbientePedido; Ambiente = prodPed.Ambiente; DescrAmbiente = prodPed.DescrAmbiente; ObsProjeto = prodPed.ObsProjeto; CodInterno = prodPed.CodInterno; Qtde = prodPed.Qtde; QtdeDisponivelLiberacao = prodPed.QtdeDisponivelLiberacao; TotalCalc = prodPed.TotalCalc; AltLarg1 = prodPed.AltLarg1; AltLarg2 = prodPed.AltLarg2; DescrProduto = prodPed.DescrProduto; DescricaoProdutoComBenef = prodPed.DescricaoProdutoComBenef; CodAplicacao = prodPed.CodAplicacao; CodProcesso = prodPed.CodProcesso; TotM2Calc = prodPed.TotM2Calc; TotM = prodPed.TotM; ValorVendido = prodPed.ValorVendido; Total = prodPed.Total; ValorBenef = prodPed.ValorBenef; PedidoMaoDeObra = PedidoDAO.Instance.IsMaoDeObra(null, IdPedido); DescrBeneficiamentos = prodPed.DescrBeneficiamentos; IdProdPedProducaoConsulta = prodPed.IdProdPedProducaoConsulta; TipoDescontoAmbiente = prodPed.TipoDescontoAmbiente; DescontoAmbiente = prodPed.DescontoAmbiente; Espessura = prodPed.Espessura; ValorDescontoQtde = prodPed.ValorDescontoQtde; PedCli = prodPed.PedCli; IsProdLamComposicao = prodPed.IsProdLamComposicao; IdProdPedParent = prodPed.IdProdPedParent; IsProdLamComposicaoComFilho = prodPed.IsProdLamComposicaoComFilho; Peso = prodPed.Peso; IsVidro = GrupoProdDAO.Instance.IsVidro((int)prodPed.IdGrupoProd); IsVidroEstoqueQtde = prodPed.TipoCalc == (int)TipoCalculoGrupoProd.Qtd && prodPed.IsVidroEstoque; NomeGrupoProd = GrupoProdDAO.Instance.GetDescricao((int)prodPed.IdGrupoProd); NomeSubGrupoProd = prodPed.NomeSubGrupoProd; var corVidro = ProdutoDAO.Instance.ObtemIdCorVidro((int)prodPed.IdProd); if (corVidro > 0) { CorVidro = CorVidroDAO.Instance.GetNome((uint)corVidro.GetValueOrDefault()); } if (incluirQtdeAmbiente) { QtdeAmbiente = prodPed.QtdeAmbiente; } }
protected void rgvQtde_DataBinding(object sender, EventArgs e) { RangeValidator r = (RangeValidator)sender; GridViewRow linha = r.Parent.Parent as GridViewRow; if (linha == null) { return; } ProdutosPedido pp = linha.DataItem as ProdutosPedido; if (pp == null || pp.IdProdPedAnterior == null) { return; } r.MaximumValue = ProdutosPedidoDAO.Instance.ObtemQtde(pp.IdProdPedAnterior.Value).ToString(); r.ErrorMessage = "Valor entre 1 e " + r.MaximumValue; }
public ProdutosCortadosRpt(ProdutosPedido produto) { IdPedido = produto.IdPedido; IdPedidoRevenda = produto.IdPedidoRevenda; CodInternoProd = produto.CodInterno; DescrProduto = produto.DescrProduto; PedCli = produto.PedCli; AlturaProd = produto.Altura; LarguraProd = produto.Largura; TotM2 = produto.TotM; Qtde = produto.Qtde; Peso = produto.Peso; }
public DadosMemoriaCalculo(ProdutosPedidoEspelho ppe, Pedido pedido, float qtdeAmbienteSoma) { bool maoDeObra = (pedido as IContainerCalculo).MaoDeObra; bool reposicao = (pedido as IContainerCalculo).Reposicao; ProdutosPedido pp = ProdutosPedidoDAO.Instance.GetByProdPedEsp(null, ppe.IdProdPed, true); Ambiente = !maoDeObra ? ppe.AmbientePedido : AmbientePedidoEspelhoDAO.Instance.ObtemPecaVidroQtd(ppe.IdAmbientePedido.Value); DescrAmbiente = ppe.DescrAmbientePedido; Codigo = ppe.CodInterno; _descricao = ppe.DescrProduto.Trim(); Redondo = ppe.Redondo; Qtde = ppe.Qtde; QtdeAmbiente = maoDeObra ? ppe.QtdeAmbiente : 0; QtdeAmbienteSoma = maoDeObra ? qtdeAmbienteSoma : 0; Altura = ppe.AlturaReal; AlturaCalc = ppe.Altura; _largura = ppe.Largura; TotM2 = ppe.TotM; TotM2Calc = ppe.TotM2Calc; ValorTabela = ProdutoDAO.Instance.GetValorTabela((int)ppe.IdProd, pedido.TipoEntrega, pedido.IdCli, false, reposicao, ppe.PercDescontoQtde, (int?)ppe.IdPedido, null, null, Altura); Custo = ppe.CustoCompraProduto; Valor = ppe.ValorVendido; ValorTotal = ppe.Total;// +pp.ValorBenef; _valorTabelaCobrado = pp.ValorTabelaPedido; TipoCalculo = pp.TipoCalculoUsadoPedido; IsProdLamComposicao = pp.IsProdLamComposicao; CalculaValor(pedido, ppe); CustoTotal = (ppe as IProdutoCalculo).CustoProd; // Exibe o percentual de desconto por qtd concatenado com a descrição if (Geral.ConcatenarDescontoPorQuantidadeNaDescricaoDoProduto && ppe.PercDescontoQtde > 0) { _descricao += "\r\n(Desc. Prod.: " + ppe.PercDescontoQtde + "%)"; } }
protected void btnConfirmar_Click(object sender, EventArgs e) { try { var idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]); var pcp = !string.IsNullOrEmpty(Request["pcp"]) ? Request["pcp"] == "true" : false; // Recupera os dados da mão de obra var idProdMaoObra = Glass.Conversoes.StrParaUint(hdfIdProdMaoObra.Value); int qtdeMaoObra = Glass.Conversoes.StrParaInt(txtQtdeMaoObra.Text); var valorMaoObra = Glass.Conversoes.StrParaDecimal(txtValorUnitMaoObra.Text); var tipoCalcMaoObra = Glass.Conversoes.StrParaInt(hdfTipoCalcMaoObra.Value); var alturaBenef = !string.IsNullOrEmpty(drpAltBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpAltBenef.SelectedValue) : 0; var larguraBenef = !string.IsNullOrEmpty(drpLargBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpLargBenef.SelectedValue) : 0; var espBenef = !string.IsNullOrEmpty(txtEspBenef.Text) ? (int?)Glass.Conversoes.StrParaInt(txtEspBenef.Text) : null; for (var i = 1; i <= 10; i++) { var idProdAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null? Glass.Conversoes.StrParaUint(((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value) : 0; if (idProdAmbiente == 0) { continue; } var codAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null ? ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text : ""; var descrAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null ? ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value : ""; var qtdeAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text) : 0; var alturaAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text) : 0; var larguraAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null? Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text) : 0; var idAplicacao = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null? Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value) : 0; var idProcesso = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null? Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value) : 0; var redondoAmbiente = (CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null ? ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked : false; var idAmbiente = new uint(); // Insere o ambiente if (!pcp) { var novo = new AmbientePedido(); novo.IdPedido = idPedido; novo.IdProd = idProdAmbiente; novo.Ambiente = descrAmbiente; novo.Altura = alturaAmbiente; novo.Largura = larguraAmbiente; novo.Qtde = qtdeAmbiente; novo.IdAplicacao = idAplicacao; novo.IdProcesso = idProcesso; novo.Redondo = redondoAmbiente; if (novo.Altura != novo.Largura && redondoAmbiente) { throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais."); } idAmbiente = AmbientePedidoDAO.Instance.InsertComTransacao(novo); } else { var novo = new AmbientePedidoEspelho(); novo.IdPedido = idPedido; novo.IdProd = idProdAmbiente; novo.Ambiente = descrAmbiente; novo.Altura = alturaAmbiente; novo.Largura = larguraAmbiente; novo.Qtde = qtdeAmbiente; novo.Redondo = redondoAmbiente; if (novo.Altura != novo.Largura && redondoAmbiente) { throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais."); } idAmbiente = AmbientePedidoEspelhoDAO.Instance.InsertComTransacao(novo); } if (idAmbiente <= 0) { throw new Exception("Ambiente não cadastrado."); } // Insere a mão de obra no ambiente if (!pcp) { ProdutosPedido prod = new ProdutosPedido(); prod.IdPedido = idPedido; prod.IdAmbientePedido = idAmbiente; prod.IdProd = idProdMaoObra; prod.Qtde = qtdeMaoObra; prod.ValorVendido = valorMaoObra; if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro) { prod.Altura = alturaAmbiente; prod.Largura = larguraAmbiente; } prod.Espessura = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd); prod.AlturaBenef = alturaBenef; prod.LarguraBenef = larguraBenef; prod.EspessuraBenef = espBenef; prod.IdGrupoProd = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd); prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0); ProdutosPedidoDAO.Instance.Insert(prod); } else { ProdutosPedidoEspelho prod = new ProdutosPedidoEspelho(); prod.IdPedido = idPedido; prod.IdAmbientePedido = idAmbiente; prod.IdProd = idProdMaoObra; prod.Qtde = qtdeMaoObra * qtdeAmbiente; prod.ValorVendido = valorMaoObra; if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro) { prod.Altura = alturaAmbiente; prod.Largura = larguraAmbiente; } prod.Espessura = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd); prod.AlturaBenef = alturaBenef; prod.LarguraBenef = larguraBenef; prod.EspessuraBenef = espBenef; prod.IdGrupoProd = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd); prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0); ProdutosPedidoEspelhoDAO.Instance.InsertComTransacao(prod); } } // Limpa os controles dos ambientes for (var i = 1; i <= 10; i++) { if ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value = ""; } if ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i) != null) { ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value = ""; } if ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i) != null) { ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i)).Text = ""; } if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null) { ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value = ""; } if ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null) { ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked = false; } } // Atualiza a tela do pedido e exibe a mensagem de sucesso na tela ClientScript.RegisterClientScriptBlock(GetType(), "atualizar", "window.opener.redirectUrl(window.opener.location.href);\n", true); ClientScript.RegisterStartupScript(GetType(), "foco", "FindControl('txtCodAmb1', 'input').focus();\n", true); Glass.MensagemAlerta.ShowMsg("Produtos inseridos com sucesso!", Page); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao inserir produtos no pedido.", ex, Page); } }
public static void EntityFrameworkConfigStart() { using (var ctx = new DropShippingContext()) { var prod1 = new Produto() { produtoId = 1, nome = "Smartphone Motorola Moto G7 Play 32GB Dual Chip Android 4G Câmera 13MP", quantComprada = 1, preco = 5000 }; var prod2 = new Produto() { produtoId = 2, nome = "Celular Samsung Galaxy J6+ 2 Chip", quantComprada = 1, preco = 3000 }; var prod3 = new Produto() { produtoId = 3, nome = "Celular Samsung Galaxy J2 Prime 16gb", quantComprada = 1, preco = 45000 }; var prod4 = new Produto() { produtoId = 4, nome = "iPhone 7 32GB Preto Matte Desbloqueado IOS 10 Wi - fi + 4G Câmera 12MP", quantComprada = 1, preco = 55000 }; var prod5 = new Produto() { produtoId = 5, nome = "iPhone 6 32GB Dourado IOS 8, Câmera 8MP, 4G Processador 1.4 Ghz Dual Core", quantComprada = 1, preco = 4000 }; var prod6 = new Produto() { produtoId = 6, nome = "Smartphone Asus Zenfone 5 64GB Dual Chip Android 4G Câmera 12MP Prata", quantComprada = 1, preco = 2300 }; ctx.Produtos.Add(prod1); ctx.Produtos.Add(prod2); ctx.Produtos.Add(prod3); ctx.Produtos.Add(prod4); ctx.Produtos.Add(prod5); ctx.Produtos.Add(prod6); var pedido1 = new Pedido { pedidoId = 1, clienteId = 10 }; var pedido2 = new Pedido { pedidoId = 2, clienteId = 20 }; ctx.Pedidos.Add(pedido1); ctx.Pedidos.Add(pedido2); var prodPedidos1 = new ProdutosPedido { pedidoId = 1, produtoId = 1 }; var prodPedidos2 = new ProdutosPedido { pedidoId = 2, produtoId = 2 }; var prodPedidos3 = new ProdutosPedido { pedidoId = 2, produtoId = 3 }; ctx.ProdutosPedidos.Add(prodPedidos1); ctx.ProdutosPedidos.Add(prodPedidos2); ctx.ProdutosPedidos.Add(prodPedidos3); var statusPedido1 = new StatusPedido { pedidoId = 1, statusId = 1, dataAtualizacao = DateTime.Now.AddDays(-2) }; var statusPedido2 = new StatusPedido { pedidoId = 1, statusId = 2, dataAtualizacao = DateTime.Now.AddDays(-1) }; var statusPedido3 = new StatusPedido { pedidoId = 1, statusId = 3, dataAtualizacao = DateTime.Now }; var statusPedido4 = new StatusPedido { pedidoId = 2, statusId = 1, dataAtualizacao = DateTime.Now.AddDays(-4) }; var statusPedido5 = new StatusPedido { pedidoId = 2, statusId = 2, dataAtualizacao = DateTime.Now.AddDays(-3) }; var statusPedido6 = new StatusPedido { pedidoId = 2, statusId = 3, dataAtualizacao = DateTime.Now.AddDays(-2) }; var statusPedido7 = new StatusPedido { pedidoId = 2, statusId = 4, dataAtualizacao = DateTime.Now.AddDays(-1) }; var statusPedido8 = new StatusPedido { pedidoId = 2, statusId = 5, dataAtualizacao = DateTime.Now.AddHours(-4) }; var statusPedido9 = new StatusPedido { pedidoId = 2, statusId = 6, dataAtualizacao = DateTime.Now }; ctx.StatusPedidos.Add(statusPedido1); ctx.StatusPedidos.Add(statusPedido2); ctx.StatusPedidos.Add(statusPedido3); ctx.StatusPedidos.Add(statusPedido4); ctx.StatusPedidos.Add(statusPedido5); ctx.StatusPedidos.Add(statusPedido6); ctx.StatusPedidos.Add(statusPedido7); ctx.StatusPedidos.Add(statusPedido8); ctx.StatusPedidos.Add(statusPedido9); FornecedorSeguranca fs = new FornecedorSeguranca(); var fornecedor = new Fornecedor { nome = "Fornecedor SA", login = "******", senha = fs.CalculateMD5Hash("senha@01"), email = "*****@*****.**" }; ctx.Fornecedores.Add(fornecedor); ctx.SaveChanges(); } }
protected void lnk_InsProdComposicao_Click(object sender, ImageClickEventArgs e) { if (grdProdutosComposicao.PageCount > 1) { grdProdutosComposicao.PageIndex = grdProdutosComposicao.PageCount - 1; } Glass.UI.Web.Controls.ctrlBenef benef = (Glass.UI.Web.Controls.ctrlBenef)grdProdutosComposicao.FooterRow.FindControl("ctrl_BenefInserirComposicao"); GridViewRow linhaControle = benef.Parent.Parent as GridViewRow; Control mainTable = linhaControle.Parent; while (mainTable.ID != "mainTable") { mainTable = mainTable.Parent; } var dtvPedido = (DetailsView)mainTable.FindControl("dtvPedido"); var hdfIdAmbiente = (HiddenField)mainTable.FindControl("hdfIdAmbiente") != null ? ((HiddenField)mainTable.FindControl("hdfIdAmbiente")).Value : string.Empty; uint idPedido = Request["IdPedido"].StrParaUint(); int idProd = !string.IsNullOrEmpty(hdf_IdProdComposicao.Value) ? hdf_IdProdComposicao.Value.StrParaInt() : 0; string alturaString = ((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_AlturaComposicaoIns")).Text; string alturaRealString = ((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_AlturaRealComposicaoIns")).Value; string larguraString = ((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_LarguraComposicaoIns")).Text; Single altura = Glass.Conversoes.StrParaFloat(alturaString); Single alturaReal = Glass.Conversoes.StrParaFloat(alturaRealString); int largura = !String.IsNullOrEmpty(larguraString) ? Glass.Conversoes.StrParaInt(larguraString) : 0; string idProcessoStr = ((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_IdProcessoComposicao")).Value; string idAplicacaoStr = ((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_IdAplicacaoComposicao")).Value; string espessuraString = ((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_EspessuraComposicao")).Text; float espessura = !String.IsNullOrEmpty(espessuraString) ? Glass.Conversoes.StrParaFloat(espessuraString) : 0; bool redondo = ((CheckBox)benef.FindControl("Redondo_chkSelecao")) != null ? ((CheckBox)benef.FindControl("Redondo_chkSelecao")).Checked : false; float aliquotaIcms = Glass.Conversoes.StrParaFloat(((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_AliquotaIcmsProdComposicao")).Value.Replace('.', ',')); decimal valorIcms = Glass.Conversoes.StrParaDecimal(((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_ValorIcmsProdComposicao")).Value.Replace('.', ',')); float espBenef = 0; int? alturaBenef = null; int? larguraBenef = null; int tipoEntrega = Glass.Conversoes.StrParaInt(((HiddenField)dtvPedido.FindControl("hdfTipoEntrega")).Value); uint idCliente = Glass.Conversoes.StrParaUint(((HiddenField)dtvPedido.FindControl("hdfIdCliente")).Value); bool reposicao = bool.Parse(((HiddenField)dtvPedido.FindControl("hdfIsReposicao")).Value); // Cria uma instância do ProdutosPedido ProdutosPedido prodPed = new ProdutosPedido(); prodPed.IdPedido = idPedido; prodPed.Qtde = Glass.Conversoes.StrParaFloat(((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_QtdeComposicaoIns")).Text.Replace('.', ',')); prodPed.ValorVendido = Glass.Conversoes.StrParaDecimal(((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_ValorComposicaoIns")).Text); prodPed.PercDescontoQtde = ((Glass.UI.Web.Controls.ctrlDescontoQtde)grdProdutosComposicao.FooterRow.FindControl("ctrl_DescontoQtdeComposicao")).PercDescontoQtde; prodPed.ValorTabelaPedido = ProdutoDAO.Instance.GetValorTabela(idProd, tipoEntrega, idCliente, false, reposicao, prodPed.PercDescontoQtde, (int?)idPedido, null, null); prodPed.Altura = altura; prodPed.AlturaReal = alturaReal; prodPed.Largura = largura; prodPed.IdProd = (uint)idProd; prodPed.Espessura = espessura; prodPed.Redondo = redondo; if (!string.IsNullOrEmpty(hdfIdAmbiente)) { prodPed.IdAmbientePedido = Glass.Conversoes.StrParaUint(hdfIdAmbiente); } if (!String.IsNullOrEmpty(idAplicacaoStr)) { prodPed.IdAplicacao = Glass.Conversoes.StrParaUint(idAplicacaoStr); } if (!String.IsNullOrEmpty(idProcessoStr)) { prodPed.IdProcesso = Glass.Conversoes.StrParaUint(idProcessoStr); } prodPed.AliqIcms = aliquotaIcms; prodPed.ValorIcms = valorIcms; var idLoja = PedidoDAO.Instance.ObtemIdLoja(null, idPedido); var loja = LojaDAO.Instance.GetElement(idLoja); if (loja.CalcularIpiPedido && ClienteDAO.Instance.IsCobrarIpi(null, idCliente)) { prodPed.AliqIpi = ProdutoDAO.Instance.ObtemAliqIpi(prodPed.IdProd); } prodPed.AlturaBenef = alturaBenef; prodPed.LarguraBenef = larguraBenef; prodPed.EspessuraBenef = espBenef; prodPed.Beneficiamentos = benef.Beneficiamentos; prodPed.PedCli = ((TextBox)grdProdutosComposicao.FooterRow.FindControl("txt_PedCliComposicao")).Text; prodPed.IdProdPedParent = (uint?)IdProdPed; uint idProdPed = 0; try { // Se o pedido estiver diferente de ativo-ativo/conferência não permite inserir produtos var situacao = PedidoDAO.Instance.ObtemSituacao(null, prodPed.IdPedido); if (situacao != Glass.Data.Model.Pedido.SituacaoPedido.Ativo && situacao != Glass.Data.Model.Pedido.SituacaoPedido.AtivoConferencia) { MensagemAlerta.ShowMsg("Não é possível incluir produtos em pedidos que não estejam ativos.", Page); return; } // Insere o produto_pedido idProdPed = ProdutosPedidoDAO.Instance.InsertEAtualizaDataEntrega(prodPed); ((HiddenField)grdProdutosComposicao.FooterRow.FindControl("hdf_AlturaRealComposicaoIns")).Value = ""; if (Glass.Configuracoes.PedidoConfig.TelaCadastro.ManterCodInternoCampoAoInserirProduto) { Page.ClientScript.RegisterClientScriptBlock(typeof(string), "novoProd", "ultimoCodProd = '" + ProdutoDAO.Instance.GetCodInterno((int)idProd) + "';", true); } grdProdutosComposicao.DataBind(); var grdProdutos = grdProdutosComposicao.Parent; while (grdProdutos.ID != "grdProdutos") { grdProdutos = grdProdutos.Parent; } ((DetailsView)dtvPedido).DataBind(); ((GridView)grdProdutos).DataBind(); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao incluir produto no Pedido.", ex, Page); return; } }
public uint InsertFromPedido(int idTrocaDev, int idProdPed, decimal qtde) { using (var transaction = new GDATransaction()) { try { transaction.BeginTransaction(); ProdutosPedido prodPed = ProdutosPedidoDAO.Instance.GetElementByPrimaryKey(transaction, idProdPed); Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(transaction, prodPed.IdPedido); var qtdeOriginal = prodPed.Qtde; List <ProdutoTrocadoBenef> lstProdTrocBenef = new List <ProdutoTrocadoBenef>(); // Se a quantidade disponível para ser trocada for diferente da qtd do produto recalcula o total e os beneficiamentos if (prodPed.Qtde != (float)qtde) { // Recalcula o metro quadrado prodPed.TotM = (prodPed.TotM / prodPed.Qtde) * (float)qtde; prodPed.TotM2Calc = prodPed.TotM2Calc > 0 ? (prodPed.TotM2Calc / prodPed.Qtde) * (float)qtde : prodPed.TotM; prodPed.Qtde = (float)qtde; int tipoCalc = GrupoProdDAO.Instance.TipoCalculo(transaction, (int)prodPed.IdProd); if (tipoCalc == (uint)TipoCalculoGrupoProd.Qtd || tipoCalc == (uint)TipoCalculoGrupoProd.QtdM2 || tipoCalc == (uint)TipoCalculoGrupoProd.QtdDecimal) { prodPed.Total = (decimal)prodPed.Qtde * prodPed.ValorVendido; } /* Chamado 62311. */ else if (prodPed.TotM2Calc > 0) { prodPed.Total = (decimal)prodPed.TotM2Calc * prodPed.ValorVendido; } else if (tipoCalc == (int)TipoCalculoGrupoProd.ML) { prodPed.Total = prodPed.ValorVendido * (decimal)(prodPed.Altura * prodPed.Qtde); } else if (prodPed.Altura > 0) { prodPed.Total = (prodPed.ValorVendido * (decimal)(prodPed.Altura * prodPed.Qtde)) / 6; } else { prodPed.Total = prodPed.ValorVendido * (decimal)prodPed.Qtde; } // Recalcula o valor dos beneficiamentos para considerar apenas a quantidade a ser trocada escolhido foreach (ProdutoTrocadoBenef ptb in prodPed.Beneficiamentos.ToProdutosTrocado()) { ptb.Valor = (ptb.Valor / (decimal)qtdeOriginal) * qtde; lstProdTrocBenef.Add(ptb); } } else { // Se a quantidade a ser trocada for a mesma quantidade do produto original, insere todos os beneficiamentos sem recalcular lstProdTrocBenef = prodPed.Beneficiamentos; } ProdutoTrocaDevolucao objInsert = new ProdutoTrocaDevolucao(); objInsert.IdTrocaDevolucao = (uint)idTrocaDev; objInsert.IdProdPed = (uint)idProdPed; objInsert.IdProd = prodPed.IdProd; objInsert.Qtde = (float)qtde; objInsert.Altura = prodPed.Altura; objInsert.AlturaReal = prodPed.AlturaReal; objInsert.Beneficiamentos = lstProdTrocBenef; objInsert.CustoProd = prodPed.CustoProd; objInsert.Espessura = prodPed.Espessura; objInsert.IdAplicacao = prodPed.IdAplicacao; objInsert.IdProcesso = prodPed.IdProcesso; objInsert.Largura = prodPed.Largura; objInsert.PedCli = prodPed.PedCli; objInsert.PercDescontoQtde = prodPed.PercDescontoQtde; objInsert.Redondo = prodPed.Redondo; objInsert.Total = prodPed.Total; objInsert.TotM = prodPed.TotM; objInsert.TotM2Calc = prodPed.TotM2Calc; objInsert.ValorAcrescimo = prodPed.ValorAcrescimo; objInsert.ValorAcrescimoProd = prodPed.ValorAcrescimoProd; objInsert.ValorDesconto = prodPed.ValorDesconto; objInsert.ValorDescontoProd = prodPed.ValorDescontoProd; objInsert.ValorDescontoQtde = prodPed.ValorDescontoQtde; objInsert.ValorVendido = prodPed.ValorVendido; objInsert.AlterarEstoque = true; objInsert.ValorDescontoCliente = prodPed.ValorDescontoCliente; objInsert.ValorAcrescimoCliente = prodPed.ValorAcrescimoCliente; objInsert.ValorUnitarioBruto = prodPed.ValorUnitarioBruto; objInsert.TotalBruto = prodPed.TotalBruto; objInsert.ValorBenef = prodPed.ValorBenef; // Soma o ICMS e IPI ao produto da troca, caso o pedido tenha cobrado if (ped.ValorIcms > 0 || ped.ValorIpi > 0) { if (ped.ValorIcms > 0) { objInsert.Total += prodPed.ValorIcms / (decimal)prodPed.Qtde * (decimal)objInsert.Qtde; } if (ped.ValorIpi > 0) { objInsert.Total += prodPed.ValorIpi / (decimal)prodPed.Qtde * (decimal)objInsert.Qtde; } decimal?valorUnitario = ValorUnitario.Instance.CalcularValor(transaction, ped, objInsert, objInsert.Total); if (valorUnitario.HasValue) { objInsert.ValorVendido = valorUnitario.Value; } } if (objInsert.IdProdPed == null) { return(0); } objInsert.IdPedido = ProdutosPedidoDAO.Instance.ObtemIdPedido(transaction, objInsert.IdProdPed.Value); if (!PedidoConfig.RatearDescontoProdutos && objInsert.IdPedido > 0) { float percDesc = PedidoDAO.Instance.GetPercDesc(transaction, objInsert.IdPedido.Value); if (percDesc > 0) { int tipoCalc = GrupoProdDAO.Instance.TipoCalculo(transaction, (int)objInsert.IdProd); objInsert.Total -= (objInsert.Total + objInsert.ValorBenef) * (decimal)percDesc; if (tipoCalc == (uint)TipoCalculoGrupoProd.Qtd || tipoCalc == (uint)TipoCalculoGrupoProd.QtdM2 || tipoCalc == (uint)TipoCalculoGrupoProd.QtdDecimal) { objInsert.ValorVendido = objInsert.Total / (decimal)objInsert.Qtde; } else if (objInsert.TotM2Calc > 0) { objInsert.ValorVendido = objInsert.Total / (decimal)objInsert.TotM2Calc; } else if (tipoCalc == (int)TipoCalculoGrupoProd.ML) { objInsert.ValorVendido = objInsert.Total / (decimal)(objInsert.Altura * objInsert.Qtde); } else if (objInsert.Altura > 0) { objInsert.ValorVendido = (objInsert.Total * 6) / (decimal)(objInsert.Altura * objInsert.Qtde); } else { objInsert.ValorVendido = objInsert.Total / (decimal)objInsert.Qtde; } } } uint retorno = base.Insert(transaction, objInsert); ProdutoTrocaDevolucaoBenefDAO.Instance.DeleteByProdutoTrocaDev(transaction, retorno); foreach (ProdutoTrocaDevolucaoBenef p in objInsert.Beneficiamentos.ToProdutosTrocaDevolucao(retorno)) { ProdutoTrocaDevolucaoBenefDAO.Instance.Insert(transaction, p); } UpdateValorBenef(transaction, retorno); TrocaDevolucaoDAO.Instance.UpdateTotaisTrocaDev(transaction, objInsert.IdTrocaDevolucao); transaction.Commit(); transaction.Close(); return(retorno); } catch { transaction.Rollback(); transaction.Close(); throw; } } }
private void CriaLinhaTabela(Table tblImagens, bool permitirAlterarImagem, string item, PecaItemProjeto peca, ProdutosPedidoEspelho ppe, ProdutosPedido pp, string msgErro) { TableRow linha = new TableRow(); TableCell cabecalho = new TableCell(); TableCell logPopup = new TableCell(); TableCell botoes = new TableCell(); TableCell upload = new TableCell(); tblImagens.Rows.Add(linha); linha.Cells.AddRange(new TableCell[] { cabecalho, logPopup, botoes }); if (pp != null) { var ctrl = (Controls.ctrlImagemPopup)LoadControl("~/Controls/ctrlImagemPopup.ascx"); ctrl.ImageUrl = pp.ImagemUrl; botoes.Controls.Add(ctrl); ImageButton exc = new ImageButton(); exc.OnClientClick = "if (!confirm('Deseja excluir a imagem atribuída à peça?')) return false;"; exc.ImageUrl = "~/Images/ExcluirGrid.gif"; exc.Click += new ImageClickEventHandler(imgExcluir_Click); exc.PreRender += new EventHandler(imgExcluir_PreRender); // Exibe o Log de alteração da Imagem do Produto Pedido Controls.ctrlLogPopup logPP = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); logPP.Tabela = LogAlteracao.TabelaAlteracao.ImagemProdPed; logPP.IdRegistro = pp.IdProdPed; logPopup.Controls.Add(logPP); botoes.Controls.Add(exc); FileUpload upl = new FileUpload(); upl.ID = "flu" + (tblImagens.Rows.Count - 1); upload.Controls.Add(upl); linha.Cells.Add(upload); return; } TipoArquivoMesaCorte?tipoArquivo = null; if (peca != null) { tipoArquivo = PecaProjetoModeloDAO.Instance.ObtemTipoArquivoMesaCorte(peca.IdPecaProjMod); } // Caso seja permitido alterar a imagem da peça, é necessário verificar ainda se a peça possui fml associado. if (permitirAlterarImagem && (tipoArquivo == null || (tipoArquivo.Value != TipoArquivoMesaCorte.FML && tipoArquivo != TipoArquivoMesaCorte.DXF))) { if (peca != null) { var flags = FlagArqMesaDAO.Instance.ObtemPorPecaProjMod((int)peca.IdPecaProjMod, true); /* Chamado 24392. */ if (flags.Count(f => f.Descricao == TipoArquivoMesaCorte.FML.ToString()) == 0 && flags.Count(f => f.Descricao == TipoArquivoMesaCorte.DXF.ToString()) == 0) { linha.Cells.Add(upload); } } else { linha.Cells.Add(upload); } } else if (permitirAlterarImagem) { permitirAlterarImagem = false; var geraDXF = PCPConfig.EmpresaGeraArquivoDxf ? "DXF" : string.Empty; var geraFML = PCPConfig.EmpresaGeraArquivoDxf ? "FML" : string.Empty; var tiposArquivoBloquear = !string.IsNullOrEmpty(geraDXF) && !string.IsNullOrEmpty(geraFML) ? $"{geraDXF} ou {geraFML}" : geraDXF + geraFML; msgErro = $@"Não é possível alterar imagens de peças que tenham arquivos de mesa associados {tiposArquivoBloquear}."; } if (!String.IsNullOrEmpty(item)) { cabecalho.Text = "Item " + item; } cabecalho.Attributes.Add("item", item); cabecalho.Attributes.Add("idPecaItemProj", peca != null ? peca.IdPecaItemProj.ToString() : String.Empty); if (peca != null) { Controls.ctrlLogPopup log = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); log.Tabela = LogAlteracao.TabelaAlteracao.ImagemProducao; peca.Item = item; log.IdRegistro = peca.IdLog; logPopup.Controls.Add(log); } // Exibe o Log de alteração da Imagem do Produto Pedido Espelho Controls.ctrlLogPopup logPPE = (Controls.ctrlLogPopup)LoadControl("~/Controls/ctrlLogPopup.ascx"); logPPE.Tabela = LogAlteracao.TabelaAlteracao.ImagemProdPedEsp; logPPE.IdRegistro = ppe.IdProdPed; logPopup.Controls.Add(logPPE); if (ppe.TemSvgAssociado) { Controls.ctrlImageCadProject ctrl = (Controls.ctrlImageCadProject)LoadControl("~/Controls/ctrlImageCadProject.ascx"); ctrl.IdProdPedEsp = (int)ppe.IdProdPed; ctrl.DiminuirMedidasPopUp = true; ctrl.Legenda = peca != null ? "Ite" + (peca.Item.IndexOf(" ") > -1 ? "ns" : "m") + ": " + peca.Item : string.Empty; if (!string.IsNullOrEmpty(ppe.LegendaImagemPeca)) { ctrl.Legenda = (peca != null ? "<br />" : string.Empty) + ppe.LegendaImagemPeca; } botoes.Controls.Add(ctrl); } else { Controls.ctrlImagemPopup ctrl = (Controls.ctrlImagemPopup)LoadControl("~/Controls/ctrlImagemPopup.ascx"); ctrl.ImageUrl = ppe.ImagemUrl; ctrl.Legenda = peca != null ? "Ite" + (peca.Item.IndexOf(" ") > -1 ? "ns" : "m") + ": " + peca.Item : String.Empty; if (!String.IsNullOrEmpty(ppe.LegendaImagemPeca)) { ctrl.Legenda = (peca != null ? "<br />" : String.Empty) + ppe.LegendaImagemPeca; } botoes.Controls.Add(ctrl); } if (permitirAlterarImagem) { var pedidoExportado = PedidoExportacaoDAO.Instance.GetSituacaoExportacao(null, pp != null ? pp.IdPedido : ppe != null ? ppe.IdPedido : 0) == PedidoExportacao.SituacaoExportacaoEnum.Exportado; if (!pedidoExportado) { ImageButton exc = new ImageButton(); exc.OnClientClick = "if (!confirm('Deseja excluir a imagem atribuída à peça?')) return false;"; exc.ImageUrl = "~/Images/ExcluirGrid.gif"; exc.Click += new ImageClickEventHandler(this.imgExcluir_Click); exc.PreRender += new EventHandler(this.imgExcluir_PreRender); botoes.Controls.Add(exc); // Se o processo da peça for fixo, não permite anexar imagem if (ppe.IdProcesso == null || ppe.IdProcesso != ProjetoConfig.Caixilho.ProcessoCaixilho) { FileUpload upl = new FileUpload(); upl.ID = "flu" + (tblImagens.Rows.Count - 1); upload.Controls.Add(upl); } } else { Label msg = new Label(); msg.Text = "Não é possível alterar imagens de peças de pedidos exportado."; msg.ForeColor = System.Drawing.Color.Red; msg.Style.Value = "display: inline-block; text-align: right; position: relative; left: 6px"; botoes.Controls.Add(msg); } } else { if (ppe.IdProcesso == ProjetoConfig.Caixilho.ProcessoCaixilho) { msgErro = "Caixilhos não tem imagens associadas"; } Label msg = new Label(); msg.Text = msgErro; msg.ForeColor = System.Drawing.Color.Red; msg.Style.Value = "display: inline-block; text-align: right; position: relative; left: 6px"; botoes.Controls.Add(msg); } }
public string GerarPedido(string idCli, string tipoPedido, string tipoEntrega, string dataEntrega, string produtos, string espessura) { Glass.Data.Model.Pedido ped = new Glass.Data.Model.Pedido(); ProdutosPedido prodPed; uint idPedido = 0; try { LoginUsuario login = UserInfo.GetUserInfo; ped.IdCli = Glass.Conversoes.StrParaUint(idCli); if (ClienteDAO.Instance.GetSituacao(ped.IdCli) != (int)SituacaoCliente.Ativo) { throw new Exception("O cliente não está ativo."); } ped.IdFunc = login.CodUser; ped.IdLoja = FuncionarioDAO.Instance.ObtemIdLoja(ped.IdFunc); ped.TipoVenda = (int)Glass.Data.Model.Pedido.TipoVendaPedido.AVista; ped.TipoPedido = Glass.Conversoes.StrParaInt(tipoPedido); ped.TipoEntrega = Glass.Conversoes.StrParaInt(tipoEntrega); ped.FromOrcamentoRapido = true; ped.DataPedido = DateTime.Now; ped.DataEntregaString = dataEntrega; idPedido = PedidoDAO.Instance.Insert(ped); // Cria o ambiente, se a empresa usar uint?idAmbientePedido = null; if (PedidoConfig.DadosPedido.AmbientePedido) { AmbientePedido ambiente = new AmbientePedido(); ambiente.IdPedido = idPedido; ambiente.Ambiente = ((Glass.Data.Model.Pedido.TipoEntregaPedido)ped.TipoEntrega).ToString(); ambiente.Descricao = ambiente.Ambiente; idAmbientePedido = AmbientePedidoDAO.Instance.Insert(ambiente); } produtos = produtos.Replace("\r\n", "\n"); string[] vetProds = produtos.TrimEnd('\n').Split('\n'); // Para cada produto do orçamento rápido foreach (string prod in vetProds) { // [0]Id do produto [1]Valor produto (sem benef.) [2]Valor total [3]Qtd [4]Altura [5]AlturaCalc [6]Largura [7]Redondo [8]Area total // [9]Descrição [10]Custo, [11]Valor tabela [12]Espessura [13]Perc. Desc. Qtde [14]ServicoInfo [15]Perc. Comissão [16]IdProcesso [17]IdAplicacao string[] dadosProd = prod.Split('\t'); prodPed = new ProdutosPedido(); prodPed.IdPedido = idPedido; prodPed.IdAmbientePedido = idAmbientePedido; prodPed.IdProd = Glass.Conversoes.StrParaUint(dadosProd[0]); prodPed.Qtde = float.Parse(dadosProd[3].Replace('.', ',')); prodPed.PercDescontoQtde = !String.IsNullOrEmpty(dadosProd[13]) ? float.Parse(dadosProd[13].Replace('.', ',')) : 0; prodPed.ValorTabelaPedido = ProdutoDAO.Instance.GetValorTabela((int)prodPed.IdProd, ped.TipoEntrega, ped.IdCli, false, false, prodPed.PercDescontoQtde, (int?)idPedido, null, null, !String.IsNullOrEmpty(dadosProd[5]) ? float.Parse(dadosProd[5]) : 0f); prodPed.ValorVendido = decimal.Parse(dadosProd[1].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint); if (ProdutoDAO.Instance.IsPrecoTabela(prodPed.IdProd, prodPed.ValorVendido)) { prodPed.ValorVendido = prodPed.ValorTabelaPedido; } prodPed.AlturaReal = !String.IsNullOrEmpty(dadosProd[4]) ? float.Parse(dadosProd[4]) : 0f; prodPed.Altura = !String.IsNullOrEmpty(dadosProd[5]) ? float.Parse(dadosProd[5]) : 0f; prodPed.Largura = !String.IsNullOrEmpty(dadosProd[6]) ? Glass.Conversoes.StrParaInt(dadosProd[6]) : 0; prodPed.Redondo = dadosProd[7] == "true"; if (!String.IsNullOrEmpty(dadosProd[8]) && !dadosProd[8].Contains("(")) { prodPed.TotM = Single.Parse(dadosProd[8].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint); } prodPed.Total = decimal.Parse(dadosProd[2].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint); if (!String.IsNullOrEmpty(espessura)) { prodPed.Espessura = Glass.Conversoes.StrParaInt(espessura); } prodPed.CustoProd = decimal.Parse(dadosProd[10].Replace('.', ',')); prodPed.ValorTabelaOrcamento = decimal.Parse(dadosProd[11].Replace('.', ',')); prodPed.TipoCalculoUsadoOrcamento = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo((int)prodPed.IdProd); prodPed.TipoCalculoUsadoPedido = prodPed.TipoCalculoUsadoOrcamento; prodPed.Espessura = !String.IsNullOrEmpty(dadosProd[12]) ? Glass.Conversoes.StrParaFloat(dadosProd[12]) : 0; prodPed.IdProcesso = Glass.Conversoes.StrParaUintNullable(dadosProd[16]); prodPed.IdAplicacao = Glass.Conversoes.StrParaUintNullable(dadosProd[17]); if (!String.IsNullOrEmpty(dadosProd[14])) { GenericBenefCollection benef = new GenericBenefCollection(); benef.AddBenefFromServicosInfo(dadosProd[14]); prodPed.Beneficiamentos = benef; } prodPed.ValorComissao = prodPed.Total * (decimal)(Glass.Conversoes.StrParaFloat(dadosProd[15]) / 100); uint idProdPed = ProdutosPedidoDAO.Instance.Insert(prodPed); } // Atualiza o total do pedido PedidoDAO.Instance.UpdateTotalPedido(idPedido); return("ok\tPedido Gerado com sucesso.\t" + idPedido); } catch (Exception ex) { PedidoDAO.Instance.DeleteByPrimaryKey(idPedido); return("Erro\t" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao gerar pedido.", ex)); } }
public DevDiveReturn SaveResultado(ProdutosPedido produto, IEnumerable <ResultadoAnalise> resultados, IEnumerable <SerieCertificado> dados) { _conn.Open(); var tran = _conn.BeginTransaction(); try { foreach (var resultadoAnalise in resultados) { if (resultadoAnalise.Id == null) { new SqlCommand($@"INSERT INTO [dbo].[tblcertificadoresultado] ( [IdPedido] , [IdSerie] , [IdAnalise] , [Resultado] ) VALUES ( {resultadoAnalise.IdPedido} , {resultadoAnalise.IdSerie} , {resultadoAnalise.IdAnalise} , '{resultadoAnalise.Resultado}' )", _conn, tran).ExecuteNonQuery(); } else { new SqlCommand($@"UPDATE [dbo].[tblcertificadoresultado] SET [IdPedido]={resultadoAnalise.IdPedido}, [IdSerie]={resultadoAnalise.IdSerie} , [IdAnalise]={resultadoAnalise.IdAnalise} , [Resultado]='{resultadoAnalise.Resultado}' WHERE [tblcertificadoresultado].[Id]={resultadoAnalise.Id} ", _conn, tran).ExecuteNonQuery(); } } new SqlCommand( $@"DELETE FROM [dbo].[tblseriecertificado] WHERE [tblseriecertificado].[IdSerie]={ produto.IdSerie }", _conn, tran).ExecuteNonQuery(); var query = $@"INSERT INTO [dbo].[tblseriecertificado] ( [IdSerie] , [Code] , [Batch] , [BotanicalSource] , [Family] , [Origin] , [HarvestRegion] , [UsedPart] , [Preservative] , [Colorant] , [Solvent] , [Carrier] , [DryResidue] , [Ratio] , [Irradiation] , [GMO] , [BSE] ) VALUES ("; foreach (var dado in dados) { switch (dado.Info) { case "Id": continue; case "IdSerie": query += produto.IdSerie.ToString(); break; case "Batch": query += "'" + produto.Serie + "'"; break; default: query += string.IsNullOrEmpty(dado.Value)? "NULL" : "'" + dado.Value + "'"; break; } query += ","; } query = query.Substring(0, query.Length - 1) + ")"; new SqlCommand(query, _conn, tran).ExecuteNonQuery(); tran.Commit(); return(new DevDiveReturn { Message = "Resultados salvos com sucesso!" }); } catch (Exception ex) { tran.Rollback(); return(new DevDiveReturn { Errors = new List <string> { ex.Message + "\r\n" + ex.InnerException }, Message = "Falha ao salvar resultado!" }); } finally { _conn?.Close(); } }
public uint InsertFromPedido(GDASession session, int idTrocaDev, int idProdPed, decimal qtde, string etiquetas, bool?alterarEstoque = null, bool comDefeito = false) { ProdutosPedido prodPed = ProdutosPedidoDAO.Instance.GetElementByPrimaryKey(session, idProdPed); Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(session, prodPed.IdPedido); var qtdeOriginal = prodPed.Qtde; List <ProdutoTrocadoBenef> lstProdTrocBenef = new List <ProdutoTrocadoBenef>(); var qtdProdutoTrocado = ObtemQtdTrocadoDevolvidoFinalizado(session, prodPed.IdProdPed); if (prodPed.Qtde != prodPed.QtdSaida + qtdProdutoTrocado) { throw new Exception(@"Não é possível inserir os produtos selecionados na troca\Devolução, pois os mesmos não foram entregues totalmente."); } //Verifica se tem quantidade suficiente para troca var qtdeDisponivelTroca = ObtemQuantidadeDisponivelParaTroca(session, (uint)idProdPed); if (qtde > qtdeDisponivelTroca) { throw new Exception("Não a quantidade disponível para troca"); } //Valida as etiquetas informadas if (!string.IsNullOrWhiteSpace(etiquetas)) { var lstEtq = etiquetas.Trim().Split(',').Select(f => f.Trim()); if (lstEtq.Count() > qtde) { throw new Exception("A quantidade de etiquetas informadas é maior que a quantidade selecionada. Insira o produto novamente."); } foreach (var etq in lstEtq) { var contadorEtiquetasChapa = 0; var contadorEtiquetasBox = 0; if (etq.ToUpper().Substring(0, 1).Equals("N")) { if (contadorEtiquetasBox > 0) { throw new Exception("Não é possível inserir etiqueta de box junto com etiquetas de chapas"); } var idProd = ProdutosNfDAO.Instance.GetIdProdByEtiqueta(session, etq); var e = etq.Split(';')[0]; var idPedExp = ProdutoImpressaoDAO.Instance.ObterIdPedidoExpedicaoPelaEtiqueta(session, etq); var chapaDeuSaida = ChapaCortePecaDAO.Instance.ChapaDeuSaidaEmPedidoRevenda(etq); if (!chapaDeuSaida) { throw new Exception("A etiqueta " + e + " ainda não foi entregue. Insira o produto novamente"); } if (idPedExp.GetValueOrDefault(0) != prodPed.IdPedido) { throw new Exception("A etiqueta " + e + " não esta vinculada ao pedido da troca/devolução. Insira o produto novamente"); } if (idProd != prodPed.IdProd) { throw new Exception("O produto da etiqueta " + e + " é diferente do produto selecionado. Insira o produto novamente"); } contadorEtiquetasChapa++; } else { if (contadorEtiquetasChapa > 0) { throw new Exception("Não é possível inserir etiqueta de box junto com etiquetas de chapas"); } var idProdPedEtq = ProdutoPedidoProducaoDAO.Instance.ObtemIdProdPed(session, etq); var idProdEtq = ProdutosPedidoEspelhoDAO.Instance.ObtemIdProd(session, idProdPedEtq); var idPedExp = ProdutoPedidoProducaoDAO.Instance.ObtemIdPedidoExpedicao(etq); var situacaoEtq = ProdutoPedidoProducaoDAO.Instance.ObtemSituacaoProducao(session, etq); if (situacaoEtq != SituacaoProdutoProducao.Entregue) { throw new Exception("A etiqueta " + etq + " ainda não foi entregue. Insira o produto novamente"); } if (idPedExp.GetValueOrDefault(0) != prodPed.IdPedido) { throw new Exception("A etiqueta " + etq + " não esta vinculada ao pedido da troca/devolução. Insira o produto novamente"); } if (idProdEtq != prodPed.IdProd) { throw new Exception("O produto da etiqueta " + etq + " é diferente do produto selecionado. Insira o produto novamente"); } contadorEtiquetasBox++; } } } // Se a quantidade disponível para ser trocada for diferente da qtd do produto recalcula o total e os beneficiamentos if (prodPed.Qtde != (float)qtde) { // Recalcula o metro quadrado prodPed.TotM = (prodPed.TotM / prodPed.Qtde) * (float)qtde; prodPed.TotM2Calc = prodPed.TotM2Calc > 0 ? (prodPed.TotM2Calc / prodPed.Qtde) * (float)qtde : prodPed.TotM; prodPed.Qtde = (float)qtde; int tipoCalc = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo(session, (int)prodPed.IdProd); if (tipoCalc == (uint)TipoCalculoGrupoProd.Qtd || tipoCalc == (uint)TipoCalculoGrupoProd.QtdM2 || tipoCalc == (uint)TipoCalculoGrupoProd.QtdDecimal) { prodPed.Total = (decimal)prodPed.Qtde * prodPed.ValorVendido; } /* Chamado 62311. */ else if (prodPed.TotM2Calc > 0) { prodPed.Total = (decimal)prodPed.TotM2Calc * prodPed.ValorVendido; } else if (tipoCalc == (int)Glass.Data.Model.TipoCalculoGrupoProd.ML) { prodPed.Total = prodPed.ValorVendido * (decimal)(prodPed.Altura * prodPed.Qtde); } else if (prodPed.Altura > 0) { prodPed.Total = (prodPed.ValorVendido * (decimal)(prodPed.Altura * prodPed.Qtde)) / 6; } else { prodPed.Total = prodPed.ValorVendido * (decimal)prodPed.Qtde; } // Recalcula o valor dos beneficiamentos para considerar apenas a quantidade a ser trocada escolhido foreach (ProdutoTrocadoBenef ptb in prodPed.Beneficiamentos.ToProdutosTrocado()) { ptb.Valor = (ptb.Valor / (decimal)qtdeOriginal) * (decimal)qtde; lstProdTrocBenef.Add(ptb); } } else { // Se a quantidade a ser trocada for a mesma quantidade do produto original, insere todos os beneficiamentos sem recalcular lstProdTrocBenef = prodPed.Beneficiamentos; } ProdutoTrocado novo = new ProdutoTrocado(); novo.IdTrocaDevolucao = (uint)idTrocaDev; novo.IdProdPed = (uint)idProdPed; novo.IdProd = prodPed.IdProd; novo.Qtde = (float)qtde; novo.Altura = prodPed.Altura; novo.AlturaReal = prodPed.AlturaReal; novo.Beneficiamentos = lstProdTrocBenef; novo.CustoProd = prodPed.CustoProd; novo.Espessura = prodPed.Espessura; novo.IdAplicacao = prodPed.IdAplicacao; novo.IdProcesso = prodPed.IdProcesso; novo.Largura = prodPed.Largura; novo.PedCli = prodPed.PedCli; novo.PercDescontoQtde = prodPed.PercDescontoQtde; novo.Redondo = prodPed.Redondo; novo.Total = prodPed.Total; novo.TotM = prodPed.TotM; novo.TotM2Calc = prodPed.TotM2Calc; novo.ValorAcrescimo = prodPed.ValorAcrescimo; novo.ValorAcrescimoProd = prodPed.ValorAcrescimoProd; novo.ValorDesconto = prodPed.ValorDesconto; novo.ValorDescontoProd = prodPed.ValorDescontoProd; novo.ValorVendido = prodPed.ValorVendido; novo.AlterarEstoque = alterarEstoque.HasValue ? alterarEstoque.Value : true; novo.ComDefeito = comDefeito; novo.ValorDescontoCliente = prodPed.ValorDescontoCliente; novo.ValorAcrescimoCliente = prodPed.ValorAcrescimoCliente; novo.ValorUnitarioBruto = prodPed.ValorUnitarioBruto; novo.ValorTabelaPedido = prodPed.ValorTabelaPedido; novo.TotalBruto = prodPed.TotalBruto; novo.ValorBenef = Math.Round((prodPed.ValorBenef / (decimal)qtdeOriginal) * qtde, 2); novo.ValorDescontoQtde = prodPed.ValorDescontoQtde; DescontoAcrescimo.Instance.RemoverDescontoQtde(session, ped, novo); if (!string.IsNullOrEmpty(etiquetas)) { var lstEtq = etiquetas.Trim().Split(',').Select(f => f.Trim()); var etqs = new List <string>(); foreach (var e in lstEtq) { if (e.ToUpper().Substring(0, 1).Equals("N")) { etqs.Add(e); } else { var idProdPedProducao = ProdutoPedidoProducaoDAO.Instance.ObtemIdProdPedProducao(session, e); var leitura = LeituraProducaoDAO.Instance.ObtemUltimaLeitura(session, idProdPedProducao.GetValueOrDefault(0)); var idItemCarregamento = ItemCarregamentoDAO.Instance.ObtemIdItemCarregamento(session, idProdPedProducao.GetValueOrDefault(0)); if (leitura != null) { etqs.Add(e + ";" + leitura.IdProdPedProducao + ";" + leitura.IdSetor + ";" + leitura.IdFuncLeitura + ";" + leitura.DataLeitura + ";" + leitura.IdCavalete + ";" + idItemCarregamento); } } } novo.Etiquetas = string.Join("|", etqs); } novo.IdPedido = TrocaDevolucaoDAO.Instance.ObtemValorCampo <uint?>(session, "idPedido", "idTrocaDevolucao=" + novo.IdTrocaDevolucao); if (!PedidoConfig.RatearDescontoProdutos && novo.IdPedido > 0) { float percDesc = PedidoDAO.Instance.GetPercDesc(session, novo.IdPedido.Value); if (percDesc > 0) { int tipoCalc = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo(session, (int)novo.IdProd); novo.Total -= (novo.Total + novo.ValorBenef) * (decimal)percDesc; if (tipoCalc == (uint)TipoCalculoGrupoProd.Qtd || tipoCalc == (uint)TipoCalculoGrupoProd.QtdM2 || tipoCalc == (uint)TipoCalculoGrupoProd.QtdDecimal) { novo.ValorVendido = novo.Total / (decimal)novo.Qtde; } else if (novo.TotM2Calc > 0) { novo.ValorVendido = novo.Total / (decimal)novo.TotM2Calc; } else if (tipoCalc == (int)Glass.Data.Model.TipoCalculoGrupoProd.ML) { novo.ValorVendido = novo.Total / (decimal)(novo.Altura * novo.Qtde); } else if (novo.Altura > 0) { novo.ValorVendido = (novo.Total * 6) / (decimal)(novo.Altura * novo.Qtde); } else { novo.ValorVendido = novo.Total / (decimal)novo.Qtde; } } } DescontoAcrescimo.Instance.AplicarDescontoQtde(session, ped, novo); // Soma o ICMS e IPI ao produto da troca, caso o pedido tenha cobrado if (ped.ValorIcms > 0 || ped.ValorIpi > 0) { if (ped.ValorIcms > 0) { novo.Total += prodPed.ValorIcms / (decimal)prodPed.Qtde * (decimal)novo.Qtde; } if (ped.ValorIpi > 0) { novo.Total += prodPed.ValorIpi / (decimal)prodPed.Qtde * (decimal)novo.Qtde; } decimal?valorUnitario = ValorUnitario.Instance.CalcularValor(session, ped, novo, novo.Total); if (valorUnitario.HasValue) { novo.ValorVendido = valorUnitario.Value; } } uint retorno = base.Insert(session, novo); ProdutoTrocadoBenefDAO.Instance.DeleteByProdutoTrocado(session, retorno); foreach (ProdutoTrocadoBenef p in novo.Beneficiamentos.ToProdutosTrocado(retorno)) { ProdutoTrocadoBenefDAO.Instance.Insert(session, p); } UpdateValorBenef(session, retorno); TrocaDevolucaoDAO.Instance.UpdateTotaisTrocaDev(session, novo.IdTrocaDevolucao); decimal valor = ObtemValorCampo <decimal>(session, "total+coalesce(valorBenef,0)", "idProdTrocado=" + retorno); objPersistence.ExecuteCommand(session, "update troca_devolucao set creditoGerado=creditoGerado+?valor where creditoGeradoMax>0 and idTrocaDevolucao=" + novo.IdTrocaDevolucao, new GDAParameter("?valor", valor)); TrocaDevolucaoDAO.Instance.UpdateTotaisTrocaDev(session, novo.IdTrocaDevolucao); return(retorno); }
public ProdutosReposicao(ProdutosPedido produto) { _produto = produto; _beneficiamentos = GDAOperations.GetDAO <ProdutoPedidoBenef, ProdutoPedidoBenefDAO>().GetByProdutoPedido(_produto.IdProdPed); }