Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 7
0
        public ActionResult DeleteConfirmed(int id)
        {
            Preventa preventa = db.Preventas.Find(id);

            db.Preventas.Remove(preventa);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 8
0
 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));
 }
Esempio n. 9
0
        // 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);
        }
Esempio n. 11
0
        // 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));
        }
Esempio n. 12
0
        //[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);
        }
Esempio n. 13
0
        public async Task UpdatePreventa(Preventa preventa)
        {
            FilterDefinition <Preventa> filter = Builders <Preventa> .Filter.Eq("PreventaId", preventa.PreventaId);

            await db.Preventas.ReplaceOneAsync(filter, preventa);
        }
Esempio n. 14
0
 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);
 }