diff --git a/app/Http/Controllers/Reports/MonthlyReportController.php b/app/Http/Controllers/Reports/MonthlyReportController.php
index 28e09ecf..d58fc8ca 100644
--- a/app/Http/Controllers/Reports/MonthlyReportController.php
+++ b/app/Http/Controllers/Reports/MonthlyReportController.php
@@ -6,6 +6,7 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\ValueObjects\Constants\HttpStatus;
use App\Classes\ValueObjects\Response\ApiResponseObject;
+use App\Models\CompanyConnection;
use App\Models\CompanyModule;
use App\Models\Container;
use App\Models\Order;
@@ -66,6 +67,41 @@ class MonthlyReportController
]]))->handler();
}
+ public function customerReport(Request $request): JsonResponse {
+
+ $connection = CompanyConnection::where('invitee_reference', $request->route('marking'))->firstOrFail();
+ $id = $connection->invitee->id;
+
+ $from = $request->route('from') ? Carbon::parse($request->route('from')) : Carbon::parse('01-01-2018');
+ $to = $request->route('to') ? Carbon::parse($request->route('to')) : Carbon::now();
+
+ $containers = Container::whereBetween('loading_date', [$from, $to])->orderBy('loading_date')->get();
+
+ $packages = $containers->flatMap(function ($container) {
+ return $container->packages;
+ });
+
+ $packages = $packages->filter(function($package){
+ return $package->companyModule->id === $id;
+ });
+
+ $orders = $packages->unique(function ($package) {
+ return $package->order;
+ });
+
+ $totalCbm = $packages->sum(function($package){
+ return $package->companyModule->id === 108 ? (( (float) $package->width / 100) * ( (float) $package->length / 100) * ( (float) $package->height / 100)) * $package->quantity : 0;
+ });
+
+ return (new ApiResponseObject('fetch monthly report Successful',
+ '',
+ HttpStatus::OK_WITH_MESSAGE, ['data' => [
+ 'activated_orders' => count($orders),
+ 'total_cbm' => $totalCbm,
+ 'packages' => $packages->sum('quantity'),
+ ]]))->handler();
+ }
+
public function serviceReport(Request $request): JsonResponse {
return (new ApiResponseObject('fetch service report Successful',
diff --git a/resources/assets/vue/components/reports/sections/CustomerReportSectionComponent.vue b/resources/assets/vue/components/reports/sections/CustomerReportSectionComponent.vue
new file mode 100644
index 00000000..65eb9cc5
--- /dev/null
+++ b/resources/assets/vue/components/reports/sections/CustomerReportSectionComponent.vue
@@ -0,0 +1,140 @@
+
+