// Openbravo POS is a point of sales application designed for touch screens.
// Copyright (C) 2007-2009 Openbravo, S.L.
// http://www.openbravo.com/product/pos
//
// This file is part of Openbravo POS.
//
// Openbravo POS is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Openbravo POS is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Openbravo POS. If not, see <http://www.gnu.org/licenses/>.
package com.openbravo.pos.pda.dao;
import com.openbravo.pos.ticket.ProductInfo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
/**
*
* @author jaroslawwozniak
*/
public class ProductDAO extends BaseJdbcDAO {
public List<ProductInfo> findAllAuxiliars(String id) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<ProductInfo> vos = null;
String sqlStr = "SELECT * FROM PRODUCTS P, PRODUCTS_COM COM WHERE COM.PRODUCT=? AND P.ID = COM.PRODUCT2 ORDER BY P.NAME";
try {
//get connection
con = getConnection();
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, id);
//execute
rs = ps.executeQuery();
//transform to VO
vos = transformSet(rs);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
// close the resources
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
return vos;
}
public ProductInfo findProductById(String productId) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
ProductInfo vos = null;
String sqlStr = "SELECT * FROM PRODUCTS WHERE ID=?";
try {
//get connection
con = getConnection();
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, productId);
//execute
rs = ps.executeQuery();
//transform to VO
vos = (ProductInfo) transformSet(rs).get(0);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
// close the resources
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
return vos;
}
public List<ProductInfo> findProductsByCategory(String categoryId) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<ProductInfo> vos = null;
String sqlStr = isPostgre() ? "SELECT * FROM PRODUCTS P, PRODUCTS_CAT PCAT WHERE P.CATEGORY= ? AND P.ID = PCAT.PRODUCT" +
" AND P.ISCOM = FALSE ORDER BY PCAT.CATORDER, P.NAME" : "SELECT * FROM PRODUCTS P, PRODUCTS_CAT PCAT WHERE P.CATEGORY= ? AND P.ID = PCAT.PRODUCT" +
" AND P.ISCOM = 0 ORDER BY PCAT.CATORDER, P.NAME";
try {
//get connection
con = getConnection();
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, categoryId);
//execute
rs = ps.executeQuery();
//transform to VO
vos = transformSet(rs);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
// close the resources
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
return vos;
}
@Override
protected ProductInfo map2VO(ResultSet rs) throws SQLException {
ProductInfo product = new ProductInfo();
product.setId(rs.getString("id"));
product.setRef(rs.getString("reference"));
product.setCode(rs.getString("code"));
product.setName(rs.getString("name"));
product.setPriceBuy(rs.getDouble("pricebuy"));
product.setPriceSell(rs.getDouble("pricesell"));
product.setCategoryId(rs.getString("category"));
product.setTaxcat(rs.getString("taxcat"));
product.setCom(rs.getBoolean("iscom"));
product.setScale(rs.getBoolean("isscale"));
return product;
}
}