use of sic.modelo.Producto in project sic by belluccifranco.
the class FacturaServiceImplTest method shouldCalcularPrecioUnitarioWhenEsUnaVentaConFacturaB.
@Test
public void shouldCalcularPrecioUnitarioWhenEsUnaVentaConFacturaB() {
Producto producto = new ProductoBuilder().withPrecioCosto(100.00).withGanancia_neto(100).withIva_neto(42).withPrecioVentaPublico(200).withPrecioLista(242).withImpuestoInterno_neto(0.0).withIva_porcentaje(21).build();
double resultadoEsperado = 242;
double resultadoObtenido = facturaService.calcularPrecioUnitario(Movimiento.VENTA, TipoDeComprobante.FACTURA_B, producto);
assertEquals(resultadoEsperado, resultadoObtenido, 0);
}
use of sic.modelo.Producto in project sic by belluccifranco.
the class FacturaServiceImpl method calcularRenglon.
@Override
public RenglonFactura calcularRenglon(TipoDeComprobante tipo, Movimiento movimiento, double cantidad, Long idProducto, double descuento_porcentaje) {
Producto producto = productoService.getProductoPorId(idProducto);
RenglonFactura nuevoRenglon = new RenglonFactura();
nuevoRenglon.setId_ProductoItem(producto.getId_Producto());
nuevoRenglon.setCodigoItem(producto.getCodigo());
nuevoRenglon.setDescripcionItem(producto.getDescripcion());
nuevoRenglon.setMedidaItem(producto.getMedida().getNombre());
nuevoRenglon.setCantidad(cantidad);
nuevoRenglon.setPrecioUnitario(this.calcularPrecioUnitario(movimiento, tipo, producto));
nuevoRenglon.setDescuento_porcentaje(descuento_porcentaje);
nuevoRenglon.setDescuento_neto(this.calcularDescuentoNeto(nuevoRenglon.getPrecioUnitario(), descuento_porcentaje));
nuevoRenglon.setIva_porcentaje(producto.getIva_porcentaje());
if (tipo.equals(TipoDeComprobante.FACTURA_Y)) {
nuevoRenglon.setIva_porcentaje(producto.getIva_porcentaje() / 2);
}
nuevoRenglon.setIva_neto(this.calcularIVANetoRenglon(movimiento, tipo, producto, nuevoRenglon.getDescuento_porcentaje()));
nuevoRenglon.setImpuesto_porcentaje(producto.getImpuestoInterno_porcentaje());
nuevoRenglon.setImpuesto_neto(this.calcularImpInternoNeto(movimiento, producto, nuevoRenglon.getDescuento_neto()));
nuevoRenglon.setGanancia_porcentaje(producto.getGanancia_porcentaje());
nuevoRenglon.setGanancia_neto(producto.getGanancia_neto());
nuevoRenglon.setImporte(this.calcularImporte(cantidad, nuevoRenglon.getPrecioUnitario(), nuevoRenglon.getDescuento_neto()));
return nuevoRenglon;
}
use of sic.modelo.Producto 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.Producto in project sic by belluccifranco.
the class DetalleProductoGUI method btn_GuardarActionPerformed.
private void btn_GuardarActionPerformed(java.awt.event.ActionEvent evt) {
//GEN-FIRST:event_btn_GuardarActionPerformed
try {
if (operacion == TipoDeOperacion.ALTA) {
Producto producto = new Producto();
producto.setCodigo(txt_Codigo.getText());
producto.setDescripcion(txt_Descripcion.getText().trim());
producto.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
producto.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
producto.setMedida((Medida) cmb_Medida.getSelectedItem());
producto.setPrecioCosto(Double.parseDouble(txt_PrecioCosto.getValue().toString()));
producto.setGanancia_porcentaje(Double.parseDouble(txt_Ganancia_Porcentaje.getValue().toString()));
producto.setGanancia_neto(Double.parseDouble(txt_Ganancia_Neto.getValue().toString()));
producto.setPrecioVentaPublico(Double.parseDouble(txt_PVP.getValue().toString()));
producto.setIva_porcentaje(Double.parseDouble(cmb_IVA_Porcentaje.getSelectedItem().toString()));
producto.setIva_neto(Double.parseDouble(txt_IVA_Neto.getValue().toString()));
producto.setPrecioLista(Double.parseDouble(txt_PrecioLista.getValue().toString()));
producto.setRubro((Rubro) cmb_Rubro.getSelectedItem());
producto.setIlimitado(chk_Ilimitado.isSelected());
producto.setFechaUltimaModificacion(new Date());
producto.setEstanteria(txt_Estanteria.getText().trim());
producto.setEstante(txt_Estante.getText().trim());
producto.setProveedor((Proveedor) cmb_Proveedor.getSelectedItem());
producto.setNota(txt_Nota.getText().trim());
producto.setFechaAlta(new Date());
producto.setFechaVencimiento(dc_Vencimiento.getDate());
producto.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
RestClient.getRestTemplate().postForObject("/productos", producto, Producto.class);
LOGGER.warn("El producto " + producto + " se guardó correctamente");
int respuesta = JOptionPane.showConfirmDialog(this, "El producto se guardó correctamente.\n¿Desea dar de alta otro producto?", "Aviso", JOptionPane.YES_NO_OPTION);
this.limpiarYRecargarComponentes();
if (respuesta == JOptionPane.NO_OPTION) {
this.dispose();
}
}
if (operacion == TipoDeOperacion.ACTUALIZACION) {
productoModificar.setCodigo(txt_Codigo.getText());
productoModificar.setDescripcion(txt_Descripcion.getText().trim());
productoModificar.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
productoModificar.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
productoModificar.setMedida((Medida) cmb_Medida.getSelectedItem());
productoModificar.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
productoModificar.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
productoModificar.setMedida((Medida) cmb_Medida.getSelectedItem());
productoModificar.setPrecioCosto(Double.parseDouble(txt_PrecioCosto.getValue().toString()));
productoModificar.setGanancia_porcentaje(Double.parseDouble(txt_Ganancia_Porcentaje.getValue().toString()));
productoModificar.setGanancia_neto(Double.parseDouble(txt_Ganancia_Neto.getValue().toString()));
productoModificar.setPrecioVentaPublico(Double.parseDouble(txt_PVP.getValue().toString()));
productoModificar.setIva_porcentaje(Double.parseDouble(cmb_IVA_Porcentaje.getSelectedItem().toString()));
productoModificar.setIva_neto(Double.parseDouble(txt_IVA_Neto.getValue().toString()));
productoModificar.setPrecioLista(Double.parseDouble(txt_PrecioLista.getValue().toString()));
productoModificar.setRubro((Rubro) cmb_Rubro.getSelectedItem());
productoModificar.setIlimitado(chk_Ilimitado.isSelected());
productoModificar.setFechaUltimaModificacion(new Date());
productoModificar.setEstanteria(txt_Estanteria.getText().trim());
productoModificar.setEstante(txt_Estante.getText().trim());
productoModificar.setProveedor((Proveedor) cmb_Proveedor.getSelectedItem());
productoModificar.setNota(txt_Nota.getText().trim());
productoModificar.setFechaVencimiento(dc_Vencimiento.getDate());
productoModificar.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
RestClient.getRestTemplate().put("/productos", productoModificar);
LOGGER.warn("El producto " + productoModificar + " se modificó correctamente");
JOptionPane.showMessageDialog(this, "El producto se modificó 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.Producto 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);
}
}
Aggregations