Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package bs.proveedores.web.informe; import bs.entidad.modelo.EntidadComercial; import bs.entidad.web.EntidadComercialBean; import bs.global.excepciones.ExcepcionGeneralSistema; import bs.global.rn.FormularioRN; import bs.global.util.InformeBase; import bs.global.util.JsfUtil; import bs.proveedores.modelo.ItemHistoricoCuentaCorrienteProveedor; import bs.proveedores.modelo.ItemPendienteCuentaCorrienteProveedor; import bs.proveedores.modelo.MovimientoProveedor; import bs.proveedores.rn.CuentaCorrienteProveedorRN; import bs.proveedores.rn.MovimientoProveedorRN; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; /** * * @author Claudio */ @ManagedBean @ViewScoped public class CuentaCorrienteProveedorBean extends InformeBase implements Serializable { @EJB private CuentaCorrienteProveedorRN cuentaCorrienteRN; @EJB private FormularioRN formularioRN; @EJB private MovimientoProveedorRN proveedorRN; private Date fechaDesde; private Date fechaHasta; @ManagedProperty(value = "#{entidadComercialBean}") protected EntidadComercialBean entidadComercialBean; private EntidadComercial proveedor; private BigDecimal saldoActual; private int cantVencidos; private int cantVencer; private List<ItemPendienteCuentaCorrienteProveedor> debitos; private List<ItemPendienteCuentaCorrienteProveedor> creditos; private List<ItemHistoricoCuentaCorrienteProveedor> historial; private String codigoMonedaRegistracion; /** Creates a new instance of CuentaCorrienteBean */ public CuentaCorrienteProveedorBean() { } @PostConstruct @Override public void init() { super.init(); muestraReporte = false; fechaDesde = new Date(); fechaHasta = new Date(); saldoActual = BigDecimal.ZERO; debitos = new ArrayList<ItemPendienteCuentaCorrienteProveedor>(); creditos = new ArrayList<ItemPendienteCuentaCorrienteProveedor>(); historial = new ArrayList<ItemHistoricoCuentaCorrienteProveedor>(); entidadComercialBean.init("2"); codigoMonedaRegistracion = ""; marcarProveedorConDeuda(); } public Date getFechaMinima() { Calendar cal = Calendar.getInstance(); cal.set(1900, 1, 1); return cal.getTime(); } public Date getFechaMaxima() { return new Date(); } public void consultarHistorial() { if (proveedor == null) { JsfUtil.addErrorMessage("Seleccione un proveedor"); return; } if (fechaHasta.before(fechaDesde)) { JsfUtil.addWarningMessage("tablaHistorial", "Atencin", "Fecha desde tiene que ser mayor o igual a fecha Hasta"); return; } historial = cuentaCorrienteRN.getHistoricoMovimientos(proveedor.getNrocta(), fechaDesde, fechaHasta, codigoMonedaRegistracion); //Inicializamos el saldo anterior en cero ItemHistoricoCuentaCorrienteProveedor SaldoAnterior = cuentaCorrienteRN .getSaldoAnterior(proveedor.getNrocta(), fechaDesde); historial.add(0, SaldoAnterior); BigDecimal saldo = SaldoAnterior.getSaldo(); for (ItemHistoricoCuentaCorrienteProveedor i : historial) { if (!i.getCodfor().equals("SA")) { i.setSaldo(saldo.add(i.getDebe().add(i.getHaber().negate()))); saldo = i.getSaldo(); } } if (historial.size() == 1) { JsfUtil.addWarningMessage("tablaHistorial", "Atencin", "No se encontraron movimientos en el perodo seleccionado"); } } public void imprimir(String codfor, int nrofor) { try { formulario = formularioRN.getFormulario("PV", codfor); if (formulario == null) { JsfUtil.addErrorMessage("No se puede imprimir - No se encontr formulario"); return; } if (formulario.getNombreReporte() == null) { JsfUtil.addErrorMessage("No se puede imprimir - El formulario no tienen reporte asociado"); return; } parameters = new HashMap(); String pathReport = FacesContext.getCurrentInstance().getExternalContext() .getRealPath(formulario.getNombreReporte() + ".jasper"); nombreArchivo = codfor + "-" + nrofor; MovimientoProveedor mp = proveedorRN.getMovimiento(codfor, nrofor); parameters.put("ID", mp.getId()); parameters.put("CANT_COPIAS", 1); reportFactory.exportReportToPdfFile(pathReport, nombreArchivo, parameters); muestraReporte = true; } catch (NullPointerException npe) { JsfUtil.addErrorMessage("No se encontr el archivo: " + nombreArchivo + ".jasper"); muestraReporte = false; } catch (Exception e) { e.printStackTrace(); JsfUtil.addErrorMessage("No se puede imprimir a pdf " + e.getMessage()); muestraReporte = false; } } private void marcarProveedorConDeuda() { if (entidadComercialBean.getLista() == null) return; for (EntidadComercial c : entidadComercialBean.getLista()) { c.setConDeuda(cuentaCorrienteRN.conDeuda(c.getNrocta())); } } public void buscarProveedor() { entidadComercialBean.buscar(); for (EntidadComercial c : entidadComercialBean.getLista()) { c.setConDeuda(cuentaCorrienteRN.conDeuda(c.getNrocta())); } } public void procesarProveedor() { if (entidadComercialBean.getEntidad() != null) { proveedor = entidadComercialBean.getEntidad(); saldoActual = cuentaCorrienteRN.getSaldoActual(proveedor.getNrocta()); debitos = cuentaCorrienteRN.getDebitosPendientes(proveedor.getNrocta(), codigoMonedaRegistracion); creditos = cuentaCorrienteRN.getCreditosPendientes(proveedor.getNrocta(), codigoMonedaRegistracion); calcularVencidos(creditos); muestraReporte = false; todoOk = false; consultarHistorial(); } } private void calcularVencidos(List<ItemPendienteCuentaCorrienteProveedor> items) { cantVencer = 0; cantVencidos = 0; for (ItemPendienteCuentaCorrienteProveedor icc : items) { if (icc.getFechaVencimiento().before(new Date())) { cantVencidos++; } else { cantVencer++; } } } @Override public void validarDatos() throws ExcepcionGeneralSistema { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void cargarParametros() throws ExcepcionGeneralSistema { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void resetParametros() throws ExcepcionGeneralSistema { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } public void postProcessXLS(Object document) { HSSFWorkbook wb = (HSSFWorkbook) document; HSSFSheet sheet = wb.getSheetAt(0); HSSFRow header = sheet.getRow(0); HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillForegroundColor(HSSFColor.ORANGE.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); for (int i = 0; i < header.getPhysicalNumberOfCells(); i++) { HSSFCell cell = header.getCell(i); cell.setCellStyle(cellStyle); } } public Date getFechaDesde() { return fechaDesde; } public void setFechaDesde(Date fechaDesde) { this.fechaDesde = fechaDesde; } public Date getFechaHasta() { return fechaHasta; } public void setFechaHasta(Date fechaHasta) { this.fechaHasta = fechaHasta; } public BigDecimal getSaldoActual() { return saldoActual; } public void setSaldoActual(BigDecimal saldoActual) { this.saldoActual = saldoActual; } public EntidadComercialBean getEntidadComercialBean() { return entidadComercialBean; } public void setEntidadComercialBean(EntidadComercialBean entidadComercialBean) { this.entidadComercialBean = entidadComercialBean; } public EntidadComercial getProveedor() { return proveedor; } public void setProveedor(EntidadComercial proveedor) { this.proveedor = proveedor; } public List<ItemPendienteCuentaCorrienteProveedor> getDebitos() { return debitos; } public void setDebitos(List<ItemPendienteCuentaCorrienteProveedor> debitos) { this.debitos = debitos; } public List<ItemPendienteCuentaCorrienteProveedor> getCreditos() { return creditos; } public void setCreditos(List<ItemPendienteCuentaCorrienteProveedor> creditos) { this.creditos = creditos; } public List<ItemHistoricoCuentaCorrienteProveedor> getHistorial() { return historial; } public void setHistorial(List<ItemHistoricoCuentaCorrienteProveedor> historial) { this.historial = historial; } public int getCantVencidos() { return cantVencidos; } public void setCantVencidos(int cantVencidos) { this.cantVencidos = cantVencidos; } public int getCantVencer() { return cantVencer; } public void setCantVencer(int cantVencer) { this.cantVencer = cantVencer; } }