Merge branch 'master' of github.com:akaunting/akaunting

This commit is contained in:
Cüneyt Şentürk
2021-06-22 17:48:59 +03:00
15 changed files with 175 additions and 38 deletions

View File

@ -671,7 +671,7 @@ abstract class DocumentIndex extends Base
return $class;
}
return 'col-xs-4 col-sm-4 col-md-4 col-lg-2 col-xl-2 text-left';
return 'col-xs-4 col-sm-4 col-md-4 col-lg-2 col-xl-2 text-left long-texts';
}
protected function getClassAmount($type, $classAmount)

View File

@ -236,6 +236,12 @@ abstract class DocumentShow extends Base
/** @var bool */
public $hideTimelineCreate;
/** @var string */
public $textDocumentTitle;
/** @var string */
public $textDocumentSubheading;
/** @var string */
public $textTimelineCreateTitle;
@ -377,6 +383,7 @@ abstract class DocumentShow extends Base
string $textHeaderContact = '', string $textHeaderAmount = '', string $textHeaderDueAt = '',
string $classHeaderStatus = '', string $classHeaderContact = '', string $classHeaderAmount = '', string $classHeaderDueAt = '', string $classFooterHistories = '', string $classFooterTransactions = '',
bool $hideHeaderStatus = false, bool $hideHeaderContact = false, bool $hideHeaderAmount = false, bool $hideHeaderDueAt = false,
string $textDocumentTitle = '', string $textDocumentSubheading = '',
string $textTimelineCreateTitle = '', string $textTimelineCreateMessage = '', string $textTimelineSentTitle = '', string $textTimelineSentStatusDraft = '', string $textTimelineSentStatusMarkSent = '', string $textTimelineSentStatusReceived = '', string $textTimelineSendStatusMail = '',
string $textTimelineGetPaidTitle = '', string $textTimelineGetPaidStatusAwait = '', string $textTimelineGetPaidStatusPartiallyPaid = '', string $textTimelineGetPaidMarkPaid = '', string $textTimelineGetPaidAddPayment = '',
bool $hideTimelineCreate = false, bool $hideCompanyLogo = false, bool $hideCompanyDetails = false,
@ -474,6 +481,8 @@ abstract class DocumentShow extends Base
$this->hideButtonShare = $hideButtonShare;
$this->hideButtonPaid = $hideButtonPaid;
$this->textDocumentTitle = $this->getTextDocumentTitle($type, $textDocumentTitle);
$this->textDocumentSubheading = $this->gettextDocumentSubheading($type, $textDocumentSubheading);
$this->textTimelineCreateTitle = $this->getTextTimelineCreateTitle($type, $textTimelineCreateTitle);
$this->textTimelineCreateMessage = $this->getTextTimelineCreateMessage($type, $textTimelineCreateMessage);
$this->textTimelineSentTitle = $this->getTextTimelineSentTitle($type, $textTimelineSentTitle);
@ -1136,6 +1145,44 @@ abstract class DocumentShow extends Base
return $hideTimelineStatuses;
}
protected function getTextDocumentTitle($type, $textDocumentTitle)
{
if (!empty($textDocumentTitle)) {
return $textDocumentTitle;
}
$translation = $this->getTextFromConfig($type, 'document_title', 'title');
if (!empty($translation)) {
return $translation;
}
if (!empty(setting($type . '.title'))) {
return setting($type . '.title');
}
return setting('invoice.title');
}
protected function getTextDocumentSubheading($type, $textDocumentSubheading)
{
if (!empty($textDocumentSubheading)) {
return $textDocumentSubheading;
}
$translation = $this->getTextFromConfig($type, 'document_subheading', 'subheading');
if (!empty($translation)) {
return $translation;
}
if (!empty(setting($type . '.subheading'))) {
return setting($type . '.subheading');
}
return setting('invoice.subheading');
}
protected function getTextTimelineCreateTitle($type, $textTimelineCreateTitle)
{
if (!empty($textTimelineCreateTitle)) {

View File

@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Log;
use Image;
use Intervention\Image\Exception\NotReadableException;
use Storage;
use Illuminate\Support\Str;
abstract class DocumentTemplate extends Base
{
@ -68,6 +69,12 @@ abstract class DocumentTemplate extends Base
public $hideDueAt;
/** @var string */
public $textDocumentTitle;
/** @var string */
public $textDocumentSubheading;
public $textContactInfo;
/** @var string */
@ -121,6 +128,7 @@ abstract class DocumentTemplate extends Base
bool $hideCompanyName = false, bool $hideCompanyAddress = false, bool $hideCompanyTaxNumber = false, bool $hideCompanyPhone = false, bool $hideCompanyEmail = false, bool $hideContactInfo = false,
bool $hideContactName = false, bool $hideContactAddress = false, bool $hideContactTaxNumber = false, bool $hideContactPhone = false, bool $hideContactEmail = false,
bool $hideOrderNumber = false, bool $hideDocumentNumber = false, bool $hideIssuedAt = false, bool $hideDueAt = false,
string $textDocumentTitle = '', string $textDocumentSubheading = '',
string $textContactInfo = '', string $textDocumentNumber = '', string $textOrderNumber = '', string $textIssuedAt = '', string $textDueAt = '',
bool $hideItems = false, bool $hideName = false, bool $hideDescription = false, bool $hideQuantity = false, bool $hidePrice = false, bool $hideDiscount = false, bool $hideAmount = false, bool $hideNote = false,
string $textItems = '', string $textQuantity = '', string $textPrice = '', string $textAmount = ''
@ -151,6 +159,8 @@ abstract class DocumentTemplate extends Base
$this->hideIssuedAt = $hideIssuedAt;
$this->hideDueAt = $hideDueAt;
$this->textDocumentTitle = $this->getTextDocumentTitle($type, $textDocumentTitle);
$this->textDocumentSubheading = $this->gettextDocumentSubheading($type, $textDocumentSubheading);
$this->textContactInfo = $this->getTextContactInfo($type, $textContactInfo);
$this->textIssuedAt = $this->getTextIssuedAt($type, $textIssuedAt);
$this->textDocumentNumber = $this->getTextDocumentNumber($type, $textDocumentNumber);
@ -259,6 +269,44 @@ abstract class DocumentTemplate extends Base
return $backgroundColor;
}
protected function getTextDocumentTitle($type, $textDocumentTitle)
{
if (!empty($textDocumentTitle)) {
return $textDocumentTitle;
}
if (!empty(setting($type . '.title'))) {
return setting($type . '.title');
}
$translation = $this->getTextFromConfig($type, 'document_title', Str::plural($type));
if (!empty($translation)) {
return trans_choice($translation, 1);
}
return setting('invoice.title');
}
protected function getTextDocumentSubheading($type, $textDocumentSubheading)
{
if (!empty($textDocumentSubheading)) {
return $textDocumentSubheading;
}
if (!empty(setting($type . '.subheading'))) {
return setting($type . '.subheading');
}
$translation = $this->getTextFromConfig($type, 'document_subheading', 'subheading');
if (!empty($translation)) {
return trans($translation);
}
return false;
}
protected function getTextDocumentNumber($type, $textDocumentNumber)
{
if (!empty($textDocumentNumber)) {

View File

@ -59,19 +59,25 @@ class ReportCache extends Command
$reports = Report::orderBy('name')->get();
foreach ($reports as $report) {
$class = Utility::getClassInstance($report, false);
try {
$class = Utility::getClassInstance($report, false);
if (empty($class)) {
continue;
if (empty($class)) {
continue;
}
$ttl = 3600 * 6; // 6 hours
Cache::forget('reports.totals.' . $report->id);
Cache::remember('reports.totals.' . $report->id, $ttl, function () use ($class) {
return $class->getGrandTotal();
});
} catch (\Throwable $e) {
$this->error($e->getMessage());
report($e);
}
$ttl = 3600 * 6; // 6 hours
Cache::forget('reports.totals.' . $report->id);
Cache::remember('reports.totals.' . $report->id, $ttl, function () use ($class) {
return $class->getGrandTotal();
});
}
}
}

View File

@ -37,7 +37,7 @@ class User extends FormRequest
$id = is_numeric($this->user) ? $this->user : $this->user->getAttribute('id');
$password = '';
$companies = $this->user->can('read-common-companies') ? 'required' : '';
$roles = $this->user->can('read-auth-roles') ? 'required' : '';
$roles = $this->user->can('read-auth-roles') ? 'required|array' : '';
if ($this->user->contact) {
$email .= '|unique:contacts,NULL,'
@ -51,7 +51,7 @@ class User extends FormRequest
$id = null;
$password = 'required|';
$companies = 'required';
$roles = 'required';
$roles = 'required|array';
}
$email .= '|unique:users,email,' . $id . ',id,deleted_at,NULL';

View File

@ -51,8 +51,12 @@ class Version2117 extends Listener
protected function cacheReports()
{
Report::all()->each(function ($report) {
Cache::put('reports.totals.' . $report->id, Utility::getClassInstance($report)->getGrandTotal());
});
try {
Report::all()->each(function ($report) {
Cache::put('reports.totals.' . $report->id, Utility::getClassInstance($report)->getGrandTotal());
});
} catch (\Throwable $e) {
report($e);
}
}
}