Sunteți pe pagina 1din 22

ANEXOS

MTODO COMPRAR

En el mtodo comprar primeramente se obtienen los datos del proveedor, del ejecutivo del
proveedor, la fecha, el modo de compra, etc.

Luego que obtenemos los valores se deben validar que existan en los registros y que se
encuentren activos, y que no se encuentre ningn dato errneo o que ste altere el
funcionamiento del sistema.

A continuacin se procede a capturar todos los datos de cada detalle de la compra, esta se
auto convierte a unidades al detalle, por si dicho producto se ha comprado al por mayor.

Por ltimo se le hace el descuento a la compra, incluyendo la bonificaciones, cabe recordar


que cada compra tiene una fecha de vencimiento y que diferentes productos pueden o no
estar exento de IVA, lo que nos obliga legalmente a tratar de manera adecuada para evitar
problemas de esa ndole, ya todos estos datos y procesos ligeramente concluidos, se
procede a almacenar el registro de la compra junto a sus detalles
public void Comprar() {

/*Declaracin de variables*/

int ID_CompraC = 0, ID_Proveedor, ID_Ejecutivo, ID_Producto, Tiempo_Pago,


Unids_Compradas, Cantidad_Devolucion;

Date Fecha_Compra, Fecha_Vencimiento;

String Modo_Compra, Modo_Adquisicion, Incluye_IVA, Permite_Devolucion,


Incluye_Vineta, No_Factura, Cancelado;

double Costo_Compra, Cantidad_Vineta, DescuentoMonet;

BigDecimal Descuento;

/*Asignacin de valores*/

Fecha_Compra = jFecha.getDate();

int cmbProveedor = cmbprov.getSelectedIndex();


int cmbEjecutivo = cmbEjecutivo.getSelectedIndex();
int cmbTiempo = cmbTiempo.getSelectedIndex();

No_Factura = txtNoFactura.getText().trim();

int Seleccion = TablaProductos.getRowCount();

ID_Proveedor = Proveedores[cmbProveedor];
ID_Ejecutivo = Ejecutivos[cmbEjecutivo];

/*Validaciones*/

if (cmbProveedor == 0 || cmbEjecutivo == 0 || Fecha_Compra == null ||


"".equals(No_Factura) || Seleccion <= 0 ) {

JOptionPane.showMessageDialog(this, "Complete y seleccione correctamente todos


los campos", "Complete y Seleccione", JOptionPane.ERROR_MESSAGE);
return;

else{
// No pasa nada
}
if (rdCredito.isSelected()) { //Si la compra es al crdito

Modo_Compra = "Crdito";
Tiempo_Pago = cmbTiempo;
Cancelado = "Pendiente";

if (cmbTiempo == 0) { /*Si la compra es al crdito el tiempo para


pagar la deuda debe ser mayor que cero*/

JOptionPane.showMessageDialog(this, "Seleccione El Tiempo para Pagar Deuda",


"Seleccione", JOptionPane.ERROR_MESSAGE);
return;

else{
// No pasa nada
}

else { //Si es al contado o efectivo


Modo_Compra = "Efectivo";
Tiempo_Pago = 0;
Cancelado = "Cancelada";
}

ID_CompraC = Compra.Agregar_Compra(ID_Proveedor, ID_Ejecutivo,


Fecha_Compra, Modo_Compra, Tiempo_Pago, No_Factura, Cancelado);

ID_CompraC++;

for (int i = 0; i < TablaProductos.getRowCount(); i++) { /*Obtener los


productos comprados*/

ID_Producto = (int) this.TablaProductos.getValueAt(i, 1);


Fecha_Vencimiento = (Date) this.TablaProductos.getValueAt(i, 3);
Unids_Compradas = (int) this.TablaProductos.getValueAt(i, 4);
Costo_Compra = (double) this.TablaProductos.getValueAt(i, 5);
Descuento = BigDecimal.valueOf((int) this.TablaProductos.getValueAt(i, 6));
Incluye_IVA = (String) this.TablaProductos.getValueAt(i, 7);
Modo_Adquisicion = (String) this.TablaProductos.getValueAt(i, 9);
Incluye_Vineta = (String) this.TablaProductos.getValueAt(i, 10);
Cantidad_Vineta = (double) this.TablaProductos.getValueAt(i, 11);
Permite_Devolucion = (String) this.TablaProductos.getValueAt(i, 12);
Cantidad_Devolucion = (int) this.TablaProductos.getValueAt(i, 13);
int UnidsXCaja = 0;
try {
resultado = Conexion.consulta("Select UnidsXCaja from ProductoV
where ID_Producto =" + ID_Producto);

while (resultado.next()) {
UnidsXCaja = resultado.getInt(1);
}

} catch (SQLException ex) { }

if (UnidsXCaja != 0) { //Significa que el producto se vende al detalle

Unids_Compradas = Unids_Compradas * UnidsXCaja;


Costo_Compra = Costo_Compra / UnidsXCaja;

else{
Unids_Compradas = Unids_Compradas;
Costo_Compra = Costo_Compra;
}

if (rdCredito.isSelected()) { //Si es al credito no aplica descuento

DescuentoMonet = 0;

else { //Si es al contado aplica descuento


double Des = Descuento.doubleValue();
double DesPorc = Des / 100;
DescuentoMonet = (DesPorc) * (Unids_Compradas * Costo_Compra);
}

Compra.Agregar_DetalleCompra(ID_CompraC, ID_Producto, Fecha_Vencimiento,


Unids_Compradas, Costo_Compra, Descuento, Modo_Adquisicion,
Incluye_IVA, Permite_Devolucion, Cantidad_Devolucion,
Incluye_Vineta, Cantidad_Vineta, DescuentoMonet); //Guardar Compra

} //Termina FOR

}
MTODO VENTA

Primeramente se debe capturar todos los datos como los del cliente, la fecha, el tipo de
cambio; se validan todos los datos introducidos que estn bien estructurados.

Luego se procede a verificar y almacenar cada detalle de la venta que se ha procesado,


aplicndole su correspondiente impuesto (si lo posee) y de igual manera debe incluir el
descuento que se le ha concebido al cliente, todo este proceso de validacin y
almacenamiento, pasa por un proceso minusioso de revisin de cada dato y su tipo para que
en ningn momento realice algn fallo en el sistema y que este continue en su normal
funcionamiento.

Como ltimo paso se generar la factura, lista para imprimirse y que el producto a venderse
sea entregado de manera satisfecha.
public void Facturar() {

/*Declaracin de variables*/

String NombreCliente = "";


String Vendedor;
String TipoMoneda;
String TipoPago;
String ModoFactura;
String Total;
String SubTotal;
String Descuento;
String IVA;
double Total1;
double SubTotal1;
double IVA1;

int FilasProductos = JTableLista.getRowCount();


int ListaTabla = JTableLista.getRowCount();
int UnidsTotales = 0;
double Desc = 0;
Date Fecha = jFecha.getDate();
double TipoC = Double.parseDouble(txtCambio.getText().trim());
String Individual = "Individual";
int ID_P = 0;
int ID_TipoCambio = 0;

Total = txtTotal.getText().trim();
SubTotal = txtSubTotal.getText().trim();
Vendedor = txtVendedor.getText();
TipoMoneda = (String) cmbMoneda.getSelectedItem();
Total = txtTotal.getText().trim();
Total1 = Double.parseDouble(Total);
SubTotal = txtSubTotal.getText().trim();
SubTotal1 = Double.parseDouble(SubTotal);
IVA = txtIVA.getText().trim();
IVA1 = Double.parseDouble(IVA);
Descuento = (String) cmbDescuento.getSelectedItem();
Desc = Integer.parseInt(Descuento);
ModoFactura = "Contado";
if (rdEfectivo.isSelected()) {

TipoPago = "Efectivo";

else {

TipoPago = "Tarjeta";

/*Validaciones*/

if ("".equals(Total) || "0".equals(Total) || "".equals(SubTotal) || "0".equals(SubTotal)) {

JOptionPane.showMessageDialog(this, "Facturar al Menos Un Artculo", "Facturar",


JOptionPane.ERROR_MESSAGE);
return;

else{
//No pasa nada
}

if (ID_Cliente != 0) {
// Si es distinto de cero significa que hay un cliente seleccionado

if (!"".equals(txtCliente.getText())) {

NombreCliente = txtCliente.getText().trim();

else{
//No pasa nada
}

}
else {
// Sino es igual a cero quiere decir que es un cliente no registrado
ID_Cliente = 1;

if (!"".equals(txtCliente.getText())) {
// Si no esta vacio significa que di su nombre

NombreCliente = txtCliente.getText().trim();

else {
NombreCliente = "-"; // Si esta vacio el nombre de cliente
}

try{
resultado = Conexion.consulta("Select Max(ID_Tipo_Cambio) from
[dbo].[Tipo_Cambio]");
// Obtenemos el ultimo tipo de cambio

while(resultado.next()){
ID_TipoCambio = resultado.getInt(1);
}

}catch (SQLException ex){ }

ID_P = Factura.Agregar_Factura(MenuPrincipal.ID_Usuario, NombreCliente,


ID_Cliente, Fecha , Desc, ID_TipoCambio, ModoFactura);
ID_P++;

for (int j=0; j<FilasProductos; j++) {

int ID_Prod;
int UnidsV;
double PrecioV;

UnidsV = Integer.parseInt(this.JTableLista.getModel().getValueAt(j, 1).toString());


PrecioV = Double.parseDouble(this.JTableLista.getModel().getValueAt(j, 3).toString());
ID_Prod = Integer.parseInt(this.JTableLista.getModel().getValueAt(j, 5).toString());
Individual = this.JTableLista.getModel().getValueAt(j, 6).toString();
if("Presentacin".equals(Individual)){

int UnidCaja = 0;

try{

resultado = Conexion.consulta("Select [UnidsXCaja] from ProductoV where


ID_Producto = "+ID_Prod); // Obtenemos si el producto se vende x volumenes o al detalle

while(resultado.next()){
UnidCaja = resultado.getInt(1);
}

}catch(SQLException ex){}

UnidsV = UnidsV*UnidCaja;
PrecioV = PrecioV/UnidCaja;

else{
//No pasa nada
}

Factura.Agregar_DetalleFactura(ID_P, ID_Prod, UnidsV, Individual, PrecioV);

FacturacionPJ ReporteFactura = new FacturacionPJ();


// Mandamos todos los datos para generar el reporte de factura

ReporteFactura.setNombreCliente(NombreCliente);
ReporteFactura.setID(ID_P);
ReporteFactura.setDescuento(Descuento);
ReporteFactura.setSubTotal(SubTotal1);
ReporteFactura.setTipoMoneda(TipoMoneda);
ReporteFactura.setTipoPago(TipoPago);
ReporteFactura.setTotal(Total1);
ReporteFactura.setVendedor(Vendedor);
ReporteFactura.setIVA(IVA1);
ReporteFactura.setTipoFactura(ModoFactura);
ReporteFactura.setCajero(Vendedor);
for (int k = 0; k < ListaTabla; k++) {

FacturaTablaPJ ReporteDetalleF = new FacturaTablaPJ();

String Unids1 = this.JTableLista.getModel().getValueAt(k, 1).toString();


String NombreProducto1 = this.JTableLista.getModel().getValueAt(k, 2).toString();
String PV1 = this.JTableLista.getModel().getValueAt(k, 3).toString();
String TotalF1 = this.JTableLista.getModel().getValueAt(k, 4).toString();
String Indiv= this.JTableLista.getModel().getValueAt(k, 6).toString();

if("Individual".equals(Indiv)){

NombreProducto1 = "#"+NombreProducto1;

else{
//No pasa nada
}

ReporteDetalleF.setUnids(Unids1);
ReporteDetalleF.setNombreProducto(NombreProducto1);
ReporteDetalleF.setPV(PV1);
ReporteDetalleF.setTotalF(TotalF1);

DataSource.addValor1(ReporteDetalleF);

double recibido = 0;
double cambio = 0;

ReporteFactura.setTipoCambio(TipoC);
ReporteFactura.setCambio(cambio);
ReporteFactura.setRecibido(recibido);

DataSource.addValor(ReporteFactura);

File F = new File("");


String RutaFarmacia = F.getAbsolutePath() + "\\Facturass\\";
File Farmacia = new File(RutaFarmacia);
if (!Farmacia.exists()) { // Sino existe la carpeta Farmacia, se crear

Farmacia.mkdir();

else{
//No pasa nada
}

String reporte = F.getAbsolutePath() + "\\src\\Reportes\\Factura.jasper";

JasperPrint jp = null;

try {
jp = JasperFillManager.fillReport(reporte, null, DataSource);
JasperExportManager.exportReportToPdfFile(jp, F.getAbsolutePath() +
"\\Facturas\\Factura_" + ID_P + ".pdf");

// Guardamos la factura como un archivo PDF


} catch (JRException ex) { }

JasperViewer view = new JasperViewer(jp, false);


// Mostramos e imprimimos la factura

view.setTitle("Factura");

view.setZoomRatio((float) 0.70);
view.setVisible(true);

view.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
view.toFront();

}
MANUAL DE USUARIO

S-ar putea să vă placă și