123456789101112131415161718192021222324252627282930313233 |
- <?php
-
- namespace App\Utilities;
-
- use App\Interfaces\Utility\DocumentNumber as DocumentNumberInterface;
- use Illuminate\Database\Eloquent\Model;
-
- class DocumentNumber implements DocumentNumberInterface
- {
- public function getNextNumber(?Model $model, ?string $type, int | string $number, string $prefix, int | string $digits, ?bool $padded = false): string
- {
- if ($model) {
- $numberNext = $model?->newQuery()
- ->where('type', $type)
- ->value($number);
- } else {
- $numberNext = $number;
- }
-
- if ($padded) {
- return $prefix . str_pad($numberNext, $digits, '0', STR_PAD_LEFT);
- }
-
- return $numberNext;
- }
-
- public function incrementNumber(Model $model, string $type): void
- {
- $model->newQuery()
- ->where('type', $type)
- ->increment('number_next');
- }
- }
|