fix up group transactions bulk purchase orders

This commit is contained in:
omair saleh
2022-07-15 13:08:29 +08:00
parent c51de54040
commit dc992de2fb
4 changed files with 24 additions and 4 deletions
@@ -4,6 +4,7 @@
namespace App\Classes\Modules\Transactions\ControllersLogic;
use App\Classes\Modules\Transactions\Processors\CreateSupplierTransactionProcessor;
use App\Classes\Modules\Transactions\Services\GeneratesTransactionBillNumber;
use App\Models\Document;
use App\Models\Group;
@@ -45,19 +46,25 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
/** @var CreatesFiles */
private $createsFile;
/** @var GeneratesTransactionBillNumber */
private $generatesTransactionBillNumber;
/**
* CreateSupplierTransactionLogic constructor.
* @param FetchesCompany $fetchesCompany
* @param CreateSupplierTransactionProcessor $createSupplierTransactionProcessor
* @param CreatesDocument $createsDocument
* @param CreatesFiles $createsFile
* @param GeneratesTransactionBillNumber $generatesTransactionBillNumber
*/
public function __construct(FetchesCompany $fetchesCompany, CreateSupplierTransactionProcessor $createSupplierTransactionProcessor, CreatesDocument $createsDocument, CreatesFiles $createsFile)
public function __construct(FetchesCompany $fetchesCompany, CreateSupplierTransactionProcessor $createSupplierTransactionProcessor, CreatesDocument $createsDocument, CreatesFiles $createsFile, GeneratesTransactionBillNumber $generatesTransactionBillNumber)
{
$this->fetchesCompany = $fetchesCompany;
$this->createSupplierTransactionProcessor = $createSupplierTransactionProcessor;
$this->createsDocument = $createsDocument;
$this->createsFile = $createsFile;
$this->generatesTransactionBillNumber = $generatesTransactionBillNumber;
}
public function logic(Request $request) : JsonResponse
@@ -101,6 +108,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
$group->issuer = $issuer;
$group->receiver = $receiver;
$group->reference = $this->generatesTransactionBillNumber->execute('SPO-');
$group->amount = $amount;
$group->original_amount = $original_amount;
$group->currency_id = $currency_id;
@@ -23,10 +23,13 @@ class GeneratesTransactionBillNumber
/**
* @param string $prefix
* @param Carbon|null $date
* @return string
*/
public function execute(string $prefix): string {
$date = carbon::now();
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);
@@ -16,6 +16,7 @@ class CreateGroupsTable extends Migration
{
Schema::create('groups', function (Blueprint $table) {
$table->id();
$table->string('reference')->unique();
$table->foreignId('issuer')->unsigned();
$table->foreignId('receiver')->unsigned();
$table->decimal('amount', 14, 5)->default(0.00);
@@ -5,6 +5,7 @@ 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\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\DocumentType;
use App\Models\Document;
@@ -24,17 +25,23 @@ class RecoverGroupTransactionTableSeeder extends Seeder
/** @var CreatesFiles */
private $createsFile;
/** @var GeneratesTransactionBillNumber */
private $generatesTransactionBillNumber;
/**
* RecoverGroupTransactionTableSeeder constructor.
* @param CreatesDocument $createsDocument
* @param CreatesFiles $createsFile
* @param GeneratesTransactionBillNumber $generatesTransactionBillNumber
*/
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFile)
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFile, GeneratesTransactionBillNumber $generatesTransactionBillNumber)
{
$this->createsDocument = $createsDocument;
$this->createsFile = $createsFile;
$this->generatesTransactionBillNumber = $generatesTransactionBillNumber;
}
/**
* Run the database seeds.
*
@@ -91,6 +98,7 @@ class RecoverGroupTransactionTableSeeder extends Seeder
$group->issuer = $issuer;
$group->receiver = $receiver;
$group->reference = $this->generatesTransactionBillNumber->execute('SPO-', $date);
$group->amount = $amount;
$group->original_amount = $original_amount;
$group->currency_id = $currency_id;