mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
fix group reference duplicate bug
This commit is contained in:
+22
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Transactions\Services;
|
||||
|
||||
|
||||
use App\Models\Group;
|
||||
|
||||
class ChecksIfGroupTransactionBillNumberExists
|
||||
{
|
||||
|
||||
private $repository;
|
||||
|
||||
public function __construct(Group $repository)
|
||||
{
|
||||
$this->repository = $repository;
|
||||
}
|
||||
|
||||
public function execute(string $bill_no): bool {
|
||||
return $this->repository->where('reference', $bill_no)->exists();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Transactions\Services;
|
||||
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
class GeneratesGroupTransactionBillNumber
|
||||
{
|
||||
|
||||
/** @var ChecksIfGroupTransactionBillNumberExists */
|
||||
private $checksIfGroupTransactionBillNumberExists;
|
||||
|
||||
/**
|
||||
* GeneratesGroupTransactionBillNumber constructor.
|
||||
* @param ChecksIfGroupTransactionBillNumberExists $checksIfGroupTransactionBillNumberExists
|
||||
*/
|
||||
public function __construct(ChecksIfGroupTransactionBillNumberExists $checksIfGroupTransactionBillNumberExists)
|
||||
{
|
||||
$this->checksIfGroupTransactionBillNumberExists = $checksIfGroupTransactionBillNumberExists;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $prefix
|
||||
* @param Carbon|null $date
|
||||
* @return string
|
||||
*/
|
||||
public function execute(string $prefix, ?Carbon $date = null): string {
|
||||
if(!$date){
|
||||
$date = carbon::now();
|
||||
}
|
||||
|
||||
$billNumber = $prefix.$date->format('Y').$date->format('m').'-'.mt_rand(10000, 99999);
|
||||
|
||||
return !$this->checksIfGroupTransactionBillNumberExists->execute($billNumber) ? $billNumber : self::execute($prefix);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,19 +2,15 @@
|
||||
ini_set('memory_limit', '-1');
|
||||
|
||||
use App\Classes\Jobs\GenerateGroupTransactionsWhiteForm;
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
||||
use App\Classes\Modules\Documents\Services\CreatesFiles;
|
||||
use App\Classes\Modules\Transactions\Services\GeneratesTransactionBillNumber;
|
||||
use App\Classes\Modules\Transactions\Services\GeneratesGroupTransactionBillNumber;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\DocumentType;
|
||||
use App\Models\Document;
|
||||
use App\Models\Transaction;
|
||||
use App\Models\Group;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Meneses\LaravelMpdf\Facades\LaravelMpdf;
|
||||
|
||||
class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
{
|
||||
@@ -25,20 +21,20 @@ class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
/** @var CreatesFiles */
|
||||
private $createsFile;
|
||||
|
||||
/** @var GeneratesTransactionBillNumber */
|
||||
private $generatesTransactionBillNumber;
|
||||
/** @var GeneratesGroupTransactionBillNumber */
|
||||
private $generatesGroupTransactionBillNumber;
|
||||
|
||||
/**
|
||||
* RecoverGroupTransactionTableSeeder constructor.
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param CreatesFiles $createsFile
|
||||
* @param GeneratesTransactionBillNumber $generatesTransactionBillNumber
|
||||
* @param GeneratesGroupTransactionBillNumber $generatesGroupTransactionBillNumber
|
||||
*/
|
||||
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFile, GeneratesTransactionBillNumber $generatesTransactionBillNumber)
|
||||
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFile, GeneratesGroupTransactionBillNumber $generatesGroupTransactionBillNumber)
|
||||
{
|
||||
$this->createsDocument = $createsDocument;
|
||||
$this->createsFile = $createsFile;
|
||||
$this->generatesTransactionBillNumber = $generatesTransactionBillNumber;
|
||||
$this->generatesGroupTransactionBillNumber = $generatesGroupTransactionBillNumber;
|
||||
}
|
||||
|
||||
|
||||
@@ -98,7 +94,7 @@ class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
|
||||
$group->issuer = $issuer;
|
||||
$group->receiver = $receiver;
|
||||
$group->reference = $this->generatesTransactionBillNumber->execute('SPO-', $date);
|
||||
$group->reference = $this->generatesGroupTransactionBillNumber->execute('SPO-', $date);
|
||||
$group->amount = $amount;
|
||||
$group->original_amount = $original_amount;
|
||||
$group->currency_id = $currency_id;
|
||||
|
||||
Reference in New Issue
Block a user