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\Models\Company;
use App\Models\CreditInvitation;
use App\Models\EInvoicingToken;
use App\Models\InvoiceInvitation;
use App\Models\PurchaseOrderInvitation;
use App\Models\QuoteInvitation;
@ -622,10 +623,21 @@ class CompanyExport implements ShouldQueue
//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->zipAndSend();
return true;

View File

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