use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class FacturaServiceImpl method getReporteFacturaVenta.
@Override
public byte[] getReporteFacturaVenta(Factura factura) {
ClassLoader classLoader = FacturaServiceImpl.class.getClassLoader();
InputStream isFileReport = classLoader.getResourceAsStream("sic/vista/reportes/FacturaVenta.jasper");
Map params = new HashMap();
ConfiguracionDelSistema cds = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(factura.getEmpresa());
params.put("preImpresa", cds.isUsarFacturaVentaPreImpresa());
String formasDePago = "";
formasDePago = pagoService.getPagosDeLaFactura(factura.getId_Factura()).stream().map((pago) -> pago.getFormaDePago().getNombre() + " -").reduce(formasDePago, String::concat);
params.put("formasDePago", formasDePago);
if (factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_B) || factura.getTipoComprobante().equals(TipoDeComprobante.PRESUPUESTO)) {
factura.setSubTotal_bruto(factura.getSubTotal());
factura.setIva_105_neto(0);
factura.setIva_21_neto(0);
}
params.put("facturaVenta", factura);
if (factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_A) || factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_B) || factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_C)) {
if (factura.getNumSerieAfip() != 0 && factura.getNumFacturaAfip() != 0) {
params.put("nroComprobante", factura.getNumSerieAfip() + " - " + factura.getNumFacturaAfip());
} else {
params.put("nroComprobante", "");
}
} else {
params.put("nroComprobante", factura.getNumSerie() + " - " + factura.getNumFactura());
}
params.put("logo", Utilidades.convertirByteArrayIntoImage(factura.getEmpresa().getLogo()));
List<RenglonFactura> renglones = this.getRenglonesDeLaFactura(factura.getId_Factura());
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(renglones);
try {
return JasperExportManager.exportReportToPdf(JasperFillManager.fillReport(isFileReport, params, ds));
} catch (JRException ex) {
throw new ServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_reporte"), ex);
}
}
use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class DetalleFacturaCompraGUI method recargarRenglonesSegunTipoDeFactura.
private void recargarRenglonesSegunTipoDeFactura() {
List<RenglonFactura> resguardoRenglones = renglones;
renglones = new ArrayList<>();
modeloTablaRenglones = new ModeloTabla();
this.setColumnas();
try {
for (RenglonFactura renglon : resguardoRenglones) {
Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem(), Producto.class);
RenglonFactura nuevoRenglon = RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + tipoDeComprobante.name() + "&movimiento=" + Movimiento.COMPRA + "&cantidad=" + renglon.getCantidad() + "&descuentoPorcentaje=" + renglon.getDescuento_porcentaje(), RenglonFactura.class);
this.agregarRenglon(nuevoRenglon);
}
} catch (RestClientResponseException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (ResourceAccessException ex) {
LOGGER.error(ex.getMessage());
JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
}
}
use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class PuntoDeVentaGUI method buscarProductoConVentanaAuxiliar.
private void buscarProductoConVentanaAuxiliar() {
if (cantidadMaximaRenglones > renglones.size()) {
Movimiento movimiento = this.tipoDeComprobante.equals(TipoDeComprobante.PEDIDO) ? Movimiento.PEDIDO : Movimiento.VENTA;
// revisar esto, es necesario para el movimiento como String y a su vez el movimiento?
BuscarProductosGUI GUI_buscarProductos = new BuscarProductosGUI(this, true, renglones, this.tipoDeComprobante, movimiento);
GUI_buscarProductos.setVisible(true);
if (GUI_buscarProductos.debeCargarRenglon()) {
boolean renglonCargado = false;
for (RenglonFactura renglon : renglones) {
if (renglon.getId_ProductoItem() == GUI_buscarProductos.getRenglon().getId_ProductoItem()) {
renglonCargado = true;
}
}
this.agregarRenglon(GUI_buscarProductos.getRenglon());
/*Si la tabla no contiene renglones, despues de agregar el renglon
a la coleccion, carga el arreglo con los estados con un solo elemento,
cuyo valor es "Desmarcado" para evitar un nulo.*/
EstadoRenglon[] estadosRenglones = new EstadoRenglon[renglones.size()];
if (tbl_Resultado.getRowCount() == 0) {
estadosRenglones[0] = EstadoRenglon.DESMARCADO;
} else {
this.cargarEstadoDeLosChkEnTabla(tbl_Resultado, estadosRenglones);
//Se ejecuta o no segun si el renglon ya existe. Si ya existe, no se ejecuta
if (!renglonCargado) {
estadosRenglones[tbl_Resultado.getRowCount()] = EstadoRenglon.DESMARCADO;
}
}
this.cargarRenglonesAlTable(estadosRenglones);
this.calcularResultados();
}
} else {
JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_maxima_cantidad_de_renglones"), "Error", JOptionPane.ERROR_MESSAGE);
}
}
use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class PuntoDeVentaGUI method recargarRenglonesSegunTipoDeFactura.
private void recargarRenglonesSegunTipoDeFactura() {
try {
//resguardo de renglones
List<RenglonFactura> resguardoRenglones = renglones;
renglones = new ArrayList<>();
for (RenglonFactura renglonFactura : resguardoRenglones) {
Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglonFactura.getId_ProductoItem(), Producto.class);
RenglonFactura renglon = RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + this.tipoDeComprobante.name() + "&movimiento=" + Movimiento.VENTA + "&cantidad=" + renglonFactura.getCantidad() + "&descuentoPorcentaje=" + renglonFactura.getDescuento_porcentaje(), RenglonFactura.class);
this.agregarRenglon(renglon);
}
EstadoRenglon[] estadosRenglones = new EstadoRenglon[renglones.size()];
if (!renglones.isEmpty()) {
if (tbl_Resultado.getRowCount() == 0) {
estadosRenglones[0] = EstadoRenglon.DESMARCADO;
} else {
this.cargarEstadoDeLosChkEnTabla(tbl_Resultado, estadosRenglones);
if (tbl_Resultado.getRowCount() > renglones.size()) {
estadosRenglones[tbl_Resultado.getRowCount()] = EstadoRenglon.DESMARCADO;
}
}
}
this.cargarRenglonesAlTable(estadosRenglones);
this.calcularResultados();
} catch (RestClientResponseException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (ResourceAccessException ex) {
LOGGER.error(ex.getMessage());
JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
}
}
use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class PuntoDeVentaGUI method construirPedido.
private void construirPedido() {
try {
this.pedido = new Pedido();
this.pedido.setCliente(cliente);
this.pedido.setEliminado(false);
this.pedido.setEmpresa(empresa);
this.pedido.setFacturas(null);
this.pedido.setFecha(dc_fechaFactura.getDate());
this.pedido.setFechaVencimiento(dc_fechaVencimiento.getDate());
this.pedido.setObservaciones(txta_Observaciones.getText());
this.pedido.setUsuario(UsuarioActivo.getInstance().getUsuario());
double[] importes = new double[renglones.size()];
int indice = 0;
for (RenglonFactura renglon : renglones) {
importes[indice] = renglon.getImporte();
indice++;
}
this.pedido.setTotalEstimado(RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
this.pedido.setEstado(EstadoPedido.ABIERTO);
List<RenglonPedido> renglonesPedido = new ArrayList<>();
renglones.stream().forEach((r) -> {
renglonesPedido.add(this.convertirRenglonFacturaARenglonPedido(r));
});
this.pedido.setRenglones(renglonesPedido);
} catch (RestClientResponseException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (ResourceAccessException ex) {
LOGGER.error(ex.getMessage());
JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
}
}
Aggregations