fixed recurring for queues

This commit is contained in:
Denis Duliçi 2021-04-01 11:17:02 +03:00
parent 34a553c02a
commit 97d7abf13a
5 changed files with 13 additions and 21 deletions

View File

@ -45,7 +45,7 @@ class CreateTransaction extends Job
}
// Recurring
$this->transaction->createRecurring();
$this->transaction->createRecurring($this->request->all());
});
event(new TransactionCreated($this->transaction));

View File

@ -49,7 +49,7 @@ class UpdateTransaction extends Job
}
// Recurring
$this->transaction->updateRecurring();
$this->transaction->updateRecurring($this->request->all());
});
return $this->transaction;

View File

@ -54,7 +54,7 @@ class CreateDocument extends Job
$this->document->update($this->request->all());
$this->document->createRecurring();
$this->document->createRecurring($this->request->all());
});
event(new DocumentCreated($this->document, $this->request));

View File

@ -80,7 +80,7 @@ class UpdateDocument extends Job
$this->document->update($this->request->all());
$this->document->updateRecurring();
$this->document->updateRecurring($this->request->all());
});
event(new DocumentUpdated($this->document, $this->request));

View File

@ -9,20 +9,18 @@ use Recurr\Transformer\ArrayTransformerConfig;
trait Recurring
{
public function createRecurring()
public function createRecurring($request)
{
$request = request();
if ($request->get('recurring_frequency', 'no') == 'no') {
if (empty($request['recurring_frequency']) || ($request['recurring_frequency'] == 'no')) {
return;
}
$frequency = ($request['recurring_frequency'] != 'custom') ? $request['recurring_frequency'] : $request['recurring_custom_frequency'];
$interval = (($request['recurring_frequency'] != 'custom') || ($request['recurring_interval'] < 1)) ? 1 : (int) $request['recurring_interval'];
$started_at = $request->get('paid_at') ?: $request->get('issued_at');
$started_at = $request['paid_at'] ?: $request['issued_at'];
$this->recurring()->create([
'company_id' => session('company_id'),
'company_id' => $this->company_id,
'frequency' => $frequency,
'interval' => $interval,
'started_at' => $started_at,
@ -30,29 +28,23 @@ trait Recurring
]);
}
public function updateRecurring()
public function updateRecurring($request)
{
$request = request();
if ($request->get('recurring_frequency', 'no') == 'no') {
if (empty($request['recurring_frequency']) || ($request['recurring_frequency'] == 'no')) {
$this->recurring()->delete();
return;
}
$frequency = ($request['recurring_frequency'] != 'custom') ? $request['recurring_frequency'] : $request['recurring_custom_frequency'];
$interval = (($request['recurring_frequency'] != 'custom') || ($request['recurring_interval'] < 1)) ? 1 : (int) $request['recurring_interval'];
$started_at = $request->get('paid_at') ?: $request->get('issued_at');
$started_at = $request['paid_at'] ?: $request['issued_at'];
$recurring = $this->recurring();
if ($recurring->count()) {
$function = 'update';
} else {
$function = 'create';
}
$function = $recurring->count() ? 'create' : 'update';
$recurring->$function([
'company_id' => session('company_id'),
'company_id' => $this->company_id,
'frequency' => $frequency,
'interval' => $interval,
'started_at' => $started_at,