Exemplo n.º 1
0
 /**
  * 添加单据及详情
  * @param array $orderArr
  */
 public function ddIoStore($orderArr)
 {
     self::initDB();
     $invoiceTypeId = $orderArr['invoiceTypeId'];
     //出入库类型表中的id
     $ioType = $orderArr['ioType'];
     //出/入库,只能为1或2,1为出库,2为入库
     $userId = $orderArr['userId'];
     //申请人id
     $ordersn = $orderArr['ordersn'];
     //单据号(单据编码)
     $paymentMethodsId = $orderArr['paymentMethodsId'];
     //付款方式表中的id
     $note = isset($orderArr['note']) ? $orderArr['note'] : '';
     //备注
     $companyId = $orderArr['companyId'];
     //公司id
     $storeId = $orderArr['storeId'];
     //仓库表中的id
     $detail = $orderArr['detail'];
     //订单详情
     if (is_numeric($invoiceTypeId)) {
         //出入库类型表中的id不能为空
         self::$errCode = 402;
         self::$errMsg = 'invoiceTypeId有误';
         return false;
     }
     if ($ioType != 1 && $ioType != 2) {
         //出或者入库
         self::$errCode = 403;
         self::$errMsg = 'ioType有误';
         return false;
     }
     if (empty($userId)) {
         self::$errCode = 404;
         self::$errMsg = 'userId有误';
         return false;
     }
     if (empty($ordersn)) {
         self::$errCode = 405;
         self::$errMsg = 'ordersn有误';
         return false;
     }
     if (empty($paymentMethodsId)) {
         self::$errCode = 406;
         self::$errMsg = 'paymentMethodsId有误';
         return false;
     }
     if (!is_array($detail)) {
         self::$errCode = 407;
         self::$errMsg = 'detail有误';
         return false;
     }
     if (empty($companyId)) {
         //默认公司为1赛维
         $companyId = 1;
     }
     if (empty($storeId)) {
         //默认仓库为1,深圳仓库
         $storeId = 1;
     }
     $sql = "SELECT * FROM wh_audit_relation_list WHERE invoiceTypeId={$invoiceTypeId} AND storeId={$storeId} ORDER BY auditLevel ASC, auditorId ASC";
     $query = self::$dbConn->query($sql);
     $lists = self::$dbConn->fetch_array_all($query);
     if (empty($lists)) {
         self::$errCode = 408;
         self::$errMsg = "找不到对应的出入库类型";
         return false;
     }
     $now_time = time();
     self::$dbConn->begin();
     $insert_iostore_sql = "INSERT INTO wh_iostore (invoiceTypeId,ioType,userId,createdTime,ordersn,paymentMethodsId,companyId,nextoperatorId,storeId,note) \n\t\t\t\t\t\t\tVALUES({$invoiceTypeId},{$ioType},{$userId},{$now_time},'{$ordersn}',{$paymentMethodsId},{$companyId},{$lists[0]['auditorId']},{$storeId},'{$note}')";
     $insert_iostore = self::$dbConn->query($insert_iostore_sql);
     if (!$insert_iostore) {
         self::$errCode = "409";
         self::$errMsg = "插入单据表失败";
         return false;
     } else {
         $iostoreId = self::$dbConn->insert_id($insert_iostore);
     }
     //添加详情
     foreach ($detail as $det) {
         $sku = $det['sku'];
         //添加的sku
         $amount = $det['amount'];
         //对应数量
         $cost = $det['cost'];
         //成本
         $purchaseId = $det['purchaseId'];
         //采购员id
         $insert_detail_sql = "INSERT INTO wh_iostoredetail (iostoreId,sku,amount,cost,purchaseId,storeId) \n\t\t\t\t\t\t\t\tVALUES({$iostoreId},'{$sku}',{$amount},'{$cost}',{$purchaseId},{$storeId})";
         $insert_detail = self::$dbConn->query($insert_detail_sql);
         if (!$insert_detail) {
             self::$errCode = "410";
             self::$errMsg = "插入单据详情表失败";
             self::$dbConn->rollback();
             return false;
         }
     }
     self::$dbConn->commit();
     return true;
 }