public DadosMemoriaCalculo(ProdutoPedidoEspelhoBenef ppeb) { BenefConfig bc = BenefConfigDAO.Instance.GetElement(ppeb.IdBenefConfig); ProdutosPedidoEspelho pai = ProdutosPedidoEspelhoDAO.Instance.GetElement(ppeb.IdProdPed, false); BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, ppeb.IdBenefConfig, pai.IdProd); int tipoEntrega = PedidoDAO.Instance.ObtemTipoEntrega(pai.IdPedido); bool maoDeObra = PedidoDAO.Instance.IsMaoDeObra(null, pai.IdPedido); Codigo = pai.CodInterno; Ambiente = !maoDeObra ? pai.AmbientePedido : AmbientePedidoEspelhoDAO.Instance.ObtemPecaVidroQtd(pai.IdAmbientePedido.Value); DescrAmbiente = pai.DescrAmbientePedido; _descricao = " " + bc.DescricaoCompleta.Trim(); Redondo = false; Qtde = ppeb.Qtd; ValorTabela = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntrega, PedidoDAO.Instance.ObtemIdCliente(null, pai.IdPedido)); Custo = bcp.Custo; CustoTotal = ppeb.Custo; Valor = ppeb.ValorUnit; ValorTotal = ppeb.Valor; if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao) { _descricao += " " + Utils.MontaDescrLapBis(ppeb.BisAlt, ppeb.BisLarg, ppeb.LapAlt, ppeb.LapLarg, ppeb.EspBisote, null, null, false); } if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem) { ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorVendido, 2); } TipoCalculo = 0; }
public DadosMemoriaCalculo(ProdutoOrcamentoBenef pob) { BenefConfig bc = BenefConfigDAO.Instance.GetElement(pob.IdBenefConfig); ProdutosOrcamento pai = ProdutosOrcamentoDAO.Instance.GetElement(pob.IdProd); BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, pob.IdBenefConfig, pai.IdProduto.Value); Orcamento orca = OrcamentoDAO.Instance.GetElement(pai.IdOrcamento); Codigo = pai.CodInterno; Ambiente = pai.Ambiente; DescrAmbiente = pai.IdProdParent > 0 ? ProdutosOrcamentoDAO.Instance.ObtemValorCampo <string>("descricao", "idProd=" + pai.IdProdParent.Value) : null; _descricao = " " + bc.DescricaoCompleta.Trim(); Redondo = false; Qtde = pob.Qtde; ValorTabela = BenefConfigDAO.Instance.GetValorTabela(bcp, orca.TipoEntrega, orca.IdCliente); Custo = bcp.Custo; CustoTotal = pob.Custo; Valor = pob.ValorUnit; ValorTotal = pob.Valor; if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao) { _descricao += " " + Utils.MontaDescrLapBis(pob.BisAlt, pob.BisLarg, pob.LapAlt, pob.LapLarg, pob.EspBisote, null, null, false); } if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem) { ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorProd.Value, 2); Custo = Math.Round((Custo / 100) * pai.Custo, 2); } TipoCalculo = 0; }
public DadosMemoriaCalculo(MaterialProjetoBenef mpb, Orcamento.TipoEntregaOrcamento?tipoEntregaOrcamento, float percComissao, string ambiente, string descrAmbiente, uint?idCliente) { BenefConfig bc = BenefConfigDAO.Instance.GetElement(mpb.IdBenefConfig); MaterialItemProjeto pai = MaterialItemProjetoDAO.Instance.GetElementByPrimaryKey(mpb.IdMaterItemProj); BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, mpb.IdBenefConfig, pai.IdProd); Codigo = pai.CodInterno; Ambiente = ambiente; DescrAmbiente = descrAmbiente; _descricao = " " + bc.DescricaoCompleta.Trim(); Redondo = false; Qtde = mpb.Qtd; ValorTabela = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntregaOrcamento, idCliente); Custo = bcp.Custo; CustoTotal = mpb.Custo; Valor = mpb.ValorUnit; ValorTotal = mpb.Valor; if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao) { _descricao += " " + Utils.MontaDescrLapBis(mpb.BisAlt, mpb.BisLarg, mpb.LapAlt, mpb.LapLarg, mpb.EspBisote, null, null, false); } if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem) { ValorTabela = Math.Round((ValorTabela / 100) * pai.Valor, 2); } TipoCalculo = 0; }
/// <summary> /// Insere os preços dos beneficiamentos na tabela. /// </summary> /// <param name="idBenefConfig"></param> /// <param name="cobrarCor"></param> /// <param name="cobrarEspessura"></param> /// <param name="idSubgrupoProd"></param> /// <param name="lstOpcoes"></param> private void InserirPrecos(uint idBenefConfig, bool cobrarCor, bool cobrarEspessura, uint?idSubgrupoProd, BenefConfig[] lstOpcoes) { var benefPreco = new BenefConfigPreco(); var vetEsp = cobrarEspessura ? Glass.Medidas.ObtemEspessuras.Split(',') : new[] { "0" }; var vetSubgrupo = idSubgrupoProd != null ? new[] { null, (int?)idSubgrupoProd } : new int?[] { null }; var vetCor = (cobrarCor ? CorVidroDAO.Instance.GetAll().Select(x => (int?)x.IdCorVidro) : new int?[0]).Union(new int?[] { null }).ToArray(); // Se não houver lista de opções, cria um item com o ID do beneficiamento para inserir var opcoes = lstOpcoes.Length > 0 ? lstOpcoes : new BenefConfig[] { new BenefConfig() { IdBenefConfig = (int)idBenefConfig } }; // Para cada beneficiamento da lista de opções foreach (var bc in opcoes) { // Para cada espessura gera um novo registro deste beneficiamento foreach (var esp in vetEsp) { float espessura = Glass.Conversoes.StrParaFloat(esp); // Para cada subgrupo gera um novo registro deste beneficiamento foreach (var sub in vetSubgrupo) { // Para cada cor gera um novo registro deste beneficiamento foreach (var cor in vetCor) { if (InserirPreco((uint)bc.IdBenefConfig, espessura, (uint?)sub, (uint?)cor)) { benefPreco = new BenefConfigPreco(); benefPreco.IdBenefConfig = bc.IdBenefConfig; if (cobrarEspessura) { benefPreco.Espessura = espessura; } benefPreco.IdCorVidro = cor; benefPreco.IdSubgrupoProd = sub; BenefConfigPrecoDAO.Instance.Insert(benefPreco); } } } } } }
private Data.Beneficiamentos.Total.Dto.PrecoBeneficiamentoDto ConverterPrecosParaDto( BenefConfigPreco preco) { return(new Data.Beneficiamentos.Total.Dto.PrecoBeneficiamentoDto { IdSubgrupo = preco.IdSubgrupoProd, IdCor = preco.IdCorVidro, Espessura = preco.Espessura, CustoUnitario = preco.Custo, ValorAtacadoUnitario = preco.ValorAtacado, ValorBalcaoUnitario = preco.ValorBalcao, ValorObraUnitario = preco.ValorObra, }); }
/// <summary> /// Recupera o valor de tabela de um beneficiamento. /// </summary> /// <param name="idProd"></param> /// <param name="tipoEntrega"></param> /// <param name="idCliente"></param> /// <returns></returns> public decimal GetValorTabela(BenefConfigPreco benefPreco, int?tipoEntrega, uint?idCliente) { if (ClienteDAO.Instance.IsRevenda(null, idCliente)) { return(benefPreco.ValorAtacado); } if (tipoEntrega == null) { tipoEntrega = 1; } switch (tipoEntrega) { case 1: // Balcão case 4: // Entrega return(benefPreco.ValorBalcao); default: return(benefPreco.ValorObra); } }
/// <summary> /// Busca string contendo beneficiamentos feitos no produtoPedido /// </summary> /// <param name="session"></param> /// <param name="idPedido"></param> /// <param name="idProdPed"></param> /// <param name="etiqueta"></param> /// <returns></returns> public string GetDescrBenef(GDASession session, uint?idPedido, uint idProdPed, bool etiqueta) { string descrBenef = String.Empty; // Verifica se essa peça possui beneficiamentos if (!PossuiBeneficiamento(session, idProdPed)) { return(String.Empty); } List <ProdutoPedidoEspelhoBenef> beneficiamentos = objPersistence.LoadData(session, Sql(0, idProdPed, true)); if (idPedido.GetValueOrDefault(0) == 0) { idPedido = ProdutosPedidoEspelhoDAO.Instance.ObtemIdPedido(session, idProdPed); } var isMaoDeObra = PedidoDAO.Instance.IsMaoDeObra(session, idPedido.Value); string complAltura = !etiqueta || isMaoDeObra ? "" : " (" + ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <float>(session, "altura", "idProdPed=" + idProdPed) + ")"; string complLargura = !etiqueta || isMaoDeObra ? "" : " (" + ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <float>(session, "largura", "idProdPed=" + idProdPed) + ")"; uint idProd = ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdPed=" + idProdPed); foreach (ProdutoPedidoEspelhoBenef benef in beneficiamentos) { //Se no cadastro do beneficiamento estiver marcado para não exibir a descrição na etiqueta, //pula para o proximo if (BenefConfigDAO.Instance.NaoExibirDescrImpEtiqueta(session, benef.IdBenefConfig)) { continue; } if (benef.IdBenefConfig == 0) { continue; } if (!Configuracoes.CompraConfig.ExibicaoDescrBenefCustomizada) { BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(session, benef.IdBenefConfig, idProd); var descricao = (benef.Qtd > 0 ? benef.Qtd.ToString() + " " : "") + (!String.IsNullOrEmpty(bcp.DescricaoBenef) ? bcp.DescricaoBenef : benef.DescrBenef) + Utils.MontaDescrLapBis(benef.BisAlt, benef.BisLarg, benef.LapAlt, benef.LapLarg, benef.EspBisote, null, null, false); descrBenef += !String.IsNullOrEmpty(descricao) ? descricao + "; " : ""; } else { string tempBenef = benef.DescrBenef; if (tempBenef.ToLower().IndexOf("até") > -1) { tempBenef = tempBenef.Substring(0, tempBenef.ToLower().IndexOf("até")); tempBenef = tempBenef.Substring(0, tempBenef.LastIndexOf(" ")); } tempBenef += Utils.MontaDescrLapBis(benef.BisAlt, benef.BisLarg, benef.LapAlt, benef.LapLarg, benef.EspBisote, complAltura, complLargura, false); descrBenef += (benef.Qtd > 0 ? benef.Qtd.ToString() + " " : "") + tempBenef.Trim() + "; "; } } return(descrBenef); }