public ActionResult DeleteConfirmed(int id) { Factura_Detalle factura_Detalle = db.Factura_Detalles.Find(id); db.Factura_Detalles.Remove(factura_Detalle); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "FacturaDetalleId,VehiculoId,FacturaId,PrecioUnidad,Cantidad,SubTotal")] Factura_Detalle factura_Detalle) { if (ModelState.IsValid) { db.Entry(factura_Detalle).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FacturaId = new SelectList(db.Facturas, "FacturaId", "MetodoPago", factura_Detalle.FacturaId); ViewBag.VehiculoId = new SelectList(db.Vehiculoes, "VehiculoId", "Color", factura_Detalle.VehiculoId); return(View(factura_Detalle)); }
// GET: Factura_Detalle/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Factura_Detalle factura_Detalle = db.Factura_Detalles.Find(id); if (factura_Detalle == null) { return(HttpNotFound()); } return(View(factura_Detalle)); }
public ActionResult <Factura_Detalle> Put(int id, [FromBody] Factura_Detalle facturaDetalle) { if (facturaDetalle == null) { return(NotFound()); } var resultado = _facturaDetalleRepositorio.Actualizar(facturaDetalle); return(facturaDetalle); }
// GET: Factura_Detalle/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Factura_Detalle factura_Detalle = db.Factura_Detalles.Find(id); if (factura_Detalle == null) { return(HttpNotFound()); } ViewBag.FacturaId = new SelectList(db.Facturas, "FacturaId", "MetodoPago", factura_Detalle.FacturaId); ViewBag.VehiculoId = new SelectList(db.Vehiculoes, "VehiculoId", "Color", factura_Detalle.VehiculoId); return(View(factura_Detalle)); }
public ActionResult <Factura_Detalle> Post(Factura_Detalle facturaDetalle) { try { var nuevaFacturaDetalle = _facturaDetalleRepositorio.Insertar(facturaDetalle); if (nuevaFacturaDetalle == null) { return(BadRequest()); } return(CreatedAtAction(nameof(Post), new { idFactura = nuevaFacturaDetalle.IdFactura, idProducto = nuevaFacturaDetalle.IdProducto }, nuevaFacturaDetalle)); } catch (Exception ex) { _logger.LogError($"Error en {nameof(Post)}: {ex.Message}"); return(BadRequest()); } }
private void EliminarDeTabla(object sender, RoutedEventArgs e) { try { Button btn = sender as Button; if (btn == null) { return; } Factura_Detalle item = btn.CommandParameter as Factura_Detalle; FacturaDetalle.Remove(item); CalcularTotales(); } catch (Exception ex) { MessageBox.Show("Ocurrio un error al eliminar el producto de la lista", "Error", MessageBoxButton.OK, MessageBoxImage.Error); this.LogError(ex); } }
//Método para guardar mediante AJAX el detalle de la factura public JsonResult CrearFactura(Factura_Detalle model) { var rm = new ResponseModel(); if (ModelState.IsValid) { rm = model.Guardar(); if (rm.response) { rm.href = Url.Content("~/home/NuevaFactura/" + model.Factura_EncabezadoId); } } else { rm.SetResponse(false, "El mínimo de atículos es: 1"); } return(Json(rm)); }
public Factura_Detalle Insertar(Factura_Detalle entidad) { try { int res; using (OleDbConnection connection = new OleDbConnection(_conn)) { using (OleDbCommand command = new OleDbCommand()) { connection.Open(); command.CommandText = $"Insertar_Factura_Detalle"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add("@IdFactura", OleDbType.Integer).Value = entidad.IdFactura; command.Parameters.Add("@IdProducto", OleDbType.Integer).Value = entidad.IdProducto; command.Parameters.Add("@Cantidad", OleDbType.Integer).Value = entidad.Cantidad; command.Parameters.Add("@Precio_Unidad", OleDbType.Decimal).Value = entidad.Precio_Unidad; command.Connection = connection; res = command.ExecuteNonQuery(); connection.Close(); } } if (res > 0) { return(entidad); } return(null); } catch (Exception ex) { return(null); } }
private void AnularFactura(object sender, RoutedEventArgs e) { try { if (string.IsNullOrEmpty(txt_MotivoAnulacion.Text)) { MessageBox.Show("Favor ingresar el motivo de la aunlacion antes de continuar", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } if (MessageBox.Show("Esta seguro de anular esta factura?", "", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) { return; } int casaMatriz = 1; int PuntoVenta = 1; DateTime FechaEmicionDocumento = DateTime.Now; Factura Anulacion = new Factura() { Codigo_Moneda = "CRC", CondicionVenta = fac.CondicionVenta, Email_Enviado = false, CasaMatriz = casaMatriz, PuntoVenta = PuntoVenta, Emisor_CorreoElectronico = fac.Emisor_CorreoElectronico, Emisor_Identificacion_Numero = fac.Emisor_Identificacion_Numero, Emisor_Identificacion_Tipo = fac.Emisor_Identificacion_Tipo, Emisor_Nombre = fac.Emisor_Nombre, Emisor_NombreComercial = fac.Emisor_NombreComercial, Emisor_Telefono_Codigo = fac.Emisor_Telefono_Codigo, Emisor_Telefono_Numero = fac.Emisor_Telefono_Numero, Emisor_Ubicacion_Barrio = fac.Emisor_Ubicacion_Barrio, Emisor_Ubicacion_Canton = fac.Emisor_Ubicacion_Canton, Emisor_Ubicacion_Distrito = fac.Emisor_Ubicacion_Distrito, Emisor_Ubicacion_Provincia = fac.Emisor_Ubicacion_Provincia, Emisor_Ubicacion_OtrasSenas = fac.Emisor_Ubicacion_OtrasSenas, Fecha_Emision_Documento = FechaEmicionDocumento, Estado = (int)EstadoComprobante.Enviado, Id_Contribuyente = fac.Id_Contribuyente, Id_TipoDocumento = (int)Tipo_documento.Nota_de_crédito_electrónica, MedioPago = fac.MedioPago, Receptor_CorreoElectronico = fac.Receptor_CorreoElectronico, Receptor_Identificacion_Numero = fac.Receptor_Identificacion_Numero, Receptor_Identificacion_Tipo = fac.Receptor_Identificacion_Tipo, Receptor_Nombre = fac.Receptor_Nombre, Receptor_NombreComercial = fac.Receptor_NombreComercial, Receptor_Telefono_Codigo = fac.Receptor_Telefono_Codigo, Receptor_Telefono_Numero = fac.Receptor_Telefono_Numero, Receptor_Ubicacion_Barrio = fac.Receptor_Ubicacion_Barrio, Receptor_Ubicacion_Canton = fac.Receptor_Ubicacion_Canton, Receptor_Ubicacion_Distrito = fac.Receptor_Ubicacion_Distrito, Receptor_Ubicacion_OtrasSenas = fac.Receptor_Ubicacion_OtrasSenas, Receptor_Ubicacion_Provincia = fac.Receptor_Ubicacion_Provincia, TotalMercanciasExentas = fac.TotalMercanciasExentas, TotalMercanciasGravadas = fac.TotalMercanciasGravadas, TotalServExentos = fac.TotalServExentos, TotalServGravados = fac.TotalServGravados, TotalImpuesto = fac.TotalImpuesto, TotalDescuentos = fac.TotalDescuentos, TotalGravado = fac.TotalGravado, TotalExento = fac.TotalExento, TotalVenta = fac.TotalVenta, TotalVentaNeta = fac.TotalVentaNeta, TotalComprobante = fac.TotalComprobante, InformacionReferencia_IdFactura = fac.Id_Factura, InformacionReferencia_Codigo = 1, InformacionReferencia_FechaEmision = FechaEmicionDocumento, InformacionReferencia_Numero = fac.Clave, InformacionReferencia_Razon = txt_MotivoAnulacion.Text }; Contribuyente_Consecutivos Consecutivo; using (db_FacturaDigital db = new db_FacturaDigital()) { List <Factura_Detalle> detalle = new List <Factura_Detalle>(); foreach (Factura_Detalle item in fac.Factura_Detalle) { Factura_Detalle newItem = (Factura_Detalle)item.Clone(); newItem.Factura = null; List <Factura_Detalle_Impuesto> newimpuestos = new List <Factura_Detalle_Impuesto>(); foreach (Factura_Detalle_Impuesto detalleimpuesto in db.Factura_Detalle_Impuesto.AsNoTracking().Where(q => q.Id_Factura_Detalle == newItem.Id_Factura_Detalle)) { Factura_Detalle_Impuesto newDetalleimpuesto = (Factura_Detalle_Impuesto)detalleimpuesto.Clone(); newDetalleimpuesto.Factura_Detalle = null; newimpuestos.Add(newDetalleimpuesto); } if (newimpuestos.Count > 0) { newItem.Factura_Detalle_Impuesto = newimpuestos; } detalle.Add(newItem); } Anulacion.Factura_Detalle = detalle; Consecutivo = db.Contribuyente_Consecutivos.First(q => q.Id_Contribuyente == RecursosSistema.Contribuyente.Id_Contribuyente); Anulacion.NumeroConsecutivo = Consecutivo.Consecutivo_NotasCredito; string ClaveHacienda = new GeneradorDeClavesHacienda(new GeneradorDeClavesHacienda() { ConsecutivoHacienda = new ConsecutivoHacienda(new ConsecutivoHacienda() { TipoDocumento = Tipo_documento.Nota_de_crédito_electrónica, NumeracionConsecutiva = Consecutivo.Consecutivo_NotasCredito, CasaMatriz = casaMatriz, PuntoVenta = PuntoVenta }), FechaEmicion = FechaEmicionDocumento, Identificacion_Contribuyente = Convert.ToInt64(RecursosSistema.Contribuyente.Identificacion_Numero), }).ToString(); Anulacion.Clave = ClaveHacienda; db.Factura.Add(Anulacion); Consecutivo.Consecutivo_NotasCredito++; Factura Original = db.Factura.First(q => q.Id_Factura == fac.Id_Factura); Original.Estado = (int)EstadoComprobante.Anulando; try { FacturaDB_ToNotaCredito Hacienda = new FacturaDB_ToNotaCredito(RecursosSistema.Contribuyente); Hacienda.Convertir(Anulacion, fac.Fecha_Emision_Documento).CrearXml(Tipo_documento.Nota_de_crédito_electrónica).Enviar(); Anulacion.XML_Enviado = Hacienda.XML.InnerXml; // new FacturaPDF.FacturaElectronicaPDF().CrearFactura(fac); db.SaveChanges(); RecursosSistema.WindosNotification("Factura", "La nota de crédito Clave [" + Anulacion.Clave + "] se envío para su valoración"); RecursosSistema.Servicio_AgregarFactura(Anulacion.Clave); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } }catch (Exception ex) { this.LogError(ex); MessageBox.Show("Ocurrio un error al anular la factura", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void AgregarItem(object sender, RoutedEventArgs e) { try { Producto p = cb_Productos.SelectedItem as Producto; if (p == null) { return; } Factura_Detalle item = new Factura_Detalle(); #region Validar Datos if (!decimal.TryParse(txt_precioUnitario.Text, out decimal PrecioUnitario) || PrecioUnitario <= 0) { MessageBox.Show("Error el precio unitario debe ser numerico mayor a 0", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } item.PrecioUnitario = PrecioUnitario; if (!int.TryParse(txt_Cantidad.Text, out int Cantidad)) { MessageBox.Show("Error la cantidad debe de ser de tipo entero", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } if (Cantidad == 0) { MessageBox.Show("La cantidad no puede ser 0", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } item.Cantidad = Cantidad; int?DescuentoRealPorcentaje = null; if (!string.IsNullOrEmpty(txt_Descuento.Text)) { int Descuento = 0; if (!int.TryParse(txt_Descuento.Text, out Descuento) && Descuento <= 99 && Descuento > 0) { MessageBox.Show("Error el decuento debe ser un dato numerico positivo de tipo entero no mayor a 99 y mayor a 0", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } if (Descuento != 0) { DescuentoRealPorcentaje = Descuento; } } if (DescuentoRealPorcentaje.HasValue && string.IsNullOrEmpty(txt_NaturalezaDescuento.Text)) { MessageBox.Show("Error si ingresa un descuento por normativa de Hacienda debe de indicar la razon del mismo", "Validacion", MessageBoxButton.OK, MessageBoxImage.Stop); return; } else { item.Naturaleza_Descuento = txt_NaturalezaDescuento.Text; } #endregion item.Monto_Total = item.Cantidad * item.PrecioUnitario; if (DescuentoRealPorcentaje.HasValue) { item.Monto_Descuento = (((decimal)DescuentoRealPorcentaje / 100) * item.Monto_Total); } else { item.Monto_Descuento = 0; } item.ProductoServicio = p.ProductoServicio; item.Unidad_Medida = p.Unidad_Medida; item.Tipo = p.Tipo; item.Codigo = p.Codigo; item.Gravado = false; if (p.Producto_Impuesto != null && p.Producto_Impuesto.Count > 0) { decimal Impuesto_Monto = 0; List <Factura_Detalle_Impuesto> Factura_Detalle_Impuesto = new List <Factura_Detalle_Impuesto>(); foreach (Producto_Impuesto impuesto in p.Producto_Impuesto) { decimal SubImpuesto = ((impuesto.Impuesto_Tarifa / 100) * item.Monto_Total); Factura_Detalle_Impuesto.Add(new Factura_Detalle_Impuesto() { Exento = impuesto.Exento, Exoneracion_FechaEmision = impuesto.Exoneracion_FechaEmision, Exoneracion_MontoImpuesto = impuesto.Exoneracion_MontoImpuesto, Exoneracion_NombreInstitucion = impuesto.Exoneracion_NombreInstitucion, Exoneracion_NumeroDocumento = impuesto.Exoneracion_NumeroDocumento, Exoneracion_PorcentajeCompra = impuesto.Exoneracion_PorcentajeCompra.ToString(), Exoneracion_TipoDocumento = impuesto.Exoneracion_TipoDocumento, Impuesto_Codigo = impuesto.Impuesto_Codigo, Impuesto_Tarifa = impuesto.Impuesto_Tarifa, Impuesto_Monto = SubImpuesto }); Impuesto_Monto += SubImpuesto; } item.Gravado = true; item.Impuesto_Monto = Impuesto_Monto; item.Factura_Detalle_Impuesto = Factura_Detalle_Impuesto; } item.SubTotal = item.Monto_Total - (item.Monto_Descuento ?? 0); item.Monto_Total_Linea = item.SubTotal + (item.Impuesto_Monto ?? 0); FacturaDetalle.Add(item); LimpiarSelectorProducto(); CalcularTotales(); } catch (Exception ex) { this.LogError(ex); MessageBox.Show("Ocurrio un error al seleccionar el articulo"); } }