|
@@ -99,7 +99,6 @@ class GenerateDocumentsService
|
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* @throws Exception
|
|
* @throws Exception
|
|
|
*/
|
|
*/
|
|
@@ -144,6 +143,8 @@ class GenerateDocumentsService
|
|
|
// generate xlsx order files
|
|
// generate xlsx order files
|
|
|
$this->generateStatement($order);
|
|
$this->generateStatement($order);
|
|
|
$this->generateQualityDeclaration($order);
|
|
$this->generateQualityDeclaration($order);
|
|
|
|
|
+ $this->generateInventory($order);
|
|
|
|
|
+ $this->generatePassport($order);
|
|
|
|
|
|
|
|
|
|
|
|
|
// create zip archive
|
|
// create zip archive
|
|
@@ -203,7 +204,6 @@ class GenerateDocumentsService
|
|
|
|
|
|
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
public function generateQualityDeclaration(Order $order): void
|
|
public function generateQualityDeclaration(Order $order): void
|
|
|
{
|
|
{
|
|
|
$inputFileType = 'Xlsx';
|
|
$inputFileType = 'Xlsx';
|
|
@@ -255,5 +255,77 @@ class GenerateDocumentsService
|
|
|
|
|
|
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
$writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
|
}
|
|
}
|
|
|
|
|
+ public function generateInventory(Order $order): void
|
|
|
|
|
+ {
|
|
|
|
|
+ $inputFileType = 'Xlsx';
|
|
|
|
|
+ $inputFileName = './templates/Inventory.xlsx';
|
|
|
|
|
+
|
|
|
|
|
+ $reader = IOFactory::createReader($inputFileType);
|
|
|
|
|
+ $spreadsheet = $reader->load($inputFileName);
|
|
|
|
|
+ $sheet = $spreadsheet->getActiveSheet();
|
|
|
|
|
+
|
|
|
|
|
+ $address = 'Округ: ' . $order->district->shortname . ' Район ' . $order->area->name;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ $sheet->setCellValue('C4', $order->name);
|
|
|
|
|
+ $sheet->setCellValue('C5', $address);
|
|
|
|
|
+ $sheet->setCellValue('C13', $order->user->name);
|
|
|
|
|
+
|
|
|
|
|
+ $i = 8; // start of table
|
|
|
|
|
+ $n = 1;
|
|
|
|
|
+ foreach ($order->products_sku as $sku) {
|
|
|
|
|
+ if ($n++ > 1) {
|
|
|
|
|
+ $sheet->insertNewRowBefore($i + 3, 3);
|
|
|
|
|
+ $range = 'A' . $i . ':E' . $i + 2;
|
|
|
|
|
+ $i = $i + 3;
|
|
|
|
|
+ ExcelHelper::copyRows($sheet, $range, 'A' . $i);
|
|
|
|
|
+ }
|
|
|
|
|
+ $sheet->setCellValue('A' . $i, $n - 1);
|
|
|
|
|
+ $sheet->setCellValue('B' . $i, $sku->product->passport_name);
|
|
|
|
|
+ $sheet->setCellValue('B' . $i + 2, $sku->rfid);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // save file
|
|
|
|
|
+ $fileName = '3.Опись.xlsx';
|
|
|
|
|
+ $writer = new Xlsx($spreadsheet);
|
|
|
|
|
+ Storage::disk('public')->makeDirectory('orders/' . $order->id . '/tmp');
|
|
|
|
|
+
|
|
|
|
|
+ $writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
|
|
|
+ }
|
|
|
|
|
+ public function generatePassport(Order $order): void
|
|
|
|
|
+ {
|
|
|
|
|
+ $inputFileType = 'Xlsx';
|
|
|
|
|
+ $inputFileName = './templates/Passport.xlsx';
|
|
|
|
|
+
|
|
|
|
|
+ $reader = IOFactory::createReader($inputFileType);
|
|
|
|
|
+ $spreadsheet = $reader->load($inputFileName);
|
|
|
|
|
+ $sheet = $spreadsheet->getActiveSheet();
|
|
|
|
|
+
|
|
|
|
|
+ $i = 3; // start of table
|
|
|
|
|
+ $n = 1;
|
|
|
|
|
+ foreach ($order->products_sku as $sku) {
|
|
|
|
|
+ echo $sku->id . "\n";
|
|
|
|
|
+ if ($n++ > 1) {
|
|
|
|
|
+ $sheet->insertNewRowBefore($i + 1, 1);
|
|
|
|
|
+ $range = 'A' . $i . ':J' . $i;
|
|
|
|
|
+ $i++;
|
|
|
|
|
+ ExcelHelper::copyRows($sheet, $range, 'A' . $i);
|
|
|
|
|
+ }
|
|
|
|
|
+ $sheet->setCellValue('A' . $i, $n - 1);
|
|
|
|
|
+ $sheet->setCellValue('B' . $i, $sku->product->passport_name);
|
|
|
|
|
+ $sheet->setCellValue('C' . $i, $sku->product->type_tz);
|
|
|
|
|
+ $sheet->setCellValue('D' . $i, $sku->rfid);
|
|
|
|
|
+ $sheet->setCellValue('E' . $i, $sku->product->certificate_number);
|
|
|
|
|
+ $sheet->setCellValue('G' . $i, $sku->factory_number);
|
|
|
|
|
+ $sheet->setCellValue('H' . $i, DateHelper::getHumanDate($sku->manufacture_date, true));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // save file
|
|
|
|
|
+ $fileName = '4.Паспорт объекта - ' . $order->object_address . '.xlsx';
|
|
|
|
|
+ $writer = new Xlsx($spreadsheet);
|
|
|
|
|
+ Storage::disk('public')->makeDirectory('orders/' . $order->id . '/tmp');
|
|
|
|
|
+
|
|
|
|
|
+ $writer->save(storage_path('app/public/orders/') . $order->id . '/tmp/' . $fileName);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|