Search in sources :

Example 1 with FormaDePago

use of sic.modelo.FormaDePago in project sic by belluccifranco.

the class PagoMultiplesFacturasGUI method lbl_AceptarActionPerformed.

// </editor-fold>//GEN-END:initComponents
private void lbl_AceptarActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_lbl_AceptarActionPerformed
    int respuesta = JOptionPane.showConfirmDialog(this, "¿Esta seguro que desea realizar esta operacion?", "Pago", JOptionPane.YES_NO_OPTION);
    if (respuesta == JOptionPane.YES_OPTION) {
        try {
            if (ftxt_Monto.getValue() == null) {
                ftxt_Monto.setText("0");
            }
            double montoDelPago = Double.parseDouble(ftxt_Monto.getValue().toString());
            int indice = 0;
            long[] idsFacturas = new long[facturas.size()];
            for (Factura factura : facturas) {
                idsFacturas[indice] = factura.getId_Factura();
                indice++;
            }
            RestClient.getRestTemplate().put("/pagos/pagar-multiples-facturas?" + "idFactura=" + Arrays.toString(idsFacturas).substring(1, Arrays.toString(idsFacturas).length() - 1) + "&monto=" + montoDelPago + "&idFormaDePago=" + ((FormaDePago) cmb_FormaDePago.getSelectedItem()).getId_FormaDePago() + "&nota=" + ftxt_Nota.getText(), null);
            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);
        }
    }
}
Also used : FormaDePago(sic.modelo.FormaDePago) Factura(sic.modelo.Factura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 2 with FormaDePago

use of sic.modelo.FormaDePago in project sic by belluccifranco.

the class FormasDePagoGUI method agregarFormaDePago.

private void agregarFormaDePago() {
    try {
        FormaDePago formaDePago = new FormaDePago();
        formaDePago.setNombre(txt_Nombre.getText().trim());
        formaDePago.setAfectaCaja(chk_AfectaCaja.isSelected());
        formaDePago.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
        RestClient.getRestTemplate().postForObject("/formas-de-pago", formaDePago, FormaDePago.class);
        txt_Nombre.setText("");
        chk_AfectaCaja.setSelected(false);
        this.getFormasDePagos();
        this.cargarResultadosAlTable();
    } 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);
    }
}
Also used : FormaDePago(sic.modelo.FormaDePago) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 3 with FormaDePago

use of sic.modelo.FormaDePago in project sic by belluccifranco.

the class CajaServiceImpl method getTotalMovimientosPorFormaDePago.

private double getTotalMovimientosPorFormaDePago(Caja caja, FormaDePago fdp) {
    double pagosVentasTotal = 0.0;
    double pagosComprasTotal = 0.0;
    double gastosTotal = 0.0;
    LocalDateTime ldt = caja.getFechaApertura().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    if (caja.getFechaCierre() == null) {
        ldt = ldt.withHour(23);
        ldt = ldt.withMinute(59);
        ldt = ldt.withSecond(59);
    } else {
        ldt = caja.getFechaCierre().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    }
    List<Pago> pagos = pagoService.getPagosEntreFechasYFormaDePago(caja.getEmpresa().getId_Empresa(), fdp.getId_FormaDePago(), caja.getFechaApertura(), Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()));
    List<Gasto> gastos = gastoService.getGastosEntreFechasYFormaDePago(caja.getEmpresa().getId_Empresa(), fdp.getId_FormaDePago(), caja.getFechaApertura(), Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()));
    for (Pago pago : pagos) {
        if (pago.getFactura() instanceof FacturaVenta) {
            pagosVentasTotal += pago.getMonto();
        } else if (pago.getFactura() instanceof FacturaCompra) {
            pagosComprasTotal += pago.getMonto();
        }
    }
    gastosTotal = gastos.stream().map((gasto) -> gasto.getMonto()).reduce(gastosTotal, (accumulator, _item) -> accumulator + _item);
    return pagosVentasTotal - pagosComprasTotal - gastosTotal;
}
Also used : LocalDateTime(java.time.LocalDateTime) Caja(sic.modelo.Caja) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) Date(java.util.Date) QCaja(sic.modelo.QCaja) CajaRepository(sic.repository.CajaRepository) LocalDateTime(java.time.LocalDateTime) Autowired(org.springframework.beans.factory.annotation.Autowired) BooleanBuilder(com.querydsl.core.BooleanBuilder) HashMap(java.util.HashMap) Scheduled(org.springframework.scheduling.annotation.Scheduled) Rol(sic.modelo.Rol) ArrayList(java.util.ArrayList) Logger(org.apache.log4j.Logger) ICajaService(sic.service.ICajaService) Calendar(java.util.Calendar) ResourceBundle(java.util.ResourceBundle) Service(org.springframework.stereotype.Service) Empresa(sic.modelo.Empresa) Map(java.util.Map) Gasto(sic.modelo.Gasto) IFormaDePagoService(sic.service.IFormaDePagoService) EntityNotFoundException(javax.persistence.EntityNotFoundException) Sort(org.springframework.data.domain.Sort) Validator(sic.util.Validator) GregorianCalendar(java.util.GregorianCalendar) FormatterFechaHora(sic.util.FormatterFechaHora) DateExpression(com.querydsl.core.types.dsl.DateExpression) FacturaVenta(sic.modelo.FacturaVenta) BusinessServiceException(sic.service.BusinessServiceException) EstadoCaja(sic.modelo.EstadoCaja) ZoneId(java.time.ZoneId) IUsuarioService(sic.service.IUsuarioService) IPagoService(sic.service.IPagoService) BusquedaCajaCriteria(sic.modelo.BusquedaCajaCriteria) List(java.util.List) IGastoService(sic.service.IGastoService) Expressions(com.querydsl.core.types.dsl.Expressions) LocalDate(java.time.LocalDate) FacturaCompra(sic.modelo.FacturaCompra) IEmpresaService(sic.service.IEmpresaService) Transactional(org.springframework.transaction.annotation.Transactional) FacturaVenta(sic.modelo.FacturaVenta) Gasto(sic.modelo.Gasto) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) FacturaCompra(sic.modelo.FacturaCompra)

Example 4 with FormaDePago

use of sic.modelo.FormaDePago in project sic by belluccifranco.

the class CajaServiceImpl method cargarPagosyGastos.

private Caja cargarPagosyGastos(Caja caja) {
    Map<Long, Double> totalesPorFomaDePago = new HashMap<>();
    for (FormaDePago fdp : formaDePagoService.getFormasDePago(caja.getEmpresa())) {
        double total = this.getTotalMovimientosPorFormaDePago(caja, fdp);
        if (total != 0) {
            totalesPorFomaDePago.put(fdp.getId_FormaDePago(), total);
        }
    }
    caja.setTotalesPorFomaDePago(totalesPorFomaDePago);
    return caja;
}
Also used : FormaDePago(sic.modelo.FormaDePago) HashMap(java.util.HashMap)

Example 5 with FormaDePago

use of sic.modelo.FormaDePago in project sic by belluccifranco.

the class PagoServiceImpl method pagarMultiplesFacturas.

@Override
@Transactional
public void pagarMultiplesFacturas(List<Factura> facturas, double monto, FormaDePago formaDePago, String nota) {
    if (monto <= this.calcularTotalAdeudadoFacturas(facturas)) {
        List<Factura> facturasOrdenadas = facturaService.ordenarFacturasPorFechaAsc(facturas);
        for (Factura factura : facturasOrdenadas) {
            if (monto > 0.0) {
                factura.setPagos(this.getPagosDeLaFactura(factura.getId_Factura()));
                Pago nuevoPago = new Pago();
                nuevoPago.setFormaDePago(formaDePago);
                nuevoPago.setFactura(factura);
                nuevoPago.setFecha(new Date());
                nuevoPago.setEmpresa(factura.getEmpresa());
                nuevoPago.setNota(nota);
                double saldoAPagar = this.getSaldoAPagar(factura);
                if (saldoAPagar <= monto) {
                    monto = monto - saldoAPagar;
                    // Se utiliza round por un problema de presicion de la maquina ej: 828.65 - 614.0 = 214.64999...
                    monto = Math.round(monto * 100.0) / 100.0;
                    nuevoPago.setMonto(saldoAPagar);
                } else {
                    nuevoPago.setMonto(monto);
                    monto = 0.0;
                }
                this.guardar(nuevoPago);
            }
        }
    } else {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_pago_mayorADeuda_monto"));
    }
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) Factura(sic.modelo.Factura) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) Date(java.util.Date) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

FormaDePago (sic.modelo.FormaDePago)14 Date (java.util.Date)5 ResourceAccessException (org.springframework.web.client.ResourceAccessException)5 RestClientResponseException (org.springframework.web.client.RestClientResponseException)5 Pago (sic.modelo.Pago)5 ArrayList (java.util.ArrayList)4 Transactional (org.springframework.transaction.annotation.Transactional)4 Factura (sic.modelo.Factura)4 Empresa (sic.modelo.Empresa)3 FacturaVenta (sic.modelo.FacturaVenta)3 HashMap (java.util.HashMap)2 EntityNotFoundException (javax.persistence.EntityNotFoundException)2 Test (org.junit.Test)2 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 ClienteBuilder (sic.builder.ClienteBuilder)2 CondicionIVABuilder (sic.builder.CondicionIVABuilder)2 EmpresaBuilder (sic.builder.EmpresaBuilder)2 FormaDePagoBuilder (sic.builder.FormaDePagoBuilder)2 LocalidadBuilder (sic.builder.LocalidadBuilder)2 MedidaBuilder (sic.builder.MedidaBuilder)2