mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Transaction events
This commit is contained in:
parent
26ef7c7c0d
commit
e4bf727711
49
app/DataMapper/Transactions/MarkPaidTransaction.php
Normal file
49
app/DataMapper/Transactions/MarkPaidTransaction.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\DataMapper\Transactions;
|
||||
|
||||
/**
|
||||
* MarkPaidTransaction.
|
||||
*/
|
||||
class MarkPaidTransaction
|
||||
{
|
||||
|
||||
public array $model = [
|
||||
'client_id',
|
||||
'invoice_id',
|
||||
'payment_id',
|
||||
'credit_id',
|
||||
'client_balance',
|
||||
'client_paid_to_date',
|
||||
'client_credit_balance',
|
||||
'invoice_balance',
|
||||
'invoice_amount',
|
||||
'invoice_partial',
|
||||
'invoice_paid_to_date',
|
||||
'invoice_status',
|
||||
'payment_amount',
|
||||
'payment_applied',
|
||||
'payment_refunded',
|
||||
'payment_status',
|
||||
'paymentables',
|
||||
'event_id',
|
||||
'timestamp',
|
||||
'payment_request',
|
||||
'metadata',
|
||||
'credit_balance',
|
||||
'credit_amount',
|
||||
'credit_status',
|
||||
];
|
||||
|
||||
|
||||
|
||||
}
|
63
app/Jobs/Ninja/TransactionLog.php
Normal file
63
app/Jobs/Ninja/TransactionLog.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Ninja;
|
||||
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Models\TransactionEvent;
|
||||
use App\Utils\Ninja;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class TransactionLog implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
|
||||
private array $payload;
|
||||
|
||||
private string $db;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->db = $db;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
if(!Ninja::isHosted())
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function persist()
|
||||
{
|
||||
MultiDB::setDB($this->db);
|
||||
|
||||
TransactionEvent::create($this->payload);
|
||||
}
|
||||
}
|
30
app/Models/TransactionEvent.php
Normal file
30
app/Models/TransactionEvent.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
/**
|
||||
* Class Bank.
|
||||
*/
|
||||
class TransactionEvent extends StaticModel
|
||||
{
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
public $guarded = ['id'];
|
||||
|
||||
public $casts = [
|
||||
'metadata' => 'object',
|
||||
'payment_request' => 'array',
|
||||
'paymentables' => 'array',
|
||||
];
|
||||
|
||||
}
|
58
database/migrations/2022_03_09_053508_transaction_events.php
Normal file
58
database/migrations/2022_03_09_053508_transaction_events.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class TransactionEvents extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('transaction_events', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->unsignedInteger('client_id')->index();
|
||||
$table->unsignedInteger('invoice_id');
|
||||
$table->unsignedInteger('payment_id');
|
||||
$table->unsignedInteger('credit_id');
|
||||
$table->decimal('client_balance', 16, 4)->default(0);
|
||||
$table->decimal('client_paid_to_date', 16, 4)->default(0);
|
||||
$table->decimal('client_credit_balance', 16, 4)->default(0);
|
||||
$table->decimal('invoice_balance', 16, 4)->default(0);
|
||||
$table->decimal('invoice_amount', 16, 4)->default(0);
|
||||
$table->decimal('invoice_partial', 16, 4)->default(0);
|
||||
$table->decimal('invoice_paid_to_date', 16, 4)->default(0);
|
||||
$table->unsignedInteger('invoice_status')->nullable();
|
||||
$table->decimal('payment_amount', 16, 4)->default(0);
|
||||
$table->decimal('payment_applied', 16, 4)->default(0);
|
||||
$table->decimal('payment_refunded', 16, 4)->default(0);
|
||||
$table->unsignedInteger('payment_status')->nullable();
|
||||
$table->mediumText('paymentables')->nullable();
|
||||
$table->unsignedInteger('event_id');
|
||||
$table->unsignedInteger('timestamp');
|
||||
$table->mediumText('payment_request')->nullable();
|
||||
$table->mediumText('metadata')->nullable();
|
||||
$table->decimal('credit_balance', 16, 4)->default(0);
|
||||
$table->decimal('credit_amount', 16, 4)->default(0);
|
||||
$table->unsignedInteger('credit_status')->nullable();
|
||||
|
||||
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade')->onUpdate('cascade');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user