44 lines
1.5 KiB
PHP
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);
|
|
}
|
|
} |