public List<DetalleOrden> GetDetallePorNroOrden(Venta.Orden iOrden) { List<DetalleOrden> detalleOrden = new List<DetalleOrden>(); try { DataSet data = new DataSet(); this.Conexion.NombrePaquete = "administra_detalleorden"; this.Conexion.QuerySQL = "getdetallepororden"; this.Conexion.SetValorParametroInput("i_orden", iOrden.Id); this.Conexion.ExecuteProcedure(out data); this.Conexion.ValidaRespuesta("o_codigo", "o_mensaje"); if (!Funcion.IsDataSetEmpty(data)) if (!Funcion.IsDataTableEmpty(data.Tables[0])) { data.Tables[0].Columns["idorden"].ColumnName = "Orden.Id"; data.Tables[0].Columns["idproducto"].ColumnName = "Producto.Id"; data.Tables[0].Columns["nombreproducto"].ColumnName = "Producto.Descripcion"; data.Tables[0].Columns["precioventa"].ColumnName = "Producto.PrecioVenta"; data.Tables[0].Columns["comision"].ColumnName = "Producto.Comision"; data.Tables[0].Columns["imagenproducto"].ColumnName = "Producto.Imagen"; detalleOrden = Funcion.ConvertToList<DetalleOrden>(data.Tables[0]); } } catch (Exception) { throw; } return detalleOrden; }
private void Cargar(string periodoContable) { DataTable dataTable; Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); dataTable = venta.ObtenerVentasAIU(periodoContable); GridView_HOJA_DE_TRABAJO.DataSource = dataTable; GridView_HOJA_DE_TRABAJO.DataBind(); }
private void Cargar(string año) { DataTable dataTable; Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); dataTable = venta.ObtenerCumplimentoVentas(año); Configurar(dataTable); GridView_HOJA_DE_TRABAJO.DataSource = dataTable; GridView_HOJA_DE_TRABAJO.DataBind(); Configurar(GridView_HOJA_DE_TRABAJO); }
public void AgregarServicios(Venta v, DetalleVentaServicio item) { db.cmd.CommandText = "INSERT INTO DetalleVentaServicio(idServicio,idVenta,estado,idProducto) VALUES(@idServicio,@idVenta,@estado,@idProducto)"; db.cmd.Parameters.AddWithValue("@idServicio", item.IdServicio); db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); db.cmd.Parameters.AddWithValue("@estado", v.Estado); db.cmd.Parameters.AddWithValue("@idProducto", item.IdProducto); try { if (tipo) db.conn.Open(); db.cmd.ExecuteNonQuery(); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); } catch (SqlException e) { MessageBox.Show(e.Message); } }
public void Agregar(Venta v, DetalleVenta dv) { db.cmd.CommandText = "INSERT INTO DetalleVenta(cantidad,descuento,precio,idVenta,idProducto) VALUES(@cantidad,@descuento,@precio,@idVenta,@idProducto)"; db.cmd.Parameters.AddWithValue("@cantidad", dv.Cantidad); db.cmd.Parameters.AddWithValue("@descuento", dv.Descuento); db.cmd.Parameters.AddWithValue("@precio", dv.Precio); db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); db.cmd.Parameters.AddWithValue("@idProducto", dv.IdProducto); try { if (tipo) db.conn.Open(); db.cmd.ExecuteNonQuery(); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); } catch (SqlException e) { MessageBox.Show(e.Message); } }
public static void guardarVenta(Venta venta, List<DetalleVenta> listadetallesventa) { string conexionCadena = ConfigurationManager.ConnectionStrings["FOCAdbstring"].ConnectionString; SqlConnection connection = new SqlConnection(); SqlTransaction transaction = null; try { connection.ConnectionString = conexionCadena; connection.Open(); transaction = connection.BeginTransaction(); string sqlnroFactura = "Select MAX(nroFactura) from VENTAS"; SqlCommand comandnrofactura = new SqlCommand(); comandnrofactura.CommandText = sqlnroFactura; comandnrofactura.Connection = connection; comandnrofactura.Transaction = transaction; int nroFactura = Convert.ToInt32(comandnrofactura.ExecuteScalar()); nroFactura++; string sql = "INSERT INTO VENTAS (nroFactura, fecha, cliente, monto) VALUES (@NroFactura, @Fecha, @Cliente, @monto); SELECT @@Identity as ID;"; SqlCommand comand = new SqlCommand(); comand.CommandText = sql; comand.Connection = connection; comand.Transaction = transaction; //comand.Parameters.AddWithValue("@NroFactura", venta.nroFactura); comand.Parameters.AddWithValue("@NroFactura", nroFactura); comand.Parameters.AddWithValue("@Fecha", venta.fecha); comand.Parameters.AddWithValue("@Cliente", venta.cliente); comand.Parameters.AddWithValue("@monto", venta.monto); int idVenta = Convert.ToInt32(comand.ExecuteScalar()); //DETALLES INICIO foreach (DetalleVenta item in listadetallesventa) { string sqlVerStock = "select stock from ARTICULOS where id_Articulo = @idArticulo and disponible = 1"; SqlCommand comand4 = new SqlCommand(); comand4.CommandText = sqlVerStock; comand4.Connection = connection; comand4.Transaction = transaction; comand4.Parameters.AddWithValue("@idArticulo", item.articulo); int stockActual = Convert.ToInt32(comand4.ExecuteScalar()); int restante = stockActual - item.cantidad; if (restante < 0) throw new Exception(); string sqlDetalle = "INSERT INTO DETALLE_VENTA VALUES (@NroFactura, @Articulo, @Cantidad, @SubTotal)"; SqlCommand comand3 = new SqlCommand(); comand3.CommandText = sqlDetalle; comand3.Connection = connection; comand3.Transaction = transaction; //comand3.Parameters.AddWithValue("@NroFactura", item.nroFactura); comand3.Parameters.AddWithValue("@NroFactura", idVenta); comand3.Parameters.AddWithValue("@Articulo", item.articulo); comand3.Parameters.AddWithValue("@Cantidad", item.cantidad); comand3.Parameters.AddWithValue("@SubTotal", item.subTotal); comand3.ExecuteNonQuery(); string sqlupdateStock = "update Articulos set stock = @Restante where id_articulo = @idArticulo"; SqlCommand comand5 = new SqlCommand(); comand5.CommandText = sqlupdateStock; comand5.Connection = connection; comand5.Transaction = transaction; comand5.Parameters.AddWithValue("@Restante", restante); comand5.Parameters.AddWithValue("@idArticulo", item.articulo); comand5.ExecuteNonQuery(); } //DETALLES FIN //sql = "Insert into AUDITORIA (fecha, descripcion) values (GETDATE(),@descripcion)"; //SqlCommand comand2 = new SqlCommand(); //comand2.CommandText = sql; //comand2.Connection = connection; //comand2.Transaction = transaction; //comand2.Parameters.AddWithValue("@descripcion", "Se grabó la reparacion con ID:" + idRepracion.ToString()); //comand2.ExecuteNonQuery(); transaction.Commit(); //confirmo los cambios } catch (SqlException ex) { if (connection.State == ConnectionState.Open) transaction.Rollback(); //Vuelvo atras los cambios throw new ApplicationException("Error al guardar la venta."); } catch (Exception nostock) { if (connection.State == ConnectionState.Open) transaction.Rollback(); //Vuelvo atras los cambios throw new ApplicationException("Error al guardar la venta, no hay suficiente stock."); } finally { if (connection.State == ConnectionState.Open) connection.Close(); } }
public void GuardarVenta(string cmbTipoVenta) { int numFilas = LstVenta.Count(); if (numFilas > 0) { if (Validar()) { Venta v = new Venta(); v.LstDetalle = new List<DetalleVenta>(); v.LstPagos = new List<VentaPago>(); v.LstDetalleServicio = new List<DetalleVentaServicio>(); //guardar datos de la venta if (tipoVenta[cmbTipoVenta] == 0) v.TipoDocPago = "Boleta"; else { v.TipoDocPago = "Factura"; if (String.IsNullOrEmpty(TxtRazonSocial) || String.IsNullOrEmpty(TxtRuc)) { MessageBox.Show("Se requiere Razón Social y ruc para la factura", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error); return; } } v.NumDocPago = null; v.IdUsuario = Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name); v.Direccion = TxtDireccion; v.Telefono = TxtTelefono; v.IdCliente = cli.Cliente.Id; v.CodTarjeta = Convert.ToInt32(cli.CodTarjeta); v.FechaReg = System.DateTime.Now; v.FechaDespacho = fechaDespacho; v.TipoVenta = "Obra"; v.Estado = 1; //guardar detalle de productos de la venta foreach (DetalleVenta dv in lstVenta) { v.LstDetalle.Add(dv); } //guardar detalle de servicios de la venta, si es que hay if (LstVentaServicios.Count() > 0) { foreach (DetalleVentaServicio dvs in LstVentaServicios) { v.LstDetalleServicio.Add(dvs); } } v.Monto = total; v.Descuento = desc; v.Igv = igv_total; v.PtosGanados = Convert.ToInt32(v.Monto / PUNTO); //guardar el pago de la venta foreach (VentaPago vp in lstPagos) { if (vp.Nombre.Equals("Efectivo")) { vp.Monto -= Double.Parse(txtVuelto); } v.LstPagos.Add(vp); } //insertar la venta en la base de datos DBConexion db = new DBConexion(); db.conn.Open(); SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable); db.cmd.Transaction = trans; VentaSQL vsql = new VentaSQL(db); int k = vsql.AgregarVentaObra(v); if (k != 0) { trans.Commit(); MessageBox.Show("Venta Realizada con Exito"); Limpiar(); if (v.TipoDocPago.Equals("Boleta")) { GenerarPDFBoletaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFBoletaServicios(v); } else { GenerarPDFFacturaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFFacturaServicios(v); } } else { trans.Rollback(); MessageBox.Show("Ocurrio un Error en el proceso"); } } } else { MessageBox.Show("Falta ingresar produtos", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error); return; } }
public bool DarAltaVenta(Venta pVenta)//la venta parametro no debe estar previamente en nuestra bd. { return(bd.AnadirVenta(pVenta)); }
public void GuardarVenta(string cmbTipoVenta) { int numFilas = LstVenta.Count(); if (numFilas > 0) { Venta v = new Venta(); v.LstDetalle = new List<DetalleVenta>(); v.LstPagos = new List<VentaPago>(); v.LstDetalleServicio = new List<DetalleVentaServicio>(); //guardar datos de la venta //completar if (tipoVenta[cmbTipoVenta] == 0) v.TipoDocPago = "Boleta"; else { v.TipoDocPago = "Factura"; //validar que los datos de ruc y razon social if (!string.IsNullOrEmpty(TxtRuc) && !string.IsNullOrEmpty(TxtRazonSocial)) { v.Ruc = TxtRuc; v.RazonSocial = TxtRazonSocial; } else { MessageBox.Show("Falta ingresar Ruc o Razón Social", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error); return; } } v.NumDocPago = null; v.TipoVenta = "Tienda"; v.Estado = 1; v.FechaReg = System.DateTime.Now; v.IdUsuario = Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name); //idCliente desde la tarjeta de este si es que hay if (!string.IsNullOrEmpty(TxtCliente)) { v.IdCliente = Convert.ToInt32(cliente.Id); v.CodTarjeta = Convert.ToInt32(TxtCliente); } else { v.IdCliente = -1; v.CodTarjeta = -1; } //guardar detalle de la venta foreach (DetalleVenta dv in lstVenta) { v.LstDetalle.Add(dv); } v.Monto = total; v.Descuento = desc; v.Igv = igv_total; v.PtosGanados = Convert.ToInt32(v.Monto / PUNTO); foreach (VentaPago vp in lstPagos) { if (vp.Nombre.Equals("Efectivo")) { vp.Monto -= Double.Parse(txtVuelto); } v.LstPagos.Add(vp); } //guardar detalle de servicios de la venta, si es que hay if (LstVentaServicios.Count() > 0) { foreach (DetalleVentaServicio dvs in LstVentaServicios) { v.LstDetalleServicio.Add(dvs); } } //insertar en la base de datos DBConexion db = new DBConexion(); db.conn.Open(); SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable); db.cmd.Transaction = trans; VentaSQL vsql = new VentaSQL(db); if (v.IdCliente == -1) { int k = vsql.AgregarSinCliente(v); if (k != 0) { NotaISSQL ntgw = new NotaISSQL(); NotaIS nota = new NotaIS(); AlmacenSQL asql = new AlmacenSQL(); nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen; // Logica de Referencia de documento //Si existe documento de referencia colocar el ID nota.IdDoc = v.IdVenta; nota.IdMotivo = 9; nota.IdResponsable = v.IdUsuario; nota.Observaciones = "Venta en Cajero"; nota.Tipo = 2; List<ProductoCant> LstProductos = new List<ProductoCant>(); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < v.LstDetalle.Count; i++) { Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto); ProductoCant pcan = new ProductoCant(); pcan.IdProducto = p.IdProducto; pcan.CodigoProd = p.CodigoProd; pcan.Nombre = p.Nombre; pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); nota.LstProducto = LstProductos; nota.IdNota = ntgw.AgregarNota(nota); trans.Commit(); ntgw.AgregarNotaxSector(nota); MessageBox.Show("Venta Realizada con Exito"); Limpiar(); } else { trans.Rollback(); MessageBox.Show("Ocurrio un Error en el proceso"); } } else { int k = vsql.Agregar(v); if (k != 0) { NotaISSQL ntgw = new NotaISSQL(); NotaIS nota = new NotaIS(); AlmacenSQL asql = new AlmacenSQL(); nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen; // Logica de Referencia de documento //Si existe documento de referencia colocar el ID nota.IdDoc = v.IdVenta; nota.IdMotivo = 9; nota.IdResponsable = v.IdUsuario; nota.Observaciones = "Venta en Cajero"; nota.Tipo = 2; List<ProductoCant> LstProductos = new List<ProductoCant>(); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < v.LstDetalle.Count; i++) { Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto); ProductoCant pcan = new ProductoCant(); pcan.IdProducto = p.IdProducto; pcan.CodigoProd = p.CodigoProd; pcan.Nombre = p.Nombre; pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); nota.LstProducto = LstProductos; nota.IdNota = ntgw.AgregarNota(nota); trans.Commit(); ntgw.AgregarNotaxSector(nota); MessageBox.Show("Venta Realizada con Exito"); Limpiar(); } else { trans.Rollback(); MessageBox.Show("Ocurrio un Error en el proceso"); } } if (v.TipoDocPago.Equals("Boleta")) { GenerarPDFBoletaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFBoletaServicios(v); } else { GenerarPDFFacturaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFFacturaServicios(v); } } else { MessageBox.Show("Debe ingreasar datos de la venta"); return; } }
public Venta ObtenerInfoVenta(Venta pVenta)//la Venta pasado como parametro es un envoltorio para el codigo(lo unico que nos interesa), uso esta idea en todos los metodos con una Venta como parámetro. como precondición el codigo de dicho articulo debe existir en la base de datos. { return(bd.BuscarVenta(pVenta)); }
private int InsertaOrdenDeDespacho(Venta v) { int idTienda = new TiendaSQL().obtenerTienda(v.IdUsuario); db.cmd.CommandText = "SELECT * FROM Almacen WHERE idTienda=@idTienda AND tipo=@tipo"; db.cmd.Parameters.AddWithValue("@idTienda", idTienda); db.cmd.Parameters.AddWithValue("@tipo", 1); SqlDataReader rs2 = db.cmd.ExecuteReader(); rs2.Read(); int idAlmacen = Convert.ToInt32(rs2["idAlmacen"].ToString()); rs2.Close(); db.cmd.Parameters.Clear(); int k = 0; db.cmd.CommandText = "INSERT INTO OrdenDespacho(idVenta,fechaDespacho,estado,idAlmacen,direccion,telefono)" + " VALUES (@idVenta,@fechaDespacho,@estado,@idAlmacen,@direccion,@telefono)"; db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); db.cmd.Parameters.AddWithValue("@fechaDespacho", v.FechaDespacho); db.cmd.Parameters.AddWithValue("@estado", 1); db.cmd.Parameters.AddWithValue("@idAlmacen", idAlmacen); db.cmd.Parameters.AddWithValue("@direccion", v.Direccion); db.cmd.Parameters.AddWithValue("@telefono", v.Telefono); try { if (tipo) db.conn.Open(); k = db.cmd.ExecuteNonQuery(); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); } catch (SqlException e) { MessageBox.Show(e.Message); } return k; }
public object Buscar(params object[] filters) { DBConexion db = new DBConexion(); List<Venta> lista = new List<Venta>(); lista = null; // LstVentas = new VentaSQL().Buscar(TxtDocPago, MontoMin, MontoMax,client,fechaInicio,fechaFin) as List<Venta>; String txtDocPago = filters[0] as String; String MontoMin = filters[1] as String; String MontoMax = filters[2] as String; Cliente client = filters[3] as Cliente; DateTime fechaIni = Convert.ToDateTime(filters[4]); DateTime fechaFin = Convert.ToDateTime(filters[5]); int estado = Convert.ToInt32(filters[6]); string sql = ""; sql = "SELECT v.idVenta,v.idUsuario,v.tipoVenta,v.codTarjeta,v.descuento,v.estado,v.fechaReg,v.idCliente " + " , c.tipoCliente as tipoC , c.razonSocial as rsC , c.nombre as nombreC " + " ,v.numDocPagoProducto,v.tipoDocPago,v.monto,v.descuento,v.IGV,v.ptosGanados,v.numDocPagoServicio " + "FROM Venta v LEFT JOIN Cliente c ON c.IdCliente = v.IdCliente "; string where = " WHERE 1=1 "; if (client != null) { where += "and v.IdCliente = " + client.Id; } if (estado >= 0) { where += " and v.estado = " + estado; } if (!String.IsNullOrEmpty(txtDocPago)) { where += " and ( v.numDocPagoProducto like '" + txtDocPago + "' "; where += " or v.numDocPagoServicio like '" + txtDocPago + "' ) "; } if (!String.IsNullOrEmpty(MontoMin)) { where += " and v.monto >= " + MontoMin; } if (!String.IsNullOrEmpty(MontoMax)) { where += " and v.monto <= " + MontoMax; } if (fechaIni != null) { where += " and CONVERT(DATE,'" + fechaIni.ToString("yyyy-MM-dd") + "') <= CONVERT(DATE,v.fechaReg,103) "; } if (fechaFin != null) { where += " and CONVERT(DATE,'" + fechaFin.ToString("yyyy-MM-dd") + "') >= CONVERT(DATE,v.fechaReg,103) "; } db.cmd.CommandText = sql + where + "order by fechaReg DESC"; try { db.conn.Open(); SqlDataReader reader = db.cmd.ExecuteReader(); while (reader.Read()) { if (lista == null) lista = new List<Venta>(); Venta v = new Venta(); v.IdVenta = Convert.ToInt32(reader["idVenta"]); v.NumDocPago = reader.IsDBNull(reader.GetOrdinal("numDocPagoProducto")) ? "" : reader["numDocPagoProducto"].ToString(); v.NumDocPagoServicio = reader.IsDBNull(reader.GetOrdinal("numDocPagoServicio")) ? "" : reader["numDocPagoServicio"].ToString(); ; v.IdCliente = reader.IsDBNull(reader.GetOrdinal("idCliente")) ? 0 : Convert.ToInt32(reader["idCliente"]); v.Monto = Convert.ToDouble(reader["monto"]); v.Estado = Convert.ToInt32(reader["estado"]); v.TipoVenta = reader["tipoVenta"].ToString(); v.IdUsuario = Convert.ToInt32(reader["idUsuario"].ToString()); if (v.IdCliente != 0) { v.NombreCliente = (Convert.ToInt32(reader["tipoC"]) == 0) ? Convert.ToString(reader["nombreC"]) : Convert.ToString(reader["rsC"]); } else { v.NombreCliente = "NR"; } v.FechaRegS = Convert.ToDateTime(reader["fechaReg"]).ToString(); v.EstadoS = (v.Estado == 0) ? "ANULADA" : "REALIZADA"; // t.tipoCliente as tipoC , t.razonSocial as rsC , t.nombre as nombreC lista.Add(v); } db.cmd.Parameters.Clear(); db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.StackTrace.ToString()); } return lista; }
public string Insertar(Venta cat) { return(cdao.agregar(cat)); }
private void button1_Click(object sender, EventArgs e) { try { Venta venta = new Venta(); foreach (DataGridViewRow dr in gdvDatos.Rows) { if (Convert.ToBoolean(dr.Cells[0].Value)) { int onekey = Convert.ToInt32(dr.Cells[1].Value); var s4 = dr.Cells[4].Value; var Total = dr.Cells[10].Value; var MontoTotal = dr.Cells[12].Value; string codigo = Convert.ToString(dr.Cells[3].Value); int idVenta = Convert.ToInt32(dr.Cells[4].Value); Venta data = DatVenta.ObtenerVenta(idVenta); venta.Id = data.Id; venta.MontoTotal = data.MontoTotal - Convert.ToDecimal(Total); if (data.Vuelto < 0) { venta.Vuelto = data.Vuelto + Convert.ToDecimal(Total); } else if (data.Vuelto >= 0 && data.Saldo == 0) { venta.Vuelto = data.Vuelto + Convert.ToDecimal(Total); } if (data.Saldo > 0) { venta.Saldo = data.Saldo - Convert.ToDecimal(Total); venta.Vuelto = venta.Saldo < 0 ? venta.Saldo * (-1) : venta.Saldo; venta.Saldo = venta.Saldo < 0 ? 0 : venta.Saldo; } venta.EstadoPago = venta.Saldo <= 0 ? "PAGADO" : "PENDIENTE"; new DatDetalleVenta().EditarDevolucion_DetalleVenta(onekey); DatVenta.EditarDatos_Devoluciones(venta); Producto p = new BusProducto().ObtenerProducto(codigo); if (p.usaInventario == "SI") { string presentancion = Convert.ToString(dr.Cells[7].Value); if (p.precioMayoreo == Convert.ToDecimal(dr.Cells[6].Value) || presentancion.Equals("PQTE") || presentancion.Equals("SIX") || presentancion.Equals("CJA") || presentancion.Equals("BTO") || presentancion.Equals("RJA")) { decimal cantidadVendida = Convert.ToDecimal(p.TotalUnidades * Convert.ToDecimal(dr.Cells[6].Value)); new BusProducto().Actualizar_Stock(p.Id, (Convert.ToDecimal(p.stock) + cantidadVendida)); } else { new BusProducto().Actualizar_Stock(p.Id, (Convert.ToDecimal(p.stock) + Convert.ToDecimal(dr.Cells[6].Value))); } } } } DialogResult result = MessageBox.Show("Desea Reimprimir el ticket", "Operación realizada", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { ImprimirTicket(venta); } pnlProcesar.Visible = false; lblTotalDevuelto.Text = "0.00"; gdvDatos.DataSource = null; Limpiar_campos(); } catch (Exception ex) { MessageBox.Show("Ocurrió un error al actualizar los datos : " + ex.Message, "Error de actualización", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Agregar(Venta venta) { ventas.Add(venta); }
public bool Modificar(Venta entidad) { return(repositorio.Editar(entidad)); }
public bool Agregar(Venta entidad) { return(repositorio.Crear(entidad)); }
public void Test_NuevaVentaException() { Venta miVenta = null; Comercio.ConfirmarVenta(miVenta); }
public void ServiceActulizarVent(Venta producto) { NegocioVenta auxn = new NegocioVenta(); auxn.actualizarVent(producto); }
public void Serviceinsertarproducto(Venta producto) { NegocioVenta auxn = new NegocioVenta(); auxn.insertarVenta(producto); }
public int AnularVentaObra(Venta v) { int k = 0; int estado=0; //verificar si la venta ha sido despachada db.cmd.CommandText = "select estado from OrdenDespacho where idVenta=@idVenta"; db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); try { if (tipo) db.conn.Open(); SqlDataReader reader = db.cmd.ExecuteReader(); reader.Read(); estado = Convert.ToInt32(reader["estado"].ToString()); reader.Close(); db.cmd.Parameters.Clear(); if (tipo) db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } if (estado == 2) { //la venta ya fue atendida return 3; } if (estado == 1) { //la venta aun no ha sido atendida db.cmd.CommandText = "UPDATE Venta SET estado=0 WHERE idVenta = @idVenta; UPDATE OrdenDespacho SET estado=3 where idVenta=@idVenta"; db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); try { if (tipo) db.conn.Open(); k = db.cmd.ExecuteNonQuery(); db.cmd.Parameters.Clear(); if (tipo) db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } } return k; }
/// <summary> /// Creates the instance of Factura with all its parameters /// and a due date of 15 by default. /// </summary> /// <param name="venta">Sale to add in the instance.</param> /// <param name="tf">Type of instance.</param> public Factura(Venta venta, TipoFactura tf) : this(venta, 15, tf) { }
private void actualizaNumDocServicios(Venta v) { if(v.TipoDocPago.Equals("Boleta")) db.cmd.CommandText = "UPDATE Venta SET numDocPagoServicio='BOL' + right('0000000000' + cast( @numDocPagoServicio as varchar(10)), 10) WHERE idVenta=@idVenta"; else db.cmd.CommandText = "UPDATE Venta SET numDocPagoServicio='FAC' + right('0000000000' + cast( @numDocPagoServicio as varchar(10)), 10) WHERE idVenta=@idVenta"; db.cmd.Parameters.AddWithValue("@numDocPagoServicio", v.NumDocPagoServicio); db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); try { if (tipo) db.conn.Open(); db.cmd.ExecuteNonQuery(); db.cmd.Parameters.Clear(); if (tipo) db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } }
public string Insertar(Venta Venta, List <Detalle_Venta> Detalle) { string rpta = ""; SqlConnection SqlCon = new SqlConnection(); try { SqlCon.ConnectionString = Conexion.Cn; SqlCon.Open(); SqlTransaction SqlTra = SqlCon.BeginTransaction(); SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.Transaction = SqlTra; SqlCmd.CommandText = "spinsertar_venta"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlParameter ParIdventa = new SqlParameter(); ParIdventa.ParameterName = "@idventa"; ParIdventa.SqlDbType = SqlDbType.Int; ParIdventa.Direction = ParameterDirection.Output; SqlCmd.Parameters.Add(ParIdventa); SqlParameter ParIdCliente = new SqlParameter(); ParIdCliente.ParameterName = "@idcliente"; ParIdCliente.SqlDbType = SqlDbType.Int; ParIdCliente.Value = Venta.Idcliente; SqlCmd.Parameters.Add(ParIdCliente); SqlParameter ParIdtrabajador = new SqlParameter(); ParIdtrabajador.ParameterName = "@idtrabajador"; ParIdtrabajador.SqlDbType = SqlDbType.Int; ParIdtrabajador.Value = Venta.Idtrabajador; SqlCmd.Parameters.Add(ParIdtrabajador); SqlParameter ParFecha = new SqlParameter(); ParFecha.ParameterName = "@fecha"; ParFecha.SqlDbType = SqlDbType.Date; ParFecha.Value = Venta.Fecha; SqlCmd.Parameters.Add(ParFecha); SqlParameter ParTipo_Comprobante = new SqlParameter(); ParTipo_Comprobante.ParameterName = "@tipo_comprobante"; ParTipo_Comprobante.SqlDbType = SqlDbType.VarChar; ParTipo_Comprobante.Size = 20; ParTipo_Comprobante.Value = Venta.Tipo_Comprobante; SqlCmd.Parameters.Add(ParTipo_Comprobante); SqlParameter ParSerie = new SqlParameter(); ParSerie.ParameterName = "@serie"; ParSerie.SqlDbType = SqlDbType.VarChar; ParSerie.Size = 4; ParSerie.Value = Venta.Serie; SqlCmd.Parameters.Add(ParSerie); SqlParameter ParCorrelativo = new SqlParameter(); ParCorrelativo.ParameterName = "@correlativo"; ParCorrelativo.SqlDbType = SqlDbType.VarChar; ParCorrelativo.Size = 7; ParCorrelativo.Value = Venta.Correlativo; SqlCmd.Parameters.Add(ParCorrelativo); SqlParameter ParIgv = new SqlParameter(); ParIgv.ParameterName = "@igv"; ParIgv.SqlDbType = SqlDbType.Decimal; ParIgv.Precision = 4; ParIgv.Scale = 2; ParIgv.Value = Venta.Igv; SqlCmd.Parameters.Add(ParIgv); rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro"; if (rpta.Equals("OK")) { dDetalle_Venta deting = new dDetalle_Venta(); Venta.Idventa = Convert.ToInt32(SqlCmd.Parameters["@idventa"].Value); foreach (Detalle_Venta det in Detalle) { det.Idventa = Venta.Idventa; rpta = deting.Insertar(det, ref SqlCon, ref SqlTra); if (!rpta.Equals("OK")) { break; } else { rpta = DisminuirStock(det.Iddetalle_ingreso, det.Cantidad); if (!rpta.Equals("OK")) { break; } } } } if (rpta.Equals("OK")) { SqlTra.Commit(); } else { SqlTra.Rollback(); } } catch (Exception ex) { rpta = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) { SqlCon.Close(); } } return(rpta); }
private int numero(Venta v,int tipo2) { int k = 0; db.cmd.CommandText = "SELECT count(*) as C FROM Venta WHERE tipoDocPago=@tipoDocPago"; db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago); try { if (tipo) db.conn.Open(); SqlDataReader rs = db.cmd.ExecuteReader(); rs.Read(); k = Convert.ToInt32(rs["C"].ToString()); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); rs.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } int k2 = 0; db.cmd.CommandText = "SELECT count(*) as C FROM Venta WHERE tipoDocPago=@tipoDocPago AND numDocPagoServicio is not null"; db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago); try { if (tipo) db.conn.Open(); SqlDataReader rs2 = db.cmd.ExecuteReader(); rs2.Read(); k2 = Convert.ToInt32(rs2["C"].ToString()); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); rs2.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } if (tipo2 == 2) return k + 1 + k2; else return k + k2; }
static void Main(string[] args) { Congelado c1 = new Congelado(1, "Espinaca", "Carrefour", 50, DateTime.Now.AddDays(30)); Congelado c2 = new Congelado(2, "Hamburguesas", "Paty", 150.50, DateTime.Now.AddDays(10)); Congelado c3 = new Congelado(3, "Espinaca", "Carrefour", 50, DateTime.Now.AddDays(20)); Bazar b1 = new Bazar(4, "Balde", "Colombraro", 300, EMaterial.Plastico); Bazar b2 = new Bazar(5, "Jarra", "Luxury", 122.35, EMaterial.Vidrio); Bazar b3 = new Bazar(6, "Silla", "Maderera San Juan", 1500, EMaterial.Madera); Comercio c = new Comercio(); try { Venta <Producto> v1 = new Venta <Producto>(1, "Juan Perez", ECaja.CajaUno); v1.CambioEstado += venta_EventoCambioEstado; v1 += c1; v1 += b1; Console.WriteLine("Nueva venta: \n{0}", v1.ToString()); c += v1; Venta <Producto> v2 = new Venta <Producto>(2, "Jorge Rojas", ECaja.CajaDos); v2.CambioEstado += venta_EventoCambioEstado; v2 += c2; v2 += c3; Console.WriteLine("Nueva venta: \n{0}", v2.ToString()); c += v2; Venta <Producto> v3 = new Venta <Producto>(1, "Pedro Gonzales", ECaja.CajaTres); v3.CambioEstado += venta_EventoCambioEstado; v3 += b2; v3 += b3; Console.WriteLine("Nueva venta: \n{0}", v3.ToString()); c += v3; } catch (FacturaRepetidaException ex) { Console.WriteLine(ex.Message); } System.Threading.Thread.Sleep(11000); Console.WriteLine("Presione una tecla para continuar ..."); Console.ReadKey(); Console.Clear(); Console.WriteLine(c.ToString()); Console.WriteLine("Presione una tecla para continuar ..."); Console.ReadKey(); Console.Clear(); Exportador <List <Venta <Producto> > > exp = new Exportador <List <Venta <Producto> > >(); string archivo = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ventas.xml"; try { exp.Exportar(archivo, c.Ventas); Console.WriteLine("Se ha exportado los datos de ventas al archivo '{0}'", archivo); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("Fin del test. Presione una tecla para terminar ..."); Console.ReadKey(); }
public string formatoFS(Venta v) { double valorVenta = 0; string content = @"<html> <body> <table> <tr> <td> <span style='text-align: center; text-decoration: underline; font-size: 1em; font-weight: bold'>MadeInHouse S.A.</span><br> <span style='text-align: center; font-size: 0.5em'> Av. Priority N° xxx - San Miguel - Lima<br> Telf: 999-9999<br> www.MadeInHouse.com Email: [email protected] </span> </td> <td></td> <td border=1> <span style='text-align: center; font-size: 1em'> R.U.C. N° XXXXXXXXXXX<br> FACTURA<br> 001 - N° " + v.NumDocPagoServicio.ToString().PadLeft(10, '0'); content += "</span>" + "</td>" + "</tr>" + "</table>" + "<br>" + "<table width=100%>" + "<tr>" + "<td width=200 border=1>"; if (v.IdCliente != -1) { ClienteSQL cSQL = new ClienteSQL(); Cliente cli = cSQL.BuscarClienteByIdCliente(v.IdCliente); content += "<span style='font-size: 0.5em'>" + "Señor (es): " + cli.RazonSocial + "<br>" + "Dirección : " + cli.Direccion + "<br>" + "R.U.C. N° : " + cli.Ruc + "</span>"; } else { content += "<span style='font-size: 0.5em'>" + "Señor (es): " + v.RazonSocial + "<br>" + "Dirección : " + v.Direccion + "<br>" + "R.U.C. N° : " + v.Ruc + "</span>"; } content += "</td>" + "<td width=100>" + "<table border=1 width=150 align=center>" + "<tr><td><span style='text-align: center; font-size: 0.5em'>FECHA DE EMISIÓN</span></td></tr>" + "<tr><td><span style='text-align: center; font-size: 0.5em'>" + DateTime.Now.ToString("dd/MM/yyyy") + "</span></td></tr>" + "</table>" + "</td>" + "</tr>" + "</table>" + "<br>" + "<table border=1 height=700>" + "<tr>" + "<th><span style='font-size: 0.5em'>DESCRIPCION</span></th>" + "<th><span style='font-size: 0.5em'>VALOR (S/.)</span></th>" + "</tr>"; if (v.LstDetalle != null) { foreach (DetalleVentaServicio dvs in v.LstDetalleServicio) { content += "<tr>" + "<td><span style='font-size: 0.5em'>" + dvs.Descripcion + "</span></th>" + "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta += (dvs.Precio / 1.18), 2) + "</span></th>" + "</tr>"; } } content += "</table>" + "<br>" + "<table border=1>" + "<tr>" + "<td><span style='font-size: 0.5em'>VALOR VENTA (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta, 2) + "</span></td>" + "<td><span style='font-size: 0.5em'>IGV (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(0.18 * valorVenta, 2) + "</span></td>" + "<td><span style='font-size: 0.5em'>TOTAL A PAGAR (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(1.18 * valorVenta, 2) + "</span></td>" + "</tr>" + "</table>" + "</body>" + "</html>"; return content; }
/// <summary> /// Cliente existente en momento de compra /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnClienteExiste_Click(object sender, EventArgs e) { if (auxMontoTotal > 0) { FrmClienteExistente auxClienteExistente = new FrmClienteExistente(); if (auxClienteExistente.ShowDialog() == DialogResult.OK) { if (TiendaApu.ValidarCliente(auxClienteExistente.AuxCliente)) { TiendaApu.ListaVentas.Add(new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente, this.listaCompras, this.auxMontoTotal)); // si es miembro de la familia Simpson aplica descuento MessageBox.Show("Por ser miembro de la familia Simpson tiene un descuentos del 13%!!", "Descuento!!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); double descuento = (auxMontoTotal) * 13 / 100; double montoOriginal = auxMontoTotal; auxMontoTotal = montoOriginal - descuento; MessageBox.Show(String.Format("Total compras: ${0:#,###.00}\n Descuentos (13%): S{1:#,###.00}\n Montos abonados: ${2:#,###.00}", "Informacion", montoOriginal, descuento, auxMontoTotal, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)); Venta venta1 = (new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente, this.listaCompras, this.auxMontoTotal)); TiendaApu.AgregarVenta(venta1); // genera comprobante de compra StreamWriter auxComprobante = new StreamWriter(String.Concat(directorio, "/ticketCompra")); auxComprobante.WriteLine(DateTime.Now.ToLongDateString()); auxComprobante.WriteLine(DateTime.Now.ToString("hh:mm:ss")); foreach (var item in this.listaCompras) { auxComprobante.WriteLine("Item: {0: -10} Precio: ${1:###,##.00}", item.Descripcion, item.Precio); } auxComprobante.WriteLine("Monto: ${0:###,##.00}", montoOriginal); auxComprobante.WriteLine("Descuento SIMPSON: ${0:###,##.00}", descuento); auxComprobante.WriteLine("Total a abonar: ${0:###,##.00}", auxMontoTotal); auxComprobante.WriteLine("Gracias! Vuelva prontosss"); auxComprobante.Close(); } else { MessageBox.Show(String.Format("Montos abonados: ${0:#,###.00}", auxMontoTotal), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); // genera comprobante de compra StreamWriter auxComprobante = new StreamWriter(String.Concat(directorio, "/ticketCompra")); auxComprobante.WriteLine(DateTime.Now.ToLongDateString()); auxComprobante.WriteLine(DateTime.Now.ToString("hh:mm:ss")); auxComprobante.WriteLine(String.Format($"Cliente: {auxClienteExistente.AuxCliente.Nombre} {auxClienteExistente.AuxCliente.Apellido}")); foreach (var item in this.listaCompras) { auxComprobante.WriteLine("Item: {0: -10} Precio: ${1:###,##.00}", item.Descripcion, item.Precio); } auxComprobante.WriteLine("Total a abonar: ${0:###,##.00}", auxMontoTotal); auxComprobante.WriteLine("Gracias! Vuelva prontosss"); auxComprobante.Close(); } // Agrega venta a la lista de ventas TiendaApu.ListaVentas.Add(new Venta(TiendaApu.EmpleadoLogueado, auxClienteExistente.AuxCliente, this.listaCompras, this.auxMontoTotal)); auxSonido.Play(); DialogResult = DialogResult.OK; } } else { MessageBox.Show("Debe seleccionar algun articulos para continuar con la compras!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static List<Venta> BuscarVentaxTienda(string tienda) { List<Venta> lstVenta = new List<Venta>(); SqlConnection conn = new SqlConnection(Properties.Settings.Default.inf245g4ConnectionString); SqlCommand cmd = new SqlCommand(); SqlDataReader reader; cmd.CommandText = "SELECT * FROM venta v join usuario u on (v.idUsuario = u.idUsuario) join tienda t on u.idTienda = t.idTienda where t.nombre = '" + tienda + "'"; cmd.CommandType = CommandType.Text; cmd.Connection = conn; try { conn.Open(); reader = cmd.ExecuteReader(); while (reader.Read()) { Venta e = new Venta(); e.IdVenta = Convert.ToInt32(reader["idVenta"]); e.TipoDocPago = reader["tipoDocPago"].ToString(); e.NumDocPago = reader["numDocPagoProducto"].ToString(); e.IdUsuario = Convert.ToInt32(reader["idUsuario"]); e.IdCliente = reader.IsDBNull(reader.GetOrdinal("idCliente")) ? 0 : Convert.ToInt32(reader["idCliente"]); e.Monto = Convert.ToDouble(reader["monto"].ToString()); e.PtosGanados = Convert.ToInt32(reader["ptosGanados"]); e.Igv = Convert.ToDouble(reader["IGV"]); e.CodTarjeta = reader.IsDBNull(reader.GetOrdinal("codTarjeta")) ? 0 : Convert.ToInt32(reader["codTarjeta"]); e.TipoVenta = reader["tipoVenta"].ToString(); e.Estado = Convert.ToInt32(reader["estado"]); e.FechaReg = Convert.ToDateTime(reader["fechaReg"].ToString()); e.FechaMod = reader.IsDBNull(reader.GetOrdinal("fechaMod")) ? new DateTime(1/1/1) : Convert.ToDateTime(reader["fechaMod"].ToString()); e.FechaDespacho = reader.IsDBNull(reader.GetOrdinal("fechaDespacho")) ? new DateTime(1 / 1 / 1) : Convert.ToDateTime(reader["fechaDespacho"].ToString()); lstVenta.Add(e); } conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.StackTrace.ToString()); } return lstVenta; }
public ActionResult GuardarVenta(string Fecha, string modoPago, string IdCliente, string Total, List <DetalleVenta> ListadoDetalle) { string mensaje = ""; double iva = 18; string idVendedor = "DML19"; int codigoPago = 0; long codigoCliente = 0; double total = 0; if (Fecha == "" || modoPago == "" || IdCliente == "" || Total == "") { if (Fecha == "") { mensaje = "ERROR EN EL CAMPO FECHA"; } if (modoPago == "") { mensaje = "SELECCIONE UN MODO DE PAGO"; } if (IdCliente == "") { mensaje = "ERROR CON EL CODIGO DEL CLIENTE"; } if (Total == "") { mensaje = "ERROR EN EL CAMPO TOTAL"; } } else { codigoPago = Convert.ToInt32(modoPago); codigoCliente = Convert.ToInt64(IdCliente); total = Convert.ToDouble(Total); //REGISTRO DE VENTA Venta objVenta = new Venta(total, codigoCliente, idVendedor, Fecha, iva); string codigoVenta = objVentaNeg.create(objVenta); if (codigoVenta == "" || codigoVenta == null) { mensaje = "ERROR AL REGISTRAR LA VENTA"; } else { Session["idVenta"] = codigoVenta; //REGISTRO DE FACTURA Factura objFactura = new Factura(Fecha, iva, total, codigoPago); string codigoFactura = objFacturaNeg.create(objFactura); if (codigoFactura == "" || codigoFactura == null) { mensaje = "ERROR AL REGISTRAR LA FACTURA"; } else { foreach (var data in ListadoDetalle) { string idProducto = data.IdProducto.ToString(); int cantidad = Convert.ToInt32(data.Cantidad.ToString()); double descuento = Convert.ToDouble(data.Descuento.ToString()); double subtotal = Convert.ToDouble(data.SubTotal.ToString()); DetalleVenta objDetalleVenta = new DetalleVenta(Convert.ToInt64(codigoFactura), Convert.ToInt64(codigoVenta), idProducto, subtotal, descuento, cantidad); objDetalleVentaNeg.create(objDetalleVenta); } mensaje = "VENTA GUARDADA CON EXITO..."; } } } return(Json(mensaje)); }
public bool DarBajaVenta(Venta pVenta)//el Venta parametro debe estar previamente en nuestra bd. { return(bd.EliminarVenta(pVenta)); }
private bool Agregar9500() { // Se valida la parte de "Partes" if (!this.ctlPartes.Validar()) return false; // Se pide el efectivo, si aplica if (!this.ctlCobro.CompletarCobro()) return false; // Se valida que exista una Medida genérica, para las nuevas partes if (Datos.GetEntity<Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null) { UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar."); return false; } // Se solicitan la autorizaciones, si se requiere int iAutorizoID = 0; if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo) { string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" : "Autorizaciones.Ventas.9500.NoAnticipo"); var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización"); iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID); } // Se procede a guardar los datos DateTime dAhora = DateTime.Now; // Se genera la Cotización 9500 var o9500 = this.ctlPartes.Generar9500(); o9500.Fecha = dAhora; o9500.RealizoUsuarioID = this.ctlCobro.VendodorID; if (this.ctlCobro.ComisionistaID > 0) o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID; // Se genera el detalle del 9500 var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null); var o9500Detalle = new List<Cotizacion9500Detalle>(); foreach (var Parte9500 in this.ctlPartes.Detalle) { // Si la parte no existe, se agrega if (Parte9500.Value.ParteID <= 0) { int iFila = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key); string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value); string sDescripcion = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value); var oLinea = Datos.GetEntity<Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus); Parte oParte = new Parte() { NumeroParte = sNumeroDeParte, LineaID = Parte9500.Value.LineaID, MarcaParteID = Parte9500.Value.MarcaParteID, ProveedorID = Parte9500.Value.ProveedorID, NombreParte = sDescripcion, Es9500 = true, SubsistemaID = oLinea.SubsistemaID.Valor() }; // Se agregan los precios PartePrecio oPartePrecio = null; if (oParteGanancia != null) { oPartePrecio = new PartePrecio() { Costo = Parte9500.Value.Costo, PorcentajeUtilidadUno = oParteGanancia.PorcentajeDeGanancia1, PorcentajeUtilidadDos = oParteGanancia.PorcentajeDeGanancia2, PorcentajeUtilidadTres = oParteGanancia.PorcentajeDeGanancia3, PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4, PorcentajeUtilidadCinco = oParteGanancia.PorcentajeDeGanancia5, PrecioUno = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1), PrecioDos = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2), PrecioTres = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3), PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4), PrecioCinco = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5) }; } // Se guarda Guardar.Parte(oParte, oPartePrecio); Parte9500.Value.ParteID = oParte.ParteID; } // Se agrega la parte al detalle del 9500 o9500Detalle.Add(Parte9500.Value); } // Se guardan los datos de 9500 Guardar.c9500(o9500, o9500Detalle); // Se genera la venta con el anticipo var oVenta = new Venta() { ClienteID = o9500.ClienteID, RealizoUsuarioID = o9500.RealizoUsuarioID }; var oPrecioAnticipo = Datos.GetEntity<PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus); var oVentaDetalle = new VentaDetalle() { ParteID = Cat.Partes.AnticipoClientes, Cantidad = 1, PrecioUnitario = o9500.Anticipo, Costo = oPrecioAnticipo.Costo.Valor(), CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor()) }; Guardar.Venta(oVenta, new List<VentaDetalle>() { oVentaDetalle }); // Se guarda el dato de la venta con el anticipo en el registro de 9500 o9500.AnticipoVentaID = oVenta.VentaID; Datos.Guardar<Cotizacion9500>(o9500); // Se guardan las autorizaciones, si hubiera if (this.ctlPartes.AutorizacionRequeridaPrecio) VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID); if (this.ctlPartes.AutorizacionRequeridaAnticipo) VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID); // Se muestra una notifiación con el resultado UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente."); return true; }
private void Cargar(string año, string idRegional, string idCiudad) { DataTable dataTable; Venta venta = new Venta(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); dataTable = venta.ObtenerEstadisticaComportamiento(año, idRegional, idCiudad); GridView_HOJA_DE_TRABAJO.DataSource = dataTable; GridView_HOJA_DE_TRABAJO.DataBind(); }
public static ResAcc Venta(Venta oVenta, List<VentaDetalle> Detalle) { bool bMod = (oVenta.VentaID > 0); if (bMod) throw new Exception("No se ha programado funcionalidad para cuando la Venta ya exista."); // Se generan datos predeterminados o globales, en caso de que apliquen oVenta.Fecha = (oVenta.Fecha != DateTime.MinValue ? oVenta.Fecha : DateTime.Now); oVenta.VentaEstatusID = (oVenta.VentaEstatusID > 0 ? oVenta.VentaEstatusID : Cat.VentasEstatus.Realizada); oVenta.RealizoUsuarioID = (oVenta.RealizoUsuarioID > 0 ? oVenta.RealizoUsuarioID : Theos.UsuarioID); oVenta.SucursalID = (oVenta.SucursalID > 0 ? oVenta.SucursalID : Theos.SucursalID); oVenta.ComisionistaClienteID = (oVenta.ComisionistaClienteID > 0 ? oVenta.ComisionistaClienteID : null); oVenta.ClienteVehiculoID = (oVenta.ClienteVehiculoID > 0 ? oVenta.ClienteVehiculoID : null); // Se obtiene el folio correspondiente /* string sFolio = Config.Valor("Ventas.Folio"); Config.EstablecerValor("Ventas.Folio", (Util.ConvertirEntero(sFolio) + 1).ToString().PadLeft(7, '0')); oVenta.Folio = sFolio; */ // Se guarda la venta Datos.Guardar<Venta>(oVenta); // Se guarda el detalle foreach (var ParteDetalle in Detalle) { if (ParteDetalle.VentaDetalleID > 0) continue; // No es una venta nueva, no se ha especificado que hacer en estos casos ParteDetalle.VentaID = oVenta.VentaID; Datos.Guardar<VentaDetalle>(ParteDetalle); // Se afecta la existencia // AdmonProc.AgregarExistencia(ParteDetalle.ParteID, oVenta.SucursalID, (ParteDetalle.Cantidad * -1), Cat.Tablas.Venta, oVenta.VentaID); // Se meten datos a kardex que se actualizarán posteriormente, al cobrar la venta AdmonProc.AfectarExistenciaYKardex(ParteDetalle.ParteID, oVenta.SucursalID, Cat.OperacionesKardex.Venta, null, oVenta.RealizoUsuarioID, "", "", "" , (ParteDetalle.Cantidad * -1), 0, Cat.Tablas.Venta, oVenta.VentaID); } // Se generar datos relevantes al cliente comisionista, si hubiera if (oVenta.ComisionistaClienteID.Valor() > 0) { // Se calcula el importe de la comisión decimal mComision = UtilDatos.VentaComisionCliente(oVenta.VentaID, oVenta.ComisionistaClienteID.Valor()); // Se genera una nota de crédito, por la comisión if (mComision > 0) VentasProc.GenerarNotaDeCredito(oVenta.ComisionistaClienteID.Valor(), mComision, "", Cat.OrigenesNotaDeCredito.Comision, oVenta.VentaID); } return new ResAcc(true); }
private bool Agregar9500() { // Se valida la parte de "Partes" if (!this.ctlPartes.Validar()) { return(false); } // Se pide el efectivo, si aplica if (!this.ctlCobro.CompletarCobro()) { return(false); } // Se valida que exista una Medida genérica, para las nuevas partes if (Datos.GetEntity <Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null) { UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar."); return(false); } // Se solicitan la autorizaciones, si se requiere int iAutorizoID = 0; if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo) { string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" : "Autorizaciones.Ventas.9500.NoAnticipo"); var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización"); iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID); } // Se procede a guardar los datos DateTime dAhora = DateTime.Now; // Se genera la Cotización 9500 var o9500 = this.ctlPartes.Generar9500(); o9500.Fecha = dAhora; o9500.RealizoUsuarioID = this.ctlCobro.VendodorID; if (this.ctlCobro.ComisionistaID > 0) { o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID; } // Se genera el detalle del 9500 var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null); var o9500Detalle = new List <Cotizacion9500Detalle>(); foreach (var Parte9500 in this.ctlPartes.Detalle) { // Si la parte no existe, se agrega if (Parte9500.Value.ParteID <= 0) { int iFila = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key); string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value); string sDescripcion = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value); var oLinea = Datos.GetEntity <Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus); Parte oParte = new Parte() { NumeroParte = sNumeroDeParte, LineaID = Parte9500.Value.LineaID, MarcaParteID = Parte9500.Value.MarcaParteID, ProveedorID = Parte9500.Value.ProveedorID, NombreParte = sDescripcion, Es9500 = true, SubsistemaID = oLinea.SubsistemaID.Valor() }; // Se agregan los precios PartePrecio oPartePrecio = null; if (oParteGanancia != null) { oPartePrecio = new PartePrecio() { Costo = Parte9500.Value.Costo, PorcentajeUtilidadUno = oParteGanancia.PorcentajeDeGanancia1, PorcentajeUtilidadDos = oParteGanancia.PorcentajeDeGanancia2, PorcentajeUtilidadTres = oParteGanancia.PorcentajeDeGanancia3, PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4, PorcentajeUtilidadCinco = oParteGanancia.PorcentajeDeGanancia5, PrecioUno = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1), PrecioDos = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2), PrecioTres = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3), PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4), PrecioCinco = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5) }; } // Se guarda Guardar.Parte(oParte, oPartePrecio); Parte9500.Value.ParteID = oParte.ParteID; } // Se agrega la parte al detalle del 9500 o9500Detalle.Add(Parte9500.Value); } // Se guardan los datos de 9500 Guardar.c9500(o9500, o9500Detalle); // Se genera la venta con el anticipo var oVenta = new Venta() { ClienteID = o9500.ClienteID, RealizoUsuarioID = o9500.RealizoUsuarioID }; var oPrecioAnticipo = Datos.GetEntity <PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus); var oVentaDetalle = new VentaDetalle() { ParteID = Cat.Partes.AnticipoClientes, Cantidad = 1, PrecioUnitario = o9500.Anticipo, Costo = oPrecioAnticipo.Costo.Valor(), CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor()) }; Guardar.Venta(oVenta, new List <VentaDetalle>() { oVentaDetalle }); // Se guarda el dato de la venta con el anticipo en el registro de 9500 o9500.AnticipoVentaID = oVenta.VentaID; Datos.Guardar <Cotizacion9500>(o9500); // Se guardan las autorizaciones, si hubiera if (this.ctlPartes.AutorizacionRequeridaPrecio) { VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID); } if (this.ctlPartes.AutorizacionRequeridaAnticipo) { VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID); } // Se muestra una notifiación con el resultado UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente."); return(true); }
public void registrarVenta(Venta v) { }
private bool Completar9500() { // Se validan las partes if (!this.ctlComDetalle.Validar()) { return(false); } //if (Util.ControlAlFrente(this.pnlCompletar) == this.ctlComDetalle) //{ //} // Se verifica que se haya hecho el pago del anticipo Cotizacion9500 o9500 = this.ctlPartes.oCotizacion9500; if (!Datos.Exists <Venta>(c => c.VentaID == o9500.AnticipoVentaID && (c.VentaEstatusID == Cat.VentasEstatus.Completada || c.VentaEstatusID == Cat.VentasEstatus.Cobrada))) { UtilLocal.MensajeAdvertencia("Al parecer no se ha realizado el pago correspondiente al Anticipo. No se puede continuar."); return(false); } // Se confirma la operación if (UtilLocal.MensajePregunta(string.Format("¿Estás seguro que deseas completar el 9500 con el folio {0}?\n\n{1}" , this.ctlPartes.oCotizacion9500.Cotizacion9500ID, this.ctlPartes.o9500Sel["lisDescripcion"])) != DialogResult.Yes) { return(false); } // Se guardan los datos DateTime dAhora = DateTime.Now; // Se cancela la venta del anticipo /* Ya no. Ahora todo esto se hace al cobrar la venta final * oVenta.VentaEstatusID = Cat.VentasEstatus.Cancelada; * Datos.Guardar<Venta>(oVenta); * // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total * if (oVentaPago != null) * VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo); */ // Se genera la venta correspondiente al 9500 // var o9500Detalle = General.GetListOf<Cotizacion9500Detalle>(q => q.Estatus && q.Cotizacion9500ID == oCotizacion9500.Cotizacion9500ID); var oCliente = Datos.GetEntity <Cliente>(q => q.ClienteID == o9500.ClienteID && q.Estatus); var oDetalle = this.ctlComDetalle.ProductosSel(); var oVenta = new Venta() { Fecha = dAhora, ClienteID = o9500.ClienteID, VentaEstatusID = Cat.VentasEstatus.Realizada, RealizoUsuarioID = o9500.RealizoUsuarioID, ComisionistaClienteID = o9500.ComisionistaClienteID }; var oVentaDetalle = new List <VentaDetalle>(); foreach (var oParte in oDetalle) { // Se toma el precio de la tabla "PartePrecio", pues pudo haber sido cambiado por el encargado de Compras var oPartePrecio = Datos.GetEntity <PartePrecio>(q => q.ParteID == oParte.ParteID); decimal mPrecio = UtilDatos.PartePrecioDeVenta(oPartePrecio, oCliente.ListaDePrecios); // Se agrega la parte al detalle de la venta oVentaDetalle.Add(new VentaDetalle() { ParteID = oParte.ParteID, Costo = oPartePrecio.Costo.Valor(), CostoConDescuento = (oPartePrecio.CostoConDescuento ?? oPartePrecio.Costo.Valor()), Cantidad = oParte.Cantidad, PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mPrecio, 3), Iva = UtilTheos.ObtenerIvaDePrecio(mPrecio, 3) }); } // Se guarda la venta Guardar.Venta(oVenta, oVentaDetalle); // Se modifica el dato de la venta correspondiente al 9500 o9500.VentaID = oVenta.VentaID; o9500.EstatusGenericoID = Cat.EstatusGenericos.PorCompletar; Datos.Guardar <Cotizacion9500>(o9500); // Se restaura this.ctlPartes.ComCliente = null; this.pnlEnTotales.Controls.Remove(this.pnlCompletar); this.pnlCompletar.Dispose(); this.pnlCompletar = null; this.CambiarOpcion(eOpcion.Agregar); this.ctlPartes.tab9500.SelectedIndex = 0; // Se muestra una notifiación con el resultado UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente."); // Se retorna falso para que no se quite la opción de 9500 return(false); }
private async void btnCobrar_Click(object sender, EventArgs e) { try { Venta Resultado = new Venta(); int res; BindingList <FormaPago> ListaFormaPago = (BindingList <FormaPago>)GridFormaPago.DataSource; this.CleanErrors(errorProvider1, typeof(VentasViewModel)); TotalVenta(); if (ValidarPagos(ListaFormaPago)) { if (TotalFormaPago == Model.Total) { decimal EfectivoIngresado = ObtenerEfectivo(ListaFormaPago); if (Model.Efectivo >= EfectivoIngresado) { Model.TablaFormaPago = ObtenerDatosTabla(ListaFormaPago); if (EsAbono) { res = await Model.GuardarAbono(CurrentSession.IdCuentaUsuario); Resultado.Resultado = res; } else { Resultado = await Model.GuardarVenta(CurrentSession.IdCuentaUsuario, CurrentSession.IdSucursal); } var idVenta = await Model.ObtenerVenta(CurrentSession.IdSucursal, CurrentSession.IdCuentaUsuario); var ticket = await Model.ObtenerTicket(idVenta); if (ticket != null) { ImprimirVenta IV = new ImprimirVenta(ticket); } if (Resultado.Resultado == 1) { pnlCambio.BringToFront(); CambioControl.Text = (Model.Efectivo - EfectivoIngresado).ToString("C2"); this.resultado = true; } else { CIDMessageBox.ShowAlert(Messages.SystemName, Messages.ErrorMessage, TypeMessage.error); } } else { errorProvider1.SetError(EfectivoControl, "Debe ingresar mas efectivo"); } } else { errorProvider1.SetError(ErrorControl, "La suma de las cantidades debe ser igua al total"); } } else { errorProvider1.SetError(ErrorControl, "Agregue al menos una forma de pago"); } } catch (Exception) { throw; } //this.Close(); }
private bool Completar9500() { // Se validan las partes if (!this.ctlComDetalle.Validar()) return false; //if (Util.ControlAlFrente(this.pnlCompletar) == this.ctlComDetalle) //{ //} // Se verifica que se haya hecho el pago del anticipo Cotizacion9500 o9500 = this.ctlPartes.oCotizacion9500; if (!Datos.Exists<Venta>(c => c.VentaID == o9500.AnticipoVentaID && (c.VentaEstatusID == Cat.VentasEstatus.Completada || c.VentaEstatusID == Cat.VentasEstatus.Cobrada))) { UtilLocal.MensajeAdvertencia("Al parecer no se ha realizado el pago correspondiente al Anticipo. No se puede continuar."); return false; } // Se confirma la operación if (UtilLocal.MensajePregunta(string.Format("¿Estás seguro que deseas completar el 9500 con el folio {0}?\n\n{1}" , this.ctlPartes.oCotizacion9500.Cotizacion9500ID, this.ctlPartes.o9500Sel["lisDescripcion"])) != DialogResult.Yes) return false; // Se guardan los datos DateTime dAhora = DateTime.Now; // Se cancela la venta del anticipo /* Ya no. Ahora todo esto se hace al cobrar la venta final oVenta.VentaEstatusID = Cat.VentasEstatus.Cancelada; Datos.Guardar<Venta>(oVenta); // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total if (oVentaPago != null) VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo); */ // Se genera la venta correspondiente al 9500 // var o9500Detalle = General.GetListOf<Cotizacion9500Detalle>(q => q.Estatus && q.Cotizacion9500ID == oCotizacion9500.Cotizacion9500ID); var oCliente = Datos.GetEntity<Cliente>(q => q.ClienteID == o9500.ClienteID && q.Estatus); var oDetalle = this.ctlComDetalle.ProductosSel(); var oVenta = new Venta() { Fecha = dAhora, ClienteID = o9500.ClienteID, VentaEstatusID = Cat.VentasEstatus.Realizada, RealizoUsuarioID = o9500.RealizoUsuarioID, ComisionistaClienteID = o9500.ComisionistaClienteID }; var oVentaDetalle = new List<VentaDetalle>(); foreach (var oParte in oDetalle) { // Se toma el precio de la tabla "PartePrecio", pues pudo haber sido cambiado por el encargado de Compras var oPartePrecio = Datos.GetEntity<PartePrecio>(q => q.ParteID == oParte.ParteID); decimal mPrecio = UtilDatos.PartePrecioDeVenta(oPartePrecio, oCliente.ListaDePrecios); // Se agrega la parte al detalle de la venta oVentaDetalle.Add(new VentaDetalle() { ParteID = oParte.ParteID, Costo = oPartePrecio.Costo.Valor(), CostoConDescuento = (oPartePrecio.CostoConDescuento ?? oPartePrecio.Costo.Valor()), Cantidad = oParte.Cantidad, PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mPrecio, 3), Iva = UtilTheos.ObtenerIvaDePrecio(mPrecio, 3) }); } // Se guarda la venta Guardar.Venta(oVenta, oVentaDetalle); // Se modifica el dato de la venta correspondiente al 9500 o9500.VentaID = oVenta.VentaID; o9500.EstatusGenericoID = Cat.EstatusGenericos.PorCompletar; Datos.Guardar<Cotizacion9500>(o9500); // Se restaura this.ctlPartes.ComCliente = null; this.pnlEnTotales.Controls.Remove(this.pnlCompletar); this.pnlCompletar.Dispose(); this.pnlCompletar = null; this.CambiarOpcion(eOpcion.Agregar); this.ctlPartes.tab9500.SelectedIndex = 0; // Se muestra una notifiación con el resultado UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente."); // Se retorna falso para que no se quite la opción de 9500 return false; }
public Comprobante(Venta venta) { this.venta = venta; }
public void AgregarPagoVenta(Venta v, VentaPago vp) { db.cmd.CommandText = "INSERT INTO Pago(monto,idVenta,idModoPago) VALUES(@monto,@idVenta,@idModoPago)"; db.cmd.Parameters.AddWithValue("@monto", vp.Monto); db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); db.cmd.Parameters.AddWithValue("@idModoPago", vp.IdModoPago); try { if (tipo) db.conn.Open(); db.cmd.ExecuteNonQuery(); if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); } catch (SqlException e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace.ToString()); } }
/// <summary> /// Método de instancia que genera un ticket de la venta en forma de txt /// </summary> private void GenerarTicket() { Venta <Producto> .Guardar(this.listaDeVentas); MessageBox.Show("Se generó un ticket con la venta realizada! El mismo se guarda en la ruta predeterminada((...)Entidades de WinForms\\bin\\Debug)"); }
public int AnularVentaTienda(Venta v) { int k = 0; db.cmd.CommandText = "UPDATE Venta SET estado=0 WHERE idVenta = @idVenta"; db.cmd.Parameters.AddWithValue("@idVenta", v.IdVenta); try { if (tipo) db.conn.Open(); k = db.cmd.ExecuteNonQuery(); db.cmd.Parameters.Clear(); if (tipo) db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } if (k != 0) { //devolver el detalle de la venta a la tienda DetalleVentaSQL dvsql = new DetalleVentaSQL(db); List<DetalleVenta> detalle = dvsql.BuscarTodos(v.IdVenta); foreach (DetalleVenta dv in detalle) { descontarDeSector(v, dv, 2); } } return k; }
public bool find(Venta objVenta) { return(objVentaDao.find(objVenta)); }
public Venta buscarVentaPorId(int idVenta) { Venta v = null; db.cmd.CommandText = "SELECT * FROM Venta WHERE idVenta=@idVenta "; db.cmd.Parameters.AddWithValue("@idVenta", idVenta); try { db.conn.Open(); SqlDataReader reader; reader = db.cmd.ExecuteReader(); if (reader.Read()) { v = new Venta(); v.IdVenta = Int32.Parse(reader["idVenta"].ToString()); v.TipoDocPago = reader["tipoDocPago"].ToString(); v.Monto = Double.Parse(reader["monto"].ToString()); v.Descuento = Double.Parse(reader["descuento"].ToString()); v.Igv = Double.Parse(reader["IGV"].ToString()); v.PtosGanados = Int32.Parse(reader["ptosGanados"].ToString()); v.FechaReg = DateTime.Parse(reader["fechaReg"].ToString()); v.Estado = Int32.Parse(reader["estado"].ToString()); v.IdUsuario = Int32.Parse(reader["idUsuario"].ToString()); v.IdCliente = Int32.Parse(reader["idCliente"].ToString()); v.TipoVenta = reader["tipoDocPago"].ToString(); v.CodTarjeta = Int32.Parse(reader["codTarjeta"].ToString()); } else db.conn.Close(); db.cmd.Parameters.Clear(); } catch (Exception e) { MessageBox.Show(e.StackTrace.ToString()); } return v; }
public Factura(Venta venta, TipoFactura tipoDeFactura) : base(venta) { this.tipoFactura = tipoDeFactura; this.fechaVencimiento = DateTime.Now.AddDays(15); }
private void descontarDeSector(Venta v, DetalleVenta dv, int tipoDescuento=1) { int idTienda = new TiendaSQL().obtenerTienda(v.IdUsuario); db.cmd.CommandText = "SELECT * FROM Almacen WHERE idTienda=@idTienda AND tipo=@tipo"; db.cmd.Parameters.AddWithValue("@idTienda", idTienda); db.cmd.Parameters.AddWithValue("@tipo", 2); SqlDataReader rs2 = db.cmd.ExecuteReader(); rs2.Read(); int idAlmacen = Convert.ToInt32(rs2["idAlmacen"].ToString()); rs2.Close(); db.cmd.Parameters.Clear(); if (tipoDescuento == 2) // cuando se tiene que reponer el stock { db.cmd.CommandText = "UPDATE Sector SET cantidad=cantidad+@cantidad WHERE idAlmacen=@idAlmacen AND idProducto=@idProducto; UPDATE ProductoxTienda SET stockActual=stockActual+@cantidad WHERE idTienda=@idTienda AND idProducto=@idProducto"; } else { db.cmd.CommandText = "UPDATE Sector SET cantidad=cantidad-@cantidad WHERE idAlmacen=@idAlmacen AND idProducto=@idProducto; UPDATE ProductoxTienda SET stockActual=stockActual-@cantidad WHERE idTienda=@idTienda AND idProducto=@idProducto"; } db.cmd.Parameters.AddWithValue("@cantidad", dv.Cantidad); db.cmd.Parameters.AddWithValue("@idAlmacen", idAlmacen); db.cmd.Parameters.AddWithValue("@idProducto", dv.IdProducto); db.cmd.Parameters.AddWithValue("@idTienda", idTienda); try { if (tipo) db.conn.Open(); db.cmd.ExecuteNonQuery(); db.cmd.Parameters.Clear(); if (tipo) db.conn.Close(); } catch (SqlException e) { MessageBox.Show(e.Message); } }
public Factura(Venta venta, int diasParaVencimiento, TipoFactura tipoDeFactura) : this(venta, tipoDeFactura) { this.fechaVencimiento = DateTime.Now.AddDays(diasParaVencimiento); }
public int Agregar(Venta v) { int k = 0; db.cmd.CommandText = "INSERT INTO Venta(monto,descuento,IGV,ptosGanados,estado,idCliente,tipoVenta,fechaReg,tipoDocPago,idUsuario,codTarjeta)" + "OUTPUT INSERTED.idVenta VALUES (@monto,@descuento,@IGV,@ptsGanados,@estado,@idCliente,@tipoVenta,@fechaReg,@tipoDocPago,@idUsuario,@codTarjeta)"; //db.cmd.Parameters.AddWithValue("@numDocPago", v.NumDocPago); db.cmd.Parameters.AddWithValue("@tipoDocPago", v.TipoDocPago); db.cmd.Parameters.AddWithValue("@monto", v.Monto); db.cmd.Parameters.AddWithValue("@descuento", v.Descuento); db.cmd.Parameters.AddWithValue("@IGV", v.Igv); db.cmd.Parameters.AddWithValue("@ptsGanados", v.PtosGanados); db.cmd.Parameters.AddWithValue("@fechaReg", v.FechaReg); db.cmd.Parameters.AddWithValue("@estado", v.Estado); db.cmd.Parameters.AddWithValue("@idUsuario", v.IdUsuario); db.cmd.Parameters.AddWithValue("@idCliente", v.IdCliente); db.cmd.Parameters.AddWithValue("@tipoVenta", v.TipoVenta); db.cmd.Parameters.AddWithValue("@codTarjeta", v.CodTarjeta); try { if (tipo) db.conn.Open(); k = (int)db.cmd.ExecuteScalar(); v.IdVenta = k; if (tipo) db.conn.Close(); db.cmd.Parameters.Clear(); //guardar el detalle de la venta DetalleVentaSQL dvm = new DetalleVentaSQL(db); foreach (DetalleVenta dv in v.LstDetalle) { dvm.Agregar(v,dv); descontarDeSector(v,dv); } foreach (VentaPago vp in v.LstPagos) { AgregarPagoVenta(v, vp); } //agregar numDocPagoProducto v.NumDocPago = SacaNumDocPago(v,1); actualizaNumDocProductos(v); foreach (VentaPago vp in v.LstPagos) { AgregarPagoVenta(v, vp); } if (v.LstDetalleServicio.Count() > 0) { foreach (DetalleVentaServicio item in v.LstDetalleServicio) { dvm.AgregarServicios(v, item); } //agregar numDocPagoServicio v.NumDocPagoServicio = SacaNumDocPago(v,2); actualizaNumDocServicios(v); } } catch (SqlException e) { MessageBox.Show(e.StackTrace.ToString()); } return k; }
public ActionResult SeleccionarPlazo(Venta venta) { ViewBag.PlazoMaximo = db.Configuracion.FirstOrDefault().PlazoMaximo; return(View("SeleccionarPlazo", venta)); }
private string SacaNumDocPago(Venta v,int tipo) { return numero(v, tipo).ToString(); }
private void btnVenta_Click(object sender, EventArgs e) { Venta vt = new Venta(); vt.Show(); }
public string formatoBP(Venta v) { double valorVenta = 0; double precioReal; string content = @"<html> <body> <table> <tr> <td> <span style='text-align: center; text-decoration: underline; font-size: 1em; font-weight: bold'>MadeInHouse S.A.</span><br> <span style='text-align: center; font-size: 0.5em'> Av. Priority N° xxx - San Miguel - Lima<br> Telf: 999-9999<br> www.MadeInHouse.com Email: [email protected] </span> </td> <td></td> <td border=1> <span style='text-align: center; font-size: 1em'> R.U.C. N° XXXXXXXXXXX<br> BOLETA<br> 001 - N° " + v.NumDocPago.ToString().PadLeft(10,'0'); content += "</span>" + "</td>" + "</tr>" + "</table>" + "<br>" + "<table width=100%>" + "<tr>" + "<td width=200 border=1>"; if (v.IdCliente != -1) { ClienteSQL cSQL = new ClienteSQL(); Cliente cli = cSQL.BuscarClienteByIdCliente(v.IdCliente); content += "<span style='font-size: 0.5em'>" + "Señor (es): " + cli.ApePaterno + " " + cli.ApeMaterno + ", " + cli.Nombre + "<br>" + "Dirección : " + cli.Direccion + "<br>" + "</span>"; } else { content += "<span style='font-size: 0.5em'>" + "DNI: " + v.dni + "<br>" + "</span>"; } content += "</td>" + "<td width=100>" + "<table border=1 width=150 align=center>" + "<tr><td><span style='text-align: center; font-size: 0.5em'>FECHA DE EMISIÓN</span></td></tr>" + "<tr><td><span style='text-align: center; font-size: 0.5em'>" + DateTime.Now.ToString("dd/MM/yyyy") + "</span></td></tr>" + "</table>" + "</td>" + "</tr>" + "</table>" + "<br>" + "<table border=1 height=700>" + "<tr>" + "<th><span style='font-size: 0.5em'>CODIGO</span></th>" + "<th><span style='font-size: 0.5em'>CANTIDAD</span></th>" + "<th><span style='font-size: 0.5em'>DESCRIPCION</span></th>" + "<th><span style='font-size: 0.5em'>PRECIO (S/.)</span></th>" + "<th><span style='font-size: 0.5em'>SUB TOTAL (S/.)</span></th>" + "</tr>"; if (v.LstDetalle != null) { foreach (DetalleVenta dv in v.LstDetalle) { content += "<tr>" + "<td><span style='font-size: 0.5em'>" + dv.CodProducto + "</span></th>" + "<td><span style='font-size: 0.5em'>" + dv.Cantidad + "</span></th>" + "<td><span style='font-size: 0.5em'>" + dv.Descripcion + "</span></th>" + "<td><span style='font-size: 0.5em'>" + Math.Round(precioReal = (dv.Precio / 1.18), 2) + "</span></th>" + "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta += dv.Cantidad * precioReal, 2) + "</span></th>" + "</tr>"; } } content += "</table>" + "<br>" + "<table border=1>" + "<tr>" + "<td><span style='font-size: 0.5em'>VALOR VENTA (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(valorVenta, 2) + "</span></td>" + "<td><span style='font-size: 0.5em'>IGV (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(0.18 * valorVenta, 2) + "</span></td>" + "<td><span style='font-size: 0.5em'>TOTAL A PAGAR (S/.)</span></td>" + "<td><span style='font-size: 0.5em'>" + Math.Round(1.18 * valorVenta, 2) + "</span></td>" + "</tr>" + "</table>" + "</body>" + "</html>"; return content; }
public void ImprimirTicket() { try { switch (TipoTicket) { case 1: case 2: Venta Aux = new Venta { IDVenta = this.ID, Conexion = Comun.Conexion }; Ticket_Negocio TN = new Ticket_Negocio(); TN.ObtenerDetalleVenta(Aux); if (Aux.Completado) { this.ResumenVenta = Aux; } break; case 3: Caja DatosAuxCaja = new Caja { IDCaja = this.IDCaja, Conexion = Comun.Conexion, IDUsuario = Comun.IDUsuario }; Caja_Negocio CN = new Caja_Negocio(); CN.ObtenerReporteTicketCaja(DatosAuxCaja); if (DatosAuxCaja.Completado) { this.ResumenCaja = DatosAuxCaja; } else { return; } break; case 4: Garantia DatosAuxGarantia = new Garantia { IDGarantia = this.ID, Conexion = Comun.Conexion }; Garantia_Negocio GN = new Garantia_Negocio(); DatosAuxGarantia = GN.ObtenerDetalleGarantia(DatosAuxGarantia); if (DatosAuxGarantia.Completado) { this.ResumenGarantia = DatosAuxGarantia; } else { return; } break; default: ResumenVenta = new Venta(); break; } for (int i = 0; i < TotalCopias; i++) { PositionY = 10; this.ImpresionTicket(); } } catch (Exception ex) { throw ex; } }
public void GenerarPDFFacturaServicios(Venta v) { string pathString = Environment.CurrentDirectory + @"\Archivos\DocumentosPago"; System.IO.Directory.CreateDirectory(pathString); GenerarPDF pdf = new GenerarPDF(); string body = formatoFS(v).ToString(); string date = DateTime.Now.ToString("yyyyMMddHHmmss"); pdf.createPDF(body, "\\Archivos\\DocumentosPago\\FS" + date + ".pdf", true); }
private void btnGuardar_Click(object sender, RoutedEventArgs e) { if (ValidarVenta()) { using (var bd = new EmpeñosDataContext()) { bool insertando = false; var venta = bd.Ventas.SingleOrDefault(v => v.Código == txtCódigo.AsInt); if (venta == null) { venta = new Venta { Código = txtCódigo.AsInt }; bd.Ventas.InsertOnSubmit(venta); insertando = true; } venta.Código_Cliente = ((KeyValuePair <string, string>)txtClientes.SelectedItem).Key; venta.Fecha = dtpFecha.SelectedDate.Value; venta.Notas = txtNotasVentas.Text; venta.Estado = Convert.ToByte(cmbEstado.SelectedIndex); if (!insertando) { bd.VentasDetalles.DeleteAllOnSubmit(venta.VentasDetalles); bd.VentasAbonos.DeleteAllOnSubmit(venta.VentasAbonos); } for (int cont = 0; cont < listaArtículos.Count; cont++) { Artículo art = bd.Artículos.SingleOrDefault(a => a.Código == listaArtículos[cont].Código); if (art != null) { art.Precio = listaArtículos[cont].Precio; art.Estado = (byte)EstadosActículos.Vendido; venta.VentasDetalles.Add(new VentasDetalle { Código_Venta = venta.Código, Código_Artículo = art.Código }); } else { MessageBox.Show("El artículo " + listaArtículos[cont].Código + " ya no existe en la base de datos"); return; } } int cuota = 0; venta.VentasAbonos.Add(new VentasAbono { Cuota = ++cuota, Fecha = DateTime.Now, Monto = txtTotalMontoVenta.AsInt }); venta.Impuesto = txtIVA.AsDecimal; venta.Total = (int)txtMontoAPagar.AsDecimal; bd.SubmitChanges(); this.DialogResult = true; } } }
public bool Ejecutar() { // Se verifica si ya se hizo el cierre de caja if (UtilDatos.VerCierreDeDaja()) { UtilLocal.MensajeAdvertencia("Ya se hizo el Corte de Caja. No se puede continuar."); return false; } // Se valida el cliente if (this.oControlVentas.Cliente == null) { UtilLocal.MensajeAdvertencia("No hay ningún cliente seleccionado o cliente inválido."); return false; } // Se validan los productos if (!this.oControlVentas.Validar()) return false; // Se validan si hay una parte de cobro de diferencia de casco, sea la única en la venta var oVentaDet = this.oControlVentas.GenerarVentaDetalle(); foreach (var oReg in oVentaDet) { if (Datos.Exists<Parte>(c => c.ParteID == oReg.ParteID && c.EsCascoPara > 0) || oReg.ParteID == Cat.Partes.DiferenciaDeCascos) { if (oVentaDet.Count > 1) { UtilLocal.MensajeAdvertencia("La venta contiene un artículo Casco, por lo cual no puede contener otros artículos."); return false; } } } // Se verifica si se debe mostrar la opción de cobro if (!this.oControlVentas.CobroAlFrente) { if (this.oControlVentas.ctlCobro == null) { this.oControlVentas.ctlCobro = new Cobro() { Dock = DockStyle.Fill }; this.oControlVentas.pnlContenidoDetalle.Controls.Add(this.oControlVentas.ctlCobro); // Se configura el evento Click para el botón de cotización this.oControlVentas.ctlCobro.Cotizacion_Click += new EventHandler((s, e) => { this.GenerarCotizacion(); }); } this.oControlVentas.ctlCobro.CambiarCliente(this.oControlVentas.Cliente.ClienteID); this.oControlVentas.ctlCobro.Total = this.oControlVentas.Total; // Sólo se permite cambiar el vendedor, no cobrar this.oControlVentas.ctlCobro.HabilitarTipoDePago = false; this.oControlVentas.ctlCobro.MostrarFacturar = false; this.oControlVentas.ctlCobro.MostrarFacturarDividir = false; this.oControlVentas.ctlCobro.HabilitarCotizacion = true; this.oControlVentas.ctlCobro.HabilitarFormasDePago = false; this.oControlVentas.ctlCobro.Total = 0; this.oControlVentas.ctlCobro.BringToFront(); return false; } // Se verifica si es cotización if (this.oControlVentas.EsCotizacion) { UtilLocal.MensajeAdvertencia("No se puede realizar la venta porque esta es sólo una cotización."); return false; } // Se intenta completar if (!this.oControlVentas.ctlCobro.CompletarCobro()) return false; decimal mImportePato = Util.Decimal(Config.Valor("Ventas.ImportePato")); bool esPato = false; if (this.oControlVentas.Total >= mImportePato) { var hunt = new Duck(UtilLocal.RutaRecursos() + "huntduck2.wmv"); hunt.Show(Principal.Instance); esPato = true; } else // Se muestra la ventana de "Cargando.." Cargando.Mostrar(); // Se procede a guardar la venta DateTime dAhora = DateTime.Now; // Se crea el objeto de la nueva venta Venta oVenta = new Venta() { Fecha = dAhora, ClienteID = this.oControlVentas.Cliente.ClienteID, VentaEstatusID = Cat.VentasEstatus.Realizada, RealizoUsuarioID = this.oControlVentas.ctlCobro.VendodorID, RepartidorID = (this.oControlVentas.ctlCobro.RepartidorID > 0 ? (int?)this.oControlVentas.ctlCobro.RepartidorID : null), ComisionistaClienteID = this.oControlVentas.ctlCobro.ComisionistaID, ClienteVehiculoID = this.oControlVentas.ctlCobro.ClienteVehiculoID, Kilometraje = this.oControlVentas.ctlCobro.Kilometraje }; // Se manda a guardar la venta var oVentaDetalle = this.oControlVentas.GenerarVentaDetalle(); Guardar.Venta(oVenta, oVentaDetalle); // Se agrega al Kardex // ** Se hace al momento de cobrar :\ // Se generan los datos de pago (no en la primer versión) /* var oPago = this.ctlCobro.GenerarPago(); oPago.VentaID = oVenta.VentaID; oPago.Fecha = dAhora; var oPagoDetalle = this.ctlCobro.GenerarPagoDetalle(); // Se mandan guardar los datos del pago Guardar.VentaPago(oPago, oPagoDetalle); */ // Se imprimen los tickets correspondientes // .. aquí no hay tickets, sino hasta que se paga, creo // Se guarda la leyenda, para usarla en el ticket, después de cobrar if (this.oControlVentas.ctlCobro.Leyenda != "") VentasProc.AgregarLeyenda(oVenta.VentaID, this.oControlVentas.ctlCobro.Leyenda); // Se hace verificación para control de cascos foreach (var oReg in oVentaDetalle) { if (Datos.Exists<Parte>(c => c.ParteID == oReg.ParteID && c.RequiereCascoDe > 0 && c.Estatus)) { // Se agrega el registro para casco, uno por cada casco según la cantidad for (int i = 0; i < oReg.Cantidad; i++) { var oCascoReg = new CascoRegistro() { Fecha = dAhora, VentaID = oVenta.VentaID, ParteID = oReg.ParteID }; Datos.Guardar<CascoRegistro>(oCascoReg); } } } // Se guardan los datos de la aplicación, si hubiera if (this.oControlVentas.oAplicaciones != null && this.oControlVentas.oAplicaciones.Count > 0) { foreach (var oReg in this.oControlVentas.oAplicaciones) { var oRegVentaD = oVentaDetalle.FirstOrDefault(c => c.ParteID == oReg.ParteID); oReg.VentaID = oVenta.VentaID; oReg.Cantidad = oRegVentaD.Cantidad; Datos.Guardar<VentaParteAplicacion>(oReg); } } // Se cierra la ventana de "Cargando.." if(!esPato) Cargando.Cerrar(); // Se muestra notificación y se limpia el formulario UtilLocal.MostrarNotificacion("La Venta ha sido guardada correctamente."); return true; }
public Venta BuscarVenta(string docPago = null) { Venta vent = null; int posDNI, posIdVenta; string where = ""; if (!String.IsNullOrEmpty(docPago)) { where += " WHERE (v.numDocPagoProducto = UPPER(@docPago) OR v.numDocPagoServicio = UPPER(@docPago)) "; db.cmd.Parameters.Add(new SqlParameter("docPago", docPago)); db.cmd.CommandText = "SELECT * FROM Venta v " + where; if (db.cmd.Transaction == null) db.conn.Open(); SqlDataReader reader = db.cmd.ExecuteReader(); if (reader.Read()) { if (vent == null) vent = new Venta(); posDNI = reader.GetOrdinal("dni"); posIdVenta = reader.GetOrdinal("idVenta"); vent.IdVenta = reader.IsDBNull(posIdVenta) ? -1 : reader.GetInt32(posIdVenta); vent.dni = reader.IsDBNull(posDNI) ? null : reader.GetString(posDNI); } db.cmd.Parameters.Clear(); if (db.cmd.Transaction == null) db.conn.Close(); } return vent; }
public List<Fichaje> GetFichajePorNroOrden(Venta.Orden iOrden) { List<Fichaje> fichaje = new List<Fichaje>(); try { DataSet data = new DataSet(); this.Conexion.NombrePaquete = "administra_detallefichaje"; this.Conexion.QuerySQL = "getfichajepororden"; this.Conexion.SetValorParametroInput("i_orden", iOrden.Id); this.Conexion.ExecuteProcedure(out data); this.Conexion.ValidaRespuesta("o_codigo", "o_mensaje"); if (!Funcion.IsDataSetEmpty(data)) if (!Funcion.IsDataTableEmpty(data.Tables[0])) { data.Tables[0].Columns["idorden"].ColumnName = "Orden.Id"; data.Tables[0].Columns["idfichador"].ColumnName = "Trabajador.Id"; data.Tables[0].Columns["nombretrabajador"].ColumnName = "Trabajador.Nombres"; data.Tables[0].Columns["fechaproceso"].ColumnName = "AuditoriaSistema.FechaSistema"; data.Tables[0].Columns["monto"].ColumnName = "Monto"; data.Tables[0].Columns["estado"].ColumnName = "Estado"; fichaje = Funcion.ConvertToList<Fichaje>(data.Tables[0]); } } catch (Exception) { throw; } return fichaje; }
public void CrearVenta() { Console.WriteLine("= Creando Venta ="); Console.WriteLine(""); Console.WriteLine("Ingrese el codigo del cliente: "); string codigoCliente = Console.ReadLine(); Cliente cliente = ListadeClientes.Find(c => c.Codigo.ToString() == codigoCliente); if (cliente == null) { Console.WriteLine("Cliente no encontrado"); Console.ReadLine(); return; } else { Console.WriteLine("Cliente: " + cliente.Nombre); Console.WriteLine(""); } Console.WriteLine("Ingrese el codigo del vendedor: "); string codigoVendedor = Console.ReadLine(); Vendedor vendedor = ListadeVendedores.Find(v => v.Codigo.ToString() == codigoVendedor); if (vendedor == null) { Console.WriteLine("Vendedor no encontrado"); Console.ReadLine(); return; } else { Console.WriteLine("Vendedor: " + vendedor.Nombre); Console.WriteLine(""); } int nuevoCodigo = ListaVentas.Count + 1; Venta nuevaVenta = new Venta(nuevoCodigo, DateTime.Now, "San Pedro Sula" + nuevoCodigo, cliente, vendedor); ListaVentas.Add(nuevaVenta); while (true) { Console.WriteLine("Ingrese el producto: "); string codigoProducto = Console.ReadLine(); Producto producto = ListadeProductos.Find(p => p.Codigo.ToString() == codigoProducto); if (producto == null) { Console.WriteLine("Producto no encontrado"); Console.ReadLine(); } else { Console.WriteLine("Producto agregado: " + producto.Descripcion + " con precio de: " + producto.Precio); nuevaVenta.AgregarProducto(producto); } Console.WriteLine("Desea continuar? s/n"); string continuar = Console.ReadLine(); if (continuar.ToLower() == "n") { break; } } Console.WriteLine("SubTotal de la venta es de: " + nuevaVenta.SubTotal); Console.WriteLine("Impuesto de la venta es de: " + nuevaVenta.Impuesto); Console.WriteLine("Total de la venta es de: " + nuevaVenta.Total); Console.ReadLine(); }