Esempio n. 1
0
        public Venta Vender(string nu_ruc, List <Item> items)
        {
            Cliente cliente = clienteDAO.Obtener(nu_ruc);

            if (cliente == null) // cliente inexistente
            {
                throw new FaultException <ClienteInexistenteError>(
                          new ClienteInexistenteError()
                {
                    CodigoError  = 10,
                    MensajeError = "El cliente con RUC " + nu_ruc + " no existe"
                });
            }

            Venta venta = new Venta()
            {
                nu_ruc   = cliente,
                dt_fecha = DateTime.Now,
                nu_total = 0m
            };

            venta = ventaDAO.Crear(venta);

            Producto     producto     = null;
            VentaDetalle ventaDetalle = null;
            decimal      total        = 0m;

            foreach (Item item in items)
            {
                producto     = productoDAO.Obtener(Convert.ToInt32(item.co_producto));
                ventaDetalle = new VentaDetalle()
                {
                    Pk = new VentaDetallePK()
                    {
                        nu_venta    = venta.nu_venta,
                        co_producto = producto
                    },
                    nu_cantidad = item.nu_cantidad,
                    nu_subtotal = item.nu_cantidad * producto.nu_precio
                };
                total = total + ventaDetalle.nu_subtotal;
                ventaDetalleDAO.Crear(ventaDetalle);
            }
            venta.nu_total = total;
            venta          = ventaDAO.Modificar(venta);
            return(venta);
        }