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 Beans; import Control.ConecionOracle; import Model.Compensado; import javax.inject.Named; import javax.enterprise.context.SessionScoped; import java.io.Serializable; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import org.primefaces.event.SelectEvent; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Connection; import java.util.HashMap; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.faces.bean.ViewScoped; import javax.faces.context.ExternalContext; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; 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; import org.primefaces.component.growl.Growl; /** * * @author admin */ @Named(value = "geminusCompen") //@SessionScoped @javax.faces.view.ViewScoped public class GeminusCompen implements Serializable { /** * Creates a new instance of GeminusCompen */ ArrayList<Compensado> Listcomp = new ArrayList(); private Date fecha1; private Date fecha2; private String f1; private String f2; private String fechaQuery1; private String fechaQuery2; Growl growl = new Growl(); @PostConstruct public void init() { growl.setLife(5000); Listcomp.clear(); } public void postProcessXLS(Object document) throws IOException { HSSFWorkbook wb = (HSSFWorkbook) document; HSSFSheet sheet = wb.getSheetAt(0); HSSFRow header = sheet.getRow(0); HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillForegroundColor(HSSFColor.WHITE.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); for (int i = 0; i < header.getPhysicalNumberOfCells(); i++) { HSSFCell cell = header.getCell(i); cell.setCellStyle(cellStyle); } } public void onDateSelect(SelectEvent event) { FacesContext facesContext = FacesContext.getCurrentInstance(); SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Selected", format.format(event.getObject()))); } public void RecuperarFechas() { SimpleDateFormat format2 = new SimpleDateFormat("dd/M/yyyy"); this.f1 = format2.format(fecha1); this.f2 = format2.format(fecha2); } public void reporteCompensado() throws SQLException { RecuperarFechas(); Listcomp.clear(); int num = 1; try { ConecionOracle.conectar(); int b = 0; ConecionOracle.ejecuteQuery( "select A.dl_cod_empleado,B.em_nombre,count(*) from re_descansos_laborados A , re_empleados B where\n" + "A.dl_cod_empleado=B.em_codigo and \n" + " A.DL_fecha between '" + f1 + "' and '" + f2 + "' \n" + "group by A.dl_cod_empleado,B.em_nombre"); while (ConecionOracle.rs.next()) { b++; Listcomp.add(new Compensado(num, ConecionOracle.rs.getString(1), ConecionOracle.rs.getString(2), ConecionOracle.rs.getInt(3))); num++; } } catch (ClassNotFoundException ex) { } finally { ConecionOracle.cerrarConexion(); } } public void cargarCompensados() throws SQLException { RecuperarFechas(); Listcomp.clear(); int num = 1; try { ConecionOracle.conectar(); int b = 0; ConecionOracle.ejecuteQuery( "select A.ma_codigo,B.em_nombre,case when count(distinct A.ma_fecha)=14 then 1 when count(distinct A.ma_fecha)>=15 then 2 end \n" + " from re_marcaciones A , re_empleados B where A.ma_codigo=B.Em_codigo and \n" + " A.ma_fecha between '" + f1 + "'\n" + "and '" + f2 + "' \n" + "and A.ma_tipo='E'\n" + " group by A.ma_codigo,B.em_nombre\n" + "having count(distinct A.ma_fecha)>=14 "); while (ConecionOracle.rs.next()) { b++; Listcomp.add(new Compensado(num, ConecionOracle.rs.getString(1), ConecionOracle.rs.getString(2), ConecionOracle.rs.getInt(3))); num++; } } catch (ClassNotFoundException ex) { } finally { ConecionOracle.cerrarConexion(); } } public void liquidarCompensados() throws IOException, SQLException { SimpleDateFormat format2 = new SimpleDateFormat("dd/M/yyyy"); boolean r = false; try { ConecionOracle.conectar(); ArrayList<Compensado> listFechas = new ArrayList(); for (Compensado LC : Listcomp) { ConecionOracle.ejecuteUpdate( "delete from re_descansos_laborados where DL_fecha between '" + f1 + "' and '" + f2 + "' "); } int a = 1; for (Compensado LC : Listcomp) { a = 1; ConecionOracle.ejecuteQuery("select pj_fecha from RE_PROGRAMACION_JORNADAS where pj_empleado='" + LC.getTrabajador() + "' \n" + "and pj_fecha between '" + f1 + "' and '" + f2 + "' " + "and rtrim(ltrim(to_char(pj_fecha, 'DAY','NLS_DATE_LANGUAGE=SPANISH')))='DOMINGO' and rownum<=" + LC.getDias()); while (ConecionOracle.rs.next()) { listFechas.add(new Compensado(LC.getTrabajador(), a, ConecionOracle.rs.getDate(1))); a++; } } for (Compensado listFecha : listFechas) { ConecionOracle .ejecuteUpdate("insert into re_descansos_laborados values('" + listFecha.getTrabajador() + "'," + "to_date('" + format2.format(listFecha.getFecha()) + "','DD/MM/YYYY'))"); } ConecionOracle.ejecuteUpdate("commit"); r = true; } catch (ClassNotFoundException ex) { r = false; } finally { ConecionOracle.cerrarConexion(); } Listcomp.clear(); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "Liquidacion Exitosa")); } public void limpiarLista() { Listcomp.clear(); } public ArrayList<Compensado> getListcomp() { return Listcomp; } public void setListcomp(ArrayList<Compensado> Listcomp) { this.Listcomp = Listcomp; } public Date getFecha1() { return fecha1; } public void setFecha1(Date fecha1) { this.fecha1 = fecha1; } public Date getFecha2() { return fecha2; } public void setFecha2(Date fecha2) { this.fecha2 = fecha2; } public String getF1() { return f1; } public void setF1(String f1) { this.f1 = f1; } public String getF2() { return f2; } public void setF2(String f2) { this.f2 = f2; } public String getFechaQuery1() { return fechaQuery1; } public void setFechaQuery1(String fechaQuery1) { this.fechaQuery1 = fechaQuery1; } public String getFechaQuery2() { return fechaQuery2; } public void setFechaQuery2(String fechaQuery2) { this.fechaQuery2 = fechaQuery2; } public Growl getGrowl() { return growl; } public void setGrowl(Growl growl) { this.growl = growl; } }