public List <Venta_productos> GetPromociones(List <Venta_productos> listVentas) { ComboArticuloAdap cmbAdap = new ComboArticuloAdap(); List <Venta_productos> vpList = new List <Venta_productos>(); List <Venta_productos> vpListRetorna = new List <Venta_productos>(); foreach (Venta_productos pv in listVentas) { Venta_productos vpp = new Venta_productos(); vpp = pv; vpList.Add(vpp); } List <ComboArticulos_ArticulosPromo> vpPromoList = new List <ComboArticulos_ArticulosPromo>(); vpPromoList = cmbAdap.GetArticulosPromoCombos(); int id_combo_ant = 11111; int id_caja; int coincidencias = 0; int cant_elementos_en_combo = 0; List <ComboArticulos_Articulos> listCombo = new List <ComboArticulos_Articulos>(); listCombo = cmbAdap.GetArticulosCombos(); cant_promos = listCombo.Count; foreach (ComboArticulos_Articulos c in listCombo) { contador_promos = contador_promos + 1; id_caja = c.Id_combo; if (hay_promo == true) //este if es el nuevo { foreach (Venta_productos vp in listVentas) { foreach (Venta_productos v in listUsados) { if (vp.Id_Articulo == v.Id_Articulo) { vp.Cantidad = vp.Cantidad - v.Cantidad; } } } hay_promo = false; } foreach (Venta_productos v in listVentas) { if (v.Id_Articulo == c.Id_articulo) { if (v.Cantidad == c.Cantidad_articulo || v.Cantidad > c.Cantidad_articulo) { // menor = Math.Truncate(Convert.ToDecimal(v.Cantidad/c.Cantidad_articulo)); if (c.Id_combo == id_combo_ant) { coincidencias = 1 + coincidencias; if (coincidencias == cant_elementos_en_combo) { vpList = GenerarPromo(c.Id_combo, vpList); } } else { id_combo_ant = c.Id_combo; coincidencias = 1; cant_elementos_en_combo = cmbAdap.GetArticulos(id_caja).Count; if (cant_elementos_en_combo == 1) { vpList = GenerarPromo(c.Id_combo, vpList); } } } } } } foreach (Venta_productos vp in vpList) { foreach (Venta_productos vu in listUsados) { if (vp.Id_Articulo == vu.Id_Articulo) { vp.Cantidad = vp.Cantidad + vu.Cantidad; } } } return(vpList); }
public List <Actividades> GetPromocionesAct(List <Venta_productos> listVentas) { List <Actividades> listAct = new List <Actividades>(); ComboArticuloAdap cmbAdap = new ComboArticuloAdap(); // int cant_elementos_anterior; int id_combo_anterior = 159815; int coincidencias = 0; int cant_elementos_en_combo = 0; foreach (ComboArticulos_Articulos c in cmbAdap.GetArticulosCombos()) { int id_caja = c.Id_combo; // int cant_elementos = cmbAdap.GetArticulos(id_caja).Count; foreach (Venta_productos v in listVentas) { foreach (Venta_productos vpc in vpEnComboList) { if (v.Id_Articulo == vpc.Id_Articulo) { v.Cantidad = v.Cantidad - vpc.Cantidad; } } } foreach (Venta_productos v in listVentas) { if (v.Id_Articulo == c.Id_articulo) { if (v.Cantidad == c.Cantidad_articulo || v.Cantidad > c.Cantidad_articulo) { if (c.Id_combo == id_combo_anterior) { coincidencias = 1 + coincidencias; if (coincidencias == cant_elementos_en_combo) { listAct.Add(cmbAdap.GetPromocionInforme(c.Id_combo)); } } else { id_combo_anterior = c.Id_combo; coincidencias = 1; cant_elementos_en_combo = cmbAdap.GetArticulos(id_caja).Count; if (cant_elementos_en_combo == 1) { listAct.Add(cmbAdap.GetPromocionInforme(c.Id_combo)); } } } } } } return(listAct); }