Пример #1
0
        public ActionResult Venta()
        {
            try {
                string usuario   = Request["nombreuser"].ToString();
                var    fechahoy  = Convert.ToDateTime(Request["fechahoy"].ToString());
                var    total     = Convert.ToDecimal(Request["total"].ToString());
                var    cliente   = 3;
                var    formapago = 1;
                if (Request["Clientes"] != "")
                {
                    cliente = Convert.ToInt32(Request["Clientes"].ToString());
                }

                if (Request["FormaPago"] != "")
                {
                    formapago = Convert.ToInt32(Request["FormaPago"].ToString());
                }


                var usuer     = _usuarioAppService.BuscarIdUsuarioporNombre(usuario);
                int idusuario = usuer.Id;

                //Factura
                Factura facturaanterior = new Factura();
                facturaanterior = _facturaAppService.UltimaFactura();

                Factura factura = new Factura();
                if (facturaanterior != null)
                {
                    factura.NumeroFactura = facturaanterior.NumeroFactura + 1;
                }
                else
                {
                    factura.NumeroFactura = 1;
                }

                factura.Fecha     = fechahoy;
                factura.Total     = total;
                factura.UsuarioId = idusuario;
                factura.TerceroId = cliente;
                _facturaAppService.Agregar(factura);

                // Transaccion
                Transaccion transaccion = new Transaccion();
                transaccion.Fecha     = fechahoy;
                transaccion.Total     = total;
                transaccion.UsuarioId = idusuario;
                transaccion.TerceroId = cliente;
                Factura obtengo = new Factura();
                obtengo = _facturaAppService.UltimaFactura();
                transaccion.FacturaId         = obtengo.Id;
                transaccion.TipoTransaccionId = 2;
                transaccion.FormaPagoId       = formapago;
                _transaccionAppService.Agregar(transaccion);


                ViewBag.Productos = (List <Item>)Session["cart"];
                foreach (var item in ViewBag.Productos)
                {
                    var cantidad = item.Cantidad;
                    var subtotal = item.SubTotal;
                    var producto = Convert.ToInt32(item.producto.Id);

                    //Actualizacion de Stock

                    _productoAppService.BuscarProductoStock(producto);


                    //Detalle de Factura
                    Factura ultima = new Factura();
                    ultima = _facturaAppService.UltimaFactura();
                    var            id      = ultima.Id;
                    DetalleFactura detalle = new DetalleFactura();
                    detalle.Cantidad   = cantidad;
                    detalle.SubTotal   = Convert.ToDecimal(subtotal);
                    detalle.FacturaId  = id;
                    detalle.ProductoId = producto;

                    _detallefacturaAppService.Agregar(detalle);

                    //Detalle de Transaccion
                    Transaccion ultra = new Transaccion();
                    ultra = _transaccionAppService.UltimaTransaccion();
                    var idultra = ultra.Id;
                    DetalleTransaccion detalletran = new DetalleTransaccion();
                    detalletran.Cantidad      = cantidad;
                    detalletran.SubTotal      = Convert.ToDecimal(subtotal);
                    detalletran.TransaccionId = idultra;
                    detalletran.ProductoId    = producto;

                    _detalletransaccionAppService.Agregar(detalletran);
                }
            }
            catch (Exception ex)
            {
                return(View(ex.Message));
            }

            Session["cart"] = null;
            return(RedirectToAction("Busqueda", "Producto"));
        }