Maestro-Detalle Factura
Se aplica cuando se tiene una colección de facturas que puede almacenar todas las facturas de las diversas tiendas o gangas,
El @Id idfactura es un autoincrementable único independientemente de la tienda o ganga que se use.
numerofactura. Es un autoincrementable único por cada tienda o ganga. Este se podrá repetir, es decir pueden existir varias facturas con numero 5, pero se verifica que el atributo tipoalmacen sea diferente.
tipoalmacen indica si es tienda o ganga que esta asignado.
idalmacen indica el código de la tienda o ganga donde este asignado.
En este ejemplo se cuentan con múltiples tiendas y gangas que pueden generar facturas por lo tanto debe existir una secuencia única para cada uno de ellos, podemos generarla mediante los datos del usuario logeado.
Integer identity = autoincrementableStoreejbServices.getContador("factura");
factura.setIdfactura(identity);
String idfacturaalmacen = "factura_" + loginController.getUsuario().getTipoalmacen() + "_" + loginController.getUsuario().getIdalmacen();
Integer numerofactura = autoincrementableStoreejbServices.getContador(idfacturaalmacen);
factura.setNumerofactura(numerofactura);
De esta manera si la tienda es 01, se genera un documento con los datos de la factura por ejemplo:
factura_tienda_01
factura_ganga_01
De esta manera tenemos autoincrementables para cada tienda o ganga sin afectar el control.
Se aplica para estructuras que no tienen @Referenced y necesitan ser relacionados.

onChangeArticulo
Cuando se selecciona un articulo para facturarlo
Se asigna el precio de venta al credito o contado dependiendo de la condiciòn
Se asigna un valor de uno en la cantidad
Se multiplica la cantidad por 1
// <editor-fold defaultstate="collapsed" desc="onArticuloChange(int rowIndex, Facturadetalle facturadetalle, String subtipofactura)">
public String onArticuloChange(int rowIndex, Facturadetalle facturadetalle, String subtipofactura) {
try {
Integer cantidademisor = 0;
Integer cantidadreceptor = 0;
switch (subtipofactura) {
case "factura":
cantidademisor = inventarioServices.cantidadInventarioOf(facturadetalle.getArticulo(), loginController.getUsuario().getIdalmacen(), loginController.getUsuario().getTipoalmacen());
break;
}
facturadetalleList.get(rowIndex).setCantidademisor(cantidademisor);
if(factura.getCondicion().equals("contado")){
facturadetalleList.get(rowIndex).setPrecio(facturadetalle.getArticulo().getPrecioventapublico());
}else{
facturadetalleList.get(rowIndex).setPrecio(facturadetalle.getArticulo().getPrecioventacredito());
}
facturadetalleList.get(rowIndex).setCantidad(1);
facturadetalleList.get(rowIndex).setTotal(facturadetalleList.get(rowIndex).getCantidad() * facturadetalleList.get(rowIndex).getPrecio());
} catch (Exception e) {
JsfUtil.errorMessage("onArticuloChange() " + e.getLocalizedMessage());
}
return "";
}
// </editor-fold>
public void onCellEdit(CellEditEvent event)
onCellEdit, valida cuando cambia un valor de una columna en el datatable.
Last updated
Was this helpful?