added source feature
This commit is contained in:
@@ -4,9 +4,9 @@ namespace App\Traits;
|
||||
|
||||
use App\Models\Module\Module;
|
||||
use App\Traits\SiteApi;
|
||||
use App\Utilities\Date;
|
||||
use App\Utilities\Info;
|
||||
use Cache;
|
||||
use Date;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
trait Modules
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
37
app/Traits/Sources.php
Normal file
37
app/Traits/Sources.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
trait Sources
|
||||
{
|
||||
public function isSourcable(): bool
|
||||
{
|
||||
$sourcable = $this->sourcable ?: true;
|
||||
|
||||
return ($sourcable === true) && in_array('created_from', $this->getFillable());
|
||||
}
|
||||
|
||||
public function isNotSourcable(): bool
|
||||
{
|
||||
return ! $this->isSourcable();
|
||||
}
|
||||
|
||||
public function getSourceName($request = null): string
|
||||
{
|
||||
if (app()->runningInConsole()) {
|
||||
$source = 'console';
|
||||
}
|
||||
|
||||
if (empty($source)) {
|
||||
$request = $request ?: request();
|
||||
|
||||
$source = $request->isApi() ? 'api' : null;
|
||||
}
|
||||
|
||||
if (empty($source)) {
|
||||
$source = 'ui';
|
||||
}
|
||||
|
||||
return $source;
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,8 @@ trait Uploads
|
||||
return MediaUploader::makePrivate()
|
||||
->beforeSave(function(MediaModel $media) {
|
||||
$media->company_id = company_id();
|
||||
$media->created_from = source_name();
|
||||
$media->created_by = user_id();
|
||||
})
|
||||
->fromSource($file)
|
||||
->toDirectory($path)
|
||||
@@ -41,6 +43,8 @@ trait Uploads
|
||||
return MediaUploader::makePrivate()
|
||||
->beforeSave(function(MediaModel $media) {
|
||||
$media->company_id = company_id();
|
||||
$media->created_from = source_name();
|
||||
$media->created_by = user_id();
|
||||
})
|
||||
->importPath($disk, $path);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user