mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-13 22:54:25 +01:00
Merge pull request #8479 from turbo124/v5-develop
move e_invoice config into company settings
This commit is contained in:
commit
78927994e1
@ -174,7 +174,7 @@ class SendRemindersCron extends Command
|
|||||||
$invoice->calc()->getInvoice()->save();
|
$invoice->calc()->getInvoice()->save();
|
||||||
$invoice->fresh();
|
$invoice->fresh();
|
||||||
$invoice->service()->deletePdf()->save();
|
$invoice->service()->deletePdf()->save();
|
||||||
if ($invoice->company->enable_e_invoice){
|
if ($invoice->client->getSetting('enable_e_invoice')){
|
||||||
$invoice->service()->deleteEInvoice()->save();
|
$invoice->service()->deleteEInvoice()->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -479,7 +479,10 @@ class CompanySettings extends BaseSettings
|
|||||||
|
|
||||||
public $default_expense_payment_type_id = '0';
|
public $default_expense_payment_type_id = '0';
|
||||||
|
|
||||||
|
public $enable_e_invoice = false;
|
||||||
|
|
||||||
public static $casts = [
|
public static $casts = [
|
||||||
|
'enable_e_invoice' => 'bool',
|
||||||
'default_expense_payment_type_id' => 'string',
|
'default_expense_payment_type_id' => 'string',
|
||||||
'e_invoice_type' => 'string',
|
'e_invoice_type' => 'string',
|
||||||
'mailgun_endpoint' => 'string',
|
'mailgun_endpoint' => 'string',
|
||||||
|
@ -200,7 +200,6 @@ class Yodlee
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getTransactions($params = [])
|
public function getTransactions($params = [])
|
||||||
{
|
{
|
||||||
$token = $this->getAccessToken();
|
$token = $this->getAccessToken();
|
||||||
@ -208,7 +207,6 @@ class Yodlee
|
|||||||
$response = Http::withHeaders($this->getHeaders(["Authorization" => "Bearer {$token}"]))->get($this->getEndpoint(). "/transactions", $params);
|
$response = Http::withHeaders($this->getHeaders(["Authorization" => "Bearer {$token}"]))->get($this->getEndpoint(). "/transactions", $params);
|
||||||
|
|
||||||
if ($response->successful()) {
|
if ($response->successful()) {
|
||||||
// return $response->object();
|
|
||||||
$it = new IncomeTransformer();
|
$it = new IncomeTransformer();
|
||||||
return $it->transform($response->object());
|
return $it->transform($response->object());
|
||||||
}
|
}
|
||||||
|
@ -22,17 +22,11 @@ class YodleeController extends BaseController
|
|||||||
{
|
{
|
||||||
public function auth(YodleeAuthRequest $request)
|
public function auth(YodleeAuthRequest $request)
|
||||||
{
|
{
|
||||||
// create a user at this point
|
|
||||||
// use the one time token here to pull in the actual user
|
|
||||||
// store the user_account_id on the accounts table
|
|
||||||
|
|
||||||
$yodlee = new Yodlee();
|
$yodlee = new Yodlee();
|
||||||
|
|
||||||
$company = $request->getCompany();
|
$company = $request->getCompany();
|
||||||
|
|
||||||
|
|
||||||
//ensure user is enterprise!!
|
|
||||||
|
|
||||||
if ($company->account->bank_integration_account_id) {
|
if ($company->account->bank_integration_account_id) {
|
||||||
$flow = 'edit';
|
$flow = 'edit';
|
||||||
|
|
||||||
|
@ -11,24 +11,25 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\BankIntegration;
|
||||||
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use App\Helpers\Bank\Yodlee\Yodlee;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
use App\Factory\BankIntegrationFactory;
|
use App\Factory\BankIntegrationFactory;
|
||||||
use App\Filters\BankIntegrationFilters;
|
use App\Filters\BankIntegrationFilters;
|
||||||
use App\Helpers\Bank\Yodlee\Yodlee;
|
|
||||||
use App\Http\Requests\BankIntegration\AdminBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\BulkBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\CreateBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\DestroyBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\EditBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\ShowBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\StoreBankIntegrationRequest;
|
|
||||||
use App\Http\Requests\BankIntegration\UpdateBankIntegrationRequest;
|
|
||||||
use App\Jobs\Bank\ProcessBankTransactions;
|
use App\Jobs\Bank\ProcessBankTransactions;
|
||||||
use App\Models\BankIntegration;
|
|
||||||
use App\Repositories\BankIntegrationRepository;
|
use App\Repositories\BankIntegrationRepository;
|
||||||
use App\Transformers\BankIntegrationTransformer;
|
use App\Transformers\BankIntegrationTransformer;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Http\Requests\BankIntegration\BulkBankIntegrationRequest;
|
||||||
use Illuminate\Http\Request;
|
use App\Http\Requests\BankIntegration\EditBankIntegrationRequest;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use App\Http\Requests\BankIntegration\ShowBankIntegrationRequest;
|
||||||
|
use App\Http\Requests\BankIntegration\AdminBankIntegrationRequest;
|
||||||
|
use App\Http\Requests\BankIntegration\StoreBankIntegrationRequest;
|
||||||
|
use App\Http\Requests\BankIntegration\CreateBankIntegrationRequest;
|
||||||
|
use App\Http\Requests\BankIntegration\UpdateBankIntegrationRequest;
|
||||||
|
use App\Http\Requests\BankIntegration\DestroyBankIntegrationRequest;
|
||||||
|
|
||||||
class BankIntegrationController extends BaseController
|
class BankIntegrationController extends BaseController
|
||||||
{
|
{
|
||||||
@ -159,7 +160,7 @@ class BankIntegrationController extends BaseController
|
|||||||
/**
|
/**
|
||||||
* Perform bulk actions on the list view.
|
* Perform bulk actions on the list view.
|
||||||
*
|
*
|
||||||
* @return Collection
|
* @return Response
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function bulk(BulkBankIntegrationRequest $request)
|
public function bulk(BulkBankIntegrationRequest $request)
|
||||||
@ -168,12 +169,12 @@ class BankIntegrationController extends BaseController
|
|||||||
|
|
||||||
$ids = request()->input('ids');
|
$ids = request()->input('ids');
|
||||||
|
|
||||||
$bank_integrations = BankIntegration::withTrashed()->whereIn('id', $this->transformKeys($ids))
|
BankIntegration::withTrashed()->whereIn('id', $this->transformKeys($ids))
|
||||||
->company()
|
->company()
|
||||||
->cursor()
|
->cursor()
|
||||||
->each(function ($bank_integration, $key) use ($action) {
|
->each(function ($bank_integration, $key) use ($action) {
|
||||||
$this->bank_integration_repo->{$action}($bank_integration);
|
$this->bank_integration_repo->{$action}($bank_integration);
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Need to understand which permission are required for the given bulk action ie. view / edit */
|
/* Need to understand which permission are required for the given bulk action ie. view / edit */
|
||||||
|
|
||||||
@ -184,7 +185,7 @@ class BankIntegrationController extends BaseController
|
|||||||
/**
|
/**
|
||||||
* Return the remote list of accounts stored on the third party provider.
|
* Return the remote list of accounts stored on the third party provider.
|
||||||
*
|
*
|
||||||
* @return Response
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function refreshAccounts(AdminBankIntegrationRequest $request)
|
public function refreshAccounts(AdminBankIntegrationRequest $request)
|
||||||
{
|
{
|
||||||
@ -227,7 +228,7 @@ class BankIntegrationController extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Cache::get("throttle_polling:{$account->key}")) {
|
if (Cache::get("throttle_polling:{$user_account->key}")) {
|
||||||
return response()->json(BankIntegration::query()->company(), 200);
|
return response()->json(BankIntegration::query()->company(), 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,7 +277,7 @@ class BankIntegrationController extends BaseController
|
|||||||
* Return the remote list of accounts stored on the third party provider
|
* Return the remote list of accounts stored on the third party provider
|
||||||
* and update our local cache.
|
* and update our local cache.
|
||||||
*
|
*
|
||||||
* @return Response
|
* @return JsonResponse
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getTransactions(AdminBankIntegrationRequest $request)
|
public function getTransactions(AdminBankIntegrationRequest $request)
|
||||||
|
@ -63,6 +63,8 @@ class ProcessBankTransactions implements ShouldQueue
|
|||||||
//Loop through everything until we are up to date
|
//Loop through everything until we are up to date
|
||||||
$this->from_date = $this->from_date ?: '2021-01-01';
|
$this->from_date = $this->from_date ?: '2021-01-01';
|
||||||
|
|
||||||
|
nlog("Processing transactions for account: {$this->bank_integration->account->key}");
|
||||||
|
|
||||||
do {
|
do {
|
||||||
try {
|
try {
|
||||||
$this->processTransactions();
|
$this->processTransactions();
|
||||||
|
@ -212,7 +212,7 @@ class CreateEntityPdf implements ShouldQueue
|
|||||||
throw new FilePermissionsFailure($e->getMessage());
|
throw new FilePermissionsFailure($e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($this->entity_string == "invoice" && $this->company->enable_e_invoice){
|
if ($this->entity_string == "invoice" && $this->client->getSetting('enable_e_invoice')){
|
||||||
(new CreateEInvoice($this->entity, true))->handle();
|
(new CreateEInvoice($this->entity, true))->handle();
|
||||||
}
|
}
|
||||||
$this->invitation = null;
|
$this->invitation = null;
|
||||||
|
@ -75,7 +75,7 @@ class ZipInvoices implements ShouldQueue
|
|||||||
|
|
||||||
$this->invoices->each(function ($invoice) {
|
$this->invoices->each(function ($invoice) {
|
||||||
(new CreateEntityPdf($invoice->invitations()->first()))->handle();
|
(new CreateEntityPdf($invoice->invitations()->first()))->handle();
|
||||||
if ($this->company->enable_e_invoice){
|
if ($invoice->client->getSetting('enable_e_invoice')){
|
||||||
(new CreateEInvoice($invoice, false))->handle();
|
(new CreateEInvoice($invoice, false))->handle();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -86,13 +86,13 @@ class ZipInvoices implements ShouldQueue
|
|||||||
$file = $invoice->service()->getInvoicePdf();
|
$file = $invoice->service()->getInvoicePdf();
|
||||||
$zip_file_name = basename($file);
|
$zip_file_name = basename($file);
|
||||||
$zipFile->addFromString($zip_file_name, Storage::get($file));
|
$zipFile->addFromString($zip_file_name, Storage::get($file));
|
||||||
}
|
|
||||||
|
|
||||||
if($this->company->enable_e_invoice){
|
if($invoice->client->getSetting('enable_e_invoice')){
|
||||||
foreach ($this->invoices as $invoice) {
|
|
||||||
$xinvoice = $invoice->service()->getEInvoice();
|
$xinvoice = $invoice->service()->getEInvoice();
|
||||||
$xinvoice_zip_file_name = basename($xinvoice);
|
$xinvoice_zip_file_name = basename($xinvoice);
|
||||||
$zipFile->addFromString($xinvoice_zip_file_name, Storage::get($xinvoice));
|
$zipFile->addFromString($xinvoice_zip_file_name, Storage::get($xinvoice));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ class TemplateEmail extends Mailable
|
|||||||
$this->attachData($ubl_string, $this->invitation->invoice->getFileName('xml'));
|
$this->attachData($ubl_string, $this->invitation->invoice->getFileName('xml'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($this->invitation && $this->invitation->invoice && $company->enable_e_invoice && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
|
if ($this->invitation && $this->invitation->invoice && $this->invitation->invoice->client->getSetting('enable_e_invoice') && $this->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
|
||||||
$this->invitation->invoice->service()->getEInvoice($this->invitation->contact);
|
$this->invitation->invoice->service()->getEInvoice($this->invitation->contact);
|
||||||
$disk = config('filesystems.default');
|
$disk = config('filesystems.default');
|
||||||
$this->attach(Storage::disk($disk)->path($this->invitation->invoice->client->xinvoice_filepath($this->invitation->invoice->invitations->first()) . $this->invitation->invoice->getFileName("xml")));
|
$this->attach(Storage::disk($disk)->path($this->invitation->invoice->client->xinvoice_filepath($this->invitation->invoice->invitations->first()) . $this->invitation->invoice->getFileName("xml")));
|
||||||
|
@ -35,8 +35,8 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
* @property int|null $created_at
|
* @property int|null $created_at
|
||||||
* @property int|null $updated_at
|
* @property int|null $updated_at
|
||||||
* @property int|null $deleted_at
|
* @property int|null $deleted_at
|
||||||
* @property int $disabled_upstream
|
* @property bool $disabled_upstream
|
||||||
* @property int $auto_sync
|
* @property bool $auto_sync
|
||||||
* @property-read \App\Models\Account $account
|
* @property-read \App\Models\Account $account
|
||||||
* @property-read \App\Models\Company $company
|
* @property-read \App\Models\Company $company
|
||||||
* @property-read mixed $hashed_id
|
* @property-read mixed $hashed_id
|
||||||
|
@ -40,6 +40,7 @@ use Illuminate\Support\Str;
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel scopeExclude()
|
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel scopeExclude()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel find()
|
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel find()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel whereIn()
|
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel whereIn()
|
||||||
|
* @method static \Illuminate\Database\Eloquent\Builder|BankIntegration where()
|
||||||
* @method \App\Models\Company company()
|
* @method \App\Models\Company company()
|
||||||
* @method int companyId()
|
* @method int companyId()
|
||||||
* @method Builder|static exclude($columns)
|
* @method Builder|static exclude($columns)
|
||||||
|
@ -167,79 +167,12 @@ use Laracasts\Presenter\PresentableTrait;
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereWebsite($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|Client whereWebsite($value)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client withTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|Client withTrashed()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client withoutTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|Client withoutTrashed()
|
||||||
|
* @method static \Illuminate\Database\Eloquent\Builder|Client with()
|
||||||
* @property string $payment_balance
|
* @property string $payment_balance
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client wherePaymentBalance($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|Client wherePaymentBalance($value)
|
||||||
* @property mixed $tax_data
|
* @property mixed $tax_data
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereTaxData($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|Client whereTaxData($value)
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @property int $is_tax_exempt
|
* @property int $is_tax_exempt
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereIsTaxExempt($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|Client whereIsTaxExempt($value)
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
||||||
@ -247,6 +180,7 @@ use Laracasts\Presenter\PresentableTrait;
|
|||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
||||||
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\GroupSetting> $group_settings
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
||||||
@ -258,130 +192,9 @@ use Laracasts\Presenter\PresentableTrait;
|
|||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @property int $has_valid_vat_number
|
* @property int $has_valid_vat_number
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereHasValidVatNumber($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereLeitwegId($value)
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @property string|null $routing_id
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Client whereRoutingId($value)
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $company_ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $contacts
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Credit> $credits
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Expense> $expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientGatewayToken> $gateway_tokens
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Invoice> $invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyLedger> $ledger
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ClientContact> $primary_contact
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Project> $projects
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringExpense> $recurring_expenses
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringInvoice> $recurring_invoices
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\SystemLog> $system_logs
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Task> $tasks
|
|
||||||
* @mixin \Eloquent
|
* @mixin \Eloquent
|
||||||
*/
|
*/
|
||||||
class Client extends BaseModel implements HasLocalePreference
|
class Client extends BaseModel implements HasLocalePreference
|
||||||
|
@ -96,7 +96,6 @@ use Laracasts\Presenter\PresentableTrait;
|
|||||||
* @property int $stock_notification
|
* @property int $stock_notification
|
||||||
* @property string|null $matomo_url
|
* @property string|null $matomo_url
|
||||||
* @property int|null $matomo_id
|
* @property int|null $matomo_id
|
||||||
* @property bool $enable_e_invoice
|
|
||||||
* @property int $enabled_expense_tax_rates
|
* @property int $enabled_expense_tax_rates
|
||||||
* @property int $invoice_task_project
|
* @property int $invoice_task_project
|
||||||
* @property int $report_include_deleted
|
* @property int $report_include_deleted
|
||||||
@ -640,8 +639,7 @@ use Laracasts\Presenter\PresentableTrait;
|
|||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Vendor> $vendors
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Vendor> $vendors
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Webhook> $webhooks
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Webhook> $webhooks
|
||||||
* @property int $tax_all_products
|
* @property int $tax_all_products
|
||||||
* @property int $enable_e_invoice
|
* @property string $e_invoice_type
|
||||||
* @property string $xinvoice_type
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $all_activities
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $all_activities
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $all_documents
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $all_documents
|
||||||
|
@ -55,29 +55,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|GroupSetting withTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|GroupSetting withTrashed()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|GroupSetting withoutTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|GroupSetting withoutTrashed()
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Client> $clients
|
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
|
|
||||||
* @mixin \Eloquent
|
* @mixin \Eloquent
|
||||||
*/
|
*/
|
||||||
class GroupSetting extends StaticModel
|
class GroupSetting extends StaticModel
|
||||||
|
@ -77,6 +77,7 @@ use Illuminate\Support\Facades\Storage;
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation whereViewedDate($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation whereViewedDate($value)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation withTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation withTrashed()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation withoutTrashed()
|
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation withoutTrashed()
|
||||||
|
* @method static \Illuminate\Database\Eloquent\Builder|InvoiceInvitation where()
|
||||||
* @mixin \Eloquent
|
* @mixin \Eloquent
|
||||||
*/
|
*/
|
||||||
class InvoiceInvitation extends BaseModel
|
class InvoiceInvitation extends BaseModel
|
||||||
@ -166,7 +167,7 @@ class InvoiceInvitation extends BaseModel
|
|||||||
|
|
||||||
public function pdf_file_path()
|
public function pdf_file_path()
|
||||||
{
|
{
|
||||||
$storage_path = Storage::url($this->invoice->client->invoice_filepath().$this->invoice->numberFormatter().'.pdf');
|
$storage_path = Storage::url($this->invoice->client->invoice_filepath($this).$this->invoice->numberFormatter().'.pdf');
|
||||||
|
|
||||||
if (! Storage::exists($this->invoice->client->invoice_filepath($this).$this->invoice->numberFormatter().'.pdf')) {
|
if (! Storage::exists($this->invoice->client->invoice_filepath($this).$this->invoice->numberFormatter().'.pdf')) {
|
||||||
event(new InvoiceWasUpdated($this->invoice, $this->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
event(new InvoiceWasUpdated($this->invoice, $this->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
|
||||||
|
@ -40,15 +40,15 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
\DB::listen(function($query) {
|
// \DB::listen(function($query) {
|
||||||
nlog(
|
// nlog(
|
||||||
$query->sql,
|
// $query->sql,
|
||||||
[
|
// [
|
||||||
'bindings' => $query->bindings,
|
// 'bindings' => $query->bindings,
|
||||||
'time' => $query->time
|
// 'time' => $query->time
|
||||||
]
|
// ]
|
||||||
);
|
// );
|
||||||
});
|
// });
|
||||||
|
|
||||||
// Model::preventLazyLoading(
|
// Model::preventLazyLoading(
|
||||||
// !$this->app->isProduction()
|
// !$this->app->isProduction()
|
||||||
|
@ -11,7 +11,9 @@
|
|||||||
|
|
||||||
namespace App\Repositories;
|
namespace App\Repositories;
|
||||||
|
|
||||||
|
use App\Utils\Ninja;
|
||||||
use App\Models\BankIntegration;
|
use App\Models\BankIntegration;
|
||||||
|
use App\Helpers\Bank\Yodlee\Yodlee;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for bank integration repository.
|
* Class for bank integration repository.
|
||||||
@ -22,8 +24,46 @@ class BankIntegrationRepository extends BaseRepository
|
|||||||
{
|
{
|
||||||
//stub to store
|
//stub to store
|
||||||
$bank_integration->fill($data);
|
$bank_integration->fill($data);
|
||||||
|
|
||||||
$bank_integration->save();
|
$bank_integration->save();
|
||||||
|
|
||||||
return $bank_integration->fresh();
|
return $bank_integration->fresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the bank integration from Yodlee
|
||||||
|
*
|
||||||
|
* @param BankIntegration $bank_integration
|
||||||
|
*
|
||||||
|
* @return BankIntegration $bank_integration
|
||||||
|
*/
|
||||||
|
public function delete($bank_integration) :BankIntegration
|
||||||
|
{
|
||||||
|
if ($bank_integration->is_deleted) {
|
||||||
|
return $bank_integration;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Ninja::isHosted())
|
||||||
|
{
|
||||||
|
|
||||||
|
$account = $bank_integration->account;
|
||||||
|
|
||||||
|
$bank_integration_account_id = $account->bank_integration_account_id;
|
||||||
|
|
||||||
|
$yodlee = new Yodlee($bank_integration_account_id);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$yodlee->deleteAccount($bank_integration->bank_account_id);
|
||||||
|
}
|
||||||
|
catch(\Exception $e){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::delete($bank_integration);
|
||||||
|
|
||||||
|
return $bank_integration;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -295,7 +295,7 @@ class BaseRepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! $model->design_id) {
|
if (! $model->design_id) {
|
||||||
$model->design_id = $this->decodePrimaryKey($client->getSetting('invoice_design_id'));
|
$model->design_id = intval($this->decodePrimaryKey($client->getSetting('invoice_design_id')));
|
||||||
}
|
}
|
||||||
|
|
||||||
//links tasks and expenses back to the invoice, but only if we are not in the middle of a transaction.
|
//links tasks and expenses back to the invoice, but only if we are not in the middle of a transaction.
|
||||||
@ -334,7 +334,7 @@ class BaseRepository
|
|||||||
|
|
||||||
if ($model instanceof Quote) {
|
if ($model instanceof Quote) {
|
||||||
if (! $model->design_id) {
|
if (! $model->design_id) {
|
||||||
$model->design_id = $this->decodePrimaryKey($client->getSetting('quote_design_id'));
|
$model->design_id = intval($this->decodePrimaryKey($client->getSetting('quote_design_id')));
|
||||||
}
|
}
|
||||||
|
|
||||||
$model = $model->calc()->getQuote();
|
$model = $model->calc()->getQuote();
|
||||||
@ -348,7 +348,7 @@ class BaseRepository
|
|||||||
|
|
||||||
if ($model instanceof RecurringInvoice) {
|
if ($model instanceof RecurringInvoice) {
|
||||||
if (! $model->design_id) {
|
if (! $model->design_id) {
|
||||||
$model->design_id = $this->decodePrimaryKey($client->getSetting('invoice_design_id'));
|
$model->design_id = intval($this->decodePrimaryKey($client->getSetting('invoice_design_id')));
|
||||||
}
|
}
|
||||||
|
|
||||||
$model = $model->calc()->getRecurringInvoice();
|
$model = $model->calc()->getRecurringInvoice();
|
||||||
|
@ -78,8 +78,8 @@ class InvoiceRepository extends BaseRepository
|
|||||||
/**
|
/**
|
||||||
* Handles the restoration on a deleted invoice.
|
* Handles the restoration on a deleted invoice.
|
||||||
*
|
*
|
||||||
* @param [type] $invoice [description]
|
* @param Invoice $invoice
|
||||||
* @return [type] [description]
|
* @return Invoice
|
||||||
*/
|
*/
|
||||||
public function restore($invoice) :Invoice
|
public function restore($invoice) :Invoice
|
||||||
{
|
{
|
||||||
|
@ -298,7 +298,7 @@ class EmailDefaults
|
|||||||
$this->email->email_object->entity instanceof Quote ||
|
$this->email->email_object->entity instanceof Quote ||
|
||||||
$this->email->email_object->entity instanceof Credit)) {
|
$this->email->email_object->entity instanceof Credit)) {
|
||||||
$pdf = ((new CreateRawPdf($this->email->email_object->invitation, $this->email->company->db))->handle());
|
$pdf = ((new CreateRawPdf($this->email->email_object->invitation, $this->email->company->db))->handle());
|
||||||
if ($this->email->email_object->company->enable_e_invoice && $this->email->email_object->entity instanceof Invoice) {
|
if ($this->email->email_object->settings->enable_e_invoice && $this->email->email_object->entity instanceof Invoice) {
|
||||||
$tempfile = tmpfile();
|
$tempfile = tmpfile();
|
||||||
file_put_contents(stream_get_meta_data($tempfile)['uri'], $pdf);
|
file_put_contents(stream_get_meta_data($tempfile)['uri'], $pdf);
|
||||||
$xinvoice_path = (new CreateEInvoice($this->email->email_object->entity, true, stream_get_meta_data($tempfile)['uri']))->handle();
|
$xinvoice_path = (new CreateEInvoice($this->email->email_object->entity, true, stream_get_meta_data($tempfile)['uri']))->handle();
|
||||||
@ -320,7 +320,7 @@ class EmailDefaults
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/** E-Invoice xml file */
|
/** E-Invoice xml file */
|
||||||
if ($this->email->email_object->company->enable_e_invoice && $this->email->email_object->entity instanceof Invoice) {
|
if ($this->email->email_object->settings->enable_e_invoice && $this->email->email_object->entity instanceof Invoice) {
|
||||||
$xinvoice_path = (new GetInvoiceXInvoice($this->email->email_object->entity))->run();
|
$xinvoice_path = (new GetInvoiceXInvoice($this->email->email_object->entity))->run();
|
||||||
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode(file_get_contents($xinvoice_path)), 'name' => explode(".", $this->email->email_object->entity->getFileName('xml'))[0]."-e_invoice.xml"]]);
|
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode(file_get_contents($xinvoice_path)), 'name' => explode(".", $this->email->email_object->entity->getFileName('xml'))[0]."-e_invoice.xml"]]);
|
||||||
}
|
}
|
||||||
|
@ -450,7 +450,7 @@ class InvoiceService
|
|||||||
$this->invoice->invitations->each(function ($invitation) {
|
$this->invoice->invitations->each(function ($invitation) {
|
||||||
(new CreateEntityPdf($invitation))->handle();
|
(new CreateEntityPdf($invitation))->handle();
|
||||||
|
|
||||||
if ($invitation->company->enable_e_invoice && $invitation instanceof InvoiceInvitation)
|
if ($invitation->invoice->client->getSetting('enable_e_invoice') && $invitation instanceof InvoiceInvitation)
|
||||||
{
|
{
|
||||||
(new CreateEInvoice($invitation->invoice, true))->handle();
|
(new CreateEInvoice($invitation->invoice, true))->handle();
|
||||||
}
|
}
|
||||||
@ -464,7 +464,7 @@ class InvoiceService
|
|||||||
$this->invoice->invitations->each(function ($invitation) {
|
$this->invoice->invitations->each(function ($invitation) {
|
||||||
CreateEntityPdf::dispatch($invitation);
|
CreateEntityPdf::dispatch($invitation);
|
||||||
|
|
||||||
if ($invitation->company->enable_e_invoice && $invitation instanceof InvoiceInvitation) {
|
if ($invitation->invoice->client->getSetting('enable_e_invoice') && $invitation instanceof InvoiceInvitation) {
|
||||||
CreateEInvoice::dispatch($invitation->invoice, true);
|
CreateEInvoice::dispatch($invitation->invoice, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,8 @@ class ClientTransformer extends EntityTransformer
|
|||||||
'number' => (string) $client->number ?: '',
|
'number' => (string) $client->number ?: '',
|
||||||
'has_valid_vat_number' => (bool) $client->has_valid_vat_number,
|
'has_valid_vat_number' => (bool) $client->has_valid_vat_number,
|
||||||
'is_tax_exempt' => (bool) $client->is_tax_exempt,
|
'is_tax_exempt' => (bool) $client->is_tax_exempt,
|
||||||
// 'tax_data' => $client->tax_data ?: '',
|
'routing_id' => (string) $client->routing_id,
|
||||||
|
'tax_data' => $client->tax_data ?: '',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,6 @@ class CompanyTransformer extends EntityTransformer
|
|||||||
'invoice_task_hours' => (bool) $company->invoice_task_hours,
|
'invoice_task_hours' => (bool) $company->invoice_task_hours,
|
||||||
'calculate_taxes' => (bool) $company->calculate_taxes,
|
'calculate_taxes' => (bool) $company->calculate_taxes,
|
||||||
'tax_data' => $company->tax_data ?: new \stdClass,
|
'tax_data' => $company->tax_data ?: new \stdClass,
|
||||||
'enable_e_invoice' => (bool) $company->enable_e_invoice,
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ class InvoiceTransformer extends EntityTransformer
|
|||||||
'paid_to_date' => (float) $invoice->paid_to_date,
|
'paid_to_date' => (float) $invoice->paid_to_date,
|
||||||
'subscription_id' => $this->encodePrimaryKey($invoice->subscription_id),
|
'subscription_id' => $this->encodePrimaryKey($invoice->subscription_id),
|
||||||
'auto_bill_enabled' => (bool) $invoice->auto_bill_enabled,
|
'auto_bill_enabled' => (bool) $invoice->auto_bill_enabled,
|
||||||
// 'tax_data' => $invoice->tax_data ?: '',
|
'tax_data' => $invoice->tax_data ?: '',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,12 +44,14 @@ class Ninja
|
|||||||
{
|
{
|
||||||
$mysql_version = DB::select(DB::raw('select version() as version'))[0]->version;
|
$mysql_version = DB::select(DB::raw('select version() as version'))[0]->version;
|
||||||
|
|
||||||
|
$version = request()->input('version', 'No Version Supplied.');
|
||||||
|
|
||||||
$info = 'App Version: v'.config('ninja.app_version').'\\n'.
|
$info = 'App Version: v'.config('ninja.app_version').'\\n'.
|
||||||
'White Label: '.'\\n'. // TODO: Implement white label with hasFeature.
|
'White Label: '.'\\n'. // TODO: Implement white label with hasFeature.
|
||||||
'Server OS: '.php_uname('s').' '.php_uname('r').'\\n'.
|
'Server OS: '.php_uname('s').' '.php_uname('r').'\\n'.
|
||||||
'PHP Version: '.phpversion().'\\n'.
|
'PHP Version: '.phpversion().'\\n'.
|
||||||
'MySQL Version: '.$mysql_version.'\\n'.
|
'MySQL Version: '.$mysql_version.'\\n'.
|
||||||
'Version: '.request()->has('version') ? request()->input('version') : 'No Version Supplied.';
|
'Version: '.$version;
|
||||||
|
|
||||||
return $info;
|
return $info;
|
||||||
}
|
}
|
||||||
@ -101,7 +103,8 @@ class Ninja
|
|||||||
foreach ($fields as $key => $value) {
|
foreach ($fields as $key => $value) {
|
||||||
$data .= $key.'='.$value.'&';
|
$data .= $key.'='.$value.'&';
|
||||||
}
|
}
|
||||||
rtrim($data, '&');
|
|
||||||
|
$data = rtrim($data, '&');
|
||||||
|
|
||||||
$ch = curl_init();
|
$ch = curl_init();
|
||||||
curl_setopt($ch, CURLOPT_URL, $url);
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Models\Language;
|
use App\Models\Language;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class extends Migration
|
||||||
@ -21,6 +22,9 @@ return new class extends Migration
|
|||||||
Language::create(['id' => 38, 'name' => 'Khmer', 'locale' => 'km_KH']);
|
Language::create(['id' => 38, 'name' => 'Khmer', 'locale' => 'km_KH']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Schema::table('companies', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('enable_e_invoice');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
3750
lang/km_KH/texts.php
3750
lang/km_KH/texts.php
File diff suppressed because it is too large
Load Diff
@ -4,8 +4,8 @@ includes:
|
|||||||
parameters:
|
parameters:
|
||||||
ignoreErrors:
|
ignoreErrors:
|
||||||
- '#Call to an undefined method .*badMethod\(\)#'
|
- '#Call to an undefined method .*badMethod\(\)#'
|
||||||
- 'Call to an undefined method Illuminate\Database\Eloquent\Builder::exclude().
|
- '#Call to an undefined method Illuminate\Database\Eloquent\Builder::exclude#'
|
||||||
level: 2
|
level: 4
|
||||||
paths:
|
paths:
|
||||||
- app
|
- app
|
||||||
universalObjectCratesClasses:
|
universalObjectCratesClasses:
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature\EInvoice;
|
||||||
|
|
||||||
use App\Services\Invoice\EInvoice\FacturaEInvoice;
|
use App\Services\Invoice\EInvoice\FacturaEInvoice;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
@ -19,7 +19,6 @@ use Tests\TestCase;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @covers App\Http\Controllers\ActivityController
|
|
||||||
*/
|
*/
|
||||||
class FacturaeTest extends TestCase
|
class FacturaeTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* @license https://www.elastic.co/licensing/elastic-license
|
* @license https://www.elastic.co/licensing/elastic-license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature\EInvoice;
|
||||||
|
|
||||||
use App\Services\Invoice\EInvoice\FatturaPA;
|
use App\Services\Invoice\EInvoice\FatturaPA;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
@ -19,7 +19,6 @@ use App\Models\Company;
|
|||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Services\Report\ARDetailReport;
|
use App\Services\Report\ARDetailReport;
|
||||||
use App\Services\Report\UserSalesReport;
|
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Routing\Middleware\ThrottleRequests;
|
use Illuminate\Routing\Middleware\ThrottleRequests;
|
||||||
use Tests\MockAccountData;
|
use Tests\MockAccountData;
|
||||||
@ -28,7 +27,7 @@ use Tests\TestCase;
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
*/
|
*/
|
||||||
class ARDetailReportTest extends TestCase
|
class ArDetailReportTest extends TestCase
|
||||||
{
|
{
|
||||||
use MakesHash;
|
use MakesHash;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ use Tests\TestCase;
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
*/
|
*/
|
||||||
class ARSummaryReportTest extends TestCase
|
class ArSummaryReportTest extends TestCase
|
||||||
{
|
{
|
||||||
use MakesHash;
|
use MakesHash;
|
||||||
|
|
||||||
|
@ -34,6 +34,11 @@ class PreviewTest extends TestCase
|
|||||||
$this->withoutMiddleware(
|
$this->withoutMiddleware(
|
||||||
ThrottleRequests::class
|
ThrottleRequests::class
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (config('ninja.testvars.travis') !== false) {
|
||||||
|
$this->markTestSkipped('Skip test for Travis');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPreviewRoute()
|
public function testPreviewRoute()
|
||||||
|
Loading…
Reference in New Issue
Block a user