Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into multi-payment-final

# Conflicts:
# app/Classes/Modules/Segments/ControllersLogic/UpdateConstantPostcodeLogic.php
# app/Classes/ValueObjects/Constants/TransactionType.php
# routes/api.php
# routes/web.php
This commit is contained in:
edmondlang
2023-04-28 18:20:42 +08:00
parent 569273c058
commit e7c0e17ee4
116 changed files with 4226 additions and 668 deletions
+2
View File
@@ -41,6 +41,8 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account
Route::put('/update/{id}', 'UpdateUserController@update')->name('update');
Route::post('/admin/create', 'CreateAdminUserController@create')->name('admin.create');
Route::delete('/delete/{id}', 'DeleteUserController@delete')->name('delete');
Route::put('/update/{id}/role', 'UpdateUserRoleController@update')->name('update.role');
});
});
+2
View File
@@ -63,6 +63,8 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function
require __DIR__ . '/report.php';
require __DIR__ . '/wallet.php';
require __DIR__ . '/contact.php';
});
+9
View File
@@ -0,0 +1,9 @@
<?php
use Illuminate\Support\Facades\Route;
Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], function () {
Route::group(['middleware' => 'token.check'], function () {
Route::get('/list', 'Transactions\ListTransactionsController@list')->name('list');
});
});
+1
View File
@@ -9,6 +9,7 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani
Route::put('/update/{id}', 'UpdateCompanyController@update')->name('update');
Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete');
Route::put('/name-and-debtor/update/{id}', 'UpdateCompanyNameAndDebtorController@update')->name('update.nameAndDebtor');
Route::put('/type/update/{id}', 'UpdateCompanyTypeController@create')->name('update.type');
Route::post('/team/create', 'AddNewMemberController@create')->name('team.create');
+11
View File
@@ -0,0 +1,11 @@
<?php
use Illuminate\Support\Facades\Route;
Route::group(['prefix' => 'contact', 'as' => 'contact.', 'namespace' => 'Contacts'], function () {
Route::put('/{id}/update', 'UpdateContactController@update')->name('update');
});
+2
View File
@@ -4,7 +4,9 @@ use Illuminate\Support\Facades\Route;
Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], function () {
Route::get('/show/{id}', 'FetchOrderController@fetch')->name('show');
Route::get('/v2/show/{id}', 'FetchOrderV2Controller@fetch')->name('v2.show');
Route::get('/list', 'ListOrdersController@list')->name('list');
Route::get('/v2/list', 'ListOrdersV2Controller@list')->name('v2.list');
Route::post('/create', 'CreateOrderController@create')->name('create');
Route::put('/confirm/{id}', 'ConfirmOrderController@confirm')->name('confirm');
Route::put('/cancel/{id}', 'CancelOrderController@cancel')->name('cancel');
+1
View File
@@ -11,6 +11,7 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' =
Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update');
Route::put('/status/{id}/update/{status}', 'UpdatePackingListStatusController@update')->name('status.update');
Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete');
Route::delete('/delete-by-package-id/{id}', 'DeletePackingListByPackageIdController@delete')->name('delete.by_package_id');
Route::put('/reschedule/{id}', 'ReschedulePackingListController@reschedule')->name('reschedule');
Route::put('/update-dispatch-date/{id}', 'UpdateDispatchDatePackingListController@update')->name('update_dispatch_date');
+1
View File
@@ -6,6 +6,7 @@ Route::group(['prefix' => 'transactions', 'namespace' => 'Transactions', 'as' =>
Route::get('/list', 'ListTransactionsController@list')->name('list');
Route::delete('/suspend/{id}', 'SuspendTransactionController@suspend')->name('suspend');
Route::delete('/delete/{id}', 'DeleteTransactionController@delete')->name('delete');
Route::put('{id}/status/update/{status}', 'UpdateTransactionStatusController@update')->where('status', 'approve|expire|reject')->name('update');
Route::group(['prefix' => 'payment', 'as' => 'payment.'], function () {
+131 -6
View File
@@ -30,6 +30,7 @@ use App\Classes\ValueObjects\Constants\PackageType;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Http\Resources\CompanyResource;
use App\Models\CompanyConnection;
use App\Models\CompanyModule;
use App\Models\Document;
@@ -138,14 +139,70 @@ Route::get('/orders', function () {
return view('pages.orders.index');
})->name('orders');
Route::get('/support', function () {
return view('pages.support', [
'email' => null,
'orderNo' => null,
'orderNoNotFound' => null,
'marking' => null,
'markingReturn' => null,
'markingNotFound' => null,
]);
})->name('support');
Route::post('/support', function (Request $request) {
$orderNoNotFound = false;
$orderNo = $request->input('orderNo');
$marking = $request->input('marking');
$markingReturn = null;
$markingNotFound = false;
if ($orderNo) {
if (Order::where('reference', $orderNo)->count()) {
return redirect(route('order.show', $orderNo));
} else {
$orderNoNotFound = true;
}
}
if ($marking) {
$orderNo = null;
$markingReturn = CompanyConnection::where('invitee_reference', $marking)->get();
if (count($markingReturn)) {
$markingReturn = $markingReturn->first();
$markingReturn = $markingReturn->invitee;
$markingReturn->reference = $marking;
$markingReturn = $markingReturn->toJson();
} else {
$markingNotFound = true;
}
}
return view('pages.support', [
'email' => null,
'orderNo' => $orderNo,
'orderNoNotFound' => $orderNoNotFound,
'marking' => $marking,
'markingReturn' => $markingReturn,
'markingNotFound' => $markingNotFound,
]);
})->name('support');
Route::get('/orders-table', function () {
return view('pages.orders.table');
})->name('ordersTable');
Route::get('/order/show/{order_number}', function ($orderNumber) {
return view('pages.orders.profile', ['id' => $orderNumber]);
// return view('pages.orders.profile', ['id' => $orderNumber]);
return view('pages.orders.profile_v2', ['id' => $orderNumber]);
})->name('order.show');
Route::get('/order/v2/show/{order_number}', function ($orderNumber) {
return view('pages.orders.profile_v2', ['id' => $orderNumber]);
})->name('order.v2.show');
Route::get('/address', function () {
return view('pages.addresses.index');
})->name('address');
@@ -375,9 +432,21 @@ Route::get('/settings', function () {
Route::get('/customer/{company_module_id}/summary', 'Exports\ExportCompanyModuleSummaryController@export')->name('customer.summary.export');
Route::get('/export-customer-order/{marking}', 'Exports\ExportCompanyModuleSummaryController@exportorderSummaryByMarking')->name('customer.orderSummary.export');
Route::get('/customer/summary/monthly', function () {
Route::get('/customer/summary/{year}/monthly', function ($year) {
if (!in_array($year, [2022, 2023])) {
return 'Year Error!';
}
// $containers = Container::whereMonth('loading_date', '>=', ((float)Carbon::now()->format('m') - 2))->whereYear('loading_date', (float)Carbon::now()->format('Y'))->get();
$containers = Container::whereMonth('loading_date', '>=', 9)->whereYear('loading_date', 2022)->get();
if ($year == 2022) {
$containers = Container::whereMonth('loading_date', '>=', 9)->whereYear('loading_date', 2022)->get();
}
if ($year == 2023) {
$containers = Container::whereMonth('loading_date', '>=', 1)->whereYear('loading_date', 2023)->get();
}
$marking = '769SMC';
$connection = CompanyConnection::where('invitee_reference', $marking)->first();
$companyModuleId = $connection->invitee->id;
@@ -802,7 +871,7 @@ Route::get('/invoices/approve', function(Request $request){
Route::get('/invoices/show-duplicated', function(Request $request){
$transactionWithMultipleInvoice = DB::table('transactions')
->where('type', TransactionType::SHIPPING_INVOICE)
->where('status', '!=' , ApprovalStatus::EXPIRED)
->whereNotIn('status', [ApprovalStatus::EXPIRED, ApprovalStatus::SUSPENDED])
->where('deleted_at', null)
->select('owner_id', DB::raw('count(*) as count'))
->groupBy('owner_id')
@@ -831,9 +900,18 @@ Route::get('/invoices/show-duplicated', function(Request $request){
foreach($duplicatedInvoice as $invoice) {
$order = $invoice->owner->owner;
$billplzPaymentId = '';
if ($invoice->status == ApprovalStatus::COMPLETED) {
if ($invoice->transactions->first()->type == TransactionType::PAYMENT) {
$billplzPaymentId = $invoice->transactions->first()->payment_reference ;
}
}
echo "<tr>";
echo '<td style="border:1px solid"><a target="_blank" href="'.route('order.show', $order->reference).'">'. $order->reference.' - </a>' . $order->created_at . '</td>';
echo "<td style='border:1px solid'>".ApprovalStatus::APPROVAL_STATUS_ID[$invoice->status]."</td>";
echo "<td style='border:1px solid'>".ApprovalStatus::APPROVAL_STATUS_ID[$invoice->status]. ' Billplz reference: ' . $billplzPaymentId . "</td>";
echo "<td style='border:1px solid'>$invoice->owner_id</td>";
echo "<td style='border:1px solid'>$invoice->amount</td>";
echo "<td style='border:1px solid'>".$duplicatedOrderArray[$invoice->owner_id]."</td>";
@@ -1014,7 +1092,54 @@ Route::get('/billplz/audit', function (Request $request) {
}else{
echo "billplz error</br>";
}
Route::get('/final-duplicated-invoice-debug', function(){
$duplicatedTransactions = Transaction::select(DB::raw('owner_type, owner_id, receiver, type, GROUP_CONCAT(id) as transaction_ids, COUNT(*) as count'))
->whereNotIn('status', [ApprovalStatus::REJECTED,ApprovalStatus::SUSPENDED,ApprovalStatus::EXPIRED])
->groupBy('owner_type', 'owner_id', 'receiver', 'type')
->having('count', '>', 1)
->get();
$approvalStatusArray = ApprovalStatus::APPROVAL_STATUS_ID;
$transactionType = TransactionType::TRANSACTION_TYPE_ID;
echo '<table style="width: 100%; text-align: center; border: 1px solid black">
<tr>
<!-- <th style="border: 1px solid black" >Owner Type</th> -->
<!-- <th style="border: 1px solid black" >Owner Id</th> -->
<!--<th style="border: 1px solid black" >Reveiver</th>-->
<th style="border: 1px solid black" >Order</th>
<th style="border: 1px solid black" >Transaction type</th>
<th style="border: 1px solid black" >Count</th>
<th style="border: 1px solid black" >Invoice Ids</th>
<th style="border: 1px solid black" >Invoices</th>
</tr>';
foreach ($duplicatedTransactions as $transaction) {
$transactionIds = explode(',', $transaction->transaction_ids);
$duplicatedInvoice = Transaction::whereIn('id', $transactionIds)->get();
$order_reference = $duplicatedInvoice->first()->owner->owner->reference ?? null;
if ($transaction->type == TransactionType::PAYMENT) {
$order_reference = $duplicatedInvoice->first()->owner->owner->owner->reference ?? null;
}
echo 'Total: ' . $totalAmount;
echo '<tr>';
// echo '<td style="border: 1px solid black">' . $transaction->owner_type . '</td>';
// echo '<td style="border: 1px solid black">' . $transaction->owner_id . '</td>';
echo '<td style="border: 1px solid black">' . $transaction->receiver . '</td>';
echo '<td style="border: 1px solid black">' . '<a target="_blank" href="'.route('order.show', $order_reference).'">'. $order_reference .'</a>' . '</td>';
echo '<td style="border: 1px solid black">' . $transactionType[$transaction->type] . '</td>';
echo '<td style="border: 1px solid black">' . count($transactionIds) . '</td>';
echo '<td style="border: 1px solid black; text-align: left">';
foreach ($duplicatedInvoice as $invoice) {
echo '<p>ID: ' . $invoice->id . '. Status: ' . $approvalStatusArray[$invoice->status] . '. Amount: ' . $invoice->amount . '</p>';
}
echo'</td>';
echo '</tr>';
}
echo '</table>';
});