public static string AtualizaBenef(string idOrcamentoStr, string idProdStr, string tipo, string servicosInfo) { try { uint idProd = Conversoes.StrParaUint(idProdStr); uint idOrcamento = Conversoes.StrParaUint(idOrcamentoStr); var orcamento = ObterOrcamento(idOrcamento); GenericBenefCollection beneficiamentos = new GenericBenefCollection(); beneficiamentos.AddBenefFromServicosInfo(servicosInfo); switch (tipo.ToLower()) { case "orçamento": ProdutosOrcamentoDAO.Instance.AtualizarBenef(null, (int)idProd, beneficiamentos); break; case "material": MaterialItemProjetoDAO.Instance.AtualizaBenef(null, idProd, beneficiamentos, orcamento); break; } return("Ok;"); } catch (Exception ex) { return("Erro;" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao atualizar beneficiamentos do produto.", ex)); } }
/// <summary> /// Obtém a lista de beneficiamentos convertida, a partir dos dados do DTO. /// </summary> /// <param name="beneficiamentos">A lista de beneficiamentos do DTO.</param> /// <returns>A lista convertida de beneficiamentos.</returns> public static GenericBenefCollection ObterListaBeneficiamentos(this IEnumerable <ItemBeneficiamentoDto> beneficiamentos) { var configuracoesBeneficiamentos = BenefConfigDAO.Instance.GetForConfig(); var lista = new GenericBenefCollection(); if (beneficiamentos != null) { foreach (var beneficiamento in beneficiamentos) { var configuracao = configuracoesBeneficiamentos .FirstOrDefault(b => b.IdBenefConfig == beneficiamento.Id); var convertido = new GenericBenef { IdBenefConfig = (uint)beneficiamento.Id, Qtd = beneficiamento.Quantidade ?? 0, ValorUnit = beneficiamento.ValorUnitario, Valor = beneficiamento.ValorTotal, Custo = beneficiamento.CustoTotal, }; ConverterLapidacao(convertido, beneficiamento, configuracao); ConverterBisote(convertido, beneficiamento, configuracao); lista.Add(convertido); } } return(lista); }
protected void lnkInserir_Click(object sender, EventArgs e) { var produto = grdProdMateriaPrima.FooterRow.FindControl("ctrlSelProd") as Glass.UI.Web.Controls.ctrlSelProduto; var alturaString = ((TextBox)grdProdMateriaPrima.FooterRow.FindControl("txtAltura")).Text; var larguraString = ((TextBox)grdProdMateriaPrima.FooterRow.FindControl("txtLargura")).Text; var qtdeString = ((TextBox)grdProdMateriaPrima.FooterRow.FindControl("txtQtde")).Text; var formaString = ((TextBox)grdProdMateriaPrima.FooterRow.FindControl("txtForma")).Text; var idProcessoString = ((HiddenField)grdProdMateriaPrima.FooterRow.FindControl("hdfIdProcesso")).Value; var idAplicacaoString = ((HiddenField)grdProdMateriaPrima.FooterRow.FindControl("hdfIdAplicacao")).Value; var prodBaixaEst = new Glass.Estoque.Negocios.Entidades.ProdutoBaixaEstoque(); prodBaixaEst.IdProd = Request["idProd"].StrParaInt(); prodBaixaEst.Qtde = qtdeString.StrParaFloat(); prodBaixaEst.IdProdBaixa = produto.IdProd != null ? (int)produto.IdProd.Value : 0; prodBaixaEst.Altura = alturaString.StrParaInt(); prodBaixaEst.Largura = larguraString.StrParaInt(); prodBaixaEst.Forma = formaString; prodBaixaEst.IdProcesso = idProcessoString.StrParaInt(); prodBaixaEst.IdAplicacao = idAplicacaoString.StrParaInt(); var controleBenef = ((Glass.UI.Web.Controls.ctrlBenef)grdProdMateriaPrima.FooterRow.FindControl("ctrlBenef1")); var benef = new GenericBenefCollection(); benef.ServicosInfo = hdfBenef.Value; if (benef != null) { foreach (Glass.Global.Negocios.Entidades.ProdutoBaixaEstoqueBenef i in controleBenef.Converter(benef)) { prodBaixaEst.ProdutoBaixaEstBeneficiamentos.Add(i); } } try { var resultado = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance <Glass.Global.Negocios.IProdutoFluxo>().SalvarProdutoBaixaEstoque(prodBaixaEst); _produto = prodBaixaEst; if (!resultado) { Glass.MensagemAlerta.ShowMsg("Falha ao inserir matéria prima." + resultado.Message, Page); } else { var imagem = (FileUpload)grdProdMateriaPrima.FooterRow.FindControl("filImagem"); ProdutoSalvo(imagem); } grdProdMateriaPrima.DataBind(); } catch (Exception ex) { Glass.MensagemAlerta.ErrorMsg("Falha ao inserir matéria prima.", ex, Page); } }
public string ValidarTamanhoDosProdutos(string idProd, string altura, string largura, string servicos) { ProdutosOrcamento prodOrca; prodOrca = new ProdutosOrcamento(); prodOrca.IdProduto = Glass.Conversoes.StrParaUintNullable(idProd); prodOrca.Altura = !String.IsNullOrEmpty(altura) ? Single.Parse(altura, System.Globalization.NumberStyles.Any) : 0; prodOrca.Largura = !String.IsNullOrEmpty(largura) ? Glass.Conversoes.StrParaInt(largura) : 0; if (!String.IsNullOrEmpty(servicos)) { GenericBenefCollection benef = new GenericBenefCollection(); benef.AddBenefFromServicosInfo(servicos); prodOrca.Beneficiamentos = benef; } var tamanhoMinimoBisote = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimaParaPecasComBisote; var tamanhoMinimoLapidacao = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimaParaPecasComLapidacao; var tamanhoMinimoTemperado = Configuracoes.PedidoConfig.TamanhoVidro.AlturaELarguraMinimasParaPecasTemperadas; var retorno = string.Empty; if (prodOrca.Beneficiamentos != null) { foreach (var prodBenef in prodOrca.Beneficiamentos) { if (BenefConfigDAO.Instance.GetElement(prodBenef.IdBenefConfig).TipoControle == Data.Model.TipoControleBenef.Bisote && (prodOrca.Altura < tamanhoMinimoBisote || prodOrca.Largura < tamanhoMinimoBisote)) { retorno += $"A altura ou largura minima para peças com bisotê é de {tamanhoMinimoBisote}mm."; } if (BenefConfigDAO.Instance.GetElement(prodBenef.IdBenefConfig).TipoControle == Data.Model.TipoControleBenef.Lapidacao && (prodOrca.Altura < tamanhoMinimoLapidacao || prodOrca.Largura < tamanhoMinimoLapidacao)) { retorno += $"A altura ou largura minima para peças com lapidação é de {tamanhoMinimoLapidacao}mm."; } } } if (prodOrca.IdProduto > 0) { if (SubgrupoProdDAO.Instance.GetElementByPrimaryKey((int)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prodOrca.IdProduto)).IsVidroTemperado&& prodOrca.Altura < tamanhoMinimoTemperado && prodOrca.Largura < tamanhoMinimoTemperado) { retorno += $"A altura ou largura minima para peças com tempera é de {tamanhoMinimoTemperado}mm."; } } return(retorno); }
/// <summary> /// Verifica se o beneficiamento é usado em alguma parte do sistema. /// </summary> /// <param name="idBenefConfig"></param> /// <returns></returns> public bool BenefConfigUsado(uint idBenefConfig) { foreach (var t in GenericBenefCollection.GetTabelas()) { if (objPersistence.ExecuteSqlQueryCount("select count(*) from " + t + " t left join benef_config bc on (t.idBenefConfig=" + "bc.idBenefConfig) where t.idBenefConfig=" + idBenefConfig + " or bc.idParent=" + idBenefConfig) > 0) { return(true); } } return(false); }
private GenericBenefCollection GerarBeneficiamentos() { var beneficiamentos = new GenericBenefCollection(); beneficiamentos.Add(new GenericBenef() { IdBenefConfig = 1, Valor = 10, Qtd = 1, ValorUnit = 10 }); return(beneficiamentos); }
/// <summary> /// Obtém a lista de beneficiamentos convertida, a partir dos beneficiamentos da model. /// </summary> /// <param name="beneficiamentos">A lista de beneficiamentos da model.</param> /// <returns>A lista convertida de beneficiamentos.</returns> public static IEnumerable <ItemBeneficiamentoDto> ObterListaBeneficiamentos(this GenericBenefCollection beneficiamentos) { var lista = new List <ItemBeneficiamentoDto>(); if (beneficiamentos != null) { foreach (var beneficiamento in beneficiamentos) { lista.Add(new ItemBeneficiamentoDto { Id = (int)beneficiamento.IdBenefConfig, Altura = beneficiamento.LapAlt + beneficiamento.BisAlt, Largura = beneficiamento.LapLarg + beneficiamento.BisLarg, Espessura = beneficiamento.EspBisote + beneficiamento.EspFuro, Quantidade = beneficiamento.Qtd, ValorUnitario = beneficiamento.ValorUnit, ValorTotal = beneficiamento.Valor, CustoTotal = beneficiamento.Custo, }); } } return(lista); }
public ProdutosLiberarPedido[] GetForRpt(uint idLiberarPedido) { string sql = "Select * From (" + Sql(idLiberarPedido, 0, null) + ") as tbl Order By totM2 Desc"; List <ProdutosLiberarPedido> retorno = objPersistence.LoadData(sql).ToList(); foreach (ProdutosLiberarPedido plp in retorno) { // Alterações neste trecho devem ser feitas também em ProdutosPedidoDAO.GetForRpt(uint, bool, bool) if (plp.Redondo) { if (!PedidoDAO.Instance.IsMaoDeObra(null, plp.IdPedido) && !plp.DescrProduto.ToLower().Contains("redondo")) { plp.DescrProduto += " REDONDO"; } plp.LarguraProd = 0; plp.LarguraReal = 0; } try { // Empresas que devem exibir o número da etiqueta na impressão da liberação if (FinanceiroConfig.DadosLiberacao.ExibirNumeroEtiquetaLiberacao && plp.IdProdPedEsp != null) { var exibirTodasEtiquetas = !FinanceiroConfig.DadosLiberacao.ExibirAsQuatroPrimeirasEtiquetasNaLiberacao; string etiquetas = ProdutoPedidoProducaoDAO.Instance.GetEtiquetasByIdProdPedLiberacao(plp.IdProdPedEsp.Value, idLiberarPedido); if (String.IsNullOrEmpty(etiquetas)) { etiquetas = ProdutoPedidoProducaoDAO.Instance.GetEtiquetasByIdProdPed(plp.IdProdPedEsp.Value); } if (!String.IsNullOrEmpty(etiquetas)) { plp.NumEtiquetas = "Etiqueta" + (etiquetas.IndexOf(", ") > -1 ? "s" : "") + ": "; var etqs = etiquetas.Split(','); for (int i = 0; i < etqs.Length; i++) { if (!exibirTodasEtiquetas && i == 4) { break; } plp.NumEtiquetas += etqs[i].Trim() + ", "; } plp.NumEtiquetas = plp.NumEtiquetas.Trim().Trim(','); } } if (ProdutoPedidoBenefDAO.Instance.PossuiBeneficiamento(null, plp.IdProdPed)) { GenericBenefCollection benef = new GenericBenefCollection(ProdutoPedidoBenefDAO.Instance.GetByProdutoPedido(plp.IdProdPed)); plp.DescrBeneficiamentos = benef.DescricaoBeneficiamentos; } //Exibe as etiquetad de cavalete if (PCPConfig.ControleCavalete && plp.IdProdPedEsp.GetValueOrDefault(0) > 0) { var numCavaletes = ProdutoPedidoProducaoDAO.Instance.GetCavaletesByIdProdPed(plp.IdProdPedEsp.Value); if (!string.IsNullOrEmpty(numCavaletes)) { plp.NumCavaletes = "Cavalete" + (numCavaletes.IndexOf(", ") > -1 ? "s" : "") + ": " + numCavaletes; } } } catch { } } return(retorno.ToArray()); }
public void CompraPcpInserted(uint idCompra, string[] dadosProdutos) { ProdutosPedidoEspelho prodPed; ProdutosCompra prodCompra; uint idFornec = CompraDAO.Instance.ObtemIdFornec(idCompra); foreach (string produtos in dadosProdutos) { string[] dados = produtos.Split(';'); prodPed = ProdutosPedidoEspelhoDAO.Instance.GetElementForCompraPcp(Glass.Conversoes.StrParaUint(dados[0])); var prod = ProdutoDAO.Instance.GetByCodInterno(dados[1]); if (prod == null) { throw new System.Exception(string.Format("O produto de código {0} está inativo, portanto, ative-o para gerar uma compra de mercadoria para ele.", dados[1])); } bool apenasBeneficiamentos = bool.Parse(dados[4]); prodCompra = new ProdutosCompra(); prodCompra.IdCompra = idCompra; prodCompra.IdProdPed = prodPed.IdProdPed; decimal precoForn = ProdutoFornecedorDAO.Instance.GetCustoCompra((int)idFornec, prod.IdProd); decimal custoCompra = precoForn > 0 ? precoForn : prod.Custofabbase > 0 ? prod.Custofabbase : prod.CustoCompra; prodCompra.Valor = custoCompra; prodCompra.IdProd = (uint)prod.IdProd; prodCompra.Qtde = float.Parse(dados[2]); prodCompra.Largura = prodPed.LarguraProducao; prodCompra.Altura = prodPed.AlturaProducao; prodCompra.TotM = Glass.Global.CalculosFluxo.ArredondaM2Compra((int)prodPed.LarguraProducao, (int)prodPed.AlturaProducao, (int)prodCompra.Qtde); prodCompra.Redondo = prodPed.Redondo; prodCompra.Espessura = prodPed.Espessura > 0 ? prodPed.Espessura : prod.Espessura; prodCompra.NaoCobrarVidro = apenasBeneficiamentos; prodCompra.Obs = prodPed.Obs; if (dados[3].Length > 0) { List <uint> ids = new List <uint>(); foreach (string s in dados[3].Split(',')) { ids.Add(Glass.Conversoes.StrParaUint(s)); } GenericBenefCollection beneficiamentos = new GenericBenefCollection(); foreach (GenericBenef b in prodPed.Beneficiamentos) { if (ids.Contains(b.IdBenefConfig)) { b.Valor = b.Custo; b.ValorUnit = BenefConfigPrecoDAO.Instance.ObtemCustoBenef(null, b.IdBenefConfig, prodCompra.Espessura); beneficiamentos.Add(b); } } prodCompra.Beneficiamentos = beneficiamentos; } ProdutosCompraDAO.Instance.Insert(prodCompra); } }
public ProdutosCompra[] GetForRpt(uint idCompra) { List <ProdutosCompra> lstProdCompra = objPersistence.LoadData(Sql(idCompra, null, true) + " Order By pc.IdProdCompra Asc"); if (!FinanceiroConfig.FinanceiroRec.ImprimirCompraComBenef) { foreach (ProdutosCompra pc in lstProdCompra) { foreach (GenericBenef ppb in pc.Beneficiamentos) { pc.DescrBeneficiamentos += Utils.MontaDescrLapBis(ppb.BisAlt, ppb.BisLarg, ppb.LapAlt, ppb.LapLarg, ppb.EspBisote, null, null, true); } } return(lstProdCompra.ToArray()); } List <ProdutosCompra> lstProdCompraRetorno = new List <ProdutosCompra>(); foreach (ProdutosCompra pc in lstProdCompra) { // Caso esteja marcado para cobrar apenas beneficimentos, zera o valor unitário e o total // para não somar incorretamente na impressão da compra if (pc.NaoCobrarVidro) { pc.Valor = 0; pc.Total = 0; pc.ValorBenef = 0; } lstProdCompraRetorno.Add(pc); GenericBenefCollection lstBenef = pc.Beneficiamentos; if (!PedidoConfig.RelatorioPedido.AgruparBenefRelatorio) { string obs = pc.Obs; pc.Obs = ""; // Para cada beneficiamento, adiciona o mesmo como um produto na listagem de produtos do pedido foreach (GenericBenef ppb in lstBenef) { ProdutosCompra prodCompra = new ProdutosCompra(); prodCompra.IdCompra = idCompra; prodCompra.Qtde = ppb.Qtd; prodCompra.Valor = ppb.ValorUnit; prodCompra.Total = ppb.Valor; prodCompra.ValorBenef = 0; prodCompra.DescrProduto = " " + ppb.DescricaoBeneficiamento + Utils.MontaDescrLapBis(ppb.BisAlt, ppb.BisLarg, ppb.LapAlt, ppb.LapLarg, ppb.EspBisote, null, null, true); lstProdCompraRetorno.Add(prodCompra); } lstProdCompraRetorno[lstProdCompraRetorno.Count - 1].Obs = obs; } else { if (lstBenef.Count > 0) { ProdutosCompra prodCompra = new ProdutosCompra(); prodCompra.IdCompra = idCompra; prodCompra.Qtde = 0; prodCompra.ValorBenef = 0; // Para cada beneficiamento, adiciona o mesmo como um produto na listagem de produtos do pedido foreach (GenericBenef ppb in lstBenef) { prodCompra.Valor += ppb.ValorUnit; prodCompra.Total += ppb.Valor; string textoQuantidade = (ppb.TipoCalculo == TipoCalculoBenef.Quantidade) ? ppb.Qtd.ToString() + " " : ""; prodCompra.DescrProduto += "; " + textoQuantidade + ppb.DescricaoBeneficiamento + Utils.MontaDescrLapBis(ppb.BisAlt, ppb.BisLarg, ppb.LapAlt, ppb.LapLarg, ppb.EspBisote, null, null, true); } prodCompra.DescrProduto = " " + (prodCompra.DescrProduto.Length > 2 ? prodCompra.DescrProduto.Substring(2) : string.Empty); lstProdCompraRetorno.Add(prodCompra); } } } return(lstProdCompraRetorno.ToArray()); }
public string IncluirProdutoOrcamento(string idProdString, string produto) { uint idProd = Glass.Conversoes.StrParaUint(idProdString); ProdutosOrcamento prodOrca; ProdutosOrcamento prodParent = ProdutosOrcamentoDAO.Instance.GetElementByPrimaryKey(idProd); var orca = OrcamentoDAO.Instance.GetElementByPrimaryKey(prodParent.IdOrcamento); uint idProdNovo = 0; try { // [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 = produto.TrimEnd('\n').Split('\t'); prodOrca = new ProdutosOrcamento(); prodOrca.IdOrcamento = prodParent.IdOrcamento; prodOrca.IdProdParent = idProd; prodOrca.IdProduto = Glass.Conversoes.StrParaUint(dadosProd[0]); prodOrca.Ambiente = prodParent.Ambiente; prodOrca.Descricao = !String.IsNullOrEmpty(dadosProd[9]) ? (dadosProd[9].Length > 500 ? dadosProd[9].Substring(0, 500) : dadosProd[9]) : String.Empty; prodOrca.Total = decimal.Parse(dadosProd[2].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint); prodOrca.Qtde = float.Parse(dadosProd[3].Replace('.', ',')); prodOrca.PercDescontoQtde = !String.IsNullOrEmpty(dadosProd[13]) ? float.Parse(dadosProd[13].Replace('.', ',')) : 0; prodOrca.ValorTabela = ProdutoDAO.Instance.GetValorTabela((int)prodOrca.IdProduto.Value, orca.TipoEntrega, orca.IdCliente, false, false, prodOrca.PercDescontoQtde, null, null, (int?)prodOrca.IdOrcamento, !String.IsNullOrEmpty(dadosProd[4]) ? Single.Parse(dadosProd[4], System.Globalization.NumberStyles.Any) : 0); prodOrca.ValorProd = decimal.Parse(dadosProd[1].Replace('.', ',')); if (ProdutoDAO.Instance.IsPrecoTabela(prodOrca.IdProduto.Value, prodOrca.ValorProd.Value)) { prodOrca.ValorProd = prodOrca.ValorTabela; } prodOrca.Altura = !String.IsNullOrEmpty(dadosProd[4]) ? Single.Parse(dadosProd[4], System.Globalization.NumberStyles.Any) : 0; prodOrca.AlturaCalc = !String.IsNullOrEmpty(dadosProd[5]) ? Single.Parse(dadosProd[5], System.Globalization.NumberStyles.Any) : 0; prodOrca.Largura = !String.IsNullOrEmpty(dadosProd[6]) ? Glass.Conversoes.StrParaInt(dadosProd[6]) : 0; prodOrca.Redondo = dadosProd[7] == "true"; prodOrca.TipoCalculoUsado = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo((int)prodOrca.IdProduto.Value); prodOrca.Custo = !String.IsNullOrEmpty(dadosProd[10]) ? decimal.Parse(dadosProd[10].Replace('.', ',')) : 0; prodOrca.Espessura = !String.IsNullOrEmpty(dadosProd[12]) ? Glass.Conversoes.StrParaFloat(dadosProd[12]) : 0; if (!String.IsNullOrEmpty(dadosProd[14])) { GenericBenefCollection benef = new GenericBenefCollection(); benef.AddBenefFromServicosInfo(dadosProd[14]); prodOrca.Beneficiamentos = benef; } uint idCliente = (uint)OrcamentoDAO.Instance.ObterIdCliente(null, (int)prodOrca.IdOrcamento); decimal custo = 0, total = 0; float altura = prodOrca.AlturaCalc, totM2 = 0, totM2Calc = 0; Glass.Data.DAL.ProdutoDAO.Instance.CalcTotaisItemProd(idCliente, (int)prodOrca.IdProduto.Value, prodOrca.Largura, prodOrca.Qtde.Value, 1, prodOrca.ValorProd.Value, prodOrca.Espessura, prodOrca.Redondo, 0, false, true, ref custo, ref altura, ref totM2, ref totM2Calc, ref total, false, prodOrca.Beneficiamentos.CountAreaMinima); prodOrca.AlturaCalc = altura; prodOrca.TotM = totM2; prodOrca.TotMCalc = totM2Calc; prodOrca.Total = total; prodOrca.ValorComissao = total * (decimal)(Glass.Conversoes.StrParaFloat(dadosProd[15]) / 100); prodOrca.IdProcesso = Glass.Conversoes.StrParaUintNullable(dadosProd[16]); prodOrca.IdAplicacao = Glass.Conversoes.StrParaUintNullable(dadosProd[17]); idProdNovo = ProdutosOrcamentoDAO.Instance.Insert(prodOrca); return("ok\tProduto incluído com sucesso no orçamento.\t" + idProdNovo); } catch (Exception ex) { return("Erro\t" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao incluir produto no orçamento.", ex)); } }
public string GerarOrcamento(string nomeCli, string tipoPedido, string tipoEntrega, string dataEntrega, string produtos, string espessura, string numParc) { var orca = new Data.Model.Orcamento(); ProdutosOrcamento prodOrca; uint idOrca = 0; try { LoginUsuario login = UserInfo.GetUserInfo; //Cliente cliProj = ClienteDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(idCli)); //orca.IdCliente = Glass.Conversoes.StrParaUint(idCli); orca.NomeCliente = nomeCli; orca.IdFuncionario = login.CodUser; orca.TipoOrcamento = Glass.Conversoes.StrParaIntNullable(tipoPedido); orca.TipoEntrega = Glass.Conversoes.StrParaInt(tipoEntrega); orca.Validade = OrcamentoConfig.DadosOrcamento.ValidadeOrcamento; orca.PrazoEntrega = OrcamentoConfig.DadosOrcamento.PrazoEntregaOrcamento; orca.FormaPagto = OrcamentoConfig.DadosOrcamento.FormaPagtoOrcamento; orca.Situacao = 1; orca.DataEntrega = Conversoes.ConverteData(dataEntrega); orca.NumeroParcelas = Glass.Conversoes.StrParaInt(numParc); /* * orca.Bairro = cliProj.Bairro; * orca.Cidade = cliProj.Cidade; * orca.Endereco = cliProj.Endereco + (!String.IsNullOrEmpty(cliProj.Numero) ? ", " + cliProj.Numero : String.Empty); * orca.TelCliente = cliProj.TelCont; * orca.CelCliente = cliProj.TelCel; * orca.Email = cliProj.Email; */ idOrca = OrcamentoDAO.Instance.Insert(orca); orca.IdOrcamento = idOrca; orca.ImprimirProdutosOrcamento = true; OrcamentoDAO.Instance.Update(orca); uint?idProdParent = null; prodOrca = new ProdutosOrcamento(); prodOrca.Ambiente = "Orçamento rápido"; prodOrca.Descricao = "Produto gerado pelo orçamento rápido"; prodOrca.IdOrcamento = idOrca; prodOrca.Qtde = 1; idProdParent = ProdutosOrcamentoDAO.Instance.Insert(prodOrca); 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'); var revenda = ClienteDAO.Instance.IsRevenda(orca.IdCliente); prodOrca = new ProdutosOrcamento(); prodOrca.IdOrcamento = idOrca; prodOrca.IdProdParent = idProdParent; prodOrca.IdProduto = Glass.Conversoes.StrParaUint(dadosProd[0]); prodOrca.Descricao = dadosProd[9]; prodOrca.Qtde = float.Parse(dadosProd[3].Replace('.', ',')); prodOrca.PercDescontoQtde = !String.IsNullOrEmpty(dadosProd[13]) ? float.Parse(dadosProd[13].Replace('.', ',')) : 0; prodOrca.ValorTabela = ProdutoDAO.Instance.GetValorTabela((int)prodOrca.IdProduto.Value, orca.TipoEntrega, orca.IdCliente, revenda, false, prodOrca.PercDescontoQtde, null, null, (int?)prodOrca.IdOrcamento, !String.IsNullOrEmpty(dadosProd[4]) ? Single.Parse(dadosProd[4].Replace('.', ','), System.Globalization.NumberStyles.Any) : 0); prodOrca.ValorProd = decimal.Parse(dadosProd[1].Replace('.', ',')); if (ProdutoDAO.Instance.IsPrecoTabela(prodOrca.IdProduto.Value, prodOrca.ValorProd.Value)) { prodOrca.ValorProd = prodOrca.ValorTabela; } prodOrca.Altura = !String.IsNullOrEmpty(dadosProd[4]) ? Single.Parse(dadosProd[4].Replace('.', ','), System.Globalization.NumberStyles.Any) : 0; prodOrca.AlturaCalc = !String.IsNullOrEmpty(dadosProd[5]) ? Single.Parse(dadosProd[5].Replace('.', ','), System.Globalization.NumberStyles.Any) : 0; prodOrca.Largura = !String.IsNullOrEmpty(dadosProd[6]) ? Glass.Conversoes.StrParaInt(dadosProd[6]) : 0; prodOrca.Redondo = dadosProd[7] == "true"; if (!String.IsNullOrEmpty(espessura)) { prodOrca.Espessura = Glass.Conversoes.StrParaInt(espessura); } prodOrca.Custo = decimal.Parse(dadosProd[10].Replace('.', ',')); prodOrca.TipoCalculoUsado = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo((int)prodOrca.IdProduto.Value); prodOrca.Espessura = !String.IsNullOrEmpty(dadosProd[12]) ? Glass.Conversoes.StrParaFloat(dadosProd[12]) : 0; if (!String.IsNullOrEmpty(dadosProd[14])) { GenericBenefCollection benef = new GenericBenefCollection(); benef.AddBenefFromServicosInfo(dadosProd[14]); prodOrca.Beneficiamentos = benef; } uint idCliente = (uint)OrcamentoDAO.Instance.ObterIdCliente(null, (int)prodOrca.IdOrcamento); decimal custo = 0, total = 0; float altura = prodOrca.AlturaCalc, totM2 = 0, totM2Calc = 0; Glass.Data.DAL.ProdutoDAO.Instance.CalcTotaisItemProd(idCliente, (int)prodOrca.IdProduto.Value, prodOrca.Largura, prodOrca.Qtde.Value, 1, prodOrca.ValorProd.Value, prodOrca.Espessura, prodOrca.Redondo, 1, false, true, ref custo, ref altura, ref totM2, ref totM2Calc, ref total, false, prodOrca.Beneficiamentos.CountAreaMinima); prodOrca.Total = total; prodOrca.TotM = totM2; prodOrca.TotMCalc = totM2Calc; prodOrca.ValorComissao = total * (decimal)(Glass.Conversoes.StrParaFloat(dadosProd[15]) / 100); prodOrca.IdProcesso = Glass.Conversoes.StrParaUintNullable(dadosProd[16]); prodOrca.IdAplicacao = Glass.Conversoes.StrParaUintNullable(dadosProd[17]); ProdutosOrcamentoDAO.Instance.Insert(prodOrca); } // Atualiza o total do orçamento OrcamentoDAO.Instance.UpdateTotaisOrcamento(null, OrcamentoDAO.Instance.GetElementByPrimaryKey(null, idOrca), false, false); return("ok\tOrçamento Gerado com sucesso.\t" + idOrca); } catch (Exception ex) { OrcamentoDAO.Instance.DeleteByPrimaryKey(idOrca); return("Erro\t" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao gerar orçamento.", ex)); } }
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)); } }
protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Listas.LstOrcamentoRapido)); Ajax.Utility.RegisterTypeForAjax(typeof(MetodosAjax)); hdfExibePopupEstoque.Value = PedidoConfig.DadosPedido.ExibePopupVidrosEstoque.ToString().ToLower(); if (!String.IsNullOrEmpty(Request["percComissao"])) { hdfPercComissao.Value = Request["percComissao"]; } if (!String.IsNullOrEmpty(Request["idOrca"])) { hdfIdOrca.Value = Request["idOrca"]; } if (IsPopup()) { Page.ClientScript.RegisterStartupScript(GetType(), "popup", "hideThisPopup();", true); if (Request["tipoEntrega"] != null) { drpTipoEntrega.SelectedValue = Request["tipoEntrega"]; drpTipoEntrega.Enabled = false; } if (Request["revenda"] == "1") { chkRevenda.Checked = true; } lblTitleTotalOrca.Text = "Total:"; if (!String.IsNullOrEmpty(Request["idProdOrca"])) { StringBuilder produtos = new StringBuilder(); StringBuilder beneficiamentos = new StringBuilder(); StringBuilder idProdOrca = new StringBuilder(); foreach (ProdutosOrcamento p in ProdutosOrcamentoDAO.Instance.ObterProdutosOrcamento(null, Glass.Conversoes.StrParaInt(Request["idProdOrca"]), null)) { string formatProd = "new Array('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', {8}, '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}')"; string formatBenef = "{0};{1};{2};{3}{4}|"; string benef = ""; var produtosOrcamentoBenef = ProdutoOrcamentoBenefDAO.Instance.GetByProdutoOrcamento(p.IdProd); foreach (var b in produtosOrcamentoBenef) { string arg4 = GenericBenefCollection.IsLapidacao(b.IdBenefConfig) ? String.Format("{0};{1}", b.LapAlt, b.LapLarg) : GenericBenefCollection.IsBisote(b.IdBenefConfig) ? String.Format("{0};{1};{2}", b.BisAlt, b.BisLarg, b.EspBisote.ToString().Replace(',', '.')) : ""; benef += string.Format(formatBenef, b.IdBenefConfig, b.Qtde, 0, b.Valor.ToString().Replace(',', '.'), arg4); } string descricao = p.Descricao; string servicos = ""; if (p.Descricao.IndexOf("(") > -1) { descricao = p.Descricao.Substring(0, p.Descricao.IndexOf("(")); servicos = p.Descricao.Substring(p.Descricao.IndexOf("(") + 1); servicos = servicos.Substring(0, servicos.Length - 1); } /* Chamado 55626. */ else if (!string.IsNullOrWhiteSpace(benef) && produtosOrcamentoBenef != null && produtosOrcamentoBenef.Count() > 0) { var beneficiamentosDescricao = new List <string>(); foreach (var produtoOrcamentoBenef in produtosOrcamentoBenef) { beneficiamentosDescricao.Add(string.Format("{0}{1}", string.Format("{0} ", produtoOrcamentoBenef.Qtde > 0 ? produtoOrcamentoBenef.Qtde.ToString() : string.Empty), BenefConfigDAO.Instance.GetDescrBenef(produtoOrcamentoBenef.IdBenefConfig.ToString()))); } servicos = string.Format("{0}", string.Join(", ", beneficiamentosDescricao)); } if (!String.IsNullOrEmpty(p.Descricao)) { p.Descricao = p.Descricao.Replace("'", "").Replace("\"", ""); } if (!String.IsNullOrEmpty(p.CodInterno)) { p.CodInterno = p.CodInterno.Replace("'", "").Replace("\"", ""); } produtos.Append(", " + String.Format(formatProd, p.IdProd, p.CodInterno, p.ValorProd != null ? p.ValorProd.Value.ToString() : "0", p.Total != null ? (p.Total.Value + p.ValorBenef).ToString() : "0", p.Altura, p.AlturaCalc, p.Largura, p.Qtde > 0 ? p.Qtde.Value : 1, p.Redondo.ToString().ToLower(), p.TotM + (p.TotM != p.TotMCalc ? " (" + p.TotMCalc + ")" : ""), descricao, servicos, p.Custo.ToString(), p.ValorTabela.ToString(), p.Espessura, p.IdProcesso != null ? p.IdProcesso.Value.ToString() : "", p.CodProcesso, p.IdAplicacao != null ? p.IdAplicacao.Value.ToString() : "", p.CodAplicacao)); beneficiamentos.Append(", '" + benef + "'"); idProdOrca.Append(", '" + p.IdProd + "'"); } string script = "criarTabela(new Array({0}), new Array({1}), '{2}', new Array({3}));"; string prod = produtos.ToString(); string ben = beneficiamentos.ToString(); string prodOrca = idProdOrca.ToString(); if (prod.Length > 0) { prod = prod.Substring(2); } if (ben.Length > 0) { ben = ben.Substring(2); } if (prodOrca.Length > 0) { prodOrca = prodOrca.Substring(2); } Page.ClientScript.RegisterStartupScript(GetType(), "tabelaProdutos", String.Format(script, prod, ben, "idProdOrcamento", prodOrca), true); } } // Troca o posicionamento dos controle de largura e altura if (!IsPostBack && PedidoConfig.EmpresaTrabalhaAlturaLargura) { lblLarguraAltura.Text = "Altura x Largura"; Control largParent = txtAltura.Parent; Control altParent = txtLargura.Parent; largParent.Controls.Add(txtLargura); altParent.Controls.Add(txtAltura); lblLargLst.Text = "ALTURA"; lblAltLst.Text = "LARGURA"; } if (!IsPostBack) { hdfIdCliente.Value = Request["idCliente"]; if (Glass.Configuracoes.Geral.NaoVendeVidro()) { // Esconde campos da inserção do produto lblLarguraAltura.Style.Add("display", "none"); lblTitleEspessura.Style.Add("display", "none"); lblMm.Style.Add("display", "none"); lblTitleTotM2.Style.Add("display", "none"); lblTotM2.Style.Add("display", "none"); txtLargura.Style.Add("display", "none"); txtAltura.Style.Add("display", "none"); txtEspessura.Style.Add("display", "none"); // Esconde campos da lista de produtos já adicionados lblAltLst.Text = ""; lblLargLst.Text = ""; lblLstTotM2.Text = ""; lblLstServicos.Text = ""; hdfNaoVendeVidro.Value = "true"; } } }
/// <summary> /// Recarrega a lista de beneficiamentos do banco de dados. /// </summary> public void RefreshBeneficiamentos() { _beneficiamentos = null; }