diff --git a/app/Http/Controllers/Admin/OrdersController.php b/app/Http/Controllers/Admin/OrdersController.php
index 78d3d01..fbf29f0 100755
--- a/app/Http/Controllers/Admin/OrdersController.php
+++ b/app/Http/Controllers/Admin/OrdersController.php
@@ -8,9 +8,11 @@
namespace App\Http\Controllers\Admin;
+use App\Models\OrderItems;
use App\Models\Orders;
use App\Models\Project;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
class OrdersController extends CommonController
{
@@ -58,4 +60,47 @@ class OrdersController extends CommonController
return view($this->bladePath . ".index", compact("data", "project_id", "month", "project"));
}
+
+ public function changeItem(Request $request)
+ {
+ $order_item = OrderItems::with("order")->find($request->item_id);
+ if ($order_item->paid_at && $request->total != $order_item->total) {
+ return $this->error("子订单已扣款,不支持后台更改价格,请通过其他方法进行更改");
+ }
+ if ($order_item->total == 0 && $request->total != $order_item->total) {
+ return $this->error("未服务子订单不支持后台更改价格,请通过其他方法进行更改");
+ }
+
+ DB::beginTransaction();
+ try {
+ $order_item->update([
+ "total" => $request->total
+ ]);
+ if ($request->factor_item) {
+ $factors = json_decode($order_item->factors, true);
+ foreach ($factors as &$factor) {
+ if (!$factor["used_for_fee"]) continue;
+ foreach ($request->factor_item as $k => $v) {
+ if ($k != $factor["factor_item_id"]) continue;
+ $factor["fee_percent"] = $v["fee_percent"];
+ $factor["fee"] = $v["fee"];
+ }
+ }
+ $order_item->update([
+ "factors" => json_encode($factors)
+ ]);
+ }
+ DB::commit();
+ return $this->success("处理成功!");
+ } catch (\Exception $exception) {
+ DB::rollBack();
+ return $this->error($exception->getMessage());
+ }
+ }
+
+ public function getItem($id)
+ {
+ $order_item = OrderItems::with("order")->find($id);
+ return $this->ajaxResponse($order_item);
+ }
}
diff --git a/resources/views/admin/orders/index.blade.php b/resources/views/admin/orders/index.blade.php
index 15fe436..584d187 100755
--- a/resources/views/admin/orders/index.blade.php
+++ b/resources/views/admin/orders/index.blade.php
@@ -59,7 +59,7 @@
- |
+ |
@@ -68,18 +68,24 @@
| 护工 |
单价 |
扣款时间 |
+ 操作 |
@foreach($row->orderItems as $item)
-
+
| {{ $item->building->name }}-{{ $item->room->name }}
-{{ $item->bed->name }}床
|
{{ $item->service_date }} |
{{ $item->paramedic ? $item->paramedic->name : "" }} |
- {{ $item->total }} |
+ {{ $item->total }} |
{{ $item->paid_at }} |
+
+
+ |
@endforeach
@@ -96,6 +102,40 @@
+
+
@include("public._delete")
@endsection
@@ -106,5 +146,75 @@
$(element).closest("tr").toggleClass("bg-warning");
$(element).find("i").toggleClass("mdi-arrow-up")
}
+
+ function changeItem(element) {
+ var item_id = $(element).closest("tr").attr("data-id");
+ var url = "{{ url("admin/orders/get-item") }}/" + item_id;
+ $.get(url, function (res) {
+ $("#modal-box").modal("show");
+ $("#modal-box form input[name=item_id]").val(item_id);
+ $("#modal-box form input[name=serial]").val(res.order.serial);
+ $("#modal-box form input[name=service_date]").val(res.service_date);
+ $("#modal-box form input[name=total]").val(res.total);
+ $("#factor-box").html("");
+ try {
+ var factors = JSON.parse(res.factors);
+ for (var i = 0; i < factors.length; i++) {
+ var factor = factors[i];
+ if (!factor.used_for_fee) continue;
+ var html = "";
+ html += '' +
+ ' ' +
+ ' ' +
+ ' ';
+ html += '' +
+ ' ' +
+ ' ' +
+ ' ';
+ html += '' +
+ ' ' +
+ ' ' +
+ ' ';
+ html += '' +
+ ' ' +
+ ' ' +
+ ' ';
+ $("#factor-box").html(html);
+
+ calculateSalary();
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ });
+ }
+
+ function calculateSalary() {
+ if (!$("#modal-box form").find("input[name=salary]").length) return;
+ var total = $("#modal-box form input[name=total]").val();
+ var fee_percent = $("#modal-box form input[name$='[fee_percent]']").val();
+ var fee = $("#modal-box form input[name$='[fee]']").val();
+ var salary = total - (fee_percent * total / 100 + parseFloat(fee));
+ $("#modal-box form").find("input[name=salary]").val(salary);
+ }
+
+ function saveItemChange() {
+ var url = "{{ url("admin/orders/change-item") }}";
+ var data = $("#modal-box form").serialize();
+ $.post(url, data, function (res) {
+ if (!res.status) {
+ alertError(res.msg);
+ return false;
+ }
+ updateItem();
+ alertSuccess(res.msg);
+ });
+ }
+
+ function updateItem() {
+ var total = $("#modal-box form input[name=total]").val();
+ var item_id = $("#modal-box form input[name=item_id]").val();
+ $("#data-table tbody tr[data-item-id='" + item_id + "']").find("td[data-field=total]").html(total);
+ }
@endpush
diff --git a/routes/web.php b/routes/web.php
index ff87bae..7a8e163 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -76,6 +76,9 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () {
Route::post("manager/delete", 'ManagerController@delete');
Route::get("orders", 'OrdersController@index');
+ Route::post("orders/change-item", 'OrdersController@changeItem');
+ Route::get("orders/get-item/{item_id}", 'OrdersController@getItem');
+
Route::get("statistics/overview", 'StatisticsController@overview');
Route::get("statistics/salary", 'StatisticsController@salary');
Route::get("statistics/finance", 'StatisticsController@finance');
|