|
@@ -11,6 +11,8 @@ use App\Model\Depart;
|
|
|
use App\Model\Employee;
|
|
|
use App\Model\InvoiceOrder;
|
|
|
use App\Model\OrderOperation;
|
|
|
+use App\Model\PaymentReceipt;
|
|
|
+use App\Model\PaymentReceiptInfo;
|
|
|
use App\Model\Product;
|
|
|
use App\Model\SalesOrder;
|
|
|
use App\Model\SalesOrderInfo;
|
|
@@ -75,13 +77,6 @@ class SalesOrderService extends Service
|
|
|
$model->save();
|
|
|
$time = time();
|
|
|
|
|
|
- $old = SalesOrderInfo::where('del_time',0)
|
|
|
- ->where('sales_order_id',$data['id'])
|
|
|
- ->whereIn('type',[SalesOrderInfo::type_four])
|
|
|
- ->select('file')
|
|
|
- ->get()->toArray();
|
|
|
- $old = array_column($old,'file');
|
|
|
-
|
|
|
SalesOrderInfo::where('del_time',0)
|
|
|
->where('sales_order_id',$data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
@@ -128,22 +123,6 @@ class SalesOrderService extends Service
|
|
|
SalesOrderInfo::insert($insert);
|
|
|
}
|
|
|
|
|
|
- $new = [];
|
|
|
- if(! empty($data['file'])){
|
|
|
- $insert = [];
|
|
|
- foreach ($data['file'] as $value){
|
|
|
- $insert[] = [
|
|
|
- 'sales_order_id' => $model->id,
|
|
|
- 'file' => $value['url'],
|
|
|
- 'name' => $value['name'],
|
|
|
- 'type' => SalesOrderInfo::type_four,
|
|
|
- 'crt_time' => $time,
|
|
|
- ];
|
|
|
- $new[] = $value['url'];
|
|
|
- }
|
|
|
- SalesOrderInfo::insert($insert);
|
|
|
- }
|
|
|
-
|
|
|
if(! empty($data['product'])){
|
|
|
$insert = [];
|
|
|
foreach ($data['product'] as $value){
|
|
@@ -168,6 +147,47 @@ class SalesOrderService extends Service
|
|
|
SalesOrderProductInfo::insert($insert);
|
|
|
}
|
|
|
|
|
|
+// $new = [];
|
|
|
+// if(! empty($data['file'])){
|
|
|
+// $insert = [];
|
|
|
+// foreach ($data['file'] as $value){
|
|
|
+// $insert[] = [
|
|
|
+// 'sales_order_id' => $model->id,
|
|
|
+// 'file' => $value['url'],
|
|
|
+// 'name' => $value['name'],
|
|
|
+// 'type' => SalesOrderInfo::type_four,
|
|
|
+// 'crt_time' => $time,
|
|
|
+// ];
|
|
|
+// $new[] = $value['url'];
|
|
|
+// }
|
|
|
+// SalesOrderInfo::insert($insert);
|
|
|
+// }
|
|
|
+ $new = $old = [];
|
|
|
+ $order = PaymentReceipt::where('del_time',0)
|
|
|
+ ->where('crt_time',$model->crt_time)
|
|
|
+ ->where('data_order_no',$data['order_number'])
|
|
|
+ ->first();
|
|
|
+ if(! empty($order)){
|
|
|
+ $old = PaymentReceiptInfo::where('del_time',0)
|
|
|
+ ->where('payment_receipt_id',$order->id)
|
|
|
+ ->whereIn('type',[PaymentReceiptInfo::type_one])
|
|
|
+ ->select('file')
|
|
|
+ ->get()->toArray();
|
|
|
+ $old = array_column($old,'file');
|
|
|
+ }
|
|
|
+
|
|
|
+ //收付款信息
|
|
|
+ if(! empty($data['payment_receipt'])){
|
|
|
+ if(empty($order)){
|
|
|
+ $this->savePaymentReceiptOrder($data,$user,$time);
|
|
|
+ }else{
|
|
|
+ PaymentReceiptInfo::where('del_time',0)
|
|
|
+ ->where('payment_receipt_id',$order->id)
|
|
|
+ ->update(['del_time' => $time]);
|
|
|
+ $this->savePaymentReceiptOrder($data,$user,$time,$order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
DB::commit();
|
|
|
}catch (\Exception $exception){
|
|
|
DB::rollBack();
|
|
@@ -202,6 +222,8 @@ class SalesOrderService extends Service
|
|
|
try {
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
+ $time = time();
|
|
|
+
|
|
|
$model = new SalesOrder();
|
|
|
$model->sales_order_type = $data['sales_order_type'];
|
|
|
$model->model_type = $data['model_type'];
|
|
@@ -234,8 +256,8 @@ class SalesOrderService extends Service
|
|
|
$model->depart_id = $data['depart_id'] ?? 0;
|
|
|
$model->top_depart_id = $data['top_depart_id'] ?? 0;
|
|
|
$model->crt_id = $user['id'];
|
|
|
+ $model->crt_time = $time;
|
|
|
$model->save();
|
|
|
- $time = time();
|
|
|
|
|
|
if(! empty($data['employee_one'])){
|
|
|
$insert = [];
|
|
@@ -276,19 +298,19 @@ class SalesOrderService extends Service
|
|
|
SalesOrderInfo::insert($insert);
|
|
|
}
|
|
|
|
|
|
- if(! empty($data['file'])){
|
|
|
- $insert = [];
|
|
|
- foreach ($data['file'] as $value){
|
|
|
- $insert[] = [
|
|
|
- 'sales_order_id' => $model->id,
|
|
|
- 'file' => $value['url'],
|
|
|
- 'name' => $value['name'],
|
|
|
- 'type' => SalesOrderInfo::type_four,
|
|
|
- 'crt_time' => $time,
|
|
|
- ];
|
|
|
- }
|
|
|
- SalesOrderInfo::insert($insert);
|
|
|
- }
|
|
|
+// if(! empty($data['file'])){
|
|
|
+// $insert = [];
|
|
|
+// foreach ($data['file'] as $value){
|
|
|
+// $insert[] = [
|
|
|
+// 'sales_order_id' => $model->id,
|
|
|
+// 'file' => $value['url'],
|
|
|
+// 'name' => $value['name'],
|
|
|
+// 'type' => SalesOrderInfo::type_four,
|
|
|
+// 'crt_time' => $time,
|
|
|
+// ];
|
|
|
+// }
|
|
|
+// SalesOrderInfo::insert($insert);
|
|
|
+// }
|
|
|
|
|
|
if(! empty($data['product'])){
|
|
|
$insert = [];
|
|
@@ -314,6 +336,9 @@ class SalesOrderService extends Service
|
|
|
SalesOrderProductInfo::insert($insert);
|
|
|
}
|
|
|
|
|
|
+ //收付款信息
|
|
|
+ if(! empty($data['payment_receipt'])) $this->savePaymentReceiptOrder($data,$user,$time);
|
|
|
+
|
|
|
DB::commit();
|
|
|
}catch (\Exception $exception){
|
|
|
DB::rollBack();
|
|
@@ -335,6 +360,89 @@ class SalesOrderService extends Service
|
|
|
return [true,''];
|
|
|
}
|
|
|
|
|
|
+ public function savePaymentReceiptOrder($data,$user,$time,$orders = null){
|
|
|
+ $order = $data['payment_receipt'];
|
|
|
+
|
|
|
+ if(empty($orders)){
|
|
|
+ $model = new PaymentReceipt();
|
|
|
+ $model->order_number = $data['order_number'];
|
|
|
+ $model->data_order_no = $order['data_order_no'];
|
|
|
+ $model->data_type = $order['data_type'];
|
|
|
+ $model->type = $order['type'];
|
|
|
+ $model->account = $order['account'] ?? 0;
|
|
|
+ $model->pay_way = $order['pay_way'] ?? 0;
|
|
|
+ $model->amount = $order['amount'] ?? 0;
|
|
|
+ $model->mark = $order['mark'] ?? '';
|
|
|
+ $model->crt_id = $user['id'];
|
|
|
+ $model->depart_id = $data['depart_id'];
|
|
|
+ $model->top_depart_id = $data['top_depart_id'];
|
|
|
+ $model->payment_receipt_date = $order['payment_receipt_date'] ?? 0;
|
|
|
+ $model->crt_time = $time;
|
|
|
+ $model->save();
|
|
|
+
|
|
|
+ if(! empty($order['file'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($order['file'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'payment_receipt_id' => $model->id,
|
|
|
+ 'file' => $value['url'],
|
|
|
+ 'type' => PaymentReceiptInfo::type_one,
|
|
|
+ 'name' => $value['name'],
|
|
|
+ 'crt_time' => $time,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ PaymentReceiptInfo::insert($insert);
|
|
|
+ }
|
|
|
+ if(! empty($order['employee_one'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($order['employee_one'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'payment_receipt_id' => $model->id,
|
|
|
+ 'data_id' => $value,
|
|
|
+ 'type' => PaymentReceiptInfo::type_two,
|
|
|
+ 'crt_time' => $time,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ PaymentReceiptInfo::insert($insert);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $order = $data['payment_receipt'];
|
|
|
+ $orders->type = $order['type'];
|
|
|
+ $orders->account = $order['account'] ?? 0;
|
|
|
+ $orders->pay_way = $order['pay_way'] ?? 0;
|
|
|
+ $orders->amount = $order['amount'] ?? 0;
|
|
|
+ $orders->mark = $order['mark'] ?? '';
|
|
|
+ $orders->payment_receipt_date = $order['payment_receipt_date'] ?? 0;
|
|
|
+ $orders->save();
|
|
|
+ if(! empty($order['file'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($order['file'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'payment_receipt_id' => $orders->id,
|
|
|
+ 'file' => $value['url'],
|
|
|
+ 'type' => PaymentReceiptInfo::type_one,
|
|
|
+ 'name' => $value['name'],
|
|
|
+ 'crt_time' => $time,
|
|
|
+ ];
|
|
|
+ $new[] = $value['url'];
|
|
|
+ }
|
|
|
+ PaymentReceiptInfo::insert($insert);
|
|
|
+ }
|
|
|
+ if(! empty($order['employee_one'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($order['employee_one'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'payment_receipt_id' => $orders->id,
|
|
|
+ 'data_id' => $value,
|
|
|
+ 'type' => PaymentReceiptInfo::type_two,
|
|
|
+ 'crt_time' => $time,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ PaymentReceiptInfo::insert($insert);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 订单删除
|
|
|
* @param $data
|
|
@@ -350,15 +458,29 @@ class SalesOrderService extends Service
|
|
|
try {
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
+ $old = [];
|
|
|
+ $order = PaymentReceipt::where('del_time',0)
|
|
|
+ ->where('crt_time',$sale_order['crt_time'])
|
|
|
+ ->where('data_order_no',$data['order_number'])
|
|
|
+ ->first();
|
|
|
+ if(! empty($order)){
|
|
|
+ $old = PaymentReceiptInfo::where('del_time',0)
|
|
|
+ ->where('payment_receipt_id',$order->id)
|
|
|
+ ->whereIn('type',[PaymentReceiptInfo::type_one])
|
|
|
+ ->select('file')
|
|
|
+ ->get()->toArray();
|
|
|
+ $old = array_column($old,'file');
|
|
|
+ }
|
|
|
+
|
|
|
SalesOrder::where('del_time',0)
|
|
|
->where('id',$data['id'])->update(['del_time'=> time()]);
|
|
|
|
|
|
- $old = SalesOrderInfo::where('del_time',0)
|
|
|
- ->where('sales_order_id',$data['id'])
|
|
|
- ->whereIn('type',[SalesOrderInfo::type_four])
|
|
|
- ->select('file')
|
|
|
- ->get()->toArray();
|
|
|
- $old = array_column($old,'file');
|
|
|
+// $old = SalesOrderInfo::where('del_time',0)
|
|
|
+// ->where('sales_order_id',$data['id'])
|
|
|
+// ->whereIn('type',[SalesOrderInfo::type_four])
|
|
|
+// ->select('file')
|
|
|
+// ->get()->toArray();
|
|
|
+// $old = array_column($old,'file');
|
|
|
|
|
|
SalesOrderInfo::where('del_time',0)
|
|
|
->where('sales_order_id',$data['id'])
|
|
@@ -542,7 +664,10 @@ class SalesOrderService extends Service
|
|
|
$sales['return_exchange'] = (new ReturnExchangeOrderService())->getDifferentAmount($data['id']);
|
|
|
|
|
|
//收付款单信息
|
|
|
- $sales['payment_receipt'] = (new PaymentReceiptService())->getPaymentReceiptDataList($data);
|
|
|
+ $sales['payment_receipt_list'] = (new PaymentReceiptService())->getPaymentReceiptDataList($sales);
|
|
|
+
|
|
|
+ //详情里的收付款信息
|
|
|
+ $sales['payment_receipt'] = (new PaymentReceiptService())->getPaymentReceiptDeatail($sales);
|
|
|
|
|
|
return [true, $sales];
|
|
|
}
|
|
@@ -684,6 +809,16 @@ class SalesOrderService extends Service
|
|
|
// if(empty($data['mileage'])) return [false,'表显里程不能为空'];
|
|
|
}
|
|
|
|
|
|
+ //收付款信息
|
|
|
+ if(! empty($data['payment_receipt']['order_number'])){
|
|
|
+ if(empty($data['payment_receipt']['data_type'])) $data['payment_receipt']['data_type'] = PaymentReceipt::data_type_one;
|
|
|
+ if(empty($data['payment_receipt']['data_type']['type'])) return [false,'金额类型不能为空'];
|
|
|
+ if(empty($data['payment_receipt']['amount'])) return [false,'回款金额不能为空'];
|
|
|
+ $res = $this->checkNumber($data['payment_receipt']['amount']);
|
|
|
+ if(! $res) return [false, '回款金额请输入不超过两位小数并且大于0的数值'];
|
|
|
+ if(! empty($data['payment_receipt']['payment_receipt_date'])) $data['payment_receipt_date'] = $this->changeDateToDate($data['payment_receipt']['payment_receipt_date']);
|
|
|
+ }
|
|
|
+
|
|
|
if($is_add){
|
|
|
$bool = SalesOrder::where('del_time',0)->where('order_number',$data['order_number'])->exists();
|
|
|
if($bool) return [false,'合同编号已存在,请重新获取'];
|