diff --git a/app/Filters/DocumentFilters.php b/app/Filters/DocumentFilters.php
index 50731fc7df76..2fc006f7b3f7 100644
--- a/app/Filters/DocumentFilters.php
+++ b/app/Filters/DocumentFilters.php
@@ -20,11 +20,6 @@ use Illuminate\Database\Eloquent\Builder;
class DocumentFilters extends QueryFilters
{
- // public function client_id(int $client_id) :Builder
- // {
- // return $this->builder->where('client_id', $client_id);
- // }
-
/**
* Filter based on search text.
*
@@ -41,6 +36,14 @@ class DocumentFilters extends QueryFilters
return $this->builder;
}
+ /* If client ID passed to this entity, simply return */
+ public function client_id(string $client_id = '') :Builder
+ {
+
+ return $this->builder;
+
+ }
+
/**
* Sorts the list based on $sort.
*
@@ -64,6 +67,7 @@ class DocumentFilters extends QueryFilters
*/
public function baseQuery(int $company_id, User $user) : Builder
{
+ return $this->builder;
}
/**
diff --git a/app/Filters/PaymentTermFilters.php b/app/Filters/PaymentTermFilters.php
new file mode 100644
index 000000000000..93b62e4ce0a4
--- /dev/null
+++ b/app/Filters/PaymentTermFilters.php
@@ -0,0 +1,118 @@
+builder;
+ }
+
+ return $this->builder->where(function ($query) use ($filter) {
+ $query->where('payment_terms.name', 'like', '%'.$filter.'%');
+ });
+ }
+
+ /**
+ * Filters the list based on the status
+ * archived, active, deleted.
+ *
+ * @param string filter
+ * @return Builder
+ */
+ public function status(string $filter = '') : Builder
+ {
+ if (strlen($filter) == 0) {
+ return $this->builder;
+ }
+
+ $table = 'payment_terms';
+ $filters = explode(',', $filter);
+
+ return $this->builder->where(function ($query) use ($filters, $table) {
+ $query->whereNull($table.'.id');
+
+ if (in_array(parent::STATUS_ACTIVE, $filters)) {
+ $query->orWhereNull($table.'.deleted_at');
+ }
+
+ if (in_array(parent::STATUS_ARCHIVED, $filters)) {
+ $query->orWhere(function ($query) use ($table) {
+ $query->whereNotNull($table.'.deleted_at');
+
+ if (! in_array($table, ['users'])) {
+ $query->where($table.'.is_deleted', '=', 0);
+ }
+ });
+ }
+
+ if (in_array(parent::STATUS_DELETED, $filters)) {
+ $query->orWhere($table.'.is_deleted', '=', 1);
+ }
+ });
+ }
+
+ /**
+ * Sorts the list based on $sort.
+ *
+ * @param string sort formatted as column|asc
+ * @return Builder
+ */
+ public function sort(string $sort) : Builder
+ {
+ $sort_col = explode('|', $sort);
+
+ return $this->builder->orderBy($sort_col[0], $sort_col[1]);
+ }
+
+ /**
+ * Returns the base query.
+ *
+ * @param int company_id
+ * @param User $user
+ * @return Builder
+ * @deprecated
+ */
+ public function baseQuery(int $company_id, User $user) : Builder
+ {
+ return $this->builder;
+ }
+
+ /**
+ * Filters the query by the users company ID.
+ *
+ * @return Illuminate\Database\Query\Builder
+ */
+ public function entityFilter()
+ {
+ //return $this->builder->whereCompanyId(auth()->user()->company()->id);
+ return $this->builder->whereCompanyId(auth()->user()->company()->id)->orWhere('company_id', null);
+ }
+}
diff --git a/app/Http/Controllers/PaymentTermController.php b/app/Http/Controllers/PaymentTermController.php
index 1f345cf6154c..ccc43424c47a 100644
--- a/app/Http/Controllers/PaymentTermController.php
+++ b/app/Http/Controllers/PaymentTermController.php
@@ -14,6 +14,7 @@ use App\Transformers\PaymentTermTransformer;
use App\Utils\Traits\MakesHash;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
+use App\Filters\PaymentTermFilters;
class PaymentTermController extends BaseController
{
@@ -73,9 +74,9 @@ class PaymentTermController extends BaseController
* ),
* )
*/
- public function index()
+ public function index(PaymentTermFilters $filters)
{
- $payment_terms = PaymentTerm::whereCompanyId(auth()->user()->company()->id)->orWhere('company_id', null);
+ $payment_terms = PaymentTerm::filter($filters);
return $this->listResponse($payment_terms);
}
diff --git a/app/Models/PaymentTerm.php b/app/Models/PaymentTerm.php
index fb47f533e30a..5d1e892dfb88 100644
--- a/app/Models/PaymentTerm.php
+++ b/app/Models/PaymentTerm.php
@@ -11,6 +11,7 @@
namespace App\Models;
+use App\Models\Filterable;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
@@ -19,6 +20,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
class PaymentTerm extends BaseModel
{
use SoftDeletes;
+ use Filterable;
/**
* @var bool
diff --git a/app/Providers/NinjaTranslationServiceProvider.php b/app/Providers/NinjaTranslationServiceProvider.php
index f64af968c497..985987bc0288 100644
--- a/app/Providers/NinjaTranslationServiceProvider.php
+++ b/app/Providers/NinjaTranslationServiceProvider.php
@@ -33,19 +33,6 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider
*
*/
- // $this->app->bind('translator', function($app) {
-
- // $loader = $app['translation.loader'];
- // $locale = $app['config']['app.locale'];
-
- // $trans = new NinjaTranslator($loader, $locale);
-
- // $trans->setFallback($app['config']['app.fallback_locale']);
-
- // return $trans;
-
- // });
-
$this->app->singleton('translator', function ($app) {
$loader = $app['translation.loader'];
diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php
index 72119404bc6e..a6d40175d24a 100644
--- a/app/Services/Invoice/InvoiceService.php
+++ b/app/Services/Invoice/InvoiceService.php
@@ -299,7 +299,10 @@ class InvoiceService
if($this->invoice->status_id == Invoice::STATUS_DRAFT)
return $this;
- if ($this->invoice->balance > 0 && $this->invoice->balance < $this->invoice->amount) {
+ if($this->invoice->balance == 0){
+ $this->setStatus(Invoice::STATUS_PAID);
+ }
+ elseif ($this->invoice->balance > 0 && $this->invoice->balance < $this->invoice->amount) {
$this->setStatus(Invoice::STATUS_PARTIAL);
}
diff --git a/phpunit.xml b/phpunit.xml
index ec8019ee3005..cc7e424e14bd 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -22,7 +22,7 @@
-
+
diff --git a/resources/views/portal/ninja2020/components/livewire/required-client-info.blade.php b/resources/views/portal/ninja2020/components/livewire/required-client-info.blade.php
index 13c8bac6d8ea..3dee6bbfc8ad 100644
--- a/resources/views/portal/ninja2020/components/livewire/required-client-info.blade.php
+++ b/resources/views/portal/ninja2020/components/livewire/required-client-info.blade.php
@@ -60,7 +60,6 @@