示例#1
0
        public int CrearFacturaVentas(NuevaFacturaVentaDto facturaVenta, string usuarioId, int estadoId)
        {
            string         connectionString = ConfigurationManager.ConnectionStrings["TallerDeMotos"].ConnectionString;
            SqlConnection  con       = new SqlConnection(connectionString);
            SqlCommand     cmd       = new SqlCommand();
            SqlDataAdapter da        = new SqlDataAdapter();
            int            respuesta = 0;

            try
            {
                cmd             = new SqlCommand("CrearFacturaVentas", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@Id", facturaVenta.FacturaVentaDto.Id);
                cmd.Parameters.AddWithValue("@PresupuestoId", facturaVenta.PresupuestoCodigo);
                cmd.Parameters.AddWithValue("@NumeroFactura", facturaVenta.FacturaVentaDto.NumeroFactura);
                cmd.Parameters.AddWithValue("@TalonarioId", facturaVenta.FacturaVentaDto.TalonarioId);
                cmd.Parameters.AddWithValue("@FechaFactura", facturaVenta.FacturaVentaDto.FechaFacturaVenta);
                cmd.Parameters.AddWithValue("@SubTotal", facturaVenta.FacturaVentaDto.SubTotal);
                cmd.Parameters.AddWithValue("@UsuarioId", usuarioId);
                cmd.Parameters.AddWithValue("@EstadoId", estadoId);
                cmd.Parameters.Add("@resultado", SqlDbType.VarChar, 1).Direction = ParameterDirection.Output;

                con.Open();
                cmd.ExecuteNonQuery();

                respuesta = int.Parse(cmd.Parameters["@resultado"].Value.ToString());
            }
            catch (Exception ex)
            {
            }
            finally
            {
                con.Close();
                con.Dispose();
            }
            return(respuesta);
        }
示例#2
0
        public IHttpActionResult CrearFacturaVenta(NuevaFacturaVentaDto nuevaFacturaVentaDto)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var usuarioId = User.Identity.GetUserId();
                    var caja      = _context.CajaAperturaCierres.Where(c => c.UsuarioId == usuarioId && c.EstaAbierta).SingleOrDefault();

                    if (caja != null)
                    {
                        var talonario = _context.Talonarios
                                        .Where(t => t.EstaActivo && t.CajaId == caja.CajaId)
                                        .Select(t => new { t.Id, t.NumeroFacturaActual })
                                        .SingleOrDefault();

                        if (talonario != null)
                        {
                            foreach (var facturaDetalle in nuevaFacturaVentaDto.FacturaVentaDetalles)
                            {
                                TotalExentas         += facturaDetalle.TotalLineaExenta;
                                TotalIvaCincoXCiento += facturaDetalle.TotalLineaCincoXCiento;
                                TotalIvaDiezXCiento  += facturaDetalle.TotalLineaDiezXCiento;
                                SubTotal             += (facturaDetalle.TotalLineaExenta + facturaDetalle.TotalLineaCincoXCiento + TotalIvaDiezXCiento);
                            }

                            var facturaVentaDto = new FacturaVentaDto
                            {
                                NumeroFactura       = talonario.NumeroFacturaActual,
                                TalonarioId         = talonario.Id,
                                FechaFacturaVenta   = DateTime.Now,
                                SubTotal            = SubTotal,                    //nuevaFacturaVentaDto.FacturaVentaDto.SubTotal,
                                TotalExenta         = TotalExentas,                //nuevaFacturaVentaDto.FacturaVentaDto.TotalExenta,
                                TotalCincoPorCiento = (TotalIvaCincoXCiento / 21), //nuevaFacturaVentaDto.FacturaVentaDto.TotalCincoPorCiento,
                                TotalDiezPorCiento  = (TotalIvaDiezXCiento / 11),  //nuevaFacturaVentaDto.FacturaVentaDto.TotalDiezPorCiento,
                                UsuarioId           = User.Identity.GetUserId(),
                                EstadoId            = 1
                            };

                            var facturaVenta = Mapper.Map <FacturaVentaDto, FacturaVenta>(facturaVentaDto);
                            _context.FacturaVentas.Add(facturaVenta);

                            if (nuevaFacturaVentaDto.ClienteId > 0)
                            {
                                var facturaVentaCliente = new FacturaVentaCliente
                                {
                                    VehiculoId = nuevaFacturaVentaDto.VehiculoId ?? default(int)
                                };
                                _context.FacturaVentaClientes.Add(facturaVentaCliente);
                            }

                            if (nuevaFacturaVentaDto.PresupuestoCodigo > 0)
                            {
                                var presupuesto = _context.Presupuestos.Find(nuevaFacturaVentaDto.PresupuestoCodigo);
                                _context.Presupuestos.Attach(presupuesto);
                                facturaVenta.Presupuesto = presupuesto;
                            }

                            foreach (var detalle in nuevaFacturaVentaDto.FacturaVentaDetalles)
                            {
                                var facturaVentaDetalleDto = new FacturaVentaDetalleDto
                                {
                                    ProductoId             = detalle.ProductoId,
                                    Precio                 = detalle.Precio,
                                    Cantidad               = detalle.Cantidad,
                                    Total                  = detalle.Total,
                                    TotalLineaExenta       = detalle.TotalLineaExenta,
                                    TotalLineaCincoXCiento = detalle.TotalLineaCincoXCiento,
                                    TotalLineaDiezXCiento  = detalle.TotalLineaDiezXCiento
                                };

                                var facturaVentaDetalle = Mapper.Map <FacturaVentaDetalleDto, FacturaVentaDetalle>(facturaVentaDetalleDto);
                                _context.FacturaVentaDetalles.Add(facturaVentaDetalle);
                            }

                            _context.SaveChanges();
                        }
                        else
                        {
                            return(Json(new JsonResponse {
                                Success = false, Message = "El Talonario de la factura no se encuentra activo"
                            }));
                        }
                    }
                    else
                    {
                        return(Json(new JsonResponse {
                            Success = false, Message = "Usuario no está habilitado para generar una factura"
                        }));
                    }
                }
                catch (Exception ex)
                {
                    var exceptionMessage = "PK_dbo.FacturaVentas";
                    if (ex.InnerException.Message.Contains(exceptionMessage))
                    {
                        return(Json(new JsonResponse {
                            Success = false, Message = exceptionMessage
                        }));
                    }
                }

                return(Ok(new JsonResponse {
                    Success = true, Message = "Factura de Venta registrada con éxito"
                }));
            }
            return(BadRequest());
        }
 public FacturaVentaController()
 {
     _context    = new ApplicationDbContext();
     _conexionBD = new ConexionBD();
     viewModel   = new NuevaFacturaVentaDto();
 }