Files
thetool/application/WarehouseShippingNote/WarehouseShippingNoteModel.php
2026-01-17 12:48:08 +00:00

44 lines
1.5 KiB
PHP

<?php
class WarehouseShippingNoteModel extends TTCrudBaseModel {
public int $id;
public ?string $shippingNoteNumber = null;
public ?int $billingAddressId;
public ?string $type;
public ?string $metadata;
public string $deliveryAddressName;
public string $deliveryAddressLine;
public string $deliveryAddressPLZ;
public string $deliveryAddressCity;
public string $deliveryAddressEMail;
public string $note;
public string $status; // 'new'|'in_progress'|'accepted'|'invoiced' TODO: add to enum / migration
public string $positions;
public string $textElements;
public string $hoursEntries;
public ?string $signature;
public ?string $signatureName;
public ?string $signatureDate;
public ?int $eShopOrderId;
public ?int $create;
public ?int $createBy;
public static function generateShippingNoteNumber(): string {
$year = date('Y');
$prefix = "LS{$year}-X";
$db = FronkDB::singleton();
$result = $db->query("SELECT shippingNoteNumber FROM WarehouseShippingNote
WHERE shippingNoteNumber LIKE '{$prefix}%'
ORDER BY shippingNoteNumber DESC LIMIT 1");
if ($row = $result->fetch_assoc()) {
$lastNumber = intval(substr($row['shippingNoteNumber'], -4));
$nextNumber = $lastNumber + 1;
} else {
$nextNumber = 1;
}
return $prefix . str_pad((string)$nextNumber, 4, '0', STR_PAD_LEFT);
}
}