|
|
@@ -1220,14 +1220,18 @@ class OrderForm extends Model
|
|
|
// 会员汇率
|
|
|
$country = Countries::getById($user['COUNTRY_ID']);
|
|
|
$currencyRate = CurrencyConversions::getToUSDRate($country['LOCAL_CURRENCY_ID']);
|
|
|
- //判断是否是报单中心
|
|
|
+ // 判断是否是报单中心
|
|
|
$loginUser = User::getEnCodeInfo(\Yii::$app->user->id);
|
|
|
- if($loginUser['IS_DEC'] == 1){
|
|
|
+ if ($loginUser['IS_DEC'] == 1){
|
|
|
if($decUserID != \Yii::$app->user->id){
|
|
|
throw new Exception(Yii::t('app', 'decUserNameIsWrong'));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if ($this->payType == 'prp') {
|
|
|
+ throw new Exception(Yii::t('app', 'payTypeError'));
|
|
|
+ }
|
|
|
+
|
|
|
foreach ($this->goodsNum as $k => $v) {
|
|
|
if ($v) {
|
|
|
$goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
|
|
|
@@ -1363,13 +1367,7 @@ class OrderForm extends Model
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ($this->payType == 'prp') {
|
|
|
- //看余额是否充足
|
|
|
- $decCash = UserPerformance::getAmounts($loginUserId);
|
|
|
- } else {
|
|
|
- //看现金余额是否充足
|
|
|
- $decCash = Cash::getAvailableBalance($loginUserId);
|
|
|
- }
|
|
|
+ $decCash = Cash::getAvailableBalance($loginUserId);
|
|
|
|
|
|
// 转换后的余额
|
|
|
$localCash = Tool::convertAmount($decCash, $decUserCurrencyRate, $currencyRate);
|
|
|
@@ -1429,6 +1427,8 @@ class OrderForm extends Model
|
|
|
|
|
|
private function orderAutoMaintenance($order)
|
|
|
{
|
|
|
+ $nowPeriodNum = Period::instance()->getNowPeriodNum();
|
|
|
+
|
|
|
try {
|
|
|
$sysConfig = Cache::getSystemConfig();
|
|
|
$divideLine = (int)$sysConfig['monthPcsPvFxCondition']['VALUE'];
|
|
|
@@ -1444,7 +1444,22 @@ class OrderForm extends Model
|
|
|
->orderBy(['PERIOD_NUM' => SORT_DESC])
|
|
|
->one();
|
|
|
|
|
|
- $startPeriodNum = $lastAmpPeriod ? $lastAmpPeriod->PERIOD_NUM + 1 : $order->PERIOD_NUM;
|
|
|
+ $startPeriodNum = $lastAmpPeriod ? $lastAmpPeriod->PERIOD_NUM + 1 : $nowPeriodNum;
|
|
|
+
|
|
|
+ if (!$lastAmpPeriod) {
|
|
|
+ $memberOrderBv = Order::find()
|
|
|
+ ->select('SUM(PV) AS total_pv')
|
|
|
+ ->where([
|
|
|
+ 'USER_ID' => $order->USER_ID,
|
|
|
+ 'IS_DELETE' => 0,
|
|
|
+ 'PERIOD_NUM' => $nowPeriodNum
|
|
|
+ ])
|
|
|
+ ->scalar();
|
|
|
+
|
|
|
+ if ($memberOrderBv >= $divideLine) {
|
|
|
+ $startPeriodNum = $nowPeriodNum + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
$periodCount = floor($orderTotalBv / $divideLine);
|
|
|
$remainderBv = $orderTotalBv % $divideLine;
|