added source feature

This commit is contained in:
Denis Duliçi
2021-09-07 10:33:34 +03:00
parent 0a4e066451
commit c59c71b0f9
80 changed files with 475 additions and 63 deletions

View File

@ -18,6 +18,8 @@ trait Recurring
$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 = !empty($request['paid_at']) ? $request['paid_at'] : $request['issued_at'];
$source = !empty($request['created_from']) ? $request['created_from'] : source_name();
$owner = !empty($request['created_by']) ? $request['created_by'] : user_id();
$this->recurring()->create([
'company_id' => $this->company_id,
@ -25,6 +27,8 @@ trait Recurring
'interval' => $interval,
'started_at' => $started_at,
'count' => (int) $request['recurring_count'],
'created_from' => $source,
'created_by' => $owner,
]);
}
@ -40,16 +44,27 @@ trait Recurring
$started_at = !empty($request['paid_at']) ? $request['paid_at'] : $request['issued_at'];
$recurring = $this->recurring();
$model_exists = $recurring->count();
$function = $recurring->count() ? 'update' : 'create';
$recurring->$function([
$data = [
'company_id' => $this->company_id,
'frequency' => $frequency,
'interval' => $interval,
'started_at' => $started_at,
'count' => (int) $request['recurring_count'],
]);
];
if ($model_exists) {
$recurring->update($data);
} else {
$source = !empty($request['created_from']) ? $request['created_from'] : source_name();
$owner = !empty($request['created_by']) ? $request['created_by'] : user_id();
$recurring->create(array_merge($data, [
'created_from' => $source,
'created_by' => $owner,
]));
}
}
public function getRecurringSchedule($set_until_date = true)