public ActionResult AbrirFactura(int idFactura, string formaPago, string fecha, string idCliente) { cxn = new ConexionDB(); EncFactura ef = new EncFactura() { IdEncFactura = idFactura, FormaPago = formaPago, Fecha = fecha, ClienteFactura = new Cliente(int.Parse(idCliente.ToString())) }; int respuesta = cxn.PersistirDatos(EncFactura.SqlCad("insertar", "", ef)); return(Json(new { res = respuesta }, JsonRequestBehavior.AllowGet)); }
// GET: Procesos/Factura public ActionResult Factura() { cxn = new ConexionDB(); ViewBag.NumeroFactura = (cxn.ConteoDatos(EncFactura.SqlCad("FacturaActual", "", (new EncFactura()))) + 1); return(View()); }
public EncFactura SaveFactura(EncFactura pFactura) { EncFactura oFacturaEncabezado = new EncFactura(); IBLLTarjeta _BLLTarjeta = new BLLTarjeta(); string sqlEncabezado = string.Empty; string sqlDetalle = string.Empty; string sqlHabitacion = string.Empty; SqlCommand cmdFacturaEncabezado = new SqlCommand(); SqlCommand cmdFacturaDetalle = new SqlCommand(); SqlCommand cmdHabitacion = new SqlCommand(); List <IDbCommand> listaCommands = new List <IDbCommand>(); double rows = 0; sqlEncabezado = @"usp_INSERT_EncFactura"; try { // Encabezado de factura cmdFacturaEncabezado.Parameters.AddWithValue("@IDFactura", pFactura.IDFactura); cmdFacturaEncabezado.Parameters.AddWithValue("@IDTarjeta", pFactura._Tarjeta.ID); cmdFacturaEncabezado.Parameters.AddWithValue("@Fecha", DateTime.Now.Date); cmdFacturaEncabezado.Parameters.AddWithValue("@EstadoFact", pFactura.EstadoFact); cmdFacturaEncabezado.CommandText = sqlEncabezado; cmdFacturaEncabezado.CommandType = CommandType.StoredProcedure; // Agregar a la lista de commands listaCommands.Add(cmdFacturaEncabezado); // Detalle de factura // Guardar el detalle de la factura y a la vez rebajar el saldo del producto en Electronico foreach (DetFactura pFacturaDetalle in pFactura._ListaFacturaDetalle) { sqlDetalle = @"usp_INSERT_DetFactura"; cmdFacturaDetalle = new SqlCommand(); cmdFacturaDetalle.Parameters.AddWithValue("@IDFactura", GetCurrentNumeroFactura()); cmdFacturaDetalle.Parameters.AddWithValue("@Numero", pFacturaDetalle.Numero); cmdFacturaDetalle.Parameters.AddWithValue("@Precio", pFacturaDetalle._Reservacion.Subtotal); cmdFacturaDetalle.Parameters.AddWithValue("@Impuesto", pFacturaDetalle._Impuesto.Porcentaje); cmdFacturaDetalle.Parameters.AddWithValue("@IDReservacion", pFacturaDetalle._Reservacion.ID); cmdFacturaDetalle.CommandText = sqlDetalle; cmdFacturaDetalle.CommandType = CommandType.StoredProcedure; // Agregar a la lista de comandos listaCommands.Add(cmdFacturaDetalle); // Cambiar //cmdHabitacion = new SqlCommand(); //cmdHabitacion.Parameters.AddWithValue("@NUM", pFacturaDetalle._Reservacion._Habitacion.NUM); //cmdHabitacion.Parameters.AddWithValue("@Estado", 1); //sqlHabitacion = @"usp_UPDATE_Habitacion"; //cmdHabitacion.CommandText = sqlHabitacion; //cmdHabitacion.CommandType = CommandType.StoredProcedure; //listaCommands.Add(cmdHabitacion); } using (IDataBase db = FactoryDataBase.CreateDataBase(FactoryConexion.CreateConnection(_Usuario.Login, _Usuario.Password))) { rows = db.ExecuteNonQuery(listaCommands, IsolationLevel.ReadCommitted); } // Si devuelve filas quiere decir que se salvo entonces extraerlo if (rows == 0) { throw new Exception("No se pudo correctamente la factura"); } else { //oFacturaEncabezado = GetFactura(pFactura.IDFactura); } return(oFacturaEncabezado); } catch (SqlException sqlError) { StringBuilder msg = new StringBuilder(); msg.AppendFormat(Utilitarios.CreateSQLExceptionsErrorDetails(sqlError)); msg.AppendFormat("SQL {0}\n", cmdFacturaEncabezado.CommandText); msg.AppendFormat("SQL {0}\n", cmdFacturaDetalle.CommandText); msg.AppendFormat("SQL {0}\n", cmdHabitacion.CommandText); _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); throw; } catch (Exception er) { StringBuilder msg = new StringBuilder(); msg.AppendFormat(Utilitarios.CreateGenericErrorExceptionDetail(er)); _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); throw; } }
public EncFactura GetFactura(double pNumeroFactura) { EncFactura oFacturaEncabezado = new EncFactura(); DataSet ds = null; IDALHuesped _DALHuesped = new DALHuesped(); IDALTarjeta _DALTarjeta = new DALTarjeta(); IDALReservacion _DALReservacion = new DALReservacion(); IDALEncFactura _DALEncFactura = new DALEncFactura(); IBLLImpuesto _BLLImpuestotest = new BLLImpuesto(); SqlCommand command = new SqlCommand(); string sql = @""; sql = @"usp_SELECT_EncFactura_ByID"; try { command.Parameters.AddWithValue("@IDFactura", pNumeroFactura); command.CommandText = sql; command.CommandType = CommandType.StoredProcedure; using (IDataBase db = FactoryDataBase.CreateDataBase(FactoryConexion.CreateConnection(_Usuario.Login, _Usuario.Password))) { ds = db.ExecuteReader(command, "query"); } // Si devolvió filas if (ds.Tables[0].Rows.Count > 0) { DataRow dr = ds.Tables[0].Rows[0]; oFacturaEncabezado = new EncFactura() { IDFactura = double.Parse(dr["IDFactura"].ToString()), _Tarjeta = _DALTarjeta.GetTarjetaById(int.Parse(dr["IDTarjeta"].ToString())), Fecha = DateTime.Parse(dr["Fecha"].ToString()), EstadoFact = dr["EstadoFact"].ToString() }; foreach (var item in ds.Tables[0].Rows) { DetFactura oFacturaDetalle = new DetFactura(); oFacturaDetalle._EncFactura = _DALEncFactura.GetFactura(pNumeroFactura); oFacturaDetalle.Numero = int.Parse(dr["Numero"].ToString()); oFacturaDetalle.Precio = double.Parse(dr["Precio"].ToString()); oFacturaDetalle._Impuesto = _BLLImpuestotest.GetImpuesto(); // Enumerar la secuencia oFacturaDetalle._Reservacion = _DALReservacion.GetReserva(pNumeroFactura); // Agregar oFacturaEncabezado.AddDetalle(oFacturaDetalle); } } return(oFacturaEncabezado); } catch (SqlException sqlError) { StringBuilder msg = new StringBuilder(); msg.AppendFormat(Utilitarios.CreateSQLExceptionsErrorDetails(sqlError)); msg.AppendFormat("SQL {0}\n", command.CommandText); _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); throw; } catch (Exception er) { StringBuilder msg = new StringBuilder(); msg.AppendFormat(Utilitarios.CreateGenericErrorExceptionDetail(er)); _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); throw; } }
public EncFactura SaveFactura(EncFactura pFactura) { IDALEncFactura _IDALEncFactura = new DALEncFactura(); return(_IDALEncFactura.SaveFactura(pFactura)); }
private void btnAgregar_Click(object sender, EventArgs e) { //IBLLImpuesto _BLLImpuesto = new BLLImpuesto(); DetFactura oFacturaDetalle = new DetFactura(); IBLLEncFactura _BLLFactura = new BLLEncFactura(); IBLLReservacion _BLLReservacion = new BLLReservacion(); IBLLTarjeta _BLLTarjeta = new BLLTarjeta(); _FacturaEncabezado = new EncFactura(); try { erpError.Clear(); _FacturaEncabezado = new EncFactura() { IDFactura = _BLLFactura.GetCurrentNumeroFactura(), _Tarjeta = _BLLTarjeta.GetTarjetaById(Double.Parse(this.txtNumeroTarjeta.Text)), Fecha = DateTime.Now.Date, EstadoFact = this.cmbEstado.SelectedIndex.ToString() }; if (_FacturaEncabezado == null) { MessageBox.Show("Debe agregar los datos del encabezado de la factura para continuar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Validar que el Producto ya no se haya agregado if (_FacturaEncabezado._ListaFacturaDetalle.Count > 0) { // Si ya se agrego no permitir agregarlo nuevamente if (_FacturaEncabezado._ListaFacturaDetalle.FindAll(p => p._Reservacion.ID == double.Parse(this.mskIDReserva.Text)).Count > 0) { MessageBox.Show("La Reservacion ya fue agregado previamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } oFacturaDetalle._EncFactura = _BLLFactura.GetFactura(Double.Parse(this.txtNumeroFactura.Text)); oFacturaDetalle._Reservacion = _BLLReservacion.GetReserva(Double.Parse(this.mskIDReserva.Text.ToString())); oFacturaDetalle.Precio = Double.Parse(this.txtPrecio.Text.ToString()); // Calcular el Impuesto IBLLImpuesto _BLLImpuestotest = new BLLImpuesto(); oFacturaDetalle._Impuesto = _BLLImpuestotest.GetImpuesto();//((double)_BLLImpuesto.GetImpuesto().Porcentaje / 100D) * oFacturaDetalle.Precio * 1; // Enumerar la secuencia oFacturaDetalle.Numero = _FacturaEncabezado._ListaFacturaDetalle.Count == 0 ? 1 : _FacturaEncabezado._ListaFacturaDetalle.Max(p => p.Numero) + 1; // Agregar _FacturaEncabezado.AddDetalle(oFacturaDetalle); if (oFacturaDetalle._Reservacion.CheckOUT.Day < this.dtpOut.Value.Day) { MessageBox.Show( " Ha sobrepasado la fecha para realizar su Check Out , por lo que se realizara un cobro equivalente a $50 adicional. Disculpe. " , "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.txtNUMDetalle.Text = (cont++ + 1).ToString(); string[] lineaFactura = { _BLLFactura.GetCurrentNumeroFactura().ToString(), (cont).ToString(), oFacturaDetalle.Precio.ToString(), oFacturaDetalle._Reservacion.ID.ToString(), this.txtNumeroTarjeta.Text, DateTime.Now.Date.ToString(), this.cmbEstado.SelectedItem.ToString() }; this.dgvDetalleFactura.Rows.Add(lineaFactura); } catch (Exception er) { StringBuilder msg = new StringBuilder(); msg.AppendFormat("Message {0}\n", er.Message); msg.AppendFormat("Source {0}\n", er.Source); msg.AppendFormat("InnerException {0}\n", er.InnerException); msg.AppendFormat("StackTrace {0}\n", er.StackTrace); msg.AppendFormat("TargetSite {0}\n", er.TargetSite); // Log error _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); // Mensaje de Error MessageBox.Show("Se ha producido el siguiente error " + er.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void toolStripBtnFacturar_Click(object sender, EventArgs e) { IBLLEncFactura _BLLFactura = new BLLEncFactura(); IBLLTarjeta _BLLTarjeta = new BLLTarjeta(); IBLLHuesped _BLLHuesped = new BLLHuesped(); IBLLHabitacion _BLLHabitacion = new BLLHabitacion(); IBLLImpuesto _BLLImpuesto = new BLLImpuesto(); DetFactura oFacturaDetalle = new DetFactura(); this.cmbEstado.SelectedIndex = 1; IBLLReservacion _BLLReservacion = new BLLReservacion(); Tarjeta oTarjeta = new Tarjeta(); string rutaImagen = @"c:\temp\qr.png"; double numeroFactura = 0d; try { _FacturaEncabezado = new EncFactura() { IDFactura = Double.Parse(this.txtNumeroFactura.Text), _Tarjeta = cmbTarjeta.SelectedItem as Tarjeta,//_BLLTarjeta.GetTarjetaById(Double.Parse(this.txtNumeroTarjeta.Text)), Fecha = DateTime.Now.Date, EstadoFact = this.cmbEstado.SelectedIndex.ToString(), }; oFacturaDetalle._EncFactura = _BLLFactura.GetFactura(Double.Parse(this.txtNumeroFactura.Text)); oFacturaDetalle._Reservacion = _BLLReservacion.GetReserva(Double.Parse(this.mskIDReserva.Text.ToString())); oFacturaDetalle.Precio = Double.Parse(this.txtPrecio.Text.ToString()); // Calcular el Impuesto IBLLImpuesto _BLLImpuestotest = new BLLImpuesto(); oFacturaDetalle._Impuesto = _BLLImpuestotest.GetImpuesto(); // Enumerar la secuencia oFacturaDetalle.Numero = _FacturaEncabezado._ListaFacturaDetalle.Count == 0 ? 1 : _FacturaEncabezado._ListaFacturaDetalle.Max(p => p.Numero) + 1; ; // Agregar _FacturaEncabezado.AddDetalle(oFacturaDetalle); if (_FacturaEncabezado == null) { MessageBox.Show("No hay datos por facturar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (_FacturaEncabezado._ListaFacturaDetalle.Count == 0) { MessageBox.Show("No hay items en la factura ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.txtSubtotal.Text = _FacturaEncabezado.GetSubTotal().ToString(); this.txtImpuesto.Text = _FacturaEncabezado.GetImpuesto().ToString(); this.txtTotal.Text = (_FacturaEncabezado.GetSubTotal() + (_FacturaEncabezado.GetImpuesto())).ToString(); _FacturaEncabezado = _BLLFactura.SaveFactura(_FacturaEncabezado); numeroFactura = _BLLFactura.GetCurrentNumeroFactura(); EstadoHabitaciones(); if (_FacturaEncabezado == null) { MessageBox.Show("Error al crear factura!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else //toolStripBtnNuevo_Click(null, null); // Si existe borrelo if (File.Exists(rutaImagen)) { File.Delete(rutaImagen); } // Crear imagen quickresponse Image quickResponseImage = QuickResponse.QuickResponseGenerador(numeroFactura.ToString(), 53); // Salvarla en c:\temp para luego ser leida quickResponseImage.Save(rutaImagen, ImageFormat.Png); frmFacturaImpresion ofrmFacturaImpresion = new frmFacturaImpresion((int)numeroFactura, _BLLHuesped.GetHuespedById(Double.Parse(this.txtIdHuesped.Text)).Nombre); ofrmFacturaImpresion.ShowDialog(); this.txtNumeroTarjeta.Text = ""; this.txtNumHabitacion.Text = ""; this.txtNUMDetalle.Text = "1"; this.txtImpuesto.Text = ""; this.txtIdHuesped.Text = ""; this.txtCantDias.Text = ""; this.txtPrecio.Text = ""; this.txtSubtotal.Text = ""; this.txtTotal.Text = ""; this.cmbEstado.SelectedIndex = 0; this.cmbTarjeta.SelectedIndex = 0; this.Subtotal.Text = ""; this.mskIDReserva.Text = ""; this.dgvDetalleFactura.Rows.Clear(); this.dgvDetalleFactura.Refresh(); } catch (Exception er) { StringBuilder msg = new StringBuilder(); msg.AppendFormat("Message {0}\n", er.Message); msg.AppendFormat("Source {0}\n", er.Source); msg.AppendFormat("InnerException {0}\n", er.InnerException); msg.AppendFormat("StackTrace {0}\n", er.StackTrace); msg.AppendFormat("TargetSite {0}\n", er.TargetSite); // Log error _MyLogControlEventos.ErrorFormat("Error {0}", msg.ToString()); // Mensaje de Error MessageBox.Show("Se ha producido el siguiente error " + er.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }