public function act_copyOrder() { $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : ""; $countryName = isset($_POST['countryName']) ? $_POST['countryName'] : ""; $state = isset($_POST['state']) ? $_POST['state'] : ""; $detail_sku = isset($_POST['detail_sku']) ? $_POST['detail_sku'] : ""; $city = isset($_POST['city']) ? $_POST['city'] : ""; $landline = isset($_POST['landline']) ? $_POST['landline'] : ""; $phone = isset($_POST['phone']) ? $_POST['phone'] : ""; $zipCode = isset($_POST['zipCode']) ? $_POST['zipCode'] : ""; $street = isset($_POST['street']) ? $_POST['street'] : ""; $address2 = isset($_POST['address2']) ? $_POST['address2'] : ""; $address3 = isset($_POST['address3']) ? $_POST['address3'] : ""; $transport = isset($_POST['transport']) ? $_POST['transport'] : ""; $note = isset($_POST['note']) ? $_POST['note'] : ""; $userId = $_SESSION['sysUserId']; $order = copyOrderModel::selectOrder($orderid); $user = copyOrderModel::selectUser($orderid); $details = copyOrderModel::selectDetail($orderid); $platformId = $order['platformId']; $plateform = copyOrderModel::selectplatform($platformId); $table = "om_unshipped_order_extension_" . $plateform; $extension = copyOrderModel::selectExtension($table, $orderid); $warehouse = copyOrderModel::selectWarehouse($orderid); $notes = copyOrderModel::selectNote($orderid); BaseModel::begin(); if (!$order) { self::$errCode = 501; self::$errMsg = "原订单已完成或不存在!"; return false; } if ($order['isCopy'] == 2) { self::$errCode = 502; self::$errMsg = "此订单是复制产生的订单,不能在被复制!"; return false; } $new_order = array(); foreach ($order as $key => $value) { if ($key == 'id') { continue; } $new_order[$key] = $value; if ($key == 'isCopy') { $new_order[$key] = 2; } } //$statuslist = copyOrderModel::selectStatus($status); //$new_order['orderStatus'] = $statusList['groupId']; //$new_order['orderType'] = $statusList['statusCode']; //先插入订单生成订单id //$sql = ""; foreach ($new_order as $key => $value) { if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $id = copyOrderModel::insertOrder($sql, $userId); if (!$id) { self::$errCode = 503; self::$errMsg = "复制订单插入失败!"; BaseModel::rollback(); return false; } $new_user = array(); //插入用户信息 foreach ($user as $key => $value) { $new_user[$key] = $value; if ($key == 'omOrderId') { $new_user[$key] = $id; } if ($key == 'countryName') { $new_user[$key] = $countryName; } if ($key == 'state') { $new_user[$key] = $state; } if ($key == 'city') { $new_user[$key] = $city; } if ($key == 'landline') { $new_user[$key] = $landline; } if ($key == 'phone') { $new_user[$key] = $phone; } if ($key == 'zipCode') { $new_user[$key] = $zipCode; } if ($key == 'street') { $new_user[$key] = $street; } if ($key == 'address2') { $new_user[$key] = $address2; } if ($key == 'address3') { $new_user[$key] = $address3; } } $sql = array(); foreach ($new_user as $key => $value) { if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $msg = copyOrderModel::insertUser($sql, $userId); if (!$msg) { self::$errCode = 503; self::$errMsg = "插入复制订单用户信息失败!"; BaseModel::rollback(); return false; } //插入订单明细信息 foreach ($details as $nums => $detail) { $new_detail = array(); $skuinfo = explode("*", $detail_sku[$nums]); foreach ($detail as $key => $value) { if ($key == 'id') { continue; } $new_detail[$key] = $value; if ($key == 'omOrderId') { $new_detail[$key] = $id; } if ($key == 'sku') { $new_detail[$key] = $skuinfo[0]; } if ($key == 'amount') { $new_detail[$key] = $skuinfo[1]; } } $sql = array(); foreach ($new_detail as $key => $value) { if ($key == 'createdTime') { $sql[] = "{$key}=" . time() . " "; continue; } if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $msg = copyOrderModel::insertDetail($sql, $userId); if (!$msg) { self::$errCode = 504; self::$errMsg = "插入复制订单明细信息失败!"; BaseModel::rollback(); return false; } } //插入复制订单扩展信息 $new_extension = array(); foreach ($extension as $key => $value) { if ($key == 'omOrderId') { $new_extension[$key] = $id; continue; } $new_extension[$key] = $value; } $sql = array(); foreach ($new_extension as $key => $value) { if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $msg = copyOrderModel::insertExtension($table, $sql, $userId); if (!$msg) { self::$errCode = 505; self::$errMsg = "插入复制订单扩展信息失败!"; BaseModel::rollback(); return false; } //插入复制订单仓库信息 if ($warehouse) { $new_warehouse = array(); foreach ($warehouse as $key => $value) { if ($key == 'omOrdeId') { $new_warehouse[$key] = $id; continue; } $new_warehouse[$key] = $value; } $sql = array(); foreach ($new_warehouse as $key => $value) { if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $msg = copyOrderModel::insertWarehouse($sql, $userId); if (!$msg) { self::$errCode = 506; self::$errMsg = "插入复制订单仓库信息失败!"; BaseModel::rollback(); return false; } } //插入复制订单备注信息 if ($notes) { $new_note = array(); foreach ($notes as $key => $value) { if ($key == 'omOrdeId') { $new_note[$key] = $id; continue; } if ($key == 'userId') { $new_note[$key] = $userId; continue; } if ($key == 'createdTime') { $new_note[$key] = time(); continue; } $new_note[$key] = $value; } $sql = array(); foreach ($new_note as $key => $value) { if (is_numeric($value)) { $sql[] = "{$key}={$value}"; } else { $sql[] = "{$key}='{$value}'"; } } $sql = implode(",", $sql); $msg = copyOrderModel::insertNote($sql); if (!$msg) { self::$errCode = 506; self::$errMsg = "插入复制订单备注信息失败!"; BaseModel::rollback(); return false; } } //完全插入成功再插入复制记录和订单操作记录 $msg = copyOrderModel::insertCopyRecord($orderid, $id, $userId); if (!$msg) { self::$errCode = 507; self::$errMsg = "插入复制订单记录失败!"; BaseModel::rollback(); return false; } //最后修改原订单为复制订单 $msg = copyOrderModel::updateOrder($orderid); if (!$msg) { self::$errCode = 508; self::$errMsg = "修改原订单失败!"; BaseModel::rollback(); return false; } BaseModel::commit(); return true; }