use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class PuntoDeVentaGUI method btn_ContinuarActionPerformed.
//GEN-LAST:event_txt_Decuento_porcentajeActionPerformed
private void btn_ContinuarActionPerformed(java.awt.event.ActionEvent evt) {
//GEN-FIRST:event_btn_ContinuarActionPerformed
if (renglones.isEmpty()) {
JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_sin_renglones"), "Error", JOptionPane.ERROR_MESSAGE);
} else {
this.calcularResultados();
try {
if (!cmb_TipoComprobante.getSelectedItem().equals(TipoDeComprobante.PEDIDO)) {
List<RenglonFactura> productosFaltantes = new ArrayList();
for (RenglonFactura renglon : renglones) {
if (!RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem() + "/stock/disponibilidad?cantidad=" + renglon.getCantidad(), boolean.class)) {
productosFaltantes.add(renglon);
}
}
if (productosFaltantes.isEmpty()) {
CerrarVentaGUI gui_CerrarVenta = new CerrarVentaGUI(this, true);
gui_CerrarVenta.setVisible(true);
if (gui_CerrarVenta.isExito()) {
this.limpiarYRecargarComponentes();
}
} else {
ProductosFaltantesGUI gui_ProductosFaltantes = new ProductosFaltantesGUI(productosFaltantes);
gui_ProductosFaltantes.setModal(true);
gui_ProductosFaltantes.setLocationRelativeTo(this);
gui_ProductosFaltantes.setVisible(true);
}
} else {
//El Id es 0 cuando, se genera un pedido desde el punto de venta entrando por el botón nuevo de administrar pedidos.
if (this.pedido == null || this.pedido.getId_Pedido() == 0) {
this.construirPedido();
}
List<Pedido> pedidos = Arrays.asList(RestClient.getRestTemplate().getForObject("/pedidos/busqueda/criteria?" + "idEmpresa=" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa() + "&nroPedido=" + pedido.getNroPedido(), Pedido[].class));
if (pedidos.isEmpty()) {
Pedido p = RestClient.getRestTemplate().postForObject("/pedidos", this.pedido, Pedido.class);
this.lanzarReportePedido(p);
this.limpiarYRecargarComponentes();
} else if ((this.pedido.getEstado() == EstadoPedido.ABIERTO || this.pedido.getEstado() == null) && this.modificarPedido == true) {
this.actualizarPedido(this.pedido);
JOptionPane.showMessageDialog(this, "El pedido se actualizó correctamente.", "Aviso", JOptionPane.INFORMATION_MESSAGE);
this.dispose();
}
}
} 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 cargarRenglonesAlTable.
private void cargarRenglonesAlTable(EstadoRenglon[] estadosDeLosRenglones) {
modeloTablaResultados = new ModeloTabla();
this.setColumnas();
int i = 0;
boolean corte;
for (RenglonFactura renglon : renglones) {
Object[] fila = new Object[8];
corte = false;
/*Dentro de este While, el case según el valor leido en el array de la enumeración,
(modelo tabla) asigna el valor correspondiente al checkbox del renglon.*/
while (corte == false) {
switch(estadosDeLosRenglones[i]) {
case MARCADO:
{
fila[0] = true;
corte = true;
break;
}
case DESMARCADO:
{
fila[0] = false;
corte = true;
break;
}
/* En caso de que no sea un marcado o desmarcado, se considera que fue de un
renglon eliminado, entonces la estructura while continua iterando.*/
case ELIMINADO:
{
i++;
break;
}
/* El caso por defecto, se da cuando el método es ejecutado
desde otras partes que no sea eliminar, ya que la colección
contendrá valores vacíos ''.*/
default:
{
fila[0] = false;
corte = true;
}
}
}
i++;
fila[1] = renglon.getCodigoItem();
fila[2] = renglon.getDescripcionItem();
fila[3] = renglon.getMedidaItem();
fila[4] = renglon.getCantidad();
fila[5] = renglon.getPrecioUnitario();
fila[6] = renglon.getDescuento_porcentaje();
fila[7] = renglon.getImporte();
modeloTablaResultados.addRow(fila);
}
tbl_Resultado.setModel(modeloTablaResultados);
}
use of sic.modelo.RenglonFactura in project sic by belluccifranco.
the class PuntoDeVentaGUI method actualizarPedido.
private void actualizarPedido(Pedido pedido) {
try {
pedido = RestClient.getRestTemplate().getForObject("/pedidos/" + pedido.getId_Pedido(), Pedido.class);
pedido.setRenglones(this.convertirRenglonesFacturaARenglonesPedido(this.renglones));
double[] importes = new double[renglones.size()];
int indice = 0;
for (RenglonFactura renglon : renglones) {
importes[indice] = renglon.getImporte();
indice++;
}
pedido.setTotalEstimado(RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
RestClient.getRestTemplate().put("/pedidos", pedido);
} 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 agregarRenglon.
private void agregarRenglon(RenglonFactura renglon) {
try {
boolean agregado = false;
//busca entre los renglones al producto, aumenta la cantidad y recalcula el descuento
for (int i = 0; i < renglones.size(); i++) {
if (renglones.get(i).getId_ProductoItem() == renglon.getId_ProductoItem()) {
Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem(), Producto.class);
renglones.set(i, RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + this.tipoDeComprobante.name() + "&movimiento=" + Movimiento.VENTA + "&cantidad=" + (renglones.get(i).getCantidad() + renglon.getCantidad()) + "&descuentoPorcentaje=" + renglon.getDescuento_porcentaje(), RenglonFactura.class));
agregado = true;
}
}
//si no encuentra el producto entre los renglones, carga un nuevo renglon
if (agregado == false) {
renglones.add(renglon);
}
//para que baje solo el scroll vertical
Point p = new Point(0, tbl_Resultado.getHeight());
sp_Resultado.getViewport().setViewPosition(p);
} 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