调整采购单生成
This commit is contained in:
parent
65ce4808c9
commit
2c6e3ccb81
@ -6,8 +6,10 @@ namespace app\admin\controller\beforehand_order_cart_info;
|
|||||||
use app\admin\controller\BaseAdminController;
|
use app\admin\controller\BaseAdminController;
|
||||||
use app\admin\lists\beforehand_order_cart_info\BeforehandOrderCartInfoLists;
|
use app\admin\lists\beforehand_order_cart_info\BeforehandOrderCartInfoLists;
|
||||||
use app\admin\logic\beforehand_order_cart_info\BeforehandOrderCartInfoLogic;
|
use app\admin\logic\beforehand_order_cart_info\BeforehandOrderCartInfoLogic;
|
||||||
|
use app\common\model\beforehand_order\BeforehandOrder;
|
||||||
use app\common\model\beforehand_order_cart_info\BeforehandOrderCartInfo;
|
use app\common\model\beforehand_order_cart_info\BeforehandOrderCartInfo;
|
||||||
use app\common\model\purchase_product_offer\PurchaseProductOffer;
|
use app\common\model\purchase_product_offer\PurchaseProductOffer;
|
||||||
|
use app\common\model\store_product\StoreProduct;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预订单购物详情表控制器
|
* 预订单购物详情表控制器
|
||||||
@ -65,11 +67,34 @@ class BeforehandOrderCartInfoController extends BaseAdminController
|
|||||||
|
|
||||||
$res=BeforehandOrderCartInfo::where('id',$id)->find();
|
$res=BeforehandOrderCartInfo::where('id',$id)->find();
|
||||||
$find=PurchaseProductOffer::where(['product_id'=>$res['product_id'],'order_id'=>$res['bhoid']])->find();
|
$find=PurchaseProductOffer::where(['product_id'=>$res['product_id'],'order_id'=>$res['bhoid']])->find();
|
||||||
|
if (empty($find)) {
|
||||||
|
$rawSql = "JSON_CONTAINS(source_order_info, '{\"source_order_id\": {$res['bhoid']}}')";
|
||||||
|
$find = PurchaseProductOffer::where(['product_id' => $res['product_id']])->whereRaw($rawSql)->find();
|
||||||
|
}
|
||||||
if($find){
|
if($find){
|
||||||
if($find['buyer_confirm']==1){
|
if($find['buyer_confirm']==1){
|
||||||
return $this->fail('该商品已采购完成,无法更改状态');
|
return $this->fail('该商品已采购完成,无法更改状态');
|
||||||
}else{
|
}else{
|
||||||
PurchaseProductOffer::where('id',$find['id'])->update(['delete_time'=>time()]);
|
if (!empty($find['source_order_info'])) {
|
||||||
|
$json = $find['source_order_info'];
|
||||||
|
foreach ($json as $key => $value) {
|
||||||
|
if ($value['source_order_id'] == $res['bhoid']) {
|
||||||
|
$find->need_num = $find->need_num - $value['need_num'];
|
||||||
|
unset($json[$key]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$find->source_order_info = array_values($json);
|
||||||
|
$productPrice = StoreProduct::where('id',$res['product_id'])->value('price');
|
||||||
|
$procurementOrder = BeforehandOrder::where('id', $find['order_id'])->find();
|
||||||
|
$procurementOrder->total_price = bcsub($procurementOrder->total_price, bcmul($productPrice, $res['cart_num'], 2), 2);
|
||||||
|
$procurementOrder->pay_price = $procurementOrder->total_price;
|
||||||
|
$procurementOrder->save();
|
||||||
|
}
|
||||||
|
if ($find->need_num <= 0) {
|
||||||
|
$find->delete_time = time();
|
||||||
|
}
|
||||||
|
$find->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$res->save(['is_buyer'=>-1]);
|
$res->save(['is_buyer'=>-1]);
|
||||||
|
@ -49,14 +49,6 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc
|
|||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
$procurementOrderId = PurchaseProductOffer::where('source_order_id', $this->params['order_id'])->value('source_order_id');
|
|
||||||
if ($procurementOrderId) {
|
|
||||||
foreach ($this->searchWhere as $k => &$v) {
|
|
||||||
if ($v[0] == 'order_id') {
|
|
||||||
$v[2] = $procurementOrderId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$store_name=$this->request->get('store_name');
|
$store_name=$this->request->get('store_name');
|
||||||
if($store_name){
|
if($store_name){
|
||||||
$ids=StoreProduct::where('store_name','like','%'.$store_name.'%')->column('id');
|
$ids=StoreProduct::where('store_name','like','%'.$store_name.'%')->column('id');
|
||||||
@ -133,14 +125,6 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc
|
|||||||
if($this->is_ids==1){
|
if($this->is_ids==1){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$procurementOrderId = PurchaseProductOffer::where('source_order_id', $this->params['order_id'])->value('source_order_id');
|
|
||||||
if ($procurementOrderId) {
|
|
||||||
foreach ($this->searchWhere as $k => &$v) {
|
|
||||||
if ($v[0] == 'order_id') {
|
|
||||||
$v[2] = $procurementOrderId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return PurchaseProductOffer::where($this->searchWhere)->count();
|
return PurchaseProductOffer::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -678,7 +678,7 @@ class BeforehandOrderLogic extends BaseLogic
|
|||||||
{
|
{
|
||||||
$order_info = new OrderInfo();
|
$order_info = new OrderInfo();
|
||||||
$order = BeforehandOrder::where('id', $params['id'])->find();
|
$order = BeforehandOrder::where('id', $params['id'])->find();
|
||||||
if ($order['order_type'] == 7 && $params['print'] == 1) {
|
if ($order['order_type'] == 7 && isset($params['print']) && $params['print'] == 1) {
|
||||||
$order->is_buying = 1;
|
$order->is_buying = 1;
|
||||||
$order->save();
|
$order->save();
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ class PurchaseProductOfferLogic extends BaseLogic
|
|||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
$procurementOrder = BeforehandOrder::where('order_type', 7)->where('is_buying', 0)->find();
|
$procurementOrder = BeforehandOrder::where('order_type', 7)->where('is_buying', 0)->where('create_time', '>=', strtotime('-3 days'))->find();
|
||||||
if (empty($procurementOrder)) {
|
if (empty($procurementOrder)) {
|
||||||
$beforeOrder = BeforehandOrder::where('id', $params['order_id'])->findOrEmpty()->toArray();
|
$beforeOrder = BeforehandOrder::where('id', $params['order_id'])->findOrEmpty()->toArray();
|
||||||
unset($beforeOrder['id'], $beforeOrder['create_time'], $beforeOrder['update_time']);
|
unset($beforeOrder['id'], $beforeOrder['create_time'], $beforeOrder['update_time']);
|
||||||
@ -49,6 +49,8 @@ class PurchaseProductOfferLogic extends BaseLogic
|
|||||||
$procurementOrder->setAttrs($beforeOrder);
|
$procurementOrder->setAttrs($beforeOrder);
|
||||||
$procurementOrder->order_id = getNewOrderId('CG');
|
$procurementOrder->order_id = getNewOrderId('CG');
|
||||||
$procurementOrder->order_type = 7;
|
$procurementOrder->order_type = 7;
|
||||||
|
$procurementOrder->total_price = 0;
|
||||||
|
$procurementOrder->pay_price = 0;
|
||||||
$procurementOrder->save();
|
$procurementOrder->save();
|
||||||
}
|
}
|
||||||
$mark = $params['mark'] ?? '';
|
$mark = $params['mark'] ?? '';
|
||||||
@ -57,6 +59,9 @@ class PurchaseProductOfferLogic extends BaseLogic
|
|||||||
}
|
}
|
||||||
$find=StoreProduct::where('id',$params['product_id'])->find();
|
$find=StoreProduct::where('id',$params['product_id'])->find();
|
||||||
$purchaseProductOffer = PurchaseProductOffer::where(['order_id' => $procurementOrder['id'], 'product_id' => $params['product_id']])->find();
|
$purchaseProductOffer = PurchaseProductOffer::where(['order_id' => $procurementOrder['id'], 'product_id' => $params['product_id']])->find();
|
||||||
|
$procurementOrder->total_price = bcadd($procurementOrder->total_price, bcmul($find['price'], $params['need_num'], 2), 2);
|
||||||
|
$procurementOrder->pay_price = $procurementOrder->total_price;
|
||||||
|
$procurementOrder->save();
|
||||||
if ($purchaseProductOffer) {
|
if ($purchaseProductOffer) {
|
||||||
$purchaseProductOffer->need_num = $purchaseProductOffer['need_num'] + $params['need_num'];
|
$purchaseProductOffer->need_num = $purchaseProductOffer['need_num'] + $params['need_num'];
|
||||||
if (!empty($purchaseProductOffer['source_order_info'])) {
|
if (!empty($purchaseProductOffer['source_order_info'])) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user