/**
* <p>Title: T2Ti ERP</p>
* <p>Description: PAF-ECF + TEF - Regras de negócio/persistência do Movimento.</p>
*
* <p>The MIT License</p>
*
* <p>Copyright: Copyright (C) 2010 T2Ti.COM</p>
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* The author may be contacted at:
* t2ti.com@gmail.com</p>
*
* @author Albert Eije (T2Ti.COM)
* @version 1.0
*/
package com.t2tierp.pafecf.controller;
import com.t2tierp.pafecf.bd.AcessoBanco;
import com.t2tierp.pafecf.vo.MovimentoVO;
import com.t2tierp.pafecf.vo.SangriaVO;
import com.t2tierp.pafecf.vo.SuprimentoVO;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class MovimentoController {
String consultaSQL;
Statement stm;
PreparedStatement pstm;
ResultSet rs;
AcessoBanco bd = new AcessoBanco();
public MovimentoVO verificaMovimento() {
MovimentoVO movimento = new MovimentoVO();
consultaSQL =
"select "
+ "M.ID as MID, T.ID as TID, T.DESCRICAO, C.ID as CID, C.NOME, "
+ "O.ID as OID, O.LOGIN, I.ID as IID, I.IDENTIFICACAO, "
+ "M.DATA_HORA_ABERTURA, M.ID_GERENTE_SUPERVISOR, M.STATUS_MOVIMENTO "
+ "from "
+ "ECF_MOVIMENTO M, ECF_TURNO T, ECF_CAIXA C, ECF_OPERADOR O, ECF_IMPRESSORA I "
+ "where "
+ "M.ID_ECF_TURNO = T.ID AND "
+ "M.ID_ECF_IMPRESSORA = I.ID AND "
+ "M.ID_ECF_OPERADOR = O.ID AND "
+ "M.ID_ECF_CAIXA = C.ID AND"
+ "(STATUS_MOVIMENTO='A' or STATUS_MOVIMENTO='T')";
try {
stm = bd.conectar().createStatement();
rs = stm.executeQuery(consultaSQL);
rs.beforeFirst();
if (rs.next()) {
movimento.setId(rs.getInt("MID"));
movimento.setIdTurno(rs.getInt("TID"));
movimento.setIdImpressora(rs.getInt("IID"));
movimento.setIdOperador(rs.getInt("OID"));
movimento.setIdCaixa(rs.getInt("CID"));
movimento.setIdGerenteSupervisor(rs.getInt("ID_GERENTE_SUPERVISOR"));
movimento.setDataHoraAbertura(rs.getTimestamp("DATA_HORA_ABERTURA"));
movimento.setStatusMovimento(rs.getString("STATUS_MOVIMENTO"));
movimento.setLoginOperador(rs.getString("LOGIN"));
movimento.setNomeCaixa(rs.getString("NOME"));
movimento.setDescricaoTurno(rs.getString("DESCRICAO"));
movimento.setIdentificacaoImpressora(rs.getString("IDENTIFICACAO"));
return movimento;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
bd.desconectar();
}
}
public void encerraMovimento(MovimentoVO movimento) {
consultaSQL =
"update ECF_MOVIMENTO set DATA_HORA_FECHAMENTO=?, STATUS_MOVIMENTO=? "
+ " where ID = ?";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setTimestamp(1, movimento.getDataHoraFechamento());
pstm.setString(2, movimento.getStatusMovimento());
pstm.setInt(3, movimento.getId());
pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
bd.desconectar();
}
}
public boolean insere(MovimentoVO movimento) {
return true;
}
public MovimentoVO iniciaMovimento(MovimentoVO movimento) {
consultaSQL =
"insert into ECF_MOVIMENTO ("
+ "ID_ECF_TURNO,"
+ "ID_ECF_IMPRESSORA,"
+ "ID_ECF_OPERADOR,"
+ "ID_ECF_CAIXA,"
+ "ID_GERENTE_SUPERVISOR,"
+ "DATA_HORA_ABERTURA,"
+ "TOTAL_SUPRIMENTO,"
+ "STATUS_MOVIMENTO,"
+ "SINCRONIZADO) "
+ "values (?,?,?,?,?,?,?,?,?)";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setInt(1, movimento.getIdTurno());
pstm.setInt(2, movimento.getIdImpressora());
pstm.setInt(3, movimento.getIdOperador());
pstm.setInt(4, movimento.getIdCaixa());
pstm.setInt(5, movimento.getIdGerenteSupervisor());
pstm.setTimestamp(6, movimento.getDataHoraAbertura());
pstm.setDouble(7, movimento.getTotalSuprimento());
pstm.setString(8, movimento.getStatusMovimento());
pstm.setString(9, movimento.getSincronizado());
pstm.executeUpdate();
stm = bd.conectar().createStatement();
rs = stm.executeQuery("select max(ID) as ID from ECF_MOVIMENTO");
rs.first();
movimento.setId(rs.getInt(1));
return movimento;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
bd.desconectar();
}
}
public void saidaTemporaria(MovimentoVO movimento) {
consultaSQL =
"update ECF_MOVIMENTO set STATUS_MOVIMENTO='T' "
+ " where ID = ?";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setInt(1, movimento.getId());
pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
bd.desconectar();
}
}
public void retornoOperador(MovimentoVO movimento) {
consultaSQL =
"update ECF_MOVIMENTO set STATUS_MOVIMENTO='A' "
+ " where ID = ?";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setInt(1, movimento.getId());
pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
bd.desconectar();
}
}
public boolean suprimento(SuprimentoVO suprimento) {
String consultaSQL =
"insert into ECF_SUPRIMENTO (ID_ECF_MOVIMENTO,DATA_SUPRIMENTO,VALOR)" +
" values (?,?,?)";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setInt(1, suprimento.getIdMovimento());
pstm.setDate(2, suprimento.getDataSuprimento());
pstm.setDouble(3, suprimento.getValor());
pstm.executeUpdate();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
bd.desconectar();
}
}
public boolean sangria(SangriaVO sangria) {
String consultaSQL =
"insert into ECF_SANGRIA (ID_ECF_MOVIMENTO,DATA_SANGRIA,VALOR)" +
" values (?,?,?)";
try {
pstm = bd.conectar().prepareStatement(consultaSQL);
pstm.setInt(1, sangria.getIdMovimento());
pstm.setDate(2, sangria.getDataSangria());
pstm.setDouble(3, sangria.getValor());
pstm.executeUpdate();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
bd.desconectar();
}
}
}