/// <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); }
private GenericBenefCollection GerarBeneficiamentos() { var beneficiamentos = new GenericBenefCollection(); beneficiamentos.Add(new GenericBenef() { IdBenefConfig = 1, Valor = 10, Qtd = 1, ValorUnit = 10 }); return(beneficiamentos); }
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); } }