diff --git a/app/Classes/Modules/Exports/Services/ExportsCompanyModuleSummary.php b/app/Classes/Modules/Exports/Services/ExportsCompanyModuleSummary.php new file mode 100644 index 00000000..9ee2459b --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsCompanyModuleSummary.php @@ -0,0 +1,91 @@ +companyModuleId = $companyModuleId; + $this->containerIds = $containerIds; + } + + /** + * @return \Illuminate\Support\Collection|mixed + */ + public function collection() + { + $packagesArray = collect(); + $containers = Container::whereIn('reference', explode(',', $this->containerIds))->get(); + foreach ($containers as $container){ + $company_module_id = $this->companyModuleId; + $packingLists = $container->packingLists()->get()->filter(function ($packingList) use ($company_module_id) { + return $packingList->owner->company_module_id == $company_module_id; + }); + foreach ($packingLists as $packingList){ + if($packingList->packingLists->first()){ + $packingList = $packingList->packingLists->first(); + } + $packages = $packingList->packages; + foreach ($packages as $package){ + $packagesArray->push($package); + } + } + } + + return $packagesArray; + } + + /** + * @param Package $package + * + * @return array + */ + public function map($package): array + { + $connection = $package->packingList->owner->companyModule->inviters()->withPivot('invitee_reference')->first(); + $marking = $connection ? $connection->pivot->invitee_reference:''; + + return [ + Carbon::parse($package->created_at)->format('d-m-Y'), + $marking, + $package->packingList->containers()->first()->reference, + $package->description, + $package->quantity, + $package->length, + $package->height, + $package->width, + ((($package->length / 100) * ($package->height / 100) * ($package->width / 100)) * $package->quantity) + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportCompanyModuleSummaryController.php b/app/Http/Controllers/Exports/ExportCompanyModuleSummaryController.php new file mode 100644 index 00000000..696cd86f --- /dev/null +++ b/app/Http/Controllers/Exports/ExportCompanyModuleSummaryController.php @@ -0,0 +1,30 @@ +headers->set('Authorization', 'Bearer '.$token); + } + + public function export(Request $request) { + $exportsCompanyModuleSummary = new ExportsCompanyModuleSummary($request); + $exportsCompanyModuleSummary->setParameters($request->route('company_module_id'), $request->input('containerNumber')); + $response = $exportsCompanyModuleSummary->download('customer-report-by-containers.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + ob_end_clean(); + return $response; + } +} diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index af3e0e7c..512fa04d 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -82,16 +82,35 @@ -
+
-
-
- +
+
+
+
+ +
+
+ + + +
+
+
+
+ + + +
- - -
diff --git a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue index 7d943d0b..1a148c73 100644 --- a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue +++ b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue @@ -6,37 +6,6 @@
-
diff --git a/resources/assets/vue/components/reports/forms/ExportCompanyModuleSummaryFormComponent.vue b/resources/assets/vue/components/reports/forms/ExportCompanyModuleSummaryFormComponent.vue new file mode 100644 index 00000000..3d3e65f5 --- /dev/null +++ b/resources/assets/vue/components/reports/forms/ExportCompanyModuleSummaryFormComponent.vue @@ -0,0 +1,63 @@ + + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 956aa7b2..c9e8afea 100644 --- a/routes/web.php +++ b/routes/web.php @@ -257,6 +257,8 @@ Route::get('/settings', function () { return view('pages.settings'); })->name('settings'); +Route::get('/customer/{company_module_id}/summary', 'Exports\ExportCompanyModuleSummaryController@export')->name('customer.summary.export'); + Route::get('/customer/summary/monthly', function () { // $containers = Container::whereMonth('loading_date', 1)->where('owner_id', 3)->get(); $containers = Container::whereIn('reference', ['EPS-3850', 'EPS-3863', 'WP-1331', 'EPS-3856'])->get();