Generar autoincrementable para múltiples tiendas relacionadas sin @Referenced
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.
Entity
@Getter
@Setter
public class Factura {
@Id
private Integer idfactura;
private Integer numerofactura;
private Date fecha;
private String condicion;
private Date fechaentrega;
private String horaentrega;
private String entregado;
private String observacion;
private Integer cantidadmeses;
private Date fechavencimiento;
@Referenced(documment = "Cliente", repository = "com.avbravo.storeejb.repository.ClienteRepository",
field = "idcliente", javatype = "String", lazy = false)
private Cliente cliente;
private String estatusfactura;
private Double subtotal;
private Double itbms;
private Double descuento;
private Double total;
private Double montoacuenta;
private Double montoarecibir;
private Double saldo;
@Referenced(documment = "Usuario", repository = "com.avbravo.storeejb.repository.UsuarioRepository",
field = "username", javatype = "String", lazy = false)
private Usuario usuario;
@Referenced(documment = "Chofer", repository = "com.avbravo.storeejb.repository.ChoferRepository",
field = "idchofer", javatype = "String", lazy = false)
private Chofer chofer;
@Referenced(documment = "Ayudante", repository = "com.avbravo.storeejb.repository.AyudanteRepository",
field = "idayudante", javatype = "String", lazy = false)
private Ayudante ayudante;
private String idalmacen;
private String tipoalmacen;
@Embedded
private List<UserInfo> userInfo;
public Factura() {
}
}

Last updated
Was this helpful?