Updates for import/exports from company

This commit is contained in:
David Bomba 2025-02-07 12:37:41 +11:00
parent 084ddcc7b8
commit 9e4941855c
2 changed files with 72 additions and 48 deletions

View File

@ -18,6 +18,7 @@ use App\Libraries\MultiDB;
use App\Mail\DownloadBackup; use App\Mail\DownloadBackup;
use App\Models\Company; use App\Models\Company;
use App\Models\CreditInvitation; use App\Models\CreditInvitation;
use App\Models\EInvoicingToken;
use App\Models\InvoiceInvitation; use App\Models\InvoiceInvitation;
use App\Models\PurchaseOrderInvitation; use App\Models\PurchaseOrderInvitation;
use App\Models\QuoteInvitation; use App\Models\QuoteInvitation;
@ -622,10 +623,21 @@ class CompanyExport implements ShouldQueue
//write to tmp and email to owner(); //write to tmp and email to owner();
if(Ninja::isSelfHost()) {
$this->export_data['e_invoicing_tokens'] = EInvoicingToken::all()->makeHidden(['id'])->all();
}
else {
$this->export_data['e_invoicing_tokens'] = [];
}
$x = $this->writer->collection('e_invoicing_tokens');
$x->addItems($this->export_data['e_invoicing_tokens']);
$this->export_data = null;
//////////////////////////////////// fine ////////////////////////////////////
$this->writer->end(); $this->writer->end();
$this->zipAndSend(); $this->zipAndSend();
return true; return true;

View File

@ -11,69 +11,70 @@
namespace App\Jobs\Company; namespace App\Jobs\Company;
use App\Exceptions\ImportCompanyFailed; use ZipArchive;
use App\Exceptions\NonExistingMigrationFile; use App\Models\Task;
use App\Factory\ClientContactFactory; use App\Models\User;
use App\Jobs\Mail\NinjaMailerJob; use App\Utils\Ninja;
use App\Jobs\Mail\NinjaMailerObject; use App\Models\Quote;
use App\Libraries\MultiDB;
use App\Mail\Import\CompanyImportFailure;
use App\Mail\Import\ImportCompleted;
use App\Models\Activity;
use App\Models\Backup; use App\Models\Backup;
use App\Models\BankIntegration;
use App\Models\BankTransaction;
use App\Models\Client; use App\Models\Client;
use App\Models\ClientContact;
use App\Models\ClientGatewayToken;
use App\Models\Company;
use App\Models\CompanyGateway;
use App\Models\CompanyLedger;
use App\Models\CompanyUser;
use App\Models\Credit; use App\Models\Credit;
use App\Models\CreditInvitation;
use App\Models\Design; use App\Models\Design;
use App\Models\Document; use App\Models\Vendor;
use App\Models\Company;
use App\Models\Expense; use App\Models\Expense;
use App\Models\ExpenseCategory;
use App\Models\GroupSetting;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\InvoiceInvitation;
use App\Models\Payment; use App\Models\Payment;
use App\Models\Paymentable;
use App\Models\PaymentTerm;
use App\Models\Product; use App\Models\Product;
use App\Models\Project; use App\Models\Project;
use App\Models\TaxRate;
use App\Models\Webhook;
use App\Utils\TempFile;
use App\Models\Activity;
use App\Models\Document;
use App\Libraries\MultiDB;
use App\Models\TaskStatus;
use App\Models\CompanyUser;
use App\Models\Paymentable;
use App\Models\PaymentTerm;
use Illuminate\Support\Str;
use App\Models\GroupSetting;
use App\Models\Subscription;
use JsonMachine\JsonMachine;
use App\Models\ClientContact;
use App\Models\CompanyLedger;
use App\Models\PurchaseOrder; use App\Models\PurchaseOrder;
use App\Models\PurchaseOrderInvitation; use App\Models\VendorContact;
use App\Models\Quote; use Illuminate\Bus\Queueable;
use App\Models\CompanyGateway;
use App\Models\BankIntegration;
use App\Models\BankTransaction;
use App\Models\EInvoicingToken;
use App\Models\ExpenseCategory;
use App\Models\QuoteInvitation; use App\Models\QuoteInvitation;
use App\Utils\Traits\MakesHash;
use App\Models\CreditInvitation;
use App\Models\RecurringExpense; use App\Models\RecurringExpense;
use App\Models\RecurringInvoice; use App\Models\RecurringInvoice;
use App\Models\RecurringInvoiceInvitation; use App\Jobs\Mail\NinjaMailerJob;
use App\Models\Subscription; use App\Models\InvoiceInvitation;
use App\Models\Task; use App\Models\ClientGatewayToken;
use App\Models\TaskStatus; use Illuminate\Support\Facades\App;
use App\Models\TaxRate; use App\Jobs\Mail\NinjaMailerObject;
use App\Models\User; use App\Mail\Import\ImportCompleted;
use App\Models\Vendor; use App\Factory\ClientContactFactory;
use App\Models\VendorContact;
use App\Models\Webhook;
use App\Utils\Ninja;
use App\Utils\TempFile;
use App\Utils\Traits\GeneratesCounter; use App\Utils\Traits\GeneratesCounter;
use App\Utils\Traits\MakesHash; use Illuminate\Queue\SerializesModels;
use Illuminate\Bus\Queueable; use App\Exceptions\ImportCompanyFailed;
use App\Models\PurchaseOrderInvitation;
use Illuminate\Support\Facades\Storage;
use Illuminate\Queue\InteractsWithQueue;
use App\Mail\Import\CompanyImportFailure;
use App\Models\RecurringInvoiceInvitation;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use JsonMachine\JsonDecoder\ExtJsonDecoder; use JsonMachine\JsonDecoder\ExtJsonDecoder;
use JsonMachine\JsonMachine; use App\Exceptions\NonExistingMigrationFile;
use ZipArchive;
class CompanyImport implements ShouldQueue class CompanyImport implements ShouldQueue
{ {
@ -156,6 +157,7 @@ class CompanyImport implements ShouldQueue
'bank_transactions', 'bank_transactions',
'payments', 'payments',
'schedulers', 'schedulers',
'e_invoicing_tokens',
]; ];
private $company_properties = [ private $company_properties = [
@ -638,6 +640,16 @@ class CompanyImport implements ShouldQueue
return $this; return $this;
} }
private function import_e_invoicing_tokens()
{
$this->genericNewClassImport(
EInvoicingToken::class,
[],
[],
'e_invoicing_tokens'
);
}
private function import_schedulers() private function import_schedulers()
{ {
$this->genericNewClassImport( $this->genericNewClassImport(