Implement OrderMembersController: invite appraisers, change status to started
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,16 +3,68 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
class OrderMembersController extends Controller
|
class OrderMembersController extends Controller
|
||||||
{
|
{
|
||||||
public function remove(Request $request)
|
public function invite(Request $request)
|
||||||
{
|
{
|
||||||
|
$orderId = $request->input('order_id');
|
||||||
|
$orderType = $request->input('order_type'); // 'AUTO' or 'ESTATE'
|
||||||
|
$dbType = $orderType === 'AUTO' ? 'auto_' : 'estate_';
|
||||||
|
$table = $orderType === 'AUTO' ? 'auto_orders' : 'estate_orders';
|
||||||
|
|
||||||
|
// Collect checked appraiser IDs (checkboxes named by appraiser->id)
|
||||||
|
$appraiserIds = [];
|
||||||
|
foreach ($request->all() as $key => $value) {
|
||||||
|
if (is_numeric($key) && $value === 'on') {
|
||||||
|
$appraiserIds[] = (int)$key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($appraiserIds as $userId) {
|
||||||
|
// Avoid duplicate
|
||||||
|
$exists = DB::table('order_members')
|
||||||
|
->where('order_id', $orderId)
|
||||||
|
->where('order_type', $dbType)
|
||||||
|
->where('user_id', $userId)
|
||||||
|
->exists();
|
||||||
|
|
||||||
|
if (!$exists) {
|
||||||
|
DB::table('order_members')->insert([
|
||||||
|
'order_id' => $orderId,
|
||||||
|
'order_type' => $dbType,
|
||||||
|
'user_id' => $userId,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change status to started if members added
|
||||||
|
if (count($appraiserIds) > 0) {
|
||||||
|
DB::table($table)->where('id', $orderId)->update([
|
||||||
|
'status' => 'started',
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function invite(Request $request)
|
public function remove(Request $request)
|
||||||
{
|
{
|
||||||
|
$memberId = $request->input('id');
|
||||||
|
$orderId = $request->input('order_id');
|
||||||
|
$orderType = $request->input('order_type'); // 'AUTO' or 'ESTATE'
|
||||||
|
$dbType = $orderType === 'AUTO' ? 'auto_' : 'estate_';
|
||||||
|
|
||||||
|
DB::table('order_members')
|
||||||
|
->where('id', $memberId)
|
||||||
|
->where('order_id', $orderId)
|
||||||
|
->where('order_type', $dbType)
|
||||||
|
->delete();
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user