ifnex/04_Laravel/read_excel.php
Kazem Alghasi 02c29db696 feat(core): implement order approval flow, credit system, and import invoicing
Introduce a comprehensive set of commercial features including a multi-step
order approval workflow, customer credit management, and specialized
import service invoicing.

Key changes:
- Implement `pending_approval` and `approved` shipment statuses to allow
  staff verification before customer payment.
- Add a credit system to `User` model with `credit_limit` and `credit_used`
  to manage customer balances and debts.
- Develop a new `importInvoice` PDF generation service following the
  "Sheet ENG Invoice" specification for import services.
- Add Filament resources for managing Audit Logs, Commitment Forms,
  Customer Credits, and Shipment Checklists.
- Implement staff-specific APIs for order approval/rejection and
  customer financial status monitoring.
- Integrate Kavenegar SMS service for mobile verification and notifications.
- Add bulk tracking import functionality via CSV/Excel.
- Update WordPress bridge assets (CSS/JS) to support the new multi-step
  order form UI and updated redirection logic.
- Update deployment configurations and documentation to reflect new
  production domains and feature sets.
2026-09-03 06:04:20 +03:30

27 lines
787 B
PHP

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load(__DIR__ . '/../01_Documents/Sheet ENG invoice.xlsx');
$sheet = $spreadsheet->getActiveSheet();
echo 'Sheet: ' . $sheet->getTitle() . PHP_EOL;
echo 'Rows: ' . $sheet->getHighestRow() . PHP_EOL;
// Use toArray for cleaner output
$data = $sheet->toArray(null, true, true, true);
echo PHP_EOL . '=== CONTENT ===' . PHP_EOL;
foreach ($data as $rowIndex => $row) {
$line = '';
foreach ($row as $colIndex => $value) {
if ($value !== null && trim((string)$value) !== '') {
$line .= $colIndex . '=' . trim((string)$value) . ' | ';
}
}
if ($line) echo 'Row' . $rowIndex . ': ' . $line . PHP_EOL;
}