public ActionResult DevolverTodo() { DetalleVenta dv = (DetalleVenta)Session["DetalleVenta"]; int salvaCantidad; Ventas v = db.Ventas.Find(dv.codVen); //Ventas v = (Ventas)Session["VentasDev"]; v.cantAsientos -= (int)dv.cantEntradas; v.MontoTotalSoles -= (double)dv.total; v.montoDev += (double)dv.total; v.entradasDev += (int)dv.cantEntradas; if (v.cantAsientos == 0) v.Estado = "Devuelto"; Funcion f = db.Funcion.Find(dv.codFuncion); Eventos ev = db.Eventos.Find(f.codEvento); //Eventos ev = (Eventos)Session["EventoDev"]; ev.monto_adeudado =ev.monto_adeudado - (double)dv.total + dv.montoDev; CuentaUsuario cu = db.CuentaUsuario.Find(v.cliente); cu.puntos -= (int)ev.puntosAlCliente * (int)dv.cantEntradas; List<AsientosXFuncion> axf = db.AsientosXFuncion.Where(a => a.codFuncion == f.codFuncion && a.codDetalleVenta == dv.codDetalleVenta).ToList(); //List<AsientosXFuncion> axf = (List<AsientosXFuncion>)Session["ListaAsientos"]; for (int i = 0; i < axf.Count; i++) axf[i].estado = "libre"; VentasXFuncion vxf = (db.VentasXFuncion.Where(ven => ven.codVen == v.codVen && ven.codFuncion == f.codFuncion).ToList())[0]; //VentasXFuncion vxf = (VentasXFuncion)Session["VentaXFunDev"]; vxf.cantEntradas -= (int)dv.cantEntradas; vxf.montoDev += (double)dv.total; vxf.entradasDev += (int)dv.cantEntradas; PrecioEvento pe = db.PrecioEvento.Find(dv.codPrecE); ZonaEvento ze = db.ZonaEvento.Find(pe.codZonaEvento); if (!ze.tieneAsientos) ze.tieneAsientos = true; ZonaxFuncion zxf = (db.ZonaxFuncion.Where(z => z.codFuncion == dv.codFuncion && z.codZona == ze.codZona).ToList())[0]; zxf.cantLibres += (int)dv.cantEntradas; DetalleVenta dvAux = db.DetalleVenta.Find(dv.codDetalleVenta); dvAux.entradasDev = dvAux.cantEntradas; salvaCantidad = (int)dvAux.cantEntradas; dvAux.cantEntradas = 0; dvAux.montoDev += (double)dv.total; /*Session["DetalleVenta"] Session["VentaXFunDev"] Session["VentasDev"] Session["ListaAsientos"] = axf; Session["BusquedaDev"] = devolucionModel Session["FuncionDev"] Session["EventoDev"] */ //elimina de la lista de busqueda! List<DevolucionModel> dev = (List<DevolucionModel>)Session["BusquedaDev"]; for (int i = 0; i < dev.Count; i++) if (dev[i].codDev == dv.codDetalleVenta) dev.RemoveAt(i); Session["BusquedaDev"] = dev; LogDevoluciones ld = new LogDevoluciones(); //ld.codLog=; ld.codDetalleVenta = dvAux.codDetalleVenta; ld.codVendedor = User.Identity.Name; ld.cantEntradas = salvaCantidad; ld.fechaDev = DateTime.Now; ld.montoDev = dv.total; db.LogDevoluciones.Add(ld); db.SaveChanges(); return View("Devolucion"); }
public ActionResult devolverParcial(string asiento) { List<AsientosXFuncion> axf = (List<AsientosXFuncion>)Session["ListaAsientos"]; DetalleVenta dv = (DetalleVenta)Session["DetalleVenta"]; if (axf.Count != 0) //numerado { int codAsiento = int.Parse(asiento); //DetalleVenta dv = (DetalleVenta)Session["DetalleVenta"]; AsientosXFuncion axfuncion = db.AsientosXFuncion.Where(a => a.codAsiento == codAsiento && a.codFuncion == dv.codFuncion).First(); //AsientosXFuncion axfuncion = db.AsientosXFuncion.Find(codAsiento); Ventas v = db.Ventas.Find(dv.codVen); //Ventas v = (Ventas)Session["VentasDev"]; v.cantAsientos -= 1; v.MontoTotalSoles -= (double)axfuncion.PrecioPagado; v.entradasDev += 1; v.montoDev += (double)axfuncion.PrecioPagado; if (v.cantAsientos == 0) v.Estado = "Devuelto"; //v.Estado = "DevueltoParcial"; por evaluar!!!!!!! Funcion f = db.Funcion.Find(dv.codFuncion); Eventos ev = db.Eventos.Find(f.codEvento); //Eventos ev = (Eventos)Session["EventoDev"]; ev.monto_adeudado -= (double)axfuncion.PrecioPagado; CuentaUsuario cu = db.CuentaUsuario.Find(v.cliente); cu.puntos -= (int)ev.puntosAlCliente; //List<AsientosXFuncion> axf = db.AsientosXFuncion.Where(a => a.codFuncion == f.codFuncion && a.codDetalleVenta == dv.codDetalleVenta).ToList(); //List<AsientosXFuncion> axf = (List<AsientosXFuncion>)Session["ListaAsientos"]; //for (int i = 0; i < axf.Count; i++) // axf[i].estado = "libre"; axfuncion.estado = "libre"; VentasXFuncion vxf = (db.VentasXFuncion.Where(ven => ven.codVen == v.codVen && ven.codFuncion == f.codFuncion).ToList())[0]; //VentasXFuncion vxf = (VentasXFuncion)Session["VentaXFunDev"]; vxf.cantEntradas -= 1; vxf.montoDev += (double)axfuncion.PrecioPagado; vxf.entradasDev += 1; PrecioEvento pe = db.PrecioEvento.Find(dv.codPrecE); ZonaEvento ze = db.ZonaEvento.Find(pe.codZonaEvento); if (!ze.tieneAsientos) ze.tieneAsientos = true; ZonaxFuncion zxf = (db.ZonaxFuncion.Where(z => z.codFuncion == dv.codFuncion && z.codZona == ze.codZona).ToList())[0]; zxf.cantLibres += 1; DetalleVenta dvAux = db.DetalleVenta.Find(dv.codDetalleVenta); dvAux.entradasDev += 1; dvAux.cantEntradas -= 1; dvAux.montoDev += (double)axfuncion.PrecioPagado; /*Session["DetalleVenta"] Session["VentaXFunDev"] Session["VentasDev"] Session["ListaAsientos"] = axf; Session["BusquedaDev"] = devolucionModel Session["FuncionDev"] Session["EventoDev"] */ //elimina de la lista de busqueda! //List<DevolucionModel> dev = (List<DevolucionModel>)Session["BusquedaDev"]; for (int i = 0; i < axf.Count; i++) if (axf[i].codAsiento == codAsiento) { axf.RemoveAt(i); break; } Session["ListaAsientos"] = axf; LogDevoluciones ld = new LogDevoluciones(); ld.codDetalleVenta = dv.codDetalleVenta; ld.codVendedor = User.Identity.Name; ld.cantEntradas = 1; ld.fechaDev = DateTime.Now; ld.montoDev = axfuncion.PrecioPagado; db.LogDevoluciones.Add(ld); } else // no numerado { //AsientosXFuncion axfuncion = db.AsientosXFuncion.Find(codAsiento); PrecioEvento pe = db.PrecioEvento.Find(dv.codPrecE); Ventas v = db.Ventas.Find(dv.codVen); //Ventas v = (Ventas)Session["VentasDev"]; v.cantAsientos -= 1; v.MontoTotalSoles -= (double)pe.precio; if (v.cantAsientos == 0) v.Estado = "Devuelto"; //v.Estado = "DevueltoParcial"; por evaluar!!!!!!! v.entradasDev += 1; v.montoDev += (double)pe.precio; Funcion f = db.Funcion.Find(dv.codFuncion); Eventos ev = db.Eventos.Find(f.codEvento); //Eventos ev = (Eventos)Session["EventoDev"]; ev.monto_adeudado -= (double)pe.precio; CuentaUsuario cu = db.CuentaUsuario.Find(v.cliente); cu.puntos -= (int)ev.puntosAlCliente; //List<AsientosXFuncion> axf = db.AsientosXFuncion.Where(a => a.codFuncion == f.codFuncion && a.codDetalleVenta == dv.codDetalleVenta).ToList(); //List<AsientosXFuncion> axf = (List<AsientosXFuncion>)Session["ListaAsientos"]; //for (int i = 0; i < axf.Count; i++) // axf[i].estado = "libre"; //axfuncion.estado = "libre"; VentasXFuncion vxf = (db.VentasXFuncion.Where(ven => ven.codVen == v.codVen && ven.codFuncion == f.codFuncion).ToList())[0]; //VentasXFuncion vxf = (VentasXFuncion)Session["VentaXFunDev"]; vxf.cantEntradas -= 1; vxf.montoDev += (double)pe.precio; vxf.entradasDev += 1; ZonaEvento ze = db.ZonaEvento.Find(pe.codZonaEvento); if (!ze.tieneAsientos) ze.tieneAsientos = true; ZonaxFuncion zxf = (db.ZonaxFuncion.Where(z => z.codFuncion == dv.codFuncion && z.codZona == ze.codZona).ToList())[0]; zxf.cantLibres += 1; DetalleVenta dvAux = db.DetalleVenta.Find(dv.codDetalleVenta); dvAux.entradasDev += 1; dvAux.cantEntradas -= 1; dvAux.montoDev += (double)pe.precio; LogDevoluciones ld = new LogDevoluciones(); ld.codDetalleVenta = dv.codDetalleVenta; ld.codVendedor = User.Identity.Name; ld.cantEntradas = 1; ld.fechaDev = DateTime.Now; ld.montoDev = pe.precio; db.LogDevoluciones.Add(ld); /*Session["DetalleVenta"] Session["VentaXFunDev"] Session["VentasDev"] Session["ListaAsientos"] = axf; Session["BusquedaDev"] = devolucionModel Session["FuncionDev"] Session["EventoDev"] */ /* List<DevolucionModel> dev = (List<DevolucionModel>)Session["BusquedaDev"]; for (int i = 0; i < dev.Count; i++) if (dev[i].codDev == dv.codDetalleVenta) dev.RemoveAt(i); Session["BusquedaDev"] = dev;*/ } /*Session["DetalleVenta"] Session["VentaXFunDev"] Session["VentasDev"] Session["ListaAsientos"] = axf; Session["BusquedaDev"] = devolucionModel Session["FuncionDev"] Session["EventoDev"] Session["ZonaEventoDev"] Session["AsientosDev"]*/ List<DevolucionModel> devolMod = (List<DevolucionModel>)Session["BusquedaDev"]; int j; for (j = 0; j < devolMod.Count; j++) { if (devolMod[j].codDev == dv.codDetalleVenta) break; } devolMod[j].cantAsientos -= 1; Session["BusquedaDev"] = devolMod; db.SaveChanges(); return View("VerDetalle"); }