mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
fix up group transactions bulk purchase orders
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@@ -24,6 +25,7 @@ class CreateGroupsTable extends Migration
|
||||
$table->decimal('currency_rate', 14, 5)->default(0.00);
|
||||
$table->decimal('tax', 14, 5)->default(0.00);
|
||||
$table->decimal('service_charge', 14, 5)->default(0.00);
|
||||
$table->integer('status')->default(ApprovalStatus::PENDING_VERIFICATION);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,14 +1,39 @@
|
||||
<?php
|
||||
ini_set('memory_limit', '-1');
|
||||
|
||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
||||
use App\Classes\Modules\Documents\Services\CreatesFiles;
|
||||
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
|
||||
{
|
||||
|
||||
/** @var CreatesDocument */
|
||||
private $createsDocument;
|
||||
|
||||
/** @var CreatesFiles */
|
||||
private $createsFile;
|
||||
|
||||
/**
|
||||
* RecoverGroupTransactionTableSeeder constructor.
|
||||
* @param CreatesDocument $createsDocument
|
||||
* @param CreatesFiles $createsFile
|
||||
*/
|
||||
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFile)
|
||||
{
|
||||
$this->createsDocument = $createsDocument;
|
||||
$this->createsFile = $createsFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
@@ -17,24 +42,22 @@ class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
{
|
||||
DB::beginTransaction();
|
||||
|
||||
$document = Document::where('document_type', 'CURRENCY_VENDOR_ORDER')->get();
|
||||
$transaction_group = Transaction::
|
||||
select('issuer', 'currency_rate', 'type', DB::raw('count(DISTINCT id) as total'), DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d') as new_date"))
|
||||
select('issuer', 'currency_rate', 'type', DB::raw('count(DISTINCT id) as total'), DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d %H:%i') as new_date"))
|
||||
->where('type', 3)
|
||||
->groupBy(
|
||||
'issuer',
|
||||
'currency_rate',
|
||||
'new_date'
|
||||
)
|
||||
->get();
|
||||
// %H:%i
|
||||
->orderBy('id')->get();
|
||||
|
||||
foreach ($transaction_group as $key => $row) {
|
||||
$transaction = Transaction::
|
||||
foreach ($transaction_group as $group) {
|
||||
$transactions = Transaction::
|
||||
where('type', 3)
|
||||
->where('issuer', $row->issuer)
|
||||
->where('currency_rate', $row->currency_rate)
|
||||
->where(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d')"), $row->new_date)
|
||||
->where('issuer', $group->issuer)
|
||||
->where('currency_rate', $group->currency_rate)
|
||||
->where(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d %H:%i')"), $group->new_date)
|
||||
->get();
|
||||
|
||||
$group = new Group();
|
||||
@@ -51,18 +74,18 @@ class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
$tax = 0;
|
||||
$service_charge = 0;
|
||||
|
||||
foreach ($transaction as $key_2 => $row_2) {
|
||||
$group->transactions()->sync($row_2->id, false);
|
||||
$issuer = $row_2->issuer;
|
||||
$date = $row_2->created_at;
|
||||
$receiver = $row_2->receiver;
|
||||
$amount += $row_2->amount;
|
||||
$original_amount += $row_2->original_amount;
|
||||
$currency_id = $row_2->currency_id;
|
||||
$original_currency_id = $row_2->original_currency_id;
|
||||
$currency_rate = $row_2->currency_rate;
|
||||
$tax += $row_2->tax;
|
||||
$service_charge += $row_2->service_charge;
|
||||
foreach ($transactions as $transaction) {
|
||||
$group->transactions()->sync($transaction->id, false);
|
||||
$issuer = $transaction->issuer;
|
||||
$date = $transaction->created_at;
|
||||
$receiver = $transaction->receiver;
|
||||
$amount += $transaction->amount;
|
||||
$original_amount += $transaction->original_amount;
|
||||
$currency_id = $transaction->currency_id;
|
||||
$original_currency_id = $transaction->original_currency_id;
|
||||
$currency_rate = $transaction->currency_rate;
|
||||
$tax += $transaction->tax;
|
||||
$service_charge += $transaction->service_charge;
|
||||
}
|
||||
|
||||
$group->issuer = $issuer;
|
||||
@@ -75,8 +98,23 @@ class RecoverGroupTransactionTableSeeder extends Seeder
|
||||
$group->tax = $tax;
|
||||
$group->service_charge = $service_charge;
|
||||
$group->created_at = $date;
|
||||
$group->updated_at = $date;
|
||||
|
||||
$group->update();
|
||||
|
||||
$pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $group->transactions, 'transferFeeTransactions' => $group->transferFees, 'supplier' => $group->issuerCompany]);
|
||||
|
||||
$object = new DocumentObject(
|
||||
DocumentType::CURRENCY_VENDOR_ORDER,
|
||||
[chunk_split('data:application/pdf;base64,'.base64_encode($pdf->output()))],
|
||||
'',
|
||||
ApprovalStatus::COMPLETED,
|
||||
'currency_vendor_order'
|
||||
);
|
||||
|
||||
/** @var Document $document */
|
||||
$document = $this->createsDocument->execute($group, $object);
|
||||
$this->createsFile->execute($document, $object);
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
|
||||
Reference in New Issue
Block a user