weizong song 4 years ago
parent 23a3df5ba7
commit 46398a133a

@ -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);
}
}

@ -59,7 +59,7 @@
</td>
</tr>
<tr style="display: none">
<td colspan="10" class="p-0">
<td colspan="11" class="p-0">
<table class="table table-striped mb-0 border-0">
<thead>
<tr>
@ -68,18 +68,24 @@
<th>护工</th>
<th>单价</th>
<th>扣款时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
@foreach($row->orderItems as $item)
<tr>
<tr data-id="{{ $item->id }}" data-item-id="{{ $item->id }}">
<td>{{ $item->building->name }}-{{ $item->room->name }}
-{{ $item->bed->name }}床
</td>
<td>{{ $item->service_date }}</td>
<td>{{ $item->paramedic ? $item->paramedic->name : "" }}</td>
<td>{{ $item->total }}</td>
<td data-field="total">{{ $item->total }}</td>
<td>{{ $item->paid_at }}</td>
<td>
<button type="button" class="btn btn-primary btn-sm"
onclick="changeItem(this)">修改
</button>
</td>
</tr>
@endforeach
</tbody>
@ -96,6 +102,40 @@
</div>
</div>
<div id="modal-box" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form class="pl-3 pr-3" action="#">
@csrf
<input type="hidden" name="item_id">
<div class="form-group">
<label for="serial">订单编号</label>
<input class="form-control" type="text" name="serial" disabled>
</div>
<div class="form-group">
<label for="service_date">服务日期</label>
<input class="form-control" type="text" name="service_date" disabled>
</div>
<div class="form-group">
<label for="total">价格</label>
<input class="form-control" type="number" name="total" required=""
onblur="calculateSalary();">
</div>
<div id="factor-box">
</div>
<div class="form-group text-right">
<button class="btn btn-primary mr-1" type="button" onclick="saveItemChange();">修改</button>
<button class="btn btn-light" type="button" data-dismiss="modal">取消</button>
</div>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
@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 += '<div class="form-group">' +
' <label for="factor_item[' + factor.factor_item_id + '][factor_item_name]">' + factor.factor_name + '</label>' +
' <input class="form-control" type="text" name="factor_item[' + factor.factor_item_id + '][factor_item_name]" value="' + factor.factor_item_name + '" required="">' +
' </div>';
html += '<div class="form-group">' +
' <label for="factor_item[' + factor.factor_item_id + '][fee_percent]">管理费比例</label>' +
' <input class="form-control" onblur="calculateSalary();" type="number" name="factor_item[' + factor.factor_item_id + '][fee_percent]" value="' + factor.fee_percent + '" required="">' +
' </div>';
html += '<div class="form-group">' +
' <label for="factor_item[' + factor.factor_item_id + '][fee]">固定管理费</label>' +
' <input class="form-control" onblur="calculateSalary();" type="number" name="factor_item[' + factor.factor_item_id + '][fee]" value="' + factor.fee + '" required="">' +
' </div>';
html += '<div class="form-group">' +
' <label for="salary">护工工资</label>' +
' <input class="form-control" type="number" name="salary" disabled>' +
' </div>';
$("#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);
}
</script>
@endpush

@ -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');

Loading…
Cancel
Save