Search in sources :

Example 1 with FacturaVenta

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

the class FacturaVentaBuilder method build.

public FacturaVenta build() {
    if (renglones == null) {
        RenglonFactura renglon1 = new RenglonFacturaBuilder().build();
        RenglonFactura renglon2 = new RenglonFacturaBuilder().withCantidad(4).withId_ProductoItem(890L).withCodigoItem("mate.0923").withIVAneto(1092).withPrecioUnitario(5200).build();
        List<RenglonFactura> renglonesFactura = new ArrayList<>();
        renglonesFactura.add(renglon1);
        renglonesFactura.add(renglon2);
        this.renglones = renglonesFactura;
    }
    FacturaVenta factura = new FacturaVenta(cliente, usuario, id_Factura, fecha, tipoFactura, numSerie, numFactura, fechaVencimiento, pedido, transportista, renglones, pagos, subTotal, recargo_porcentaje, recargo_neto, descuento_porcentaje, descuento_neto, subTotal_neto, iva_105_neto, iva_21_neto, impuestoInterno_neto, total, observaciones, pagada, empresa, eliminada, CAE, vencimientoCAE, numSerieAfip, numFacturaAfip);
    return factura;
}
Also used : FacturaVenta(sic.modelo.FacturaVenta) ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura)

Example 2 with FacturaVenta

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

the class CerrarVentaGUI method finalizarVenta.

private void finalizarVenta() {
    FacturaVenta facturaVenta = gui_puntoDeVenta.construirFactura();
    facturaVenta.setTransportista((Transportista) cmb_Transporte.getSelectedItem());
    facturaVenta = this.agregarPagosAFactura(facturaVenta);
    try {
        String uri = "/facturas?idPedido=";
        if (gui_puntoDeVenta.getPedido() != null) {
            uri += gui_puntoDeVenta.getPedido().getId_Pedido();
        }
        if (dividir) {
            String indices = "&indices=" + Arrays.toString(indicesParaDividir).substring(1, Arrays.toString(indicesParaDividir).length() - 1);
            List<Factura> facturasDivididas = Arrays.asList(RestClient.getRestTemplate().postForObject(uri + indices, facturaVenta, Factura[].class));
            int indice = facturasDivididas.size();
            for (int i = 0; i < indice; i++) {
                facturasDivididas.get(i).setRenglones(Arrays.asList(RestClient.getRestTemplate().getForObject("/facturas/" + facturasDivididas.get(i).getId_Factura() + "/renglones", RenglonFactura[].class)));
                if (facturasDivididas.size() == 2 && !facturasDivididas.get(i).getRenglones().isEmpty()) {
                    if (i == 0) {
                        this.lanzarReporteFactura(facturasDivididas.get(i), "ComprobanteX");
                    } else {
                        this.lanzarReporteFactura(facturasDivididas.get(i), "Factura");
                    }
                    exito = true;
                } else if (facturasDivididas.size() == 1 && !facturasDivididas.get(i).getRenglones().isEmpty()) {
                    this.lanzarReporteFactura(facturasDivididas.get(i), "Factura");
                }
            }
        } else {
            this.lanzarReporteFactura(Arrays.asList(RestClient.getRestTemplate().postForObject(uri, facturaVenta, FacturaVenta[].class)).get(0), "Factura");
            exito = true;
        }
        if (gui_puntoDeVenta.getPedido() != null) {
            gui_puntoDeVenta.dispose();
        }
        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 : FacturaVenta(sic.modelo.FacturaVenta) RenglonFactura(sic.modelo.RenglonFactura) Factura(sic.modelo.Factura) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 3 with FacturaVenta

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

the class PuntoDeVentaGUI method construirFactura.

public FacturaVenta construirFactura() {
    FacturaVenta factura = new FacturaVenta();
    factura.setFecha(this.dc_fechaFactura.getDate());
    factura.setTipoComprobante(this.tipoDeComprobante);
    factura.setFechaVencimiento(this.dc_fechaVencimiento.getDate());
    factura.setRenglones(this.getRenglones());
    factura.setObservaciones(this.txta_Observaciones.getText().trim());
    factura.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
    factura.setCliente(this.cliente);
    factura.setUsuario(UsuarioActivo.getInstance().getUsuario());
    factura.setSubTotal(Double.parseDouble(txt_Subtotal.getValue().toString()));
    factura.setDescuento_porcentaje(Double.parseDouble(txt_Decuento_porcentaje.getValue().toString()));
    factura.setDescuento_neto(Double.parseDouble(txt_Decuento_neto.getValue().toString()));
    factura.setRecargo_porcentaje(Double.parseDouble(txt_Recargo_porcentaje.getValue().toString()));
    factura.setRecargo_neto(Double.parseDouble(txt_Recargo_neto.getValue().toString()));
    factura.setSubTotal_bruto(subTotalBruto);
    factura.setIva_105_neto(iva_105_netoFactura);
    factura.setIva_21_neto(iva_21_netoFactura);
    factura.setTotal(Double.parseDouble(txt_Total.getValue().toString()));
    return factura;
}
Also used : FacturaVenta(sic.modelo.FacturaVenta)

Example 4 with FacturaVenta

use of sic.modelo.FacturaVenta 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 5 with FacturaVenta

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

the class FacturaRepositoryImpl method buscarFacturasVenta.

@Override
public List<FacturaVenta> buscarFacturasVenta(BusquedaFacturaVentaCriteria criteria) {
    String query = "SELECT f FROM FacturaVenta f WHERE f.empresa = :empresa AND f.eliminada = false";
    //Fecha
    if (criteria.isBuscaPorFecha() == true) {
        FormatterFechaHora formateadorFecha = new FormatterFechaHora(FormatterFechaHora.FORMATO_FECHAHORA_INTERNACIONAL);
        query += " AND f.fecha BETWEEN '" + formateadorFecha.format(criteria.getFechaDesde()) + "' AND '" + formateadorFecha.format(criteria.getFechaHasta()) + "'";
    }
    //Cliente
    if (criteria.isBuscaCliente() == true) {
        query += " AND f.cliente = " + criteria.getCliente().getId_Cliente();
    }
    //Tipo de Factura
    if (criteria.isBuscaPorTipoComprobante() == true) {
        query += " AND f.tipoComprobante = " + "\'" + criteria.getTipoComprobante() + "\'";
    }
    //Usuario
    if (criteria.isBuscaUsuario() == true) {
        query += " AND f.usuario = " + criteria.getUsuario().getId_Usuario();
    }
    if (criteria.isBuscaViajante() == true) {
        query += " AND f.cliente.viajante = " + criteria.getViajante().getId_Usuario();
    }
    //Nro de Factura
    if (criteria.isBuscaPorNumeroFactura() == true) {
        query += " AND f.numSerie = " + criteria.getNumSerie() + " AND f.numFactura = " + criteria.getNumFactura();
    }
    //Pedido
    if (criteria.isBuscarPorPedido() == true) {
        query += " AND f.pedido.nroPedido = " + criteria.getNroPedido();
    }
    //Inpagas
    if (criteria.isBuscaSoloImpagas() == true) {
        query += " AND f.pagada = false";
    }
    //Pagas
    if (criteria.isBuscaSoloPagadas() == true) {
        query += " AND f.pagada = true";
    }
    query += " ORDER BY f.fecha DESC";
    TypedQuery<FacturaVenta> typedQuery = em.createQuery(query, FacturaVenta.class);
    typedQuery.setParameter("empresa", criteria.getEmpresa());
    //si es 0, recupera TODOS los registros
    if (criteria.getCantRegistros() != 0) {
        typedQuery.setMaxResults(criteria.getCantRegistros());
    }
    return typedQuery.getResultList();
}
Also used : FormatterFechaHora(sic.util.FormatterFechaHora) FacturaVenta(sic.modelo.FacturaVenta)

Aggregations

FacturaVenta (sic.modelo.FacturaVenta)12 ArrayList (java.util.ArrayList)7 RenglonFactura (sic.modelo.RenglonFactura)7 Factura (sic.modelo.Factura)5 Date (java.util.Date)4 FormaDePago (sic.modelo.FormaDePago)4 Test (org.junit.Test)3 ResourceAccessException (org.springframework.web.client.ResourceAccessException)3 RestClientResponseException (org.springframework.web.client.RestClientResponseException)3 ClienteBuilder (sic.builder.ClienteBuilder)3 EmpresaBuilder (sic.builder.EmpresaBuilder)3 TransportistaBuilder (sic.builder.TransportistaBuilder)3 Empresa (sic.modelo.Empresa)3 FacturaCompra (sic.modelo.FacturaCompra)3 Medida (sic.modelo.Medida)3 Producto (sic.modelo.Producto)3 Usuario (sic.modelo.Usuario)3 Calendar (java.util.Calendar)2 GregorianCalendar (java.util.GregorianCalendar)2 List (java.util.List)2