Merge branch 'master' of https://github.com/brkcvn/akaunting into form-elements
This commit is contained in:
commit
2c4618a5a2
@ -21,8 +21,11 @@ class User extends JsonResource
|
||||
'name' => $this->name,
|
||||
'email' => $this->email,
|
||||
'locale' => $this->locale,
|
||||
'landing_page' => $this->landing_page,
|
||||
'enabled' => $this->enabled,
|
||||
'created_from' => $this->created_from,
|
||||
'created_by' => $this->created_by,
|
||||
'last_logged_in_at' => $this->last_logged_in_at ? $this->last_logged_in_at->toIso8601String() : '',
|
||||
'created_at' => $this->created_at ? $this->created_at->toIso8601String() : '',
|
||||
'updated_at' => $this->updated_at ? $this->updated_at->toIso8601String() : '',
|
||||
'companies' => [static::$wrap => Company::collection($this->companies)],
|
||||
|
@ -32,6 +32,7 @@ class ShowInNotifications
|
||||
|
||||
foreach ($updates as $key => $update) {
|
||||
$prefix = ($key == 'core') ? 'core' : 'module';
|
||||
$name = ($prefix == 'core') ? 'Akaunting' : module($key)->getName();
|
||||
|
||||
$new = new DatabaseNotification();
|
||||
$new->id = $key;
|
||||
@ -39,8 +40,8 @@ class ShowInNotifications
|
||||
$new->notifiable_type = "users";
|
||||
$new->notifiable_id = user()->id;
|
||||
$new->data = [
|
||||
'title' => $key . ' (v' . $update . ')',
|
||||
'description' => '<a href="' . route('updates.index') . '">' . trans('install.update.' . $prefix) . '</a>',
|
||||
'title' => $name . ' (v' . $update . ')',
|
||||
'description' => '<a href="' . route('updates.index') . '">' . trans('install.update.' . $prefix, ['module' => $name]) . '</a>',
|
||||
];
|
||||
$new->created_at = \Carbon\Carbon::now();
|
||||
|
||||
|
@ -53,6 +53,22 @@ class Widget extends Model
|
||||
return $this->hasManyThrough('App\Models\Auth\User', 'App\Models\Common\Dashboard');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the alias based on class.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAliasAttribute()
|
||||
{
|
||||
if (Str::startsWith($this->class, 'App\\')) {
|
||||
return 'core';
|
||||
}
|
||||
|
||||
$arr = explode('\\', $this->class);
|
||||
|
||||
return Str::kebab($arr[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new factory instance for the model.
|
||||
*
|
||||
|
@ -439,6 +439,10 @@ trait Modules
|
||||
return false;
|
||||
}
|
||||
|
||||
if (module($alias)->disabled()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! Module::alias($alias)->enabled()->first()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -4,10 +4,13 @@ namespace App\Utilities;
|
||||
|
||||
use App\Models\Common\Report;
|
||||
use App\Models\Module\Module;
|
||||
use App\Traits\Modules;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Reports
|
||||
{
|
||||
use Modules;
|
||||
|
||||
public static function getClasses($check_permission = true)
|
||||
{
|
||||
$classes = [];
|
||||
@ -23,7 +26,7 @@ class Reports
|
||||
Module::enabled()->each(function ($module) use (&$list) {
|
||||
$m = module($module->alias);
|
||||
|
||||
if (!$m || empty($m->get('reports'))) {
|
||||
if (! $m || $m->disabled() || empty($m->get('reports'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -51,6 +54,10 @@ class Reports
|
||||
return false;
|
||||
}
|
||||
|
||||
if (($model->alias != 'core') && (new static)->moduleIsDisabled($model->alias)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$class = $model->class;
|
||||
|
||||
return new $class($model, $load_data);
|
||||
|
@ -4,10 +4,13 @@ namespace App\Utilities;
|
||||
|
||||
use App\Models\Common\Widget;
|
||||
use App\Models\Module\Module;
|
||||
use App\Traits\Modules;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Widgets
|
||||
{
|
||||
use Modules;
|
||||
|
||||
public static $core_widgets = [
|
||||
'App\Widgets\Receivables',
|
||||
'App\Widgets\Payables',
|
||||
@ -27,13 +30,13 @@ class Widgets
|
||||
}
|
||||
|
||||
Module::enabled()->each(function ($module) use (&$list, $alias) {
|
||||
if (!in_array($alias, [$module->alias, 'all'])) {
|
||||
if (! in_array($alias, [$module->alias, 'all'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$m = module($module->alias);
|
||||
|
||||
if (!$m || empty($m->get('widgets'))) {
|
||||
if (! $m || $m->disabled() || empty($m->get('widgets'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -41,7 +44,7 @@ class Widgets
|
||||
});
|
||||
|
||||
foreach ($list as $class) {
|
||||
if (!class_exists($class) || ($check_permission && !static::canRead($class))) {
|
||||
if (! class_exists($class) || ($check_permission && ! static::canRead($class))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -62,7 +65,11 @@ class Widgets
|
||||
|
||||
$model = Widget::where('dashboard_id', session('dashboard_id'))->where('class', $class_name)->first();
|
||||
|
||||
if (!$model instanceof Widget) {
|
||||
if (($model->alias != 'core') && (new static)->moduleIsDisabled($model->alias)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! $model instanceof Widget) {
|
||||
$class = (new $class_name());
|
||||
|
||||
$model = new Widget();
|
||||
@ -79,6 +86,10 @@ class Widgets
|
||||
return false;
|
||||
}
|
||||
|
||||
if (($model->alias != 'core') && (new static)->moduleIsDisabled($model->alias)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$class_name = $model->class;
|
||||
}
|
||||
|
||||
@ -87,7 +98,7 @@ class Widgets
|
||||
|
||||
public static function show($model, ...$arguments)
|
||||
{
|
||||
if (!$class = static::getClassInstance($model)) {
|
||||
if (! $class = static::getClassInstance($model)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
65
composer.lock
generated
65
composer.lock
generated
@ -8,27 +8,28 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "akaunting/laravel-apexcharts",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/akaunting/laravel-apexcharts.git",
|
||||
"reference": "3b545508bec317c36a0cb83809de6e6cc8397832"
|
||||
"reference": "5d584f362afc080c5506abe13ac7d6ac3865d68f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/akaunting/laravel-apexcharts/zipball/3b545508bec317c36a0cb83809de6e6cc8397832",
|
||||
"reference": "3b545508bec317c36a0cb83809de6e6cc8397832",
|
||||
"url": "https://api.github.com/repos/akaunting/laravel-apexcharts/zipball/5d584f362afc080c5506abe13ac7d6ac3865d68f",
|
||||
"reference": "5d584f362afc080c5506abe13ac7d6ac3865d68f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"balping/json-raw-encoder": "^1.0",
|
||||
"ext-json": "*",
|
||||
"illuminate/support": ">=8.0",
|
||||
"php": ">=8.0"
|
||||
"illuminate/support": "^8.67|^9.0",
|
||||
"php": "^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": ">=6.0",
|
||||
"phpunit/phpunit": ">=9.0"
|
||||
"mockery/mockery": "^1.5",
|
||||
"orchestra/testbench": "^6.23|^7.4",
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -70,9 +71,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/akaunting/laravel-apexcharts/issues",
|
||||
"source": "https://github.com/akaunting/laravel-apexcharts/tree/2.0.1"
|
||||
"source": "https://github.com/akaunting/laravel-apexcharts/tree/2.0.2"
|
||||
},
|
||||
"time": "2022-06-16T14:48:25+00:00"
|
||||
"time": "2022-06-16T20:42:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "akaunting/laravel-debugbar-collector",
|
||||
@ -906,16 +907,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.225.5",
|
||||
"version": "3.227.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "09b404c6b80b9c31be15fa245e647a2f9fb5e733"
|
||||
"reference": "88d803113ade68604ec03c591d65e1e44406ab8e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/09b404c6b80b9c31be15fa245e647a2f9fb5e733",
|
||||
"reference": "09b404c6b80b9c31be15fa245e647a2f9fb5e733",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/88d803113ade68604ec03c591d65e1e44406ab8e",
|
||||
"reference": "88d803113ade68604ec03c591d65e1e44406ab8e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -923,9 +924,9 @@
|
||||
"ext-json": "*",
|
||||
"ext-pcre": "*",
|
||||
"ext-simplexml": "*",
|
||||
"guzzlehttp/guzzle": "^5.3.3 || ^6.2.1 || ^7.0",
|
||||
"guzzlehttp/guzzle": "^6.5.7 || ^7.4.4",
|
||||
"guzzlehttp/promises": "^1.4.0",
|
||||
"guzzlehttp/psr7": "^1.7.0 || ^2.1.1",
|
||||
"guzzlehttp/psr7": "^1.8.5 || ^2.3",
|
||||
"mtdowling/jmespath.php": "^2.6",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
@ -991,9 +992,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.225.5"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.227.0"
|
||||
},
|
||||
"time": "2022-06-15T19:35:13+00:00"
|
||||
"time": "2022-06-17T18:15:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "balping/json-raw-encoder",
|
||||
@ -1843,16 +1844,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "3.3.6",
|
||||
"version": "3.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21"
|
||||
"reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
|
||||
"reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/9f79d4650430b582f4598fe0954ef4d52fbc0a8a",
|
||||
"reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1867,11 +1868,11 @@
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "9.0.0",
|
||||
"jetbrains/phpstorm-stubs": "2022.1",
|
||||
"phpstan/phpstan": "1.6.3",
|
||||
"phpstan/phpstan": "1.7.13",
|
||||
"phpstan/phpstan-strict-rules": "^1.2",
|
||||
"phpunit/phpunit": "9.5.20",
|
||||
"psalm/plugin-phpunit": "0.16.1",
|
||||
"squizlabs/php_codesniffer": "3.6.2",
|
||||
"squizlabs/php_codesniffer": "3.7.0",
|
||||
"symfony/cache": "^5.2|^6.0",
|
||||
"symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
|
||||
"vimeo/psalm": "4.23.0"
|
||||
@ -1934,7 +1935,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.3.6"
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.3.7"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1950,7 +1951,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-05-02T17:21:01+00:00"
|
||||
"time": "2022-06-13T21:43:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
@ -13932,16 +13933,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
"version": "1.3.0",
|
||||
"version": "1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-ignition.git",
|
||||
"reference": "5409e699fc19f4d53e59427445b08f90593fda28"
|
||||
"reference": "fe37a0eafe6ea040804255c70e9808af13314f87"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/5409e699fc19f4d53e59427445b08f90593fda28",
|
||||
"reference": "5409e699fc19f4d53e59427445b08f90593fda28",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/fe37a0eafe6ea040804255c70e9808af13314f87",
|
||||
"reference": "fe37a0eafe6ea040804255c70e9808af13314f87",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -14018,7 +14019,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-06-15T13:55:18+00:00"
|
||||
"time": "2022-06-17T06:28:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
@ -14178,5 +14179,5 @@
|
||||
"ext-zip": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.2.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ return [
|
||||
],
|
||||
'columns' => [
|
||||
'created_at' => 'date',
|
||||
'updated_at' => 'date',
|
||||
],
|
||||
],
|
||||
|
||||
@ -44,6 +45,8 @@ return [
|
||||
'name' => ['searchable' => true],
|
||||
'display_name' => ['searchable' => true],
|
||||
'description' => ['searchable' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -53,6 +56,8 @@ return [
|
||||
'name' => ['searchable' => true],
|
||||
'display_name' => ['searchable' => true],
|
||||
'description' => ['searchable' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -63,6 +68,8 @@ return [
|
||||
'email' => ['searchable' => true],
|
||||
'enabled' => ['boolean' => true],
|
||||
'last_logged_in_at' => ['date' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -77,6 +84,8 @@ return [
|
||||
'route' => ['currencies.index', 'search=enabled:1'],
|
||||
],
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -88,6 +97,8 @@ return [
|
||||
'reconciled' => ['boolean' => true],
|
||||
'started_at' => ['date' => true],
|
||||
'ended_at' => ['date' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -123,6 +134,8 @@ return [
|
||||
'relationship' => true,
|
||||
'boolean' => true,
|
||||
],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -137,6 +150,7 @@ return [
|
||||
'relationship' => true,
|
||||
'route' => ['accounts.index', 'search=enabled:1'],
|
||||
],
|
||||
'created_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -146,6 +160,8 @@ return [
|
||||
'domain' => ['searchable' => true],
|
||||
'settings.value' => ['searchable' => true],
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -154,6 +170,8 @@ return [
|
||||
'id',
|
||||
'name' => ['searchable' => true],
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -168,6 +186,8 @@ return [
|
||||
],
|
||||
'sale_price',
|
||||
'purchase_price',
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -187,6 +207,8 @@ return [
|
||||
'reference',
|
||||
'user_id',
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -206,6 +228,8 @@ return [
|
||||
'reference',
|
||||
'user_id',
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -225,6 +249,8 @@ return [
|
||||
'reference',
|
||||
'user_id',
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -259,6 +285,8 @@ return [
|
||||
'relationship' => true,
|
||||
'boolean' => true,
|
||||
],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -302,6 +330,8 @@ return [
|
||||
'relationship' => true,
|
||||
'boolean' => true,
|
||||
],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -346,6 +376,8 @@ return [
|
||||
'relationship' => true,
|
||||
'boolean' => true,
|
||||
],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -355,6 +387,8 @@ return [
|
||||
'name' => ['searchable' => true],
|
||||
'enabled' => ['boolean' => true],
|
||||
'type',
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -376,6 +410,8 @@ return [
|
||||
],
|
||||
'decimal_mark',
|
||||
'thousands_separator',
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -384,6 +420,8 @@ return [
|
||||
'id',
|
||||
'name' => ['searchable' => true],
|
||||
'subject' => ['searchable' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
@ -394,6 +432,8 @@ return [
|
||||
'type',
|
||||
'rate',
|
||||
'enabled' => ['boolean' => true],
|
||||
'created_at' => ['date' => true],
|
||||
'updated_at' => ['date' => true],
|
||||
],
|
||||
],
|
||||
|
||||
|
@ -10,15 +10,15 @@ return [
|
||||
|
||||
'minor' => '0',
|
||||
|
||||
'patch' => '1',
|
||||
'patch' => '2',
|
||||
|
||||
'build' => '',
|
||||
|
||||
'status' => 'Stable',
|
||||
|
||||
'date' => '11-June-2022',
|
||||
'date' => '18-June-2022',
|
||||
|
||||
'time' => '10:00',
|
||||
'time' => '01:00',
|
||||
|
||||
'zone' => 'GMT +3',
|
||||
|
||||
|
5
public/css/print.css
vendored
5
public/css/print.css
vendored
@ -546,6 +546,11 @@ html[dir='rtl'] .text-alignment-right {
|
||||
/*--Print Template Classic Finish--*/
|
||||
|
||||
/*--Print Template Modern Start--*/
|
||||
.justify-content-between
|
||||
{
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
|
||||
.align-items-center
|
||||
{
|
||||
align-items: center !important;
|
||||
|
@ -27,6 +27,11 @@ return [
|
||||
'body' => 'नमस्ते,<br/><br/>{customer_name} के आवर्ती सर्कल के आधार पर, <strong>{invoice_number}</strong> चालान स्वचालित रूप से बनाया गया है।<br/><br/>आप निम्न लिंक से चालान का विवरण देख सकते हैं: <a href="{invoice_admin_link}">{invoice_number}</a>।<br/><br/>सादर,<br/>{company_name}',
|
||||
],
|
||||
|
||||
'invoice_view_admin' => [
|
||||
'subject' => '{invoice_number} चालान देखा गया',
|
||||
'body' => 'नमस्कार,<br /><br />{customer_name} ने <strong>{invoice_number}</strong> चालान देखा है।<br /><br />आप निम्न लिंक से चालान विवरण देख सकते हैं: <a href="{invoice_admin_link}">{invoice_number}</a>।<br /><br />सादर,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_payment_customer' => [
|
||||
'subject' => '{invoice_number} चालान के लिए भुगतान प्राप्त हुआ',
|
||||
'body' => 'प्रिय {customer_name},<br/><br/>भुगतान के लिए धन्यवाद।भुगतान का विवरण देखें:<br/><br/>-------------------------------------------------<br/><br/>राशि: <strong>{transaction_total}<br /></strong>तारीख: <strong>{transaction_paid_date}</strong><br/>चालान संख्या: <strong>{invoice_number}<br/><br/></strong>-------------------------------------------------<br/><br/>आप निम्न लिंक से कभी भी चालान का विवरण देख सकते हैं: <a href="{invoice_guest_link}">{invoice_number}</a>।<br/><br/>किसी भी प्रश्न के लिए हमसे संपर्क करने में संकोच न करें।<br/><br/>सादर,<br/>{company_name}',
|
||||
@ -47,13 +52,13 @@ return [
|
||||
'body' => 'नमस्ते,<br/><br/>{vendor_name} के आवर्ती सर्कल के आधार पर, <strong>{bill_number}</strong> चालान स्वचालित रूप से बनाया गया है।<br/><br/>आप नीचे दिए गए लिंक से बिल का विवरण देख सकते हैं: <a href="{bill_admin_link}">{bill_number}</a>।<br/><br/>सादर,<br/>{company_name}',
|
||||
],
|
||||
|
||||
'revenue_new_customer' => [
|
||||
'subject' => '{revenue_date} भुगतान बनाया गया',
|
||||
'body' => 'प्रिय {customer_name},<br /><br />हमने निम्नलिखित भुगतान तैयार किया है।<br /><br />आप निम्न लिंक से भुगतान विवरण देख सकते हैं : <a href="{revenue_guest_link}">{revenue_date}</a>.<br /><br />किसी भी प्रश्न के लिए हमसे बेझिझक संपर्क करें..<br /><br />सादर,<br />{company_name}',
|
||||
'payment_received_customer' => [
|
||||
'subject' => '{company_name} से आपकी रसीद',
|
||||
'body' => 'प्रिय {contact_name},<br /><br />भुगतान के लिए धन्यवाद। <br /><br />आप निम्न लिंक से भुगतान विवरण देख सकते हैं: <a href="{payment_guest_link}">{payment_date}</a>।<br /><br />हमसे संपर्क करने में संकोच न करें किसी भी प्रश्न के साथ।<br /><br />सादर,<br />{company_name}',
|
||||
],
|
||||
|
||||
'payment_new_vendor' => [
|
||||
'subject' => '{revenue_date} भुगतान बनाया गया',
|
||||
'body' => 'प्रिय {{vendor_name}},<br /><br />हमने निम्नलिखित भुगतान तैयार किया है।<br /><br />आप निम्न लिंक से भुगतान विवरण देख सकते हैं : <a href="{payment_admin_link}">{payment_date}</a>.<br /><br />किसी भी प्रश्न के लिए हमसे बेझिझक संपर्क करें..<br /><br />सादर,<br />{company_name}',
|
||||
'payment_made_vendor' => [
|
||||
'subject' => '{company_name} द्वारा किया गया भुगतान',
|
||||
'body' => 'प्रिय {contact_name},<br /><br />हमने निम्नलिखित भुगतान कर दिया है। <br /><br />आप निम्न लिंक से भुगतान विवरण देख सकते हैं: <a href="{payment_guest_link}">{payment_date}</a>।<br /><br />हमसे संपर्क करने में संकोच न करें किसी भी प्रश्न के साथ।<br /><br />सादर,<br />{company_name}',
|
||||
],
|
||||
];
|
||||
|
@ -36,7 +36,7 @@ return [
|
||||
'install' => 'इंस्टॉल करें',
|
||||
'buy_now' => 'अभी खरीदें',
|
||||
'get_api_key' => 'अपनी एपीआई कुंजी प्राप्त करने के लिए यहां <a href=":url" target="_blank">क्लिक</a> करें।',
|
||||
'no_apps' => 'इस श्रेणी में अभी तक कोई एप्लिकेशन नहीं हैं।',
|
||||
'no_apps' => 'अपने व्यवसाय के लिए सबसे अधिक पेशेवर ऐप्स देखें और उन्हें सर्वोत्तम मूल्य पर प्राप्त करें।',
|
||||
'become_developer' => 'क्या आप एक डेवलपर हैं? <a href=":url" target="_blank">यहां</a> आप सीख सकते हैं कि ऐप कैसे बनाएं और आज बेचना शुरू करें!',
|
||||
'recommended_apps' => 'अनुशंसित ऐप्स',
|
||||
'can_not_install' => 'मासिक सदस्यता केवल क्लाउड सेवा पर उपलब्ध है। <a href="https://akaunting.com/upgrad-to-yearly" target="_blank">और जानें।</a>',
|
||||
|
@ -40,7 +40,7 @@ return [
|
||||
'all_invoices' => 'Faça login para ver todas as faturas',
|
||||
'create_invoice' => 'Criar fatura',
|
||||
'send_invoice' => 'Enviar fatura',
|
||||
'get_paid' => 'Pagar',
|
||||
'get_paid' => 'Quitar',
|
||||
'accept_payments' => 'Aceitar Pagamentos Online',
|
||||
'payment_received' => 'Pagamento recebido',
|
||||
|
||||
|
@ -1,9 +1,17 @@
|
||||
@php
|
||||
$is_print = request()->routeIs('reports.print');
|
||||
@endphp
|
||||
|
||||
@include($class->views['summary.content.header'])
|
||||
|
||||
@foreach($class->tables as $table_key => $table_name)
|
||||
<div class="flex flex-col lg:flex-row mt-12">
|
||||
<div
|
||||
class="flex flex-col lg:flex-row mt-12">
|
||||
@include($class->views['summary.table'])
|
||||
@include($class->views['summary.chart'])
|
||||
|
||||
@if (! $is_print)
|
||||
@include($class->views['summary.chart'])
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
<h2 x-show="toggle === 'bar'">{{ trans('general.distribution') }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="w-full lg:w-1/12 flex items-center justify-center text-right cursor-pointer hover:shadow-lg hover:translate-y-0 hover:rounded-md" x-on:click="toggle === 'bar' ? toggle = 'donut' : toggle = 'bar'">
|
||||
<div class="w-8 h-8 flex items-center justify-center px-2 py-2 hover:bg-gray-100 rounded-xl text-purple text-sm font-medium leading-6 cursor-pointer" x-on:click="toggle === 'bar' ? toggle = 'donut' : toggle = 'bar'">
|
||||
<span class="material-icons-outlined" x-bind:class="toggle === 'donut' ? 'block': 'hidden'" title="{{ trans('general.distribution') }}">donut_small</span>
|
||||
<span class="material-icons" x-bind:class="toggle === 'bar' ? 'block': 'hidden'" title="{{ trans('general.timeline') }}">signal_cellular_alt</span>
|
||||
</div>
|
||||
|
@ -1,10 +1,20 @@
|
||||
<div>
|
||||
<div class="flex items-center justify-between text-xl text-black-400 border-b pb-2">
|
||||
<h2>{{ $table_name }}</h2>
|
||||
<span>{{ $class->has_money ? money($grand_total, default_currency(), true) : $grand_total }}</span>
|
||||
<div
|
||||
@class([
|
||||
'd-flex align-items-center justify-content-between rp-border-bottom-1 text' => $is_print,
|
||||
'flex items-center justify-between text-xl text-black-400 border-b pb-2' => !$is_print
|
||||
])
|
||||
>
|
||||
<h2>{{ $table_name }}</h2>
|
||||
<span>{{ $class->has_money ? money($grand_total, default_currency(), true) : $grand_total }}</span>
|
||||
</div>
|
||||
@if (!empty($class->row_values[$table_key]))
|
||||
<ul class="space-y-2 my-3">
|
||||
<ul
|
||||
@class([
|
||||
'print-template text-normal' => $is_print,
|
||||
'space-y-2 my-3' => !$is_print
|
||||
])
|
||||
>
|
||||
@foreach($class->row_tree_nodes[$table_key] as $id => $node)
|
||||
@include($class->views['summary.table.row'], ['tree_level' => 0])
|
||||
@endforeach
|
||||
|
@ -6,15 +6,25 @@
|
||||
|
||||
@if ($row_total = array_sum($rows))
|
||||
@if (isset($parent_id))
|
||||
<li class="collapse-sub" data-collapse="child-{{ $parent_id }}">
|
||||
<li
|
||||
@class([
|
||||
'mt-1' => $is_print,
|
||||
'collapse-sub' => !$is_print
|
||||
])
|
||||
data-collapse="child-{{ $parent_id }}">
|
||||
@else
|
||||
<li>
|
||||
@endif
|
||||
<div class="flex justify-between border-0 m-0 p-0">
|
||||
<div
|
||||
@class([
|
||||
'd-flex align-items-center justify-content-between' => $is_print,
|
||||
'flex justify-between border-0 m-0 p-0' => !$is_print
|
||||
])
|
||||
>
|
||||
@if (isset($parent_id))
|
||||
<div class="flex items-center" style="padding-left: {{ $tree_level * 20 }}px;">
|
||||
<div style="display:flex; align-items: center; padding-left: {{ $tree_level * 20 }}px;">
|
||||
@else
|
||||
<div class="flex items-center">
|
||||
<div style="display:flex; align-items: center;">
|
||||
@endif
|
||||
<span>{{ $class->row_names[$table_key][$id] }}</span>
|
||||
</div>
|
||||
@ -43,17 +53,24 @@
|
||||
|
||||
@if ($row_total = array_sum($parent_row_values))
|
||||
@if (isset($parent_id))
|
||||
<li class="collapse-sub" data-collapse="child-{{ $parent_id }}">
|
||||
<li
|
||||
@class([
|
||||
'mt-1' => $is_print,
|
||||
'collapse-sub' => !$is_print
|
||||
])
|
||||
data-collapse="child-{{ $parent_id }}">
|
||||
@else
|
||||
<li>
|
||||
@endif
|
||||
<div class="flex justify-between border-0 m-0 p-0">
|
||||
<div class="flex items-center" style="padding-left: {{ $tree_level * 20 }}px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<div style="display:flex; align-items: center; padding-left: {{ $tree_level * 20 }}px;">
|
||||
<span>{{ $class->row_names[$table_key][$id] }}</span>
|
||||
@if (array_sum($parent_row_values) != array_sum($class->row_values[$table_key][$id]))
|
||||
<button type="button" class="align-text-top flex" node="child-{{ $id }}" onClick="toggleSub('child-{{ $id }}', event)">
|
||||
<span class="material-icons transform rotate-90 transition-all text-lg leading-none">navigate_next</span>
|
||||
</button>
|
||||
@if (!$is_print)
|
||||
@if (array_sum($parent_row_values) != array_sum($class->row_values[$table_key][$id]))
|
||||
<button type="button" class="align-text-top flex" node="child-{{ $id }}" onClick="toggleSub('child-{{ $id }}', event)">
|
||||
<span class="material-icons transform rotate-90 transition-all text-lg leading-none">navigate_next</span>
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<span>{{ $class->has_money ? money($row_total, setting('default.currency'), true) : $row_total }}</span>
|
||||
@ -64,9 +81,14 @@
|
||||
<!-- no categories part -->
|
||||
@php $rows = $class->row_values[$table_key][$id]; @endphp
|
||||
@if (($row_total = array_sum($rows)) && array_sum($parent_row_values) != array_sum($rows))
|
||||
<li class="collapse-sub" data-collapse="child-{{ $id }}">
|
||||
<div class="flex justify-between border-0 m-0 p-0">
|
||||
<div class="flex items-center" style="padding-left: {{ ($tree_level + 1) * 20 }}px;">
|
||||
<li
|
||||
@class([
|
||||
'mt-1' => $is_print,
|
||||
'collapse-sub' => !$is_print
|
||||
])
|
||||
data-collapse="child-{{ $id }}">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<div style="display:flex; align-items: center; padding-left: {{ ($tree_level + 1) * 20 }}px;">
|
||||
<span>{{ $class->row_names[$table_key][$id] }}</span>
|
||||
</div>
|
||||
<span>{{ $class->has_money ? money($row_total, setting('default.currency'), true) : $row_total }}</span>
|
||||
|
Loading…
x
Reference in New Issue
Block a user