Skip to content

Commit

Permalink
Merge pull request #33 from insane-code/fix/loger-changes
Browse files Browse the repository at this point in the history
Fix/loger changes
  • Loading branch information
jesusantguerrero authored Jun 25, 2023
2 parents cad50c2 + 44c5c4a commit fea8813
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 17 deletions.
3 changes: 2 additions & 1 deletion src/Models/Core/Account.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,14 @@ public function transactionLines()
return $this->hasMany(TransactionLine::class)->orderByDesc('date');
}

public function transactionSplits($limit = 25)
public function transactionSplits($limit = 25, $startDate, $endDate)
{
return Transaction::whereHas('lines', function ($query) {
$query->where('account_id', $this->id);
})
->with(['splits','payee', 'category', 'splits.payee','account', 'counterAccount'])
->orderByDesc('date')
->whereBetween('date', [$startDate, $endDate])
->limit($limit)
->get();
}
Expand Down
1 change: 1 addition & 0 deletions src/Models/Core/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class Category extends Model
'depth',
'index',
'type',
'color',
'resource_type'
];

Expand Down
46 changes: 30 additions & 16 deletions src/Models/Core/Transaction.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,18 +131,20 @@ public function calculateTotal()
$this->updateQuietly(['total' => $total]);
}

static public function createTransaction($transactionData) {
static public function sanitizeData($transactionData, Transaction $transaction = null) {
$account = Account::find($transactionData['account_id']);
$currencyCode = $transactionData['currency_code'] ?? $account->currency_code;
$payeeId = $transactionData["payee_id"] ?? null;
$isNewPayee = Str::contains($payeeId, "new::");

if (!isset($transactionData["payee_id"]) && $transactionData["counter_account_id"]) {
if (isset($transactionData["is_transfer"]) && $transactionData["is_transfer"]) {
$payeeId = "";
} else if (!isset($transactionData["payee_id"]) && $transactionData["counter_account_id"]) {
$payee = Payee::findOrCreateByName($transactionData, Account::find($transactionData["counter_account_id"]));
$payeeId = $payee->id;
} else if ($payeeId == 'new' || $isNewPayee) {
$label = $transactionData['payee_label'] ?? trim(Str::replace($transactionData["payee_id"], 'new::', '')) ?? 'General Provider';
$payee = Payee::findOrCreateByName($transactionData, $label);
$label = $transactionData['payee_label'] ?? trim(Str::replace('new::', '', $transactionData["payee_id"])) ?? 'General Provider';
$payee = Payee::findOrCreateByName($transaction?->toArray() ?? $transactionData, $label);
$payeeId = $payee->id;
$transactionData["payee_id"] = $payeeId;
$transactionData["counter_account_id"] = $payee->account_id;
Expand All @@ -151,21 +153,31 @@ static public function createTransaction($transactionData) {
$transactionData["counter_account_id"] = $transactionData["counter_account_id"] ?? $payee->account_id;
}

$transactionData['currency_code'] = $currencyCode;
$transactionData['payee_id'] = $payeeId;

return $transactionData;
}


static public function createTransaction($transactionData) {
$data = self::sanitizeData($transactionData);

$transaction = Transaction::where([
"team_id" => $transactionData['team_id'],
'date' => $transactionData['date'],
'total' => $transactionData['total'],
'description' => $transactionData['description'],
'currency_code' => $currencyCode,
'direction' => $transactionData['direction'],
'payee_id' => $payeeId,
"team_id" => $data['team_id'],
'date' => $data['date'],
'total' => $data['total'],
'description' => $data['description'],
'currency_code' => $data['currency_code'],
'direction' => $data['direction'],
'payee_id' => $data['payee_id'],
])->first();

if ($transaction) {
$transaction->updateTransaction($transactionData);
$transaction->updateTransaction($data);
} else {
$items = isset($transactionData['items']) ? $transactionData['items'] : [];
$transaction = Transaction::create($transactionData);
$items = isset($data['items']) ? $data['items'] : [];
$transaction = Transaction::create($data);
$transaction->createLines($items);
}

Expand All @@ -174,8 +186,10 @@ static public function createTransaction($transactionData) {
}

public function updateTransaction($transactionData) {
$this->update($transactionData);
$items = isset($transactionData['items']) ? $transactionData['items'] : [];
$data = self::sanitizeData($transactionData, $this);

$this->update($data);
$items = isset($data['items']) ? $data['items'] : [];
$this->createLines($items);
return $this;
}
Expand Down

0 comments on commit fea8813

Please sign in to comment.