Example #1
0
        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);
        }
Example #2
0
        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);
        }