orderListTerm($param); //查询条件 try { switch ($param['user_type']) { case 3: $PurchaseOrderModel = new PurchaseOrderModel(); break; case 4: $PurchaseOrderModel = new SPurchaseOrderModel(); break; } $orderCount = $PurchaseOrderModel->getCount($where); $orderCount = $orderCount ? $orderCount : 0; $goodsCount = $PurchaseOrderModel->getSum($where, "goods_species"); $goodsCount = $goodsCount ? $goodsCount : 0; if ($param['user_type'] == 3 || ($param['showPrice'] != 2 || $param['identity'] == 1)) { $totalMoney = $PurchaseOrderModel->getSum($where, "money_total"); $totalMoney = $totalMoney ? round($totalMoney, 2) : 0; } else { $totalMoney = '***'; } $TotalList = [ 'orderCount' => $orderCount, 'goodsCount' => $goodsCount, 'totalMoney' => $totalMoney ]; return callBack(statusCode()['success'], '查询成功', [$TotalList]); } catch (\Exception $e) { return callBack(statusCode()['success'], '查询成功', [ [ 'orderCount' => 0, 'goodsCount' => 0, 'totalMoney' => 0, ] ]); } } /** * 采购单列表 * @param $param * [ * operator_type 1后台 2收银端 3助手端 * user_type 3商户 4门店 * order_number 订单号 * supplier_id 供货商id * warehouse_id 仓库id * add_time 后台时间搜索 * start_time 助手开始时间 * end_time 助手结束时间 * type 1常规采购单 2补采购单 * showPrice 1可以查看金额 2不可以查看金额 * identity 身份1商户 2门店 * page * limit * ] * @return mixed */ public function orderList($param) { $where = $this->orderListTerm($param); //查询条件 switch ($param['user_type']) { case 3: $PurchaseOrderModel = new PurchaseOrderModel(); $SupplierModel = new RetailSupplierModel(); $PurchaseWarehouseModel = new PurchaseWarehouseModel(); $PurchaseGoodsModel = new PurchaseGoodsModel(); $PurchasePayableModel = new PurchasePayableModel(); break; case 4: $PurchaseOrderModel = new SPurchaseOrderModel(); $SupplierModel = new SSupplierModel(); $PurchaseWarehouseModel = new SPurchaseWarehouseModel(); $PurchaseGoodsModel = new SPurchaseGoodsModel(); $PurchasePayableModel = new SPurchasePayableModel(); break; } $list = $PurchaseOrderModel->getSelect($where, $param['page'], $param['limit'], "*", "id desc"); if (!empty($list)) { if ($param['operator_type'] == 1) { $count = $PurchaseOrderModel->getCount($where); } $InventoryClass = new InventoryController(); foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['operator'] = $InventoryClass->OperatorName($val['operator_id']); $val['add_time'] = date('Y-m-d H:i:s', $val['add_time']); $val['repair_time'] = date('Y-m-d H:i:s', $val['repair_time']); $val['supplier'] = $SupplierModel->getFindField(array('id' => $val['supplier_id']), "supplier_name"); $val['warehouse'] = $PurchaseWarehouseModel->getFindField(array('id' => $val['warehouse_id']), "name"); $val['goods_species'] = $val['goods_species'] . "种"; if ($val['type'] == 1) { $val['type_name'] = "常规采购单"; } else { $val['type_name'] = "补采购单"; } $goodsNum = $PurchaseGoodsModel->getSum(array('purchase_order_id' => $val['id']), "surplus_num"); $goodsNum = $goodsNum ? $goodsNum : 0; if ($goodsNum > 0) { $val['warehouse_state'] = 0; } else { $val['warehouse_state'] = 1; } if ($param['user_type'] == 3 || ($param['showPrice'] != 2 || $param['identity'] == 1)) { $val['money_total'] = round($val['money_total'], 2); } else { $val['money_total'] = '***'; } //判断是否可编辑 $val["pay_status"] = $PurchasePayableModel->getFindField(array('purchase_order_id' => $val['id']), "pay_status"); } } return callBack(statusCode()['success'], '查询成功', [ 'list' => $list ? $list : [], 'count' => $count ? $count : 0 ]); } /** * 采购单列表的查询条件 * @param $param * [ * operator_type 1后台 2收银端 3助手端 * user_type 3商户 4门店 * merchant_id * store_id * order_number 订单号 * supplier_id 供货商id * warehouse_id 仓库id * add_time 后台时间搜索 * start_time 助手开始时间 * end_time 助手结束时间 * type 1常规采购单 2补采购单 * ] * @return mixed */ public function orderListTerm($param) { if (!empty($param['type'])) { $where['type'] = $param['type']; } if (!empty($param['order_number'])) { $where['order_number'] = array('like', '%' . $param['order_number'] . '%'); } if (!empty($param['supplier_id'])) { $where['supplier_id'] = $param['supplier_id']; } if (!empty($param['warehouse_id'])) { $where['warehouse_id'] = $param['warehouse_id']; } switch ($param['operator_type']) { case 1: if (!empty($param['add_time'])) { $start_time = strtotime($param['add_time'][0]); $end_time = strtotime($param['add_time'][1]); $where['add_time'] = array('between', array($start_time, $end_time)); } break; case 3: $start_time = $param['start_time']; $end_time = $param['end_time']; if (!empty($start_time) && !empty($end_time)) { $start_time = strtotime($start_time . "00:00:00"); $end_time = strtotime($end_time . "23:59:59"); $where['add_time'] = array('between', array($start_time, $end_time)); } else if (!empty($start_time)) { $start_time = strtotime($start_time . "00:00:00"); $where['add_time'] = array('gt', $start_time); } else if (!empty($end_time)) { $end_time = strtotime($end_time . "23:59:59"); $where['add_time'] = array('lt', $end_time); } break; } if ($param['user_type'] == 4) { $where['store_id'] = $param['store_id']; } $where['merchant_id'] = $param['merchant_id']; $where['status'] = 1; return $where; } /** * 修改采购单金额 * @param $parameter * [ * user_type 1商户 2门店 * merchant_id * store_id * id 采购单id * money_total 金额 * ] * @return array * [ * status * message * ] */ public function modifyPurchaseOrderMoney($parameter) { $verify = $this->modifyPurchaseOrderMoneyVerify($parameter); //参数验证 if ($verify['status'] != 1) { return $verify; } switch ($parameter['user_type']) { case 1: //商户 $PurchaseOrderModel = new PurchaseOrderModel(); break; case 2: //门店 $PurchaseOrderModel = new SPurchaseOrderModel(); break; } try { if ($parameter['money_total'] > 0) { $PurchaseOrderModel->updateSetInc([ 'id' => $parameter['id'] ], "money_total", $parameter['money_total']); } else { $parameter['money_total'] = abs($parameter['money_total']); $PurchaseOrderModel->updateSetDec([ 'id' => $parameter['id'] ], "money_total", $parameter['money_total']); } return ['status' => 1, 'message' => '修改成功']; } catch (\Exception $e) { return ['status' => 0, 'message' => '修改失败']; } } /** * 修改采购单金额参数验证 * @param $parameter * [ * user_type 1商户 2门店 * merchant_id * store_id * id 采购单id * money_total 金额 * ] * @return array * [ * status * message * ] */ public function modifyPurchaseOrderMoneyVerify($parameter) { if (!in_array($parameter['user_type'], [1, 2])) { return ['status' => 0, 'message' => '未知请求源']; } if (empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) { return ['status' => 0, 'message' => '登录超时,缺失必要参数']; } if (empty($parameter['id']) || empty($parameter['money_total'])) { return ['status' => 0, 'message' => '缺少必要参数']; } return ['status' => 1, 'message' => '缺少必要参数']; } }