1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-19 16:01:34 +02:00
This commit is contained in:
= 2021-09-11 20:35:28 +10:00
commit e3039763c6
4 changed files with 66 additions and 4 deletions

View File

@ -7,6 +7,7 @@ use App\Models\User;
use App\Traits\GenerateMigrationResources;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
class ExportMigrations extends Command
{
@ -63,12 +64,12 @@ class ExportMigrations extends Command
if($this->option('email')) {
$record = User::on(DB_NINJA_1)->where('email', $this->option('user'))->first();
$record = User::on(DB_NINJA_1)->where('email', $this->option('email'))->first();
if($record)
return $this->export($record);
$record = User::on(DB_NINJA_2)->where('email', $this->option('user'))->first();
$record = User::on(DB_NINJA_2)->where('email', $this->option('email'))->first();
if($record)
return $this->export($record);
@ -120,6 +121,7 @@ class ExportMigrations extends Command
'products' => $this->getProducts(),
'credits' => $this->getCreditsNotes(),
'invoices' => $this->getInvoices(),
'recurring_expenses' => $this->getRecurringExpenses(),
'recurring_invoices' => $this->getRecurringInvoices(),
'quotes' => $this->getQuotes(),
'payments' => array_merge($this->getPayments(), $this->getCredits()),
@ -132,6 +134,7 @@ class ExportMigrations extends Command
'ninja_tokens' => $this->getNinjaToken(),
];
Storage::makeDirectory('migrations');
$file = storage_path("migrations/{$fileName}.zip");
$zip = new \ZipArchive();

View File

@ -322,6 +322,7 @@ class StepsController extends BaseController
'products' => $this->getProducts(),
'credits' => $this->getCreditsNotes(),
'invoices' => $this->getInvoices(),
'recurring_expenses' => $this->getRecurringExpenses(),
'recurring_invoices' => $this->getRecurringInvoices(),
'quotes' => $this->getQuotes(),
'payments' => array_merge($this->getPayments(), $this->getCredits()),

View File

@ -141,6 +141,7 @@ class HostedMigration extends Job
'products' => $this->getProducts(),
'credits' => $this->getCreditsNotes(),
'invoices' => $this->getInvoices(),
'recurring_expenses' => $this->getRecurringExpenses(),
'recurring_invoices' => $this->getRecurringInvoices(),
'quotes' => $this->getQuotes(),
'payments' => array_merge($this->getPayments(), $this->getCredits()),

View File

@ -20,6 +20,7 @@ use App\Models\PaymentMethod;
use App\Models\PaymentTerm;
use App\Models\Product;
use App\Models\Project;
use App\Models\RecurringExpense;
use App\Models\Task;
use App\Models\TaskStatus;
use App\Models\TaxRate;
@ -682,6 +683,57 @@ trait GenerateMigrationResources
return $design_id;
}
protected function getRecurringExpenses()
{
info("get recurring Expenses");
$expenses = [];
$export_expenses = RecurringExpense::where('account_id', $this->account->id)
->withTrashed()
->get();
foreach ($export_expenses as $expense) {
$invoices[] = [
'id' => $expense->id,
'amount' => $expense->amount,
'company_id' => $this->account->id,
'client_id' => $expense->client_id,
'user_id' => $expense->user_id,
'custom_value1' => '',
'custom_value2' => '',
'custom_value3' => '',
'custom_value4' => '',
'category_id' => $expense->expense_category_id,
'currency_id' => $expense->expense_currency_id,
'frequency_id' => $this->transformFrequencyId($expense->frequency_id),
'invoice_currency_id' => $expense->invoice_currency_id,
'private_notes' => $expense->private_notes,
'public_notes' => $expense->public_notes,
'should_be_invoiced' => $expense->should_be_invoiced,
'tax_name1' => $expense->tax_name1,
'tax_name2' => $expense->tax_name2,
'tax_name3' => '',
'tax_rate1' => $expense->tax_rate1,
'tax_rate2' => $expense->tax_rate2,
'tax_rate3' => 0,
'vendor_id' => $expense->vendor_id,
'is_deleted' => $expense->is_deleted,
'next_send_date' => $this->getNextSendDateForMigration($expense),
'remaining_cycles' => $this->getRemainingCycles($expense),
'created_at' => $expense->created_at ? Carbon::parse($expense->created_at)->toDateString() : null,
'updated_at' => $expense->updated_at ? Carbon::parse($expense->updated_at)->toDateString() : null,
'deleted_at' => $expense->deleted_at ? Carbon::parse($expense->deleted_at)->toDateString() : null,
];
}
return $invoices;
}
protected function getRecurringInvoices()
{
info("get recurring invoices");
@ -827,8 +879,13 @@ trait GenerateMigrationResources
$due_date_parts = explode("-", $invoice->due_date);
if(is_array($due_date_parts) && count($due_date_parts) >=3)
if(is_array($due_date_parts) && count($due_date_parts) >=3){
if($due_date_parts[2] == "00")
return "0";
return (string)$due_date_parts[2];
}
return 'terms';
}
@ -1971,7 +2028,7 @@ trait GenerateMigrationResources
'custom_value4' => '',
'email' => $contact->email,
'is_primary' => (bool)$contact->is_primary,
'send_email' => (bool)$contact->send_invoice ?: false,
'send_email' => (bool)$contact->send_invoice ?: true,
'confirmed' => $contact->confirmation_token ? true : false,
'email_verified_at' => $contact->created_at->toDateTimeString(),
'last_login' => $contact->last_login,