private async void SeedPreventaData() { var logger = services.GetService <ILogger <SeedData> >(); var preventaService = services.GetService <IPreventaService>(); try { var preventas = await preventaService.GetPreventas(); if (preventas.Any()) { return; } Preventa preventa = new Preventa { LugarDespacho = "Bogota", FechaPreventa = DateTime.UtcNow, Email = "*****@*****.**" }; await preventaService.CreatePreventa(preventa); } catch (Exception ex) { logger.LogError(ex.Message); } }
public string PostPreventa(string cliente, int vendedor, [FromBody] ListaPreventas listaPreventas) { var preventa = new Preventa() { CodigoCliente = cliente.Trim(), VendedorId = vendedor, Fecha = DateTime.Today, }; db.Preventas.Add(preventa); db.SaveChanges(); var pedidos = listaPreventas.Listado; //array con productos foreach (PreventaDetalle pedido in pedidos) { var preventaDetalle = new PreventaDetalle() { PreventaId = preventa.Id, VendedorId = vendedor, CodigoProducto = pedido.CodigoProducto, Cantidad = pedido.Cantidad, Precio = pedido.Precio, }; var producto = db.Productos.Find(preventaDetalle.CodigoProducto); producto.Existencia = producto.Existencia - int.Parse(preventaDetalle.Cantidad.ToString()); db.Entry(producto).State = System.Data.Entity.EntityState.Modified; db.PreventaDetalles.Add(preventaDetalle); } db.SaveChanges(); return(preventa.Id.ToString()); }
public async Task <Factura> CreateFactura(FacturaDTO factura) { Producto producto = await productoRepository.GetProducto(factura.ProductoId); if (producto == null) { return(null); } Preventa preventa = await preventaRepository.GetPreventa(factura.PreventaId); if (preventa == null) { return(null); } Factura nuevaFactura = new Factura { Preventa = preventa, Producto = producto, FacturaFecha = DateTime.UtcNow, Cantidad = factura.CantidadProducto, Total = producto.ValorUnitario * factura.CantidadProducto }; return(await facturaRepository.CreateFactura(nuevaFactura)); }
public List <Preventa> getPreVentas() { int idMedioPago; List <Preventa> _P = new List <Preventa>(); MedioPago mp = this.db.MedioPago.Where(mp1 => mp1.Descripcion == "PreVenta").FirstOrDefault(); if (mp != null) { idMedioPago = mp.idMedioPago; } else { idMedioPago = 0; } List <Venta> _v = this.db.Venta.Where(v1 => v1.Estado == "A" && v1.idMedioPago == idMedioPago).ToList(); foreach (Venta v1 in _v) { Preventa prt = new Preventa(); prt.idVenta = v1.idVenta; prt.idCliente = v1.idCliente; prt.Fecha = v1.Fecha; prt.Total = (decimal)v1.Total - (v1.MontoPagado == null?0:(decimal)v1.MontoPagado); _P.Add(prt); } return(_P); }
public async Task <ResponseModel> CreatePreventa(PreventaApiModelCreate preventa) { ResponseModel response; try { Preventa preventaCreate = mapper.Map <Preventa>(preventa); await preventaService.CreatePreventa(preventaCreate); response = new ResponseModel { HttpResponse = (int)HttpStatusCode.Created, Response = "Se ha creado la preventa exitosamente" }; } catch (Exception ex) { logger.LogError(ex.Message); response = new ResponseModel { HttpResponse = (int)HttpStatusCode.InternalServerError, ErrorResponse = "Ha ocurrido un error, consulte con el administrador" }; } return(response); }
public async Task <ResponseModel> GetPreventa(string id) { ResponseModel response; try { Preventa preventa = await preventaService.GetPreventa(id); PreventaApiModel preventaResponse = mapper.Map <PreventaApiModel>(preventa); response = new ResponseModel { HttpResponse = (int)HttpStatusCode.OK, Response = preventa }; } catch (Exception ex) { logger.LogError(ex.Message); response = new ResponseModel { HttpResponse = (int)HttpStatusCode.InternalServerError, ErrorResponse = "Ha ocurrido un error, consulte con el administrador" }; } return(response); }
public ActionResult DeleteConfirmed(int id) { Preventa preventa = db.Preventas.Find(id); db.Preventas.Remove(preventa); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,Fecha,CodigoCliente,VendedorId")] Preventa preventa) { if (ModelState.IsValid) { db.Entry(preventa).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.CodigoCliente = new SelectList(db.Clientes, "Codigo", "Nombre", preventa.CodigoCliente); ViewBag.VendedorId = new SelectList(db.Vendedors, "Id", "Nombre", preventa.VendedorId); return(View(preventa)); }
// GET: Preventas/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Preventa preventa = db.Preventas.Find(id); if (preventa == null) { return(HttpNotFound()); } return(View(preventa)); }
public async Task UpdatePreventa(Preventa preventa) { Preventa preventaUpdate = await preventaRepository.GetPreventa(preventa.PreventaId); if (preventaUpdate == null) { return; } preventaUpdate.FechaPreventa = preventa.FechaPreventa; preventaUpdate.LugarDespacho = preventa.LugarDespacho; await preventaRepository.UpdatePreventa(preventaUpdate); }
// GET: Preventas/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Preventa preventa = db.Preventas.Find(id); if (preventa == null) { return(HttpNotFound()); } ViewBag.CodigoCliente = new SelectList(db.Clientes, "Codigo", "Nombre", preventa.CodigoCliente); ViewBag.VendedorId = new SelectList(db.Vendedors, "Id", "Nombre", preventa.VendedorId); return(View(preventa)); }
//[ValidateAntiForgeryToken] public ActionResult Create(string deposito, string clientes, string vendedores, string devoluciones, string pedidos) { var listaPedidos = pedidos.Split(','); var listaClientes = clientes.Split(','); var listaVendedores = vendedores.Split(','); var ventas = new List <Venta>(); for (int i = 0; i < listaPedidos.Length - 1; i++) { var venta = new Venta() { CodigoCliente = listaClientes[i], Fecha = DateTime.Now, Deposito = deposito, VendedorId = int.Parse(listaVendedores[i]) }; db.Ventas.Add(venta); db.SaveChanges(); ventas.Add(venta); } var listaDevoluciones = devoluciones.Split(','); var dIndex = 0; //un índice para las devoluciones var pIndex = 0; //un índice para los pedidos foreach (var venta in ventas) { Preventa preventa = db.Preventas.Find(int.Parse(listaPedidos[pIndex])); foreach (var item in preventa.PreventaDetalles) { var devolucion = int.Parse(listaDevoluciones[dIndex]); var cantidad = item.Cantidad - devolucion; var utitlidad = (item.Precio - item.Producto.Costo) * cantidad; var detalle = new VentaDetalle() { VentaId = venta.Id, Cantidad = cantidad, CodigoProducto = item.CodigoProducto, Precio = item.Precio, Utilidad = utitlidad, }; db.VentaDetalles.Add(detalle); if (devolucion > 0) { var producto = item.Producto; producto.Existencia = producto.Existencia + devolucion; db.Entry(producto).State = EntityState.Modified; } dIndex++; } db.Preventas.Remove(preventa); // Eliminar Preventa pIndex++; } db.SaveChanges(); return(RedirectToAction("Index")); //ViewBag.CodigoCliente = new SelectList(db.Clientes, "Codigo", "Nombre", venta.CodigoCliente); //ViewBag.VendedorId = new SelectList(db.Vendedors, "Id", "Nombre", venta.VendedorId); //return View(); //return View(venta); }
public async Task UpdatePreventa(Preventa preventa) { FilterDefinition <Preventa> filter = Builders <Preventa> .Filter.Eq("PreventaId", preventa.PreventaId); await db.Preventas.ReplaceOneAsync(filter, preventa); }
public async Task CreatePreventa(Preventa preventa) { await db.Preventas.InsertOneAsync(preventa); }
public async Task CreatePreventa(Preventa preventa) { preventa.FechaPreventa = DateTime.UtcNow; await preventaRepository.CreatePreventa(preventa); }