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

@@ -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
{

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)

37
app/Traits/Sources.php Normal file
View 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;
}
}

View File

@@ -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);
}