package cn.net.caoyao.cpzshandset.service.bll;

import java.util.List;
import android.content.Context;
import cn.net.caoyao.cpzshandset.bean.WarehouseBean;
import cn.net.caoyao.cpzshandset.common.config.Config;
import cn.net.caoyao.cpzshandset.common.config.ConfigCreateService;
import cn.net.caoyao.cpzshandset.common.util.CacheGet;
import cn.net.caoyao.cpzshandset.db.presenter.WarehouseDal;

public class WarehouseBll {

	private WarehouseDal dal;

	public WarehouseBll(Context context) {
		ConfigCreateService service = new ConfigCreateService();
		dal = service.createWarehouseDal(new CacheGet(), context);
	}

	/**
	 * 根据操作类型，查询对应的出库，入库，返库信息
	 * 
	 * @param option_type：操作类型
	 *            入库：（HandsetOperationConstant.OPERATION_IN_WAREHOUSE_CONSTANT ）
	 *            出库：（HandsetOperationConstant.OPERATION_OUT_WAREHOUSE_CONSTANT
	 *            ）
	 *            返库：（HandsetOperationConstant.OPERATION_BACK_WAREHOUSE_CONSTANT
	 *            ）
	 * @return 按照id降序排列
	 */
	
	public List<WarehouseBean> queryWarehouseByOptionType(int option_type) {
		if (dal == null) {
			return null;
		}
		return dal.queryWarehouseByOptionType(option_type);
	}

	/**
	 * 根据操作类型，查询对应的出库，入库，返库信息
	 * 
	 * @param option_type：操作类型
	 *            入库：（HandsetOperationConstant.OPERATION_IN_WAREHOUSE_CONSTANT ）
	 *            出库：（HandsetOperationConstant.OPERATION_OUT_WAREHOUSE_CONSTANT
	 *            ）
	 *            返库：（HandsetOperationConstant.OPERATION_BACK_WAREHOUSE_CONSTANT
	 *            ）
	 * @return 按照id升序排列
	 */
	
	public List<WarehouseBean> queryWarehouseByOptionTypeASC(int option_type) {
		if (dal == null) {
			return null;
		}
		return dal.queryWarehouseByOptionTypeASC(option_type);
	}

	/**
	 * 根据操作类型和id，查询对应的出库，入库，返库信息
	 * 
	 * @param option_type：操作类型
	 *            入库：（HandsetOperationConstant.OPERATION_IN_WAREHOUSE_CONSTANT ）
	 *            出库：（HandsetOperationConstant.OPERATION_OUT_WAREHOUSE_CONSTANT
	 *            ）
	 *            返库：（HandsetOperationConstant.OPERATION_BACK_WAREHOUSE_CONSTANT
	 *            ）
	 * @return
	 */
	
	public WarehouseBean queryWarehouseById(int option_type, int id) {
		if (dal == null) {
			return null;
		}
		return dal.queryWarehouseById(option_type, id);
	}

	/**
	 * 删除出入库信息
	 * 
	 * @param warehouseBean
	 */
	
	public void deleteWarehouse(WarehouseBean warehouseBean) {
		if (dal == null) {
			return;
		}
		dal.deleteWarehouse(warehouseBean);
	}

	/**
	 * 修改出库的状态信息
	 * 
	 * @param warehouseBean
	 */
	
	public void updateWarehouseErrorStatus(int status, int error_code, int id) {
		if (dal == null) {
			return;
		}
		dal.updateWarehouseErrorStatus(status, error_code, id);
	}
	/**
	 * 修改出库的状态信息为未提交状态
	 * 
	 * @param warehouseBean
	 */
	public void updateWarehouseNotSubmitStatusById(int id){
		dal.updateWarehouseErrorStatus(Config.SUBMIT_STATUS_NOT_SUBMIT, 0, id);
	}

	/**
	 * 修改出库信息
	 * 
	 * @param warehouseBean
	 */
	
	public void updateWarehouseInfo(WarehouseBean wB) {
		if (dal == null) {
			return;
		}
		dal.updateWarehouseInfo(wB);
	}

	

	/**
	 * 插入出入库信息
	 * @param warehouseBean
	 * @return
	 */
	
	public int insertWarehouseInfo(WarehouseBean wB) {
		if (dal == null) {
			return -1;
		}
		return dal.insertWarehouseInfo(wB);
	}


}
