mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
commit
e0c901c8df
@ -16,7 +16,7 @@ DB_PASSWORD=ninja
|
||||
DB_CONNECTION=db-ninja-01
|
||||
DB_DATABASE1=db-ninja-01
|
||||
DB_DATABASE2=db-ninja-02
|
||||
MAIL_DRIVER=log
|
||||
MAIL_MAILER=log
|
||||
MAIL_PORT=587
|
||||
MAIL_ENCRYPTION=tls
|
||||
MAIL_HOST=
|
||||
|
@ -33,7 +33,7 @@ REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
MAIL_DRIVER=smtp
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
|
@ -14,7 +14,7 @@ DB_CONNECTION=db-ninja-01
|
||||
DB_DATABASE1=ninja01
|
||||
DB_DATABASE2=ninja02
|
||||
|
||||
MAIL_DRIVER=log
|
||||
MAIL_MAILER=log
|
||||
TRAVIS=true
|
||||
API_SECRET=password
|
||||
TEST_USERNAME=user@example.com
|
||||
|
@ -70,13 +70,12 @@ class CheckData extends Command
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$this->logMessage(date('Y-m-d h:i:s') . ' Running CheckData...');
|
||||
$this->logMessage(date('Y-m-d h:i:s').' Running CheckData...');
|
||||
|
||||
if ($database = $this->option('database')) {
|
||||
config(['database.default' => $database]);
|
||||
}
|
||||
|
||||
|
||||
$this->checkInvoiceBalances();
|
||||
$this->checkInvoicePayments();
|
||||
$this->checkPaidToDates();
|
||||
@ -93,25 +92,25 @@ class CheckData extends Command
|
||||
$this->checkFailedJobs();
|
||||
}
|
||||
|
||||
$this->logMessage('Done: ' . strtoupper($this->isValid ? Account::RESULT_SUCCESS : Account::RESULT_FAILURE));
|
||||
$this->logMessage('Done: '.strtoupper($this->isValid ? Account::RESULT_SUCCESS : Account::RESULT_FAILURE));
|
||||
$errorEmail = config('ninja.error_email');
|
||||
|
||||
if ($errorEmail) {
|
||||
Mail::raw($this->log, function ($message) use ($errorEmail, $database) {
|
||||
$message->to($errorEmail)
|
||||
->from(config('ninja.error_email'))
|
||||
->subject("Check-Data: " . strtoupper($this->isValid ? Account::RESULT_SUCCESS : Account::RESULT_FAILURE) . " [{$database}]");
|
||||
->subject('Check-Data: '.strtoupper($this->isValid ? Account::RESULT_SUCCESS : Account::RESULT_FAILURE)." [{$database}]");
|
||||
});
|
||||
} elseif (! $this->isValid) {
|
||||
throw new Exception("Check data failed!!\n" . $this->log);
|
||||
throw new Exception("Check data failed!!\n".$this->log);
|
||||
}
|
||||
}
|
||||
|
||||
private function logMessage($str)
|
||||
{
|
||||
$str = date('Y-m-d h:i:s') . ' ' . $str;
|
||||
$str = date('Y-m-d h:i:s').' '.$str;
|
||||
$this->info($str);
|
||||
$this->log .= $str . "\n";
|
||||
$this->log .= $str."\n";
|
||||
}
|
||||
|
||||
private function checkOAuth()
|
||||
@ -123,7 +122,7 @@ class CheckData extends Command
|
||||
->havingRaw('count(users.id) > 1')
|
||||
->get(['users.oauth_user_id']);
|
||||
|
||||
$this->logMessage($users->count() . ' users with duplicate oauth ids');
|
||||
$this->logMessage($users->count().' users with duplicate oauth ids');
|
||||
|
||||
if ($users->count() > 0) {
|
||||
$this->isValid = false;
|
||||
@ -132,7 +131,7 @@ class CheckData extends Command
|
||||
if ($this->option('fix') == 'true') {
|
||||
foreach ($users as $user) {
|
||||
$first = true;
|
||||
$this->logMessage('checking ' . $user->oauth_user_id);
|
||||
$this->logMessage('checking '.$user->oauth_user_id);
|
||||
$matches = DB::table('users')
|
||||
->where('oauth_user_id', '=', $user->oauth_user_id)
|
||||
->orderBy('id')
|
||||
@ -140,11 +139,11 @@ class CheckData extends Command
|
||||
|
||||
foreach ($matches as $match) {
|
||||
if ($first) {
|
||||
$this->logMessage('skipping ' . $match->id);
|
||||
$this->logMessage('skipping '.$match->id);
|
||||
$first = false;
|
||||
continue;
|
||||
}
|
||||
$this->logMessage('updating ' . $match->id);
|
||||
$this->logMessage('updating '.$match->id);
|
||||
|
||||
DB::table('users')
|
||||
->where('id', '=', $match->id)
|
||||
@ -165,7 +164,7 @@ class CheckData extends Command
|
||||
->whereNull('contact_key')
|
||||
->orderBy('id')
|
||||
->get(['id']);
|
||||
$this->logMessage($contacts->count() . ' contacts without a contact_key');
|
||||
$this->logMessage($contacts->count().' contacts without a contact_key');
|
||||
|
||||
if ($contacts->count() > 0) {
|
||||
$this->isValid = false;
|
||||
@ -184,7 +183,7 @@ class CheckData extends Command
|
||||
|
||||
// check for missing contacts
|
||||
$clients = DB::table('clients')
|
||||
->leftJoin('client_contacts', function($join) {
|
||||
->leftJoin('client_contacts', function ($join) {
|
||||
$join->on('client_contacts.client_id', '=', 'clients.id')
|
||||
->whereNull('client_contacts.deleted_at');
|
||||
})
|
||||
@ -196,7 +195,7 @@ class CheckData extends Command
|
||||
}
|
||||
|
||||
$clients = $clients->get(['clients.id', 'clients.user_id', 'clients.company_id']);
|
||||
$this->logMessage($clients->count() . ' clients without any contacts');
|
||||
$this->logMessage($clients->count().' clients without any contacts');
|
||||
|
||||
if ($clients->count() > 0) {
|
||||
$this->isValid = false;
|
||||
@ -217,7 +216,7 @@ class CheckData extends Command
|
||||
|
||||
// check for more than one primary contact
|
||||
$clients = DB::table('clients')
|
||||
->leftJoin('client_contacts', function($join) {
|
||||
->leftJoin('client_contacts', function ($join) {
|
||||
$join->on('client_contacts.client_id', '=', 'clients.id')
|
||||
->where('client_contacts.is_primary', '=', true)
|
||||
->whereNull('client_contacts.deleted_at');
|
||||
@ -230,7 +229,7 @@ class CheckData extends Command
|
||||
}
|
||||
|
||||
$clients = $clients->get(['clients.id', DB::raw('count(client_contacts.id)')]);
|
||||
$this->logMessage($clients->count() . ' clients without a single primary contact');
|
||||
$this->logMessage($clients->count().' clients without a single primary contact');
|
||||
|
||||
if ($clients->count() > 0) {
|
||||
$this->isValid = false;
|
||||
@ -250,7 +249,7 @@ class CheckData extends Command
|
||||
$this->isValid = false;
|
||||
}
|
||||
|
||||
$this->logMessage($count . ' failed jobs');
|
||||
$this->logMessage($count.' failed jobs');
|
||||
}
|
||||
|
||||
private function checkInvitations()
|
||||
@ -264,7 +263,7 @@ class CheckData extends Command
|
||||
->havingRaw('count(invoice_invitations.id) = 0')
|
||||
->get(['invoices.id', 'invoices.user_id', 'invoices.company_id', 'invoices.client_id']);
|
||||
|
||||
$this->logMessage($invoices->count() . ' invoices without any invitations');
|
||||
$this->logMessage($invoices->count().' invoices without any invitations');
|
||||
|
||||
if ($invoices->count() > 0) {
|
||||
$this->isValid = false;
|
||||
@ -285,134 +284,108 @@ class CheckData extends Command
|
||||
|
||||
private function checkInvoiceBalances()
|
||||
{
|
||||
|
||||
$wrong_balances = 0;
|
||||
$wrong_paid_to_dates = 0;
|
||||
|
||||
foreach(Client::cursor() as $client)
|
||||
{
|
||||
foreach (Client::cursor() as $client) {
|
||||
$invoice_balance = $client->invoices->where('is_deleted', false)->where('status_id', '>', 1)->sum('balance');
|
||||
|
||||
|
||||
$ledger = CompanyLedger::where('client_id', $client->id)->orderBy('id', 'DESC')->first();
|
||||
|
||||
if($ledger && number_format($invoice_balance, 4) != number_format($client->balance, 4))
|
||||
{
|
||||
if ($ledger && number_format($invoice_balance, 4) != number_format($client->balance, 4)) {
|
||||
$wrong_balances++;
|
||||
$this->logMessage($client->present()->name . " - " . $client->id . " - balances do not match Invoice Balance = {$invoice_balance} Client Balance = {$client->balance} Ledger Balance = {$ledger->balance}");
|
||||
$this->logMessage($client->present()->name.' - '.$client->id." - balances do not match Invoice Balance = {$invoice_balance} Client Balance = {$client->balance} Ledger Balance = {$ledger->balance}");
|
||||
|
||||
$this->isValid = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->logMessage("{$wrong_balances} clients with incorrect balances");
|
||||
|
||||
$this->logMessage("{$wrong_balances} clients with incorrect balances");
|
||||
}
|
||||
|
||||
private function checkPaidToDates()
|
||||
{
|
||||
|
||||
$wrong_paid_to_dates = 0;
|
||||
|
||||
Client::withTrashed()->cursor()->each(function ($client) use($wrong_paid_to_dates){
|
||||
Client::withTrashed()->cursor()->each(function ($client) use ($wrong_paid_to_dates) {
|
||||
$total_invoice_payments = 0;
|
||||
|
||||
$total_invoice_payments = 0;
|
||||
|
||||
foreach($client->invoices as $invoice)
|
||||
{
|
||||
foreach ($client->invoices as $invoice) {
|
||||
$total_amount = $invoice->payments->sum('pivot.amount');
|
||||
$total_refund = $invoice->payments->sum('pivot.refunded');
|
||||
|
||||
|
||||
$total_invoice_payments += ($total_amount - $total_refund);
|
||||
}
|
||||
|
||||
if(round($total_invoice_payments,2) != round($client->paid_to_date,2)) {
|
||||
|
||||
if (round($total_invoice_payments, 2) != round($client->paid_to_date, 2)) {
|
||||
$wrong_paid_to_dates++;
|
||||
|
||||
$this->logMessage($client->present()->name . " - " . $client->id . " - Paid to date does not match Client Paid To Date = {$client->paid_to_date} - Invoice Payments = {$total_invoice_payments}");
|
||||
$this->logMessage($client->present()->name.' - '.$client->id." - Paid to date does not match Client Paid To Date = {$client->paid_to_date} - Invoice Payments = {$total_invoice_payments}");
|
||||
|
||||
$this->isValid = false;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$this->logMessage("{$wrong_paid_to_dates} clients with incorrect paid to dates");
|
||||
|
||||
}
|
||||
|
||||
private function checkInvoicePayments()
|
||||
{
|
||||
$wrong_balances = 0;
|
||||
$wrong_paid_to_dates = 0;
|
||||
|
||||
|
||||
//todo reversing an invoice breaks the check data at this point;
|
||||
|
||||
Client::cursor()->each(function ($client) use($wrong_balances){
|
||||
|
||||
$client->invoices->where('is_deleted', false)->each(function ($invoice) use($wrong_balances, $client){
|
||||
|
||||
Client::cursor()->each(function ($client) use ($wrong_balances) {
|
||||
$client->invoices->where('is_deleted', false)->each(function ($invoice) use ($wrong_balances, $client) {
|
||||
$total_amount = $invoice->payments->sum('pivot.amount');
|
||||
$total_refund = $invoice->payments->sum('pivot.refunded');
|
||||
$total_credit = $invoice->credits->sum('amount');
|
||||
|
||||
$total_paid = $total_amount - $total_refund;
|
||||
|
||||
if($total_paid != ($invoice->amount - $invoice->balance - $total_credit)) {
|
||||
if ($total_paid != ($invoice->amount - $invoice->balance - $total_credit)) {
|
||||
$wrong_balances++;
|
||||
|
||||
$this->logMessage($client->present()->name . " - " . $client->id . " - balances do not match Invoice Amount = {$invoice->amount} - Invoice Balance = {$invoice->balance} Total paid = {$total_paid}");
|
||||
$this->logMessage($client->present()->name.' - '.$client->id." - balances do not match Invoice Amount = {$invoice->amount} - Invoice Balance = {$invoice->balance} Total paid = {$total_paid}");
|
||||
|
||||
$this->isValid = false;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$this->logMessage("{$wrong_balances} clients with incorrect invoice balances");
|
||||
$this->logMessage("{$wrong_balances} clients with incorrect invoice balances");
|
||||
}
|
||||
|
||||
private function checkClientBalances()
|
||||
{
|
||||
|
||||
$wrong_balances = 0;
|
||||
$wrong_paid_to_dates = 0;
|
||||
|
||||
foreach(Client::cursor() as $client)
|
||||
{
|
||||
foreach (Client::cursor() as $client) {
|
||||
$invoice_balance = $client->invoices->sum('balance');
|
||||
$invoice_amounts = $client->invoices->sum('amount') - $invoice_balance;
|
||||
|
||||
$credit_amounts = 0;
|
||||
|
||||
foreach($client->invoices as $invoice)
|
||||
{
|
||||
foreach ($client->invoices as $invoice) {
|
||||
$credit_amounts += $invoice->credits->sum('amount');
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
/*To handle invoice reversals, we need to "ADD BACK" the credit amounts here*/
|
||||
$client_paid_to_date = $client->paid_to_date + $credit_amounts;
|
||||
|
||||
$ledger = CompanyLedger::where('client_id', $client->id)->orderBy('id', 'DESC')->first();
|
||||
|
||||
if($ledger && (string)$invoice_amounts != (string)$client_paid_to_date)
|
||||
{
|
||||
|
||||
if ($ledger && (string) $invoice_amounts != (string) $client_paid_to_date) {
|
||||
$wrong_paid_to_dates++;
|
||||
$this->logMessage($client->present()->name . " - " . $client->id . " - client paid to dates do not match {$invoice_amounts} - " .rtrim($client_paid_to_date, "0"));
|
||||
|
||||
$this->logMessage($client->present()->name.' - '.$client->id." - client paid to dates do not match {$invoice_amounts} - ".rtrim($client_paid_to_date, '0'));
|
||||
|
||||
$this->isValid = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->logMessage("{$wrong_paid_to_dates} clients with incorrect paid_to_dates");
|
||||
|
||||
$this->logMessage("{$wrong_paid_to_dates} clients with incorrect paid_to_dates");
|
||||
}
|
||||
|
||||
private function checkLogoFiles()
|
||||
@ -460,7 +433,6 @@ class CheckData extends Command
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
private function checkCompanyData()
|
||||
{
|
||||
$tables = [
|
||||
@ -497,29 +469,24 @@ class CheckData extends Command
|
||||
|
||||
if ($records->count()) {
|
||||
$this->isValid = false;
|
||||
$this->logMessage($records->count() . " {$table} records with incorrect {$entityType} company id");
|
||||
|
||||
$this->logMessage($records->count()." {$table} records with incorrect {$entityType} company id");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// foreach(User::cursor() as $user) {
|
||||
|
||||
// $records = Company::where('account_id',)
|
||||
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
public function pluralizeEntityType($type)
|
||||
{
|
||||
|
||||
if ($type === 'company') {
|
||||
return 'companies';
|
||||
}
|
||||
}
|
||||
|
||||
return $type . 's';
|
||||
|
||||
return $type.'s';
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,6 @@ class CreateTestData extends Command
|
||||
$this->createLargeAccount();
|
||||
}
|
||||
|
||||
|
||||
private function createSmallAccount()
|
||||
{
|
||||
$this->info('Creating Small Account and Company');
|
||||
@ -92,20 +91,19 @@ class CreateTestData extends Command
|
||||
'slack_webhook_url' => config('ninja.notification.slack'),
|
||||
]);
|
||||
|
||||
|
||||
$account->default_company_id = $company->id;
|
||||
$account->save();
|
||||
|
||||
$user = User::whereEmail('small@example.com')->first();
|
||||
|
||||
if (!$user) {
|
||||
if (! $user) {
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
'account_id' => $account->id,
|
||||
'email' => 'small@example.com',
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
$company_token = new CompanyToken;
|
||||
$company_token->user_id = $user->id;
|
||||
$company_token->company_id = $company->id;
|
||||
@ -131,17 +129,16 @@ class CreateTestData extends Command
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$this->info('Creating '.$this->count. ' clients');
|
||||
$this->info('Creating '.$this->count.' clients');
|
||||
|
||||
for ($x=0; $x<$this->count; $x++) {
|
||||
$z = $x+1;
|
||||
$this->info("Creating client # ".$z);
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$z = $x + 1;
|
||||
$this->info('Creating client # '.$z);
|
||||
|
||||
$this->createClient($company, $user);
|
||||
}
|
||||
|
||||
for($x=0; $x<$this->count; $x++)
|
||||
{
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$client = $company->clients->random();
|
||||
|
||||
$this->info('creating invoice for client #'.$client->id);
|
||||
@ -177,7 +174,6 @@ class CreateTestData extends Command
|
||||
$this->info('creating project for client #'.$client->id);
|
||||
$this->createProject($client);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function createMediumAccount()
|
||||
@ -195,11 +191,11 @@ class CreateTestData extends Command
|
||||
|
||||
$user = User::whereEmail('medium@example.com')->first();
|
||||
|
||||
if (!$user) {
|
||||
if (! $user) {
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
'account_id' => $account->id,
|
||||
'email' => 'medium@example.com',
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
}
|
||||
|
||||
@ -222,25 +218,23 @@ class CreateTestData extends Command
|
||||
'settings' => null,
|
||||
]);
|
||||
|
||||
|
||||
factory(\App\Models\Product::class, 50)->create([
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$this->count = $this->count*10;
|
||||
$this->count = $this->count * 10;
|
||||
|
||||
$this->info('Creating '.$this->count. ' clients');
|
||||
$this->info('Creating '.$this->count.' clients');
|
||||
|
||||
for ($x=0; $x<$this->count; $x++) {
|
||||
$z = $x+1;
|
||||
$this->info("Creating client # ".$z);
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$z = $x + 1;
|
||||
$this->info('Creating client # '.$z);
|
||||
|
||||
$this->createClient($company, $user);
|
||||
}
|
||||
|
||||
for($x=0; $x<$this->count*100; $x++)
|
||||
{
|
||||
for ($x = 0; $x < $this->count * 100; $x++) {
|
||||
$client = $company->clients->random();
|
||||
|
||||
$this->info('creating invoice for client #'.$client->id);
|
||||
@ -294,11 +288,11 @@ class CreateTestData extends Command
|
||||
|
||||
$user = User::whereEmail('large@example.com')->first();
|
||||
|
||||
if (!$user) {
|
||||
if (! $user) {
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
'account_id' => $account->id,
|
||||
'email' => 'large@example.com',
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
}
|
||||
|
||||
@ -321,26 +315,23 @@ class CreateTestData extends Command
|
||||
'settings' => null,
|
||||
]);
|
||||
|
||||
|
||||
factory(\App\Models\Product::class, 15000)->create([
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$this->count = $this->count*100;
|
||||
$this->count = $this->count * 100;
|
||||
|
||||
$this->info('Creating '.$this->count. ' clients');
|
||||
$this->info('Creating '.$this->count.' clients');
|
||||
|
||||
|
||||
for ($x=0; $x<$this->count*500; $x++) {
|
||||
$z = $x+1;
|
||||
$this->info("Creating client # ".$z);
|
||||
for ($x = 0; $x < $this->count * 500; $x++) {
|
||||
$z = $x + 1;
|
||||
$this->info('Creating client # '.$z);
|
||||
|
||||
$this->createClient($company, $user);
|
||||
}
|
||||
|
||||
for($x=0; $x<$this->count; $x++)
|
||||
{
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$client = $company->clients->random();
|
||||
|
||||
$this->info('creating invoice for client #'.$client->id);
|
||||
@ -382,37 +373,36 @@ class CreateTestData extends Command
|
||||
{
|
||||
|
||||
// dispatch(function () use ($company, $user) {
|
||||
|
||||
|
||||
// });
|
||||
$client = factory(\App\Models\Client::class)->create([
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $company->id
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
factory(\App\Models\ClientContact::class, 1)->create([
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id,
|
||||
'is_primary' => 1
|
||||
'is_primary' => 1,
|
||||
]);
|
||||
|
||||
factory(\App\Models\ClientContact::class, rand(1, 5))->create([
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$client->id_number = $this->getNextClientNumber($client);
|
||||
|
||||
$settings = $client->settings;
|
||||
$settings->currency_id = (string)rand(1,79);
|
||||
$settings->currency_id = (string) rand(1, 79);
|
||||
$client->settings = $settings;
|
||||
|
||||
$country = Country::all()->random();
|
||||
|
||||
$client->country_id = $country->id;
|
||||
$client->save();
|
||||
|
||||
}
|
||||
|
||||
private function createExpense($client)
|
||||
@ -420,7 +410,7 @@ class CreateTestData extends Command
|
||||
factory(\App\Models\Expense::class, rand(1, 5))->create([
|
||||
'user_id' => $client->user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $client->company->id
|
||||
'company_id' => $client->company->id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -428,22 +418,21 @@ class CreateTestData extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Vendor::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'company_id' => $client->company->id
|
||||
'company_id' => $client->company->id,
|
||||
]);
|
||||
|
||||
|
||||
factory(\App\Models\VendorContact::class, 1)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'company_id' => $client->company->id,
|
||||
'is_primary' => 1
|
||||
'is_primary' => 1,
|
||||
]);
|
||||
|
||||
factory(\App\Models\VendorContact::class, rand(1, 5))->create([
|
||||
'user_id' => $client->user->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'company_id' => $client->company->id,
|
||||
'is_primary' => 0
|
||||
'is_primary' => 0,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -451,7 +440,7 @@ class CreateTestData extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Task::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'company_id' => $client->company->id
|
||||
'company_id' => $client->company->id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -459,7 +448,7 @@ class CreateTestData extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Project::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'company_id' => $client->company->id
|
||||
'company_id' => $client->company->id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -471,7 +460,7 @@ class CreateTestData extends Command
|
||||
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
$invoice = InvoiceFactory::create($client->company->id, $client->user->id);//stub the company and user_id
|
||||
$invoice = InvoiceFactory::create($client->company->id, $client->user->id); //stub the company and user_id
|
||||
$invoice->client_id = $client->id;
|
||||
// $invoice->date = $faker->date();
|
||||
$dateable = Carbon::now()->subDays(rand(0, 90));
|
||||
@ -511,9 +500,7 @@ class CreateTestData extends Command
|
||||
$this->invoice_repo->markSent($invoice);
|
||||
|
||||
if (rand(0, 1)) {
|
||||
|
||||
$invoice = $invoice->service()->markPaid()->save();
|
||||
|
||||
}
|
||||
//@todo this slow things down, but gives us PDFs of the invoices for inspection whilst debugging.
|
||||
event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars()));
|
||||
@ -572,10 +559,10 @@ class CreateTestData extends Command
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
//$quote = QuoteFactory::create($client->company->id, $client->user->id);//stub the company and user_id
|
||||
$quote =factory(\App\Models\Quote::class)->create(['user_id' => $client->user->id, 'company_id' => $client->company->id, 'client_id' => $client->id]);
|
||||
$quote = factory(\App\Models\Quote::class)->create(['user_id' => $client->user->id, 'company_id' => $client->company->id, 'client_id' => $client->id]);
|
||||
$quote->date = $faker->date();
|
||||
$quote->client_id = $client->id;
|
||||
|
||||
|
||||
$quote->setRelation('client', $client);
|
||||
|
||||
$quote->line_items = $this->buildLineItems(rand(1, 10));
|
||||
@ -613,7 +600,7 @@ class CreateTestData extends Command
|
||||
{
|
||||
$line_items = [];
|
||||
|
||||
for ($x=0; $x<$count; $x++) {
|
||||
for ($x = 0; $x < $count; $x++) {
|
||||
$item = InvoiceItemFactory::create();
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
@ -635,7 +622,7 @@ class CreateTestData extends Command
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
$item->cost = (float)$product->cost;
|
||||
$item->cost = (float) $product->cost;
|
||||
$item->product_key = $product->product_key;
|
||||
$item->notes = $product->notes;
|
||||
$item->custom_value1 = $product->custom_value1;
|
||||
@ -643,8 +630,6 @@ class CreateTestData extends Command
|
||||
$item->custom_value3 = $product->custom_value3;
|
||||
$item->custom_value4 = $product->custom_value4;
|
||||
|
||||
|
||||
|
||||
$line_items[] = $item;
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,8 @@ use Carbon\Carbon;
|
||||
use Composer\Composer;
|
||||
use Composer\Console\Application;
|
||||
use Composer\Factory;
|
||||
use Composer\IO\NullIO;
|
||||
use Composer\Installer;
|
||||
use Composer\IO\NullIO;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
@ -53,7 +53,7 @@ class DemoMode extends Command
|
||||
protected $description = 'Setup demo mode';
|
||||
|
||||
protected $invoice_repo;
|
||||
|
||||
|
||||
public function __construct(InvoiceRepository $invoice_repo)
|
||||
{
|
||||
parent::__construct();
|
||||
@ -71,7 +71,7 @@ class DemoMode extends Command
|
||||
set_time_limit(0);
|
||||
|
||||
$cached_tables = config('ninja.cached_tables');
|
||||
|
||||
|
||||
foreach ($cached_tables as $name => $class) {
|
||||
if (! Cache::has($name)) {
|
||||
// check that the table exists in case the migration is pending
|
||||
@ -94,25 +94,20 @@ class DemoMode extends Command
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->info("Migrating");
|
||||
$this->info('Migrating');
|
||||
Artisan::call('migrate:fresh --force');
|
||||
|
||||
$this->info("Seeding");
|
||||
$this->info('Seeding');
|
||||
Artisan::call('db:seed --force');
|
||||
|
||||
$this->info("Seeding Random Data");
|
||||
$this->info('Seeding Random Data');
|
||||
$this->createSmallAccount();
|
||||
|
||||
|
||||
VersionCheck::dispatchNow();
|
||||
|
||||
|
||||
CompanySizeCheck::dispatchNow();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private function createSmallAccount()
|
||||
{
|
||||
$faker = \Faker\Factory::create();
|
||||
@ -127,10 +122,10 @@ class DemoMode extends Command
|
||||
'slack_webhook_url' => config('ninja.notification.slack'),
|
||||
'enabled_modules' => 32767,
|
||||
'company_key' => 'KEY',
|
||||
'enable_shop_api' => true
|
||||
'enable_shop_api' => true,
|
||||
]);
|
||||
|
||||
$settings = $company->settings;
|
||||
$settings = $company->settings;
|
||||
|
||||
$settings->name = $faker->company;
|
||||
$settings->address1 = $faker->buildingNumber;
|
||||
@ -139,25 +134,25 @@ class DemoMode extends Command
|
||||
$settings->state = $faker->state;
|
||||
$settings->postal_code = $faker->postcode;
|
||||
$settings->website = $faker->url;
|
||||
$settings->vat_number = (string)$faker->numberBetween(123456789, 987654321);
|
||||
$settings->phone = (string)$faker->phoneNumber;
|
||||
$settings->vat_number = (string) $faker->numberBetween(123456789, 987654321);
|
||||
$settings->phone = (string) $faker->phoneNumber;
|
||||
|
||||
$company->settings = $settings;
|
||||
$company->save();
|
||||
$company->settings = $settings;
|
||||
$company->save();
|
||||
|
||||
$account->default_company_id = $company->id;
|
||||
$account->save();
|
||||
|
||||
$user = User::whereEmail('small@example.com')->first();
|
||||
|
||||
if (!$user) {
|
||||
if (! $user) {
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
'account_id' => $account->id,
|
||||
'email' => 'small@example.com',
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
$company_token = new CompanyToken;
|
||||
$company_token->user_id = $user->id;
|
||||
$company_token->company_id = $company->id;
|
||||
@ -165,7 +160,7 @@ class DemoMode extends Command
|
||||
$company_token->name = 'test token';
|
||||
$company_token->token = Str::random(64);
|
||||
$company_token->is_system = true;
|
||||
|
||||
|
||||
$company_token->save();
|
||||
|
||||
$user->companies()->attach($company->id, [
|
||||
@ -180,13 +175,12 @@ class DemoMode extends Command
|
||||
|
||||
$u2 = User::where('email', 'demo@invoiceninja.com')->first();
|
||||
|
||||
if(!$u2){
|
||||
|
||||
if (! $u2) {
|
||||
$u2 = factory(\App\Models\User::class)->create([
|
||||
'email' => 'demo@invoiceninja.com',
|
||||
'password' => Hash::make('demo'),
|
||||
'account_id' => $account->id,
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
|
||||
$company_token = new CompanyToken;
|
||||
@ -213,43 +207,41 @@ class DemoMode extends Command
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$this->info('Creating '.$this->count. ' clients');
|
||||
$this->info('Creating '.$this->count.' clients');
|
||||
|
||||
for ($x=0; $x<$this->count; $x++) {
|
||||
$z = $x+1;
|
||||
$this->info("Creating client # ".$z);
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$z = $x + 1;
|
||||
$this->info('Creating client # '.$z);
|
||||
|
||||
$this->createClient($company, $user, $u2->id);
|
||||
|
||||
}
|
||||
|
||||
for($x=0; $x<$this->count; $x++)
|
||||
{
|
||||
for ($x = 0; $x < $this->count; $x++) {
|
||||
$client = $company->clients->random();
|
||||
|
||||
$this->info('creating entities for client #'.$client->id);
|
||||
$this->createInvoice($client, $u2->id);
|
||||
$this->createInvoice($client, $u2->id);
|
||||
|
||||
// for($y=0; $y<($this->count); $y++){
|
||||
// $this->info("creating invoice #{$y} for client #".$client->id);
|
||||
// }
|
||||
|
||||
$client = $company->clients->random();
|
||||
$this->createCredit($client, $u2->id);
|
||||
$this->createCredit($client, $u2->id);
|
||||
|
||||
// for($y=0; $y<($this->count); $y++){
|
||||
// $this->info("creating credit #{$y} for client #".$client->id);
|
||||
// }
|
||||
|
||||
$client = $company->clients->random();
|
||||
$this->createQuote($client, $u2->id);
|
||||
$this->createQuote($client, $u2->id);
|
||||
|
||||
// for($y=0; $y<($this->count); $y++){
|
||||
// $this->info("creating quote #{$y} for client #".$client->id);
|
||||
// }
|
||||
|
||||
$client = $company->clients->random();
|
||||
$this->createExpense($client, $u2->id);
|
||||
$this->createExpense($client, $u2->id);
|
||||
|
||||
//$this->info("creating expense for client #".$client->id);
|
||||
|
||||
@ -268,45 +260,44 @@ class DemoMode extends Command
|
||||
|
||||
// $this->info("creating project for client #".$client->id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function createClient($company, $user, $assigned_user_id = null)
|
||||
{
|
||||
|
||||
// dispatch(function () use ($company, $user) {
|
||||
|
||||
|
||||
// });
|
||||
$client = factory(\App\Models\Client::class)->create([
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $company->id
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
factory(\App\Models\ClientContact::class)->create([
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id,
|
||||
'is_primary' => 1
|
||||
'is_primary' => 1,
|
||||
]);
|
||||
|
||||
factory(\App\Models\ClientContact::class, rand(1, 5))->create([
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id
|
||||
'company_id' => $company->id,
|
||||
]);
|
||||
|
||||
$client->id_number = $this->getNextClientNumber($client);
|
||||
|
||||
$settings = $client->settings;
|
||||
$settings->currency_id = (string)rand(1,3);
|
||||
$settings->currency_id = (string) rand(1, 3);
|
||||
$client->settings = $settings;
|
||||
|
||||
if(rand(0,1))
|
||||
if (rand(0, 1)) {
|
||||
$client->assigned_user_id = $assigned_user_id;
|
||||
}
|
||||
|
||||
$client->country_id = array_rand([36,392,840,124,276,826]);
|
||||
$client->country_id = array_rand([36, 392, 840, 124, 276, 826]);
|
||||
$client->save();
|
||||
|
||||
}
|
||||
|
||||
private function createExpense($client)
|
||||
@ -314,7 +305,7 @@ class DemoMode extends Command
|
||||
factory(\App\Models\Expense::class, rand(1, 5))->create([
|
||||
'user_id' => $client->user_id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $client->company_id
|
||||
'company_id' => $client->company_id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -322,22 +313,21 @@ class DemoMode extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Vendor::class)->create([
|
||||
'user_id' => $client->user_id,
|
||||
'company_id' => $client->company_id
|
||||
'company_id' => $client->company_id,
|
||||
]);
|
||||
|
||||
|
||||
factory(\App\Models\VendorContact::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'company_id' => $client->company_id,
|
||||
'is_primary' => 1
|
||||
'is_primary' => 1,
|
||||
]);
|
||||
|
||||
factory(\App\Models\VendorContact::class, rand(1, 5))->create([
|
||||
'user_id' => $client->user->id,
|
||||
'vendor_id' => $vendor->id,
|
||||
'company_id' => $client->company_id,
|
||||
'is_primary' => 0
|
||||
'is_primary' => 0,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -345,7 +335,7 @@ class DemoMode extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Task::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'company_id' => $client->company_id
|
||||
'company_id' => $client->company_id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -353,7 +343,7 @@ class DemoMode extends Command
|
||||
{
|
||||
$vendor = factory(\App\Models\Project::class)->create([
|
||||
'user_id' => $client->user->id,
|
||||
'company_id' => $client->company_id
|
||||
'company_id' => $client->company_id,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -365,13 +355,14 @@ class DemoMode extends Command
|
||||
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
$invoice = InvoiceFactory::create($client->company->id, $client->user->id);//stub the company and user_id
|
||||
$invoice = InvoiceFactory::create($client->company->id, $client->user->id); //stub the company and user_id
|
||||
$invoice->client_id = $client->id;
|
||||
|
||||
if((bool)rand(0,1))
|
||||
if ((bool) rand(0, 1)) {
|
||||
$dateable = Carbon::now()->subDays(rand(0, 90));
|
||||
else
|
||||
} else {
|
||||
$dateable = Carbon::now()->addDays(rand(0, 90));
|
||||
}
|
||||
|
||||
$invoice->date = $dateable;
|
||||
|
||||
@ -393,8 +384,8 @@ class DemoMode extends Command
|
||||
$invoice->tax_rate3 = 5;
|
||||
}
|
||||
|
||||
// $invoice->custom_value1 = $faker->date;
|
||||
// $invoice->custom_value2 = rand(0, 1) ? 'yes' : 'no';
|
||||
// $invoice->custom_value1 = $faker->date;
|
||||
// $invoice->custom_value2 = rand(0, 1) ? 'yes' : 'no';
|
||||
|
||||
$invoice->save();
|
||||
|
||||
@ -403,20 +394,20 @@ class DemoMode extends Command
|
||||
|
||||
$invoice = $invoice_calc->getInvoice();
|
||||
|
||||
if(rand(0,1))
|
||||
if (rand(0, 1)) {
|
||||
$invoice->assigned_user_id = $assigned_user_id;
|
||||
}
|
||||
|
||||
$invoice->save();
|
||||
$invoice->service()->createInvitations()->markSent();
|
||||
|
||||
$this->invoice_repo->markSent($invoice);
|
||||
|
||||
if ((bool)rand(0, 2)) {
|
||||
|
||||
if ((bool) rand(0, 2)) {
|
||||
$invoice = $invoice->service()->markPaid()->save();
|
||||
|
||||
$invoice->payments->each(function ($payment){
|
||||
$payment->date = now()->addDays(rand(-30,30));
|
||||
$invoice->payments->each(function ($payment) {
|
||||
$payment->date = now()->addDays(rand(-30, 30));
|
||||
$payment->save();
|
||||
});
|
||||
}
|
||||
@ -435,10 +426,11 @@ class DemoMode extends Command
|
||||
|
||||
$credit = factory(\App\Models\Credit::class)->create(['user_id' => $client->user->id, 'company_id' => $client->company->id, 'client_id' => $client->id]);
|
||||
|
||||
if((bool)rand(0,1))
|
||||
if ((bool) rand(0, 1)) {
|
||||
$dateable = Carbon::now()->subDays(rand(0, 90));
|
||||
else
|
||||
} else {
|
||||
$dateable = Carbon::now()->addDays(rand(0, 90));
|
||||
}
|
||||
|
||||
$credit->date = $dateable;
|
||||
|
||||
@ -467,8 +459,9 @@ class DemoMode extends Command
|
||||
|
||||
$credit = $invoice_calc->getCredit();
|
||||
|
||||
if(rand(0,1))
|
||||
if (rand(0, 1)) {
|
||||
$credit->assigned_user_id = $assigned_user_id;
|
||||
}
|
||||
|
||||
$credit->save();
|
||||
$credit->service()->markSent()->save();
|
||||
@ -477,16 +470,14 @@ class DemoMode extends Command
|
||||
|
||||
private function createQuote($client, $assigned_user_id = null)
|
||||
{
|
||||
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
$quote =factory(\App\Models\Quote::class)->create(['user_id' => $client->user->id, 'company_id' => $client->company_id, 'client_id' => $client->id]);
|
||||
$quote = factory(\App\Models\Quote::class)->create(['user_id' => $client->user->id, 'company_id' => $client->company_id, 'client_id' => $client->id]);
|
||||
|
||||
if((bool)rand(0,1)){
|
||||
if ((bool) rand(0, 1)) {
|
||||
$dateable = Carbon::now()->subDays(rand(1, 30));
|
||||
$dateable_due = $dateable->addDays(rand(1, 30));
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
$dateable = Carbon::now()->addDays(rand(1, 30));
|
||||
$dateable_due = $dateable->addDays(rand(-10, 30));
|
||||
}
|
||||
@ -495,7 +486,7 @@ class DemoMode extends Command
|
||||
$quote->due_date = $dateable_due;
|
||||
|
||||
$quote->client_id = $client->id;
|
||||
|
||||
|
||||
$quote->setRelation('client', $client);
|
||||
|
||||
$quote->line_items = $this->buildLineItems(rand(1, 10));
|
||||
@ -523,9 +514,10 @@ class DemoMode extends Command
|
||||
|
||||
$quote = $quote_calc->getQuote();
|
||||
|
||||
if(rand(0,1))
|
||||
if (rand(0, 1)) {
|
||||
$quote->assigned_user_id = $assigned_user_id;
|
||||
|
||||
}
|
||||
|
||||
$quote->save();
|
||||
|
||||
$quote->service()->markSent()->save();
|
||||
@ -536,7 +528,7 @@ class DemoMode extends Command
|
||||
{
|
||||
$line_items = [];
|
||||
|
||||
for ($x=0; $x<$count; $x++) {
|
||||
for ($x = 0; $x < $count; $x++) {
|
||||
$item = InvoiceItemFactory::create();
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
@ -558,7 +550,7 @@ class DemoMode extends Command
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
$item->cost = (float)$product->cost;
|
||||
$item->cost = (float) $product->cost;
|
||||
$item->product_key = $product->product_key;
|
||||
$item->notes = $product->notes;
|
||||
$item->custom_value1 = $product->custom_value1;
|
||||
@ -566,8 +558,6 @@ class DemoMode extends Command
|
||||
$item->custom_value3 = $product->custom_value3;
|
||||
$item->custom_value4 = $product->custom_value4;
|
||||
|
||||
|
||||
|
||||
$line_items[] = $item;
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ class ImportMigrations extends Command
|
||||
|
||||
foreach ($directory as $file) {
|
||||
if ($file->getExtension() === 'zip') {
|
||||
$this->info('Started processing: ' . $file->getBasename() . ' at ' . now());
|
||||
$this->info('Started processing: '.$file->getBasename().' at '.now());
|
||||
StartMigration::dispatch($file->getRealPath(), $this->getUser(), $this->getUser()->companies()->first());
|
||||
}
|
||||
}
|
||||
@ -72,7 +72,7 @@ class ImportMigrations extends Command
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
'account_id' => $account->id,
|
||||
'email' => $this->faker->email,
|
||||
'confirmation_code' => $this->createDbHash(config('database.default'))
|
||||
'confirmation_code' => $this->createDbHash(config('database.default')),
|
||||
]);
|
||||
|
||||
$company_token = CompanyToken::create([
|
||||
@ -107,8 +107,8 @@ class ImportMigrations extends Command
|
||||
'account_id' => $account->id,
|
||||
]);
|
||||
|
||||
if(!$account->default_company_id){
|
||||
$account->default_company_id = $company->id;
|
||||
if (! $account->default_company_id) {
|
||||
$account->default_company_id = $company->id;
|
||||
$account->save();
|
||||
}
|
||||
|
||||
|
@ -3,17 +3,16 @@
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Composer\Composer;
|
||||
use Composer\Console\Application;
|
||||
use Composer\Factory;
|
||||
use Composer\IO\NullIO;
|
||||
use Composer\Installer;
|
||||
use Composer\IO\NullIO;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Composer\Console\Application;
|
||||
|
||||
class PostUpdate extends Command
|
||||
{
|
||||
|
||||
protected $name = 'ninja:post-update';
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
@ -38,10 +37,10 @@ class PostUpdate extends Command
|
||||
{
|
||||
set_time_limit(0);
|
||||
|
||||
info("running post update");
|
||||
info('running post update');
|
||||
|
||||
try {
|
||||
Artisan::call('migrate',['--force' => true]);
|
||||
Artisan::call('migrate', ['--force' => true]);
|
||||
} catch (Exception $e) {
|
||||
\Log::error("I wasn't able to migrate the data.");
|
||||
}
|
||||
@ -52,49 +51,49 @@ class PostUpdate extends Command
|
||||
\Log::error("I wasn't able to optimize.");
|
||||
}
|
||||
|
||||
|
||||
$composer_data = array(
|
||||
$composer_data = [
|
||||
'url' => 'https://getcomposer.org/composer.phar',
|
||||
'dir' => __DIR__.'/.code',
|
||||
'bin' => __DIR__.'/.code/composer.phar',
|
||||
'json' => __DIR__.'/.code/composer.json',
|
||||
'conf' => array(
|
||||
"autoload" => array(
|
||||
"psr-4" => array(
|
||||
"" => "local/"
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
'conf' => [
|
||||
'autoload' => [
|
||||
'psr-4' => [
|
||||
'' => 'local/',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
if(!is_dir($composer_data['dir']))
|
||||
mkdir($composer_data['dir'],0777,true);
|
||||
if (! is_dir($composer_data['dir'])) {
|
||||
mkdir($composer_data['dir'], 0777, true);
|
||||
}
|
||||
|
||||
if(!is_dir("{$composer_data['dir']}/local"))
|
||||
mkdir("{$composer_data['dir']}/local",0777,true);
|
||||
if (! is_dir("{$composer_data['dir']}/local")) {
|
||||
mkdir("{$composer_data['dir']}/local", 0777, true);
|
||||
}
|
||||
|
||||
copy($composer_data['url'],$composer_data['bin']);
|
||||
copy($composer_data['url'], $composer_data['bin']);
|
||||
require_once "phar://{$composer_data['bin']}/src/bootstrap.php";
|
||||
|
||||
$conf_json = json_encode($composer_data['conf'],JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
|
||||
file_put_contents($composer_data['json'],$conf_json);
|
||||
$conf_json = json_encode($composer_data['conf'], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
||||
file_put_contents($composer_data['json'], $conf_json);
|
||||
chdir($composer_data['dir']);
|
||||
putenv("COMPOSER_HOME={$composer_data['dir']}");
|
||||
putenv("OSTYPE=OS400");
|
||||
putenv('OSTYPE=OS400');
|
||||
$app = new \Composer\Console\Application();
|
||||
|
||||
$factory = new \Composer\Factory();
|
||||
$output = $factory->createOutput();
|
||||
|
||||
$input = new \Symfony\Component\Console\Input\ArrayInput(array(
|
||||
$input = new \Symfony\Component\Console\Input\ArrayInput([
|
||||
'command' => 'install',
|
||||
));
|
||||
]);
|
||||
$input->setInteractive(false);
|
||||
echo "<pre>";
|
||||
$cmdret = $app->doRun($input,$output);
|
||||
echo "end!";
|
||||
|
||||
\Log::error(print_r($cmdret,1));
|
||||
echo '<pre>';
|
||||
$cmdret = $app->doRun($input, $output);
|
||||
echo 'end!';
|
||||
|
||||
\Log::error(print_r($cmdret, 1));
|
||||
}
|
||||
}
|
||||
|
@ -70,8 +70,7 @@ class SendTestEmails extends Command
|
||||
|
||||
$user = User::whereEmail('user@example.com')->first();
|
||||
|
||||
|
||||
if (!$user) {
|
||||
if (! $user) {
|
||||
$account = factory(\App\Models\Account::class)->create();
|
||||
|
||||
$user = factory(\App\Models\User::class)->create([
|
||||
@ -82,8 +81,6 @@ class SendTestEmails extends Command
|
||||
'last_name' => 'Doe',
|
||||
]);
|
||||
|
||||
|
||||
|
||||
$company = factory(\App\Models\Company::class)->create([
|
||||
'account_id' => $account->id,
|
||||
]);
|
||||
@ -103,12 +100,9 @@ class SendTestEmails extends Command
|
||||
$account = $company->account;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$client = Client::all()->first();
|
||||
|
||||
|
||||
if (!$client) {
|
||||
if (! $client) {
|
||||
$client = ClientFactory::create($company->id, $user->id);
|
||||
$client->save();
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -37,13 +37,11 @@ class CreateTestCreditJob implements ShouldQueue
|
||||
|
||||
protected $client;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function __construct(Client $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
@ -96,12 +94,11 @@ class CreateTestCreditJob implements ShouldQueue
|
||||
event(new CreateCreditInvitation($credit, $credit->company, Ninja::eventVars()));
|
||||
}
|
||||
|
||||
|
||||
private function buildLineItems($count = 1)
|
||||
{
|
||||
$line_items = [];
|
||||
|
||||
for ($x=0; $x<$count; $x++) {
|
||||
for ($x = 0; $x < $count; $x++) {
|
||||
$item = InvoiceItemFactory::create();
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
@ -123,7 +120,7 @@ class CreateTestCreditJob implements ShouldQueue
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
$item->cost = (float)$product->cost;
|
||||
$item->cost = (float) $product->cost;
|
||||
$item->product_key = $product->product_key;
|
||||
$item->notes = $product->notes;
|
||||
$item->custom_value1 = $product->custom_value1;
|
||||
@ -131,8 +128,6 @@ class CreateTestCreditJob implements ShouldQueue
|
||||
$item->custom_value3 = $product->custom_value3;
|
||||
$item->custom_value4 = $product->custom_value4;
|
||||
|
||||
|
||||
|
||||
$line_items[] = $item;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -36,13 +36,11 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
|
||||
protected $client;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function __construct(Client $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
@ -57,7 +55,7 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
{
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
$invoice = InvoiceFactory::create($this->client->company->id, $this->client->user->id);//stub the company and user_id
|
||||
$invoice = InvoiceFactory::create($this->client->company->id, $this->client->user->id); //stub the company and user_id
|
||||
$invoice->client_id = $this->client->id;
|
||||
// $invoice->date = $faker->date();
|
||||
$dateable = Carbon::now()->subDays(rand(0, 90));
|
||||
@ -97,7 +95,6 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
|
||||
//$this->invoice_repo->markSent($invoice);
|
||||
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$payment = PaymentFactory::create($this->client->company->id, $this->client->user->id);
|
||||
$payment->date = $dateable;
|
||||
@ -121,12 +118,11 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars()));
|
||||
}
|
||||
|
||||
|
||||
private function buildLineItems($count = 1)
|
||||
{
|
||||
$line_items = [];
|
||||
|
||||
for ($x=0; $x<$count; $x++) {
|
||||
for ($x = 0; $x < $count; $x++) {
|
||||
$item = InvoiceItemFactory::create();
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
@ -148,7 +144,7 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
$item->cost = (float)$product->cost;
|
||||
$item->cost = (float) $product->cost;
|
||||
$item->product_key = $product->product_key;
|
||||
$item->notes = $product->notes;
|
||||
$item->custom_value1 = $product->custom_value1;
|
||||
@ -156,8 +152,6 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
$item->custom_value3 = $product->custom_value3;
|
||||
$item->custom_value4 = $product->custom_value4;
|
||||
|
||||
|
||||
|
||||
$line_items[] = $item;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -36,13 +36,11 @@ class CreateTestQuoteJob implements ShouldQueue
|
||||
|
||||
protected $client;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function __construct(Client $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
@ -57,7 +55,7 @@ class CreateTestQuoteJob implements ShouldQueue
|
||||
{
|
||||
$faker = \Faker\Factory::create();
|
||||
|
||||
$quote =factory(\App\Models\Quote::class)->create(['user_id' => $this->client->user->id, 'company_id' => $this->client->company->id, 'client_id' => $this->client->id]);
|
||||
$quote = factory(\App\Models\Quote::class)->create(['user_id' => $this->client->user->id, 'company_id' => $this->client->company->id, 'client_id' => $this->client->id]);
|
||||
$quote->date = $faker->date();
|
||||
|
||||
$quote->line_items = $this->buildLineItems(rand(1, 10));
|
||||
@ -89,13 +87,11 @@ class CreateTestQuoteJob implements ShouldQueue
|
||||
CreateQuoteInvitations::dispatch($quote, $quote->company);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function buildLineItems($count = 1)
|
||||
{
|
||||
$line_items = [];
|
||||
|
||||
for ($x=0; $x<$count; $x++) {
|
||||
for ($x = 0; $x < $count; $x++) {
|
||||
$item = InvoiceItemFactory::create();
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
@ -117,7 +113,7 @@ class CreateTestQuoteJob implements ShouldQueue
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
$item->cost = (float)$product->cost;
|
||||
$item->cost = (float) $product->cost;
|
||||
$item->product_key = $product->product_key;
|
||||
$item->notes = $product->notes;
|
||||
$item->custom_value1 = $product->custom_value1;
|
||||
@ -125,8 +121,6 @@ class CreateTestQuoteJob implements ShouldQueue
|
||||
$item->custom_value3 = $product->custom_value3;
|
||||
$item->custom_value4 = $product->custom_value4;
|
||||
|
||||
|
||||
|
||||
$line_items[] = $item;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -43,7 +43,7 @@ class Kernel extends ConsoleKernel
|
||||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
|
||||
|
||||
//$schedule->job(new RecurringInvoicesCron)->hourly();
|
||||
$schedule->job(new VersionCheck)->daily();
|
||||
|
||||
@ -54,9 +54,9 @@ class Kernel extends ConsoleKernel
|
||||
$schedule->job(new CompanySizeCheck)->daily();
|
||||
|
||||
$schedule->job(new UpdateExchangeRates)->daily();
|
||||
|
||||
|
||||
/* Run hosted specific jobs */
|
||||
if(Ninja::isHosted()) {
|
||||
if (Ninja::isHosted()) {
|
||||
$schedule->job(new AdjustEmailQuota())->daily();
|
||||
$schedule->job(new SendFailedEmails())->daily();
|
||||
}
|
||||
|
@ -4,39 +4,37 @@ namespace App\DataMapper\Analytics;
|
||||
|
||||
class LoginFailure
|
||||
{
|
||||
/**
|
||||
* The type of Sample.
|
||||
*
|
||||
* Monotonically incrementing counter
|
||||
*
|
||||
* - counter
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'counter';
|
||||
|
||||
/**
|
||||
* The type of Sample
|
||||
*
|
||||
* Monotonically incrementing counter
|
||||
*
|
||||
* - counter
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'counter';
|
||||
/**
|
||||
* The name of the counter.
|
||||
* @var string
|
||||
*/
|
||||
public $name = 'login.failure';
|
||||
|
||||
/**
|
||||
* The name of the counter
|
||||
* @var string
|
||||
*/
|
||||
public $name = 'login.failure';
|
||||
/**
|
||||
* The datetime of the counter measurement.
|
||||
*
|
||||
* date("Y-m-d H:i:s")
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
public $datetime;
|
||||
|
||||
/**
|
||||
* The datetime of the counter measurement
|
||||
*
|
||||
* date("Y-m-d H:i:s")
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
public $datetime;
|
||||
|
||||
/**
|
||||
* The increment amount... should always be
|
||||
* set to 0
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
public $metric = 0;
|
||||
|
||||
}
|
||||
/**
|
||||
* The increment amount... should always be
|
||||
* set to 0.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $metric = 0;
|
||||
}
|
||||
|
@ -4,39 +4,37 @@ namespace App\DataMapper\Analytics;
|
||||
|
||||
class LoginSuccess
|
||||
{
|
||||
/**
|
||||
* The type of Sample.
|
||||
*
|
||||
* Monotonically incrementing counter
|
||||
*
|
||||
* - counter
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'counter';
|
||||
|
||||
/**
|
||||
* The type of Sample
|
||||
*
|
||||
* Monotonically incrementing counter
|
||||
*
|
||||
* - counter
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'counter';
|
||||
/**
|
||||
* The name of the counter.
|
||||
* @var string
|
||||
*/
|
||||
public $name = 'login.success';
|
||||
|
||||
/**
|
||||
* The name of the counter
|
||||
* @var string
|
||||
*/
|
||||
public $name = 'login.success';
|
||||
/**
|
||||
* The datetime of the counter measurement.
|
||||
*
|
||||
* date("Y-m-d H:i:s")
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
public $datetime;
|
||||
|
||||
/**
|
||||
* The datetime of the counter measurement
|
||||
*
|
||||
* date("Y-m-d H:i:s")
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
public $datetime;
|
||||
|
||||
/**
|
||||
* The increment amount... should always be
|
||||
* set to 0
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
public $metric = 0;
|
||||
|
||||
}
|
||||
/**
|
||||
* The increment amount... should always be
|
||||
* set to 0.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $metric = 0;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -12,7 +12,7 @@
|
||||
namespace App\DataMapper;
|
||||
|
||||
/**
|
||||
* ClientSettings
|
||||
* ClientSettings.
|
||||
*/
|
||||
class BaseSettings
|
||||
{
|
||||
@ -22,7 +22,7 @@ class BaseSettings
|
||||
$obj->{$key} = $value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function setCasts($obj, $casts)
|
||||
{
|
||||
foreach ($casts as $key => $value) {
|
||||
@ -46,7 +46,7 @@ class BaseSettings
|
||||
return is_null($value) ? '' : (string) $value;
|
||||
case 'bool':
|
||||
case 'boolean':
|
||||
return (bool)($value);
|
||||
return (bool) ($value);
|
||||
case 'object':
|
||||
return json_decode($value);
|
||||
case 'array':
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,7 @@ use App\Models\Client;
|
||||
use App\Utils\TranslationHelper;
|
||||
|
||||
/**
|
||||
* ClientSettings
|
||||
* ClientSettings.
|
||||
*
|
||||
* Client settings are built as a superset of Company Settings
|
||||
*
|
||||
@ -25,13 +25,11 @@ use App\Utils\TranslationHelper;
|
||||
*
|
||||
* Client settings are passed down to the entity level where they can be further customized and then saved
|
||||
* into the settings column of the entity, so there is no need to create additional entity level settings handlers.
|
||||
*
|
||||
*/
|
||||
class ClientSettings extends BaseSettings
|
||||
{
|
||||
|
||||
/**
|
||||
* Settings which which are unique to client settings
|
||||
* Settings which which are unique to client settings.
|
||||
*/
|
||||
public $industry_id;
|
||||
public $size_id;
|
||||
@ -40,11 +38,11 @@ class ClientSettings extends BaseSettings
|
||||
'industry_id' => 'string',
|
||||
'size_id' => 'string',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Cast object values and return entire class
|
||||
* prevents missing properties from not being returned
|
||||
* and always ensure an up to date class is returned
|
||||
* and always ensure an up to date class is returned.
|
||||
*
|
||||
* @return \stdClass
|
||||
*/
|
||||
@ -54,16 +52,14 @@ class ClientSettings extends BaseSettings
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Default Client Settings scaffold
|
||||
* Default Client Settings scaffold.
|
||||
*
|
||||
* @return \stdClass
|
||||
*
|
||||
*/
|
||||
public static function defaults() : \stdClass
|
||||
{
|
||||
$data = (object)[
|
||||
'entity' => (string)Client::class,
|
||||
$data = (object) [
|
||||
'entity' => (string) Client::class,
|
||||
'industry_id' => '',
|
||||
'size_id' => '',
|
||||
];
|
||||
@ -71,9 +67,8 @@ class ClientSettings extends BaseSettings
|
||||
return self::setCasts($data, self::$casts);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Merges settings from Company to Client
|
||||
* Merges settings from Company to Client.
|
||||
*
|
||||
* @param \stdClass $company_settings
|
||||
* @param \stdClass $client_settings
|
||||
@ -81,21 +76,21 @@ class ClientSettings extends BaseSettings
|
||||
*/
|
||||
public static function buildClientSettings($company_settings, $client_settings)
|
||||
{
|
||||
if (!$client_settings) {
|
||||
if (! $client_settings) {
|
||||
return $company_settings;
|
||||
}
|
||||
|
||||
|
||||
foreach ($company_settings as $key => $value) {
|
||||
/* pseudo code
|
||||
if the property exists and is a string BUT has no length, treat it as TRUE
|
||||
*/
|
||||
if (((property_exists($client_settings, $key) && is_string($client_settings->{$key}) && (iconv_strlen($client_settings->{$key}) <1)))
|
||||
|| !isset($client_settings->{$key})
|
||||
if (((property_exists($client_settings, $key) && is_string($client_settings->{$key}) && (iconv_strlen($client_settings->{$key}) < 1)))
|
||||
|| ! isset($client_settings->{$key})
|
||||
&& property_exists($company_settings, $key)) {
|
||||
$client_settings->{$key} = $company_settings->{$key};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $client_settings;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -15,65 +15,64 @@ use App\DataMapper\CompanySettings;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
/**
|
||||
* CompanySettings
|
||||
* CompanySettings.
|
||||
*/
|
||||
|
||||
class CompanySettings extends BaseSettings
|
||||
{
|
||||
use MakesHash;
|
||||
/*Group settings based on functionality*/
|
||||
|
||||
/*Invoice*/
|
||||
public $auto_archive_invoice = false;
|
||||
public $auto_archive_invoice = false;
|
||||
|
||||
public $lock_invoices = 'off'; //off,when_sent,when_paid
|
||||
|
||||
public $enable_client_portal_tasks = false;
|
||||
public $enable_client_portal_password = false;
|
||||
public $enable_client_portal = true; //implemented
|
||||
public $enable_client_portal_dashboard = true; //implemented
|
||||
public $signature_on_pdf = false;
|
||||
public $document_email_attachment = false;
|
||||
public $enable_client_portal_tasks = false;
|
||||
public $enable_client_portal_password = false;
|
||||
public $enable_client_portal = true; //implemented
|
||||
public $enable_client_portal_dashboard = true; //implemented
|
||||
public $signature_on_pdf = false;
|
||||
public $document_email_attachment = false;
|
||||
//public $send_portal_password = false;
|
||||
|
||||
public $portal_design_id = '1';
|
||||
public $portal_design_id = '1';
|
||||
|
||||
public $timezone_id = '';
|
||||
public $date_format_id = '';
|
||||
public $military_time = false;
|
||||
public $timezone_id = '';
|
||||
public $date_format_id = '';
|
||||
public $military_time = false;
|
||||
|
||||
public $language_id = '';
|
||||
public $show_currency_code = false;
|
||||
public $language_id = '';
|
||||
public $show_currency_code = false;
|
||||
|
||||
public $company_gateway_ids = '';
|
||||
public $company_gateway_ids = '';
|
||||
|
||||
public $currency_id = '1';
|
||||
public $currency_id = '1';
|
||||
|
||||
public $custom_value1 = '';
|
||||
public $custom_value2 = '';
|
||||
public $custom_value3 = '';
|
||||
public $custom_value4 = '';
|
||||
public $custom_value1 = '';
|
||||
public $custom_value2 = '';
|
||||
public $custom_value3 = '';
|
||||
public $custom_value4 = '';
|
||||
|
||||
public $default_task_rate = 0;
|
||||
public $default_task_rate = 0;
|
||||
|
||||
public $payment_terms = "";
|
||||
public $send_reminders = false;
|
||||
public $payment_terms = '';
|
||||
public $send_reminders = false;
|
||||
|
||||
public $custom_message_dashboard = '';
|
||||
public $custom_message_unpaid_invoice = '';
|
||||
public $custom_message_paid_invoice = '';
|
||||
public $custom_message_dashboard = '';
|
||||
public $custom_message_unpaid_invoice = '';
|
||||
public $custom_message_paid_invoice = '';
|
||||
public $custom_message_unapproved_quote = '';
|
||||
public $auto_archive_quote = false;
|
||||
public $auto_convert_quote = true;
|
||||
public $auto_email_invoice = true;
|
||||
public $auto_archive_quote = false;
|
||||
public $auto_convert_quote = true;
|
||||
public $auto_email_invoice = true;
|
||||
|
||||
public $inclusive_taxes = false;
|
||||
public $quote_footer = '';
|
||||
public $quote_footer = '';
|
||||
|
||||
public $translations;
|
||||
|
||||
public $counter_number_applied = 'when_saved';// when_saved , when_sent
|
||||
public $quote_number_applied = 'when_saved';// when_saved , when_sent
|
||||
public $counter_number_applied = 'when_saved'; // when_saved , when_sent
|
||||
public $quote_number_applied = 'when_saved'; // when_saved , when_sent
|
||||
|
||||
/* Counters */
|
||||
public $invoice_number_pattern = '';
|
||||
@ -104,71 +103,71 @@ class CompanySettings extends BaseSettings
|
||||
public $payment_number_counter = 1;
|
||||
|
||||
public $shared_invoice_quote_counter = false;
|
||||
public $recurring_number_prefix = 'R';
|
||||
public $reset_counter_frequency_id = '0';
|
||||
public $reset_counter_date = '';
|
||||
public $counter_padding = 4;
|
||||
public $recurring_number_prefix = 'R';
|
||||
public $reset_counter_frequency_id = '0';
|
||||
public $reset_counter_date = '';
|
||||
public $counter_padding = 4;
|
||||
|
||||
public $auto_bill = 'off'; //off,always,optin,optout
|
||||
|
||||
public $design = 'views/pdf/design1.blade.php';
|
||||
|
||||
public $invoice_terms = '';
|
||||
public $quote_terms = '';
|
||||
public $invoice_taxes = 0;
|
||||
// public $enabled_item_tax_rates = 0;
|
||||
public $invoice_design_id = 'VolejRejNm';
|
||||
public $quote_design_id = 'VolejRejNm';
|
||||
public $credit_design_id = 'VolejRejNm';
|
||||
public $invoice_footer = '';
|
||||
public $credit_footer = '';
|
||||
public $credit_terms = '';
|
||||
public $invoice_labels = '';
|
||||
public $tax_name1 = '';
|
||||
public $tax_rate1 = 0;
|
||||
public $tax_name2 = '';
|
||||
public $tax_rate2 = 0;
|
||||
public $tax_name3 = '';
|
||||
public $tax_rate3 = 0;
|
||||
public $payment_type_id = '0';
|
||||
public $invoice_fields = '';
|
||||
public $invoice_terms = '';
|
||||
public $quote_terms = '';
|
||||
public $invoice_taxes = 0;
|
||||
// public $enabled_item_tax_rates = 0;
|
||||
public $invoice_design_id = 'VolejRejNm';
|
||||
public $quote_design_id = 'VolejRejNm';
|
||||
public $credit_design_id = 'VolejRejNm';
|
||||
public $invoice_footer = '';
|
||||
public $credit_footer = '';
|
||||
public $credit_terms = '';
|
||||
public $invoice_labels = '';
|
||||
public $tax_name1 = '';
|
||||
public $tax_rate1 = 0;
|
||||
public $tax_name2 = '';
|
||||
public $tax_rate2 = 0;
|
||||
public $tax_name3 = '';
|
||||
public $tax_rate3 = 0;
|
||||
public $payment_type_id = '0';
|
||||
public $invoice_fields = '';
|
||||
|
||||
public $show_accept_invoice_terms = false;
|
||||
public $show_accept_quote_terms = false;
|
||||
public $show_accept_quote_terms = false;
|
||||
public $require_invoice_signature = false;
|
||||
public $require_quote_signature = false;
|
||||
public $require_quote_signature = false;
|
||||
|
||||
//email settings
|
||||
public $email_sending_method = 'default';//enum 'default','gmail'
|
||||
public $email_sending_method = 'default'; //enum 'default','gmail'
|
||||
public $gmail_sending_user_id = '0';
|
||||
|
||||
public $reply_to_email = '';
|
||||
public $bcc_email = '';
|
||||
public $reply_to_email = '';
|
||||
public $bcc_email = '';
|
||||
public $pdf_email_attachment = false;
|
||||
public $ubl_email_attachment = false;
|
||||
|
||||
public $email_style = 'light'; //plain, light, dark, custom
|
||||
public $email_style_custom = ''; //the template itself
|
||||
public $email_subject_invoice = '';
|
||||
public $email_subject_quote = '';
|
||||
public $email_subject_payment = '';
|
||||
public $email_subject_payment_partial = '';
|
||||
public $email_subject_statement = '';
|
||||
public $email_template_invoice = '';
|
||||
public $email_template_quote = '';
|
||||
public $email_template_payment = '';
|
||||
public $email_template_payment_partial = '';
|
||||
public $email_template_statement = '';
|
||||
public $email_subject_reminder1 = '';
|
||||
public $email_subject_reminder2 = '';
|
||||
public $email_subject_reminder3 = '';
|
||||
public $email_subject_reminder_endless = '';
|
||||
public $email_template_reminder1 = '';
|
||||
public $email_template_reminder2 = '';
|
||||
public $email_template_reminder3 = '';
|
||||
public $email_style = 'light'; //plain, light, dark, custom
|
||||
public $email_style_custom = ''; //the template itself
|
||||
public $email_subject_invoice = '';
|
||||
public $email_subject_quote = '';
|
||||
public $email_subject_payment = '';
|
||||
public $email_subject_payment_partial = '';
|
||||
public $email_subject_statement = '';
|
||||
public $email_template_invoice = '';
|
||||
public $email_template_quote = '';
|
||||
public $email_template_payment = '';
|
||||
public $email_template_payment_partial = '';
|
||||
public $email_template_statement = '';
|
||||
public $email_subject_reminder1 = '';
|
||||
public $email_subject_reminder2 = '';
|
||||
public $email_subject_reminder3 = '';
|
||||
public $email_subject_reminder_endless = '';
|
||||
public $email_template_reminder1 = '';
|
||||
public $email_template_reminder2 = '';
|
||||
public $email_template_reminder3 = '';
|
||||
public $email_template_reminder_endless = '';
|
||||
public $email_signature = '';
|
||||
public $enable_email_markup = true;
|
||||
public $email_signature = '';
|
||||
public $enable_email_markup = true;
|
||||
|
||||
public $email_subject_custom1 = '';
|
||||
public $email_subject_custom2 = '';
|
||||
@ -186,47 +185,47 @@ class CompanySettings extends BaseSettings
|
||||
public $num_days_reminder2 = 0;
|
||||
public $num_days_reminder3 = 0;
|
||||
|
||||
public $schedule_reminder1 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
public $schedule_reminder2 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
public $schedule_reminder3 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
public $schedule_reminder1 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
public $schedule_reminder2 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
public $schedule_reminder3 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
|
||||
|
||||
public $reminder_send_time = 32400;//number of seconds from UTC +0 to send reminders
|
||||
public $reminder_send_time = 32400; //number of seconds from UTC +0 to send reminders
|
||||
|
||||
public $late_fee_amount1 = 0;
|
||||
public $late_fee_amount2 = 0;
|
||||
public $late_fee_amount3 = 0;
|
||||
|
||||
public $endless_reminder_frequency_id = '0';
|
||||
public $late_fee_endless_amount = 0;
|
||||
public $late_fee_endless_percent = 0;
|
||||
public $late_fee_endless_amount = 0;
|
||||
public $late_fee_endless_percent = 0;
|
||||
|
||||
public $client_online_payment_notification = true; //@todo implement in notifications
|
||||
public $client_manual_payment_notification = true; //@todo implement in notifications
|
||||
|
||||
/* Company Meta data that we can use to build sub companies*/
|
||||
|
||||
public $name = '';
|
||||
public $name = '';
|
||||
public $company_logo = '';
|
||||
public $website = '';
|
||||
public $address1 = '';
|
||||
public $address2 = '';
|
||||
public $city = '';
|
||||
public $state = '';
|
||||
public $postal_code = '';
|
||||
public $phone = '';
|
||||
public $email = '';
|
||||
public $website = '';
|
||||
public $address1 = '';
|
||||
public $address2 = '';
|
||||
public $city = '';
|
||||
public $state = '';
|
||||
public $postal_code = '';
|
||||
public $phone = '';
|
||||
public $email = '';
|
||||
public $country_id;
|
||||
public $vat_number = '';
|
||||
public $id_number = '';
|
||||
public $id_number = '';
|
||||
|
||||
public $page_size = 'A4'; //Letter, Legal, Tabloid, Ledger, A0, A1, A2, A3, A4, A5, A6
|
||||
public $font_size = 9;
|
||||
public $primary_font = 'Roboto';
|
||||
public $secondary_font = 'Roboto';
|
||||
public $page_size = 'A4'; //Letter, Legal, Tabloid, Ledger, A0, A1, A2, A3, A4, A5, A6
|
||||
public $font_size = 9;
|
||||
public $primary_font = 'Roboto';
|
||||
public $secondary_font = 'Roboto';
|
||||
public $hide_paid_to_date = false;
|
||||
public $embed_documents = false;
|
||||
public $all_pages_header = false;
|
||||
public $all_pages_footer = false;
|
||||
public $embed_documents = false;
|
||||
public $all_pages_header = false;
|
||||
public $all_pages_footer = false;
|
||||
public $pdf_variables = '';
|
||||
|
||||
public $portal_custom_head = '';
|
||||
@ -237,11 +236,10 @@ class CompanySettings extends BaseSettings
|
||||
public $client_can_register = false;
|
||||
public $client_portal_terms = '';
|
||||
public $client_portal_privacy_policy = '';
|
||||
public $client_portal_enable_uploads = false;
|
||||
public $client_portal_enable_uploads = false;
|
||||
public $client_portal_allow_under_payment = false;
|
||||
public $client_portal_allow_over_payment = false;
|
||||
|
||||
|
||||
public static $casts = [
|
||||
'client_portal_allow_under_payment' => 'bool',
|
||||
'client_portal_allow_over_payment' => 'bool',
|
||||
@ -414,7 +412,6 @@ class CompanySettings extends BaseSettings
|
||||
'client_portal_enable_uploads' => 'bool',
|
||||
];
|
||||
|
||||
|
||||
public static $free_plan_casts = [
|
||||
'currency_id' => 'string',
|
||||
'company_gateway_ids' => 'string',
|
||||
@ -453,7 +450,7 @@ class CompanySettings extends BaseSettings
|
||||
|
||||
/**
|
||||
* Array of variables which
|
||||
* cannot be modified client side
|
||||
* cannot be modified client side.
|
||||
*/
|
||||
public static $protected_fields = [
|
||||
// 'credit_number_counter',
|
||||
@ -470,7 +467,7 @@ class CompanySettings extends BaseSettings
|
||||
/**
|
||||
* Cast object values and return entire class
|
||||
* prevents missing properties from not being returned
|
||||
* and always ensure an up to date class is returned
|
||||
* and always ensure an up to date class is returned.
|
||||
*
|
||||
* @return \stdClass
|
||||
*/
|
||||
@ -480,29 +477,29 @@ class CompanySettings extends BaseSettings
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides class defaults on init
|
||||
* Provides class defaults on init.
|
||||
* @return object
|
||||
*/
|
||||
public static function defaults():\stdClass
|
||||
{
|
||||
$config = json_decode(config('ninja.settings'));
|
||||
|
||||
$data = (object) get_class_vars(CompanySettings::class);
|
||||
$data = (object) get_class_vars(self::class);
|
||||
|
||||
unset($data->casts);
|
||||
unset($data->protected_fields);
|
||||
unset($data->free_plan_casts);
|
||||
unset($data->string_casts);
|
||||
|
||||
$data->timezone_id = (string) config('ninja.i18n.timezone_id');
|
||||
$data->currency_id = (string) config('ninja.i18n.currency_id');
|
||||
$data->language_id = (string) config('ninja.i18n.language_id');
|
||||
$data->payment_terms = (string) config('ninja.i18n.payment_terms');
|
||||
$data->military_time = (bool) config('ninja.i18n.military_time');
|
||||
$data->date_format_id = (string) config('ninja.i18n.date_format_id');
|
||||
$data->country_id = (string) config('ninja.i18n.country_id');
|
||||
$data->translations = (object) [];
|
||||
$data->pdf_variables = (object) self::getEntityVariableDefaults();
|
||||
|
||||
$data->timezone_id = (string) config('ninja.i18n.timezone_id');
|
||||
$data->currency_id = (string) config('ninja.i18n.currency_id');
|
||||
$data->language_id = (string) config('ninja.i18n.language_id');
|
||||
$data->payment_terms = (string) config('ninja.i18n.payment_terms');
|
||||
$data->military_time = (bool) config('ninja.i18n.military_time');
|
||||
$data->date_format_id = (string) config('ninja.i18n.date_format_id');
|
||||
$data->country_id = (string) config('ninja.i18n.country_id');
|
||||
$data->translations = (object) [];
|
||||
$data->pdf_variables = (object) self::getEntityVariableDefaults();
|
||||
|
||||
return self::setCasts($data, self::$casts);
|
||||
}
|
||||
@ -516,10 +513,10 @@ class CompanySettings extends BaseSettings
|
||||
*/
|
||||
public static function setProperties($settings):\stdClass
|
||||
{
|
||||
$company_settings = (object) get_class_vars(CompanySettings::class);
|
||||
$company_settings = (object) get_class_vars(self::class);
|
||||
|
||||
foreach ($company_settings as $key => $value) {
|
||||
if (!property_exists($settings, $key)) {
|
||||
if (! property_exists($settings, $key)) {
|
||||
$settings->{ $key} = self::castAttribute($key, $company_settings->{ $key});
|
||||
}
|
||||
}
|
||||
@ -614,10 +611,10 @@ class CompanySettings extends BaseSettings
|
||||
'$custom_surcharge3',
|
||||
'$custom_surcharge4',
|
||||
'$paid_to_date',
|
||||
'$client.balance'
|
||||
'$client.balance',
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
return json_decode(json_encode($variables));
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -15,12 +15,10 @@ use App\Models\Client;
|
||||
use App\Models\User;
|
||||
|
||||
/**
|
||||
* Class DefaultSettings
|
||||
* @package App\DataMapper
|
||||
* Class DefaultSettings.
|
||||
*/
|
||||
class DefaultSettings extends BaseSettings
|
||||
{
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
@ -33,7 +31,7 @@ class DefaultSettings extends BaseSettings
|
||||
*/
|
||||
public static function userSettings() : \stdClass
|
||||
{
|
||||
return (object)[
|
||||
return (object) [
|
||||
// class_basename(User::class) => self::userSettingsObject(),
|
||||
];
|
||||
}
|
||||
@ -43,7 +41,7 @@ class DefaultSettings extends BaseSettings
|
||||
*/
|
||||
private static function userSettingsObject() : \stdClass
|
||||
{
|
||||
return (object)[
|
||||
return (object) [
|
||||
// 'per_page' => self::$per_page,
|
||||
];
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -12,26 +12,25 @@
|
||||
namespace App\DataMapper;
|
||||
|
||||
/**
|
||||
* EmailSpooledForSend
|
||||
* EmailSpooledForSend.
|
||||
*
|
||||
* Stubbed class used to store the meta data
|
||||
* Stubbed class used to store the meta data
|
||||
* for an email that was unable to be sent
|
||||
* for a reason such as:
|
||||
*
|
||||
*
|
||||
* - Quota exceeded
|
||||
* - SMTP issues
|
||||
* - Upstream connectivity
|
||||
*
|
||||
*/
|
||||
class EmailSpooledForSend
|
||||
{
|
||||
public $entity_name;
|
||||
public $entity_name;
|
||||
|
||||
public $invitation_key = '';
|
||||
public $invitation_key = '';
|
||||
|
||||
public $reminder_template = '';
|
||||
public $reminder_template = '';
|
||||
|
||||
public $subject = '';
|
||||
public $subject = '';
|
||||
|
||||
public $body = '';
|
||||
}
|
||||
public $body = '';
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -23,7 +23,7 @@ class EmailTemplateDefaults
|
||||
switch ($template) {
|
||||
|
||||
/* Template */
|
||||
|
||||
|
||||
case 'email_template_invoice':
|
||||
return self::emailInvoiceTemplate();
|
||||
break;
|
||||
@ -62,7 +62,7 @@ class EmailTemplateDefaults
|
||||
break;
|
||||
|
||||
/* Subject */
|
||||
|
||||
|
||||
case 'email_subject_invoice':
|
||||
return self::emailInvoiceSubject();
|
||||
break;
|
||||
@ -119,10 +119,10 @@ class EmailTemplateDefaults
|
||||
'allow_unsafe_links' => false,
|
||||
]);
|
||||
|
||||
$invoice_message = '<p>' . self::transformText('invoice_message') . '</p><br><br><p>$view_link</p>';
|
||||
$invoice_message = '<p>'.self::transformText('invoice_message').'</p><br><br><p>$view_link</p>';
|
||||
|
||||
return $invoice_message;
|
||||
//return $converter->convertToHtml($invoice_message);
|
||||
|
||||
}
|
||||
|
||||
public static function emailQuoteSubject()
|
||||
@ -214,9 +214,8 @@ class EmailTemplateDefaults
|
||||
return Parsedown::instance()->line('Statement Templates needs texts record!');
|
||||
}
|
||||
|
||||
|
||||
private static function transformText($string)
|
||||
{
|
||||
return str_replace(":", "$", ctrans('texts.'.$string));
|
||||
return str_replace(':', '$', ctrans('texts.'.$string));
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -15,76 +15,73 @@ use App\DataMapper\CompanySettings;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
/**
|
||||
* FreeCompanySettings
|
||||
* FreeCompanySettings.
|
||||
*/
|
||||
|
||||
class FreeCompanySettings extends BaseSettings
|
||||
{
|
||||
use MakesHash;
|
||||
/*Group settings based on functionality*/
|
||||
public $credit_design_id = 'VolejRejNm';
|
||||
public $client_number_pattern = '';
|
||||
public $client_number_counter = 1;
|
||||
public $credit_number_pattern = '';
|
||||
public $credit_number_counter = 1;
|
||||
public $currency_id = '1';
|
||||
public $custom_value1 = '';
|
||||
public $custom_value2 = '';
|
||||
public $custom_value3 = '';
|
||||
public $custom_value4 = '';
|
||||
public $date_format_id = '';
|
||||
public $credit_design_id = 'VolejRejNm';
|
||||
public $client_number_pattern = '';
|
||||
public $client_number_counter = 1;
|
||||
public $credit_number_pattern = '';
|
||||
public $credit_number_counter = 1;
|
||||
public $currency_id = '1';
|
||||
public $custom_value1 = '';
|
||||
public $custom_value2 = '';
|
||||
public $custom_value3 = '';
|
||||
public $custom_value4 = '';
|
||||
public $date_format_id = '';
|
||||
// public $enabled_item_tax_rates = 0;
|
||||
public $expense_number_pattern = '';
|
||||
public $expense_number_counter = 1;
|
||||
public $inclusive_taxes = false;
|
||||
public $invoice_design_id = 'VolejRejNm';
|
||||
public $invoice_number_pattern = '';
|
||||
public $invoice_number_counter = 1;
|
||||
public $invoice_taxes = 0;
|
||||
public $language_id = '';
|
||||
public $military_time = false;
|
||||
public $payment_number_pattern = '';
|
||||
public $payment_number_counter = 1;
|
||||
public $payment_terms = "";
|
||||
public $payment_type_id = '0';
|
||||
public $portal_design_id = '1';
|
||||
public $quote_design_id = 'VolejRejNm';
|
||||
public $quote_number_pattern = '';
|
||||
public $quote_number_counter = 1;
|
||||
public $timezone_id = '';
|
||||
public $show_currency_code = false;
|
||||
public $company_gateway_ids = '';
|
||||
public $task_number_pattern = '';
|
||||
public $task_number_counter = 1;
|
||||
public $tax_name1 = '';
|
||||
public $tax_rate1 = 0;
|
||||
public $tax_name2 = '';
|
||||
public $tax_rate2 = 0;
|
||||
public $tax_name3 = '';
|
||||
public $tax_rate3 = 0;
|
||||
public $ticket_number_pattern = '';
|
||||
public $ticket_number_counter = 1;
|
||||
public $expense_number_pattern = '';
|
||||
public $expense_number_counter = 1;
|
||||
public $inclusive_taxes = false;
|
||||
public $invoice_design_id = 'VolejRejNm';
|
||||
public $invoice_number_pattern = '';
|
||||
public $invoice_number_counter = 1;
|
||||
public $invoice_taxes = 0;
|
||||
public $language_id = '';
|
||||
public $military_time = false;
|
||||
public $payment_number_pattern = '';
|
||||
public $payment_number_counter = 1;
|
||||
public $payment_terms = '';
|
||||
public $payment_type_id = '0';
|
||||
public $portal_design_id = '1';
|
||||
public $quote_design_id = 'VolejRejNm';
|
||||
public $quote_number_pattern = '';
|
||||
public $quote_number_counter = 1;
|
||||
public $timezone_id = '';
|
||||
public $show_currency_code = false;
|
||||
public $company_gateway_ids = '';
|
||||
public $task_number_pattern = '';
|
||||
public $task_number_counter = 1;
|
||||
public $tax_name1 = '';
|
||||
public $tax_rate1 = 0;
|
||||
public $tax_name2 = '';
|
||||
public $tax_rate2 = 0;
|
||||
public $tax_name3 = '';
|
||||
public $tax_rate3 = 0;
|
||||
public $ticket_number_pattern = '';
|
||||
public $ticket_number_counter = 1;
|
||||
public $translations;
|
||||
public $vendor_number_pattern = '';
|
||||
public $vendor_number_counter = 1;
|
||||
|
||||
public $vendor_number_pattern = '';
|
||||
public $vendor_number_counter = 1;
|
||||
|
||||
/* Company Meta data that we can use to build sub companies*/
|
||||
|
||||
public $address1 = '';
|
||||
public $address2 = '';
|
||||
public $city = '';
|
||||
public $address1 = '';
|
||||
public $address2 = '';
|
||||
public $city = '';
|
||||
public $company_logo = '';
|
||||
public $country_id;
|
||||
public $email = '';
|
||||
public $id_number = '';
|
||||
public $name = '';
|
||||
public $phone = '';
|
||||
public $postal_code = '';
|
||||
public $state = '';
|
||||
public $email = '';
|
||||
public $id_number = '';
|
||||
public $name = '';
|
||||
public $phone = '';
|
||||
public $postal_code = '';
|
||||
public $state = '';
|
||||
public $vat_number = '';
|
||||
public $website = '';
|
||||
|
||||
public $website = '';
|
||||
|
||||
public static $casts = [
|
||||
'portal_design_id' => 'string',
|
||||
@ -141,7 +138,7 @@ class FreeCompanySettings extends BaseSettings
|
||||
/**
|
||||
* Cast object values and return entire class
|
||||
* prevents missing properties from not being returned
|
||||
* and always ensure an up to date class is returned
|
||||
* and always ensure an up to date class is returned.
|
||||
*
|
||||
* @return \stdClass
|
||||
*/
|
||||
@ -150,7 +147,7 @@ class FreeCompanySettings extends BaseSettings
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides class defaults on init
|
||||
* Provides class defaults on init.
|
||||
* @return object
|
||||
*/
|
||||
public static function defaults():\stdClass
|
||||
@ -162,18 +159,16 @@ class FreeCompanySettings extends BaseSettings
|
||||
unset($data->casts);
|
||||
unset($data->protected_fields);
|
||||
|
||||
$data->timezone_id = (string) config('ninja.i18n.timezone_id');
|
||||
$data->currency_id = (string) config('ninja.i18n.currency_id');
|
||||
$data->language_id = (string) config('ninja.i18n.language_id');
|
||||
$data->payment_terms = (int) config('ninja.i18n.payment_terms');
|
||||
$data->military_time = (bool) config('ninja.i18n.military_time');
|
||||
$data->date_format_id = (string) config('ninja.i18n.date_format_id');
|
||||
$data->country_id = (string) config('ninja.i18n.country_id');
|
||||
$data->translations = (object) [];
|
||||
$data->pdf_variables = (object) self::getEntityVariableDefaults();
|
||||
$data->timezone_id = (string) config('ninja.i18n.timezone_id');
|
||||
$data->currency_id = (string) config('ninja.i18n.currency_id');
|
||||
$data->language_id = (string) config('ninja.i18n.language_id');
|
||||
$data->payment_terms = (int) config('ninja.i18n.payment_terms');
|
||||
$data->military_time = (bool) config('ninja.i18n.military_time');
|
||||
$data->date_format_id = (string) config('ninja.i18n.date_format_id');
|
||||
$data->country_id = (string) config('ninja.i18n.country_id');
|
||||
$data->translations = (object) [];
|
||||
$data->pdf_variables = (object) self::getEntityVariableDefaults();
|
||||
|
||||
return self::setCasts($data, self::$casts);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -14,14 +14,14 @@ namespace App\Designs;
|
||||
abstract class AbstractDesign
|
||||
{
|
||||
abstract public function includes();
|
||||
|
||||
|
||||
abstract public function header();
|
||||
|
||||
|
||||
abstract public function body();
|
||||
|
||||
|
||||
abstract public function product();
|
||||
|
||||
abstract public function task();
|
||||
|
||||
|
||||
abstract public function footer();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Clean extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -39,7 +38,6 @@ class Clean extends AbstractDesign
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="px-12 my-10">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -20,7 +20,6 @@ class Creative extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -42,7 +41,6 @@ $custom_css
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="m-12">
|
||||
@ -114,7 +112,6 @@ $custom_css
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
public function product()
|
||||
{
|
||||
return '';
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -18,13 +18,13 @@ class Custom
|
||||
public $header;
|
||||
|
||||
public $body;
|
||||
|
||||
|
||||
public $product;
|
||||
|
||||
|
||||
public $task;
|
||||
|
||||
public $footer;
|
||||
|
||||
|
||||
public $name;
|
||||
|
||||
public function __construct($design)
|
||||
@ -34,11 +34,11 @@ class Custom
|
||||
$this->includes = $design->design->includes;
|
||||
|
||||
$this->header = $design->design->header;
|
||||
|
||||
|
||||
$this->body = $design->design->body;
|
||||
|
||||
|
||||
$this->product = $design->design->product;
|
||||
|
||||
|
||||
$this->task = $design->design->task;
|
||||
|
||||
$this->footer = $design->design->footer;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -64,10 +64,10 @@ class Designer
|
||||
|
||||
/**
|
||||
* Returns the design
|
||||
* formatted HTML
|
||||
* formatted HTML.
|
||||
* @return string The HTML design built
|
||||
*/
|
||||
public function build():Designer
|
||||
public function build():self
|
||||
{
|
||||
$this->setHtml()
|
||||
->exportVariables()
|
||||
@ -104,13 +104,12 @@ class Designer
|
||||
<div class="flex items-center justify-between m-12">
|
||||
%s <!-- Placeholder for signature -->
|
||||
%s <!-- Placehoder for Invoice Ninja logo -->
|
||||
</div>'
|
||||
;
|
||||
</div>';
|
||||
|
||||
$signature = '<img class="h-40" src="$contact.signature" />';
|
||||
$logo = '<div></div>';
|
||||
|
||||
if (!$this->entity->user->account->isPaid()) {
|
||||
if (! $this->entity->user->account->isPaid()) {
|
||||
$logo = '<img class="h-32" src="$app_url/images/created-by-invoiceninja-new.png" />';
|
||||
}
|
||||
|
||||
@ -129,7 +128,7 @@ class Designer
|
||||
|
||||
public function setHtml()
|
||||
{
|
||||
$this->html = '';
|
||||
$this->html = '';
|
||||
|
||||
return $this;
|
||||
}
|
||||
@ -158,12 +157,12 @@ class Designer
|
||||
{
|
||||
//$s = microtime(true);
|
||||
$company = $this->entity->company;
|
||||
|
||||
$this->exported_variables['$custom_css'] = $this->entity->generateCustomCSS();
|
||||
$this->exported_variables['$app_url'] = $this->entity->generateAppUrl();
|
||||
$this->exported_variables['$client_details'] = $this->processVariables($this->input_variables['client_details'], $this->clientDetails($company));
|
||||
$this->exported_variables['$company_details'] = $this->processVariables($this->input_variables['company_details'], $this->companyDetails($company));
|
||||
$this->exported_variables['$company_address'] = $this->processVariables($this->input_variables['company_address'], $this->companyAddress($company));
|
||||
|
||||
$this->exported_variables['$custom_css'] = $this->entity->generateCustomCSS();
|
||||
$this->exported_variables['$app_url'] = $this->entity->generateAppUrl();
|
||||
$this->exported_variables['$client_details'] = $this->processVariables($this->input_variables['client_details'], $this->clientDetails($company));
|
||||
$this->exported_variables['$company_details'] = $this->processVariables($this->input_variables['company_details'], $this->companyDetails($company));
|
||||
$this->exported_variables['$company_address'] = $this->processVariables($this->input_variables['company_address'], $this->companyAddress($company));
|
||||
|
||||
if ($this->entity_string == 'invoice') {
|
||||
//$this->exported_variables['$entity_labels'] = $this->processLabels($this->input_variables['invoice_details'], $this->invoiceDetails($company));
|
||||
@ -178,11 +177,10 @@ class Designer
|
||||
$this->exported_variables['$entity_details'] = $this->processVariables($this->input_variables['invoice_details'], $this->quoteDetails($company));
|
||||
}
|
||||
|
||||
|
||||
$this->exported_variables['$product_table_header']= $this->entity->buildTableHeader($this->input_variables['product_columns']);
|
||||
$this->exported_variables['$product_table_body'] = $this->entity->buildTableBody($this->input_variables['product_columns'], $this->design->product, '$product');
|
||||
$this->exported_variables['$task_table_header'] = $this->entity->buildTableHeader($this->input_variables['task_columns']);
|
||||
$this->exported_variables['$task_table_body'] = $this->entity->buildTableBody($this->input_variables['task_columns'], $this->design->task, '$task');
|
||||
$this->exported_variables['$product_table_header'] = $this->entity->buildTableHeader($this->input_variables['product_columns']);
|
||||
$this->exported_variables['$product_table_body'] = $this->entity->buildTableBody($this->input_variables['product_columns'], $this->design->product, '$product');
|
||||
$this->exported_variables['$task_table_header'] = $this->entity->buildTableHeader($this->input_variables['task_columns']);
|
||||
$this->exported_variables['$task_table_body'] = $this->entity->buildTableBody($this->input_variables['task_columns'], $this->design->task, '$task');
|
||||
|
||||
if (strlen($this->exported_variables['$task_table_body']) == 0) {
|
||||
$this->exported_variables['$task_table_header'] = '';
|
||||
@ -191,6 +189,7 @@ class Designer
|
||||
if (strlen($this->exported_variables['$product_table_body']) == 0) {
|
||||
$this->exported_variables['$product_table_header'] = '';
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@ -214,7 +213,7 @@ class Designer
|
||||
foreach (array_keys($input_variables) as $value) {
|
||||
if (array_key_exists($value, $variables)) {
|
||||
//$tmp = str_replace("</span>", "_label</span>", $variables[$value]);
|
||||
$tmp = strtr($variables[$value], "</span>", "_label</span>");
|
||||
$tmp = strtr($variables[$value], '</span>', '_label</span>');
|
||||
$output .= $tmp;
|
||||
}
|
||||
}
|
||||
@ -357,12 +356,12 @@ class Designer
|
||||
{
|
||||
$custom_fields = $company->custom_fields;
|
||||
|
||||
if (!$custom_fields) {
|
||||
if (! $custom_fields) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
foreach (self::$custom_fields as $cf) {
|
||||
if (!property_exists($custom_fields, $cf) || (strlen($custom_fields->{$cf}) == 0)) {
|
||||
if (! property_exists($custom_fields, $cf) || (strlen($custom_fields->{$cf}) == 0)) {
|
||||
unset($data[$cf]);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Elegant extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -39,7 +38,6 @@ class Elegant extends AbstractDesign
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="m-10">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Hipster extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -40,7 +39,6 @@ $custom_css
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="px-12 py-16">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Modern extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -36,7 +35,6 @@ $custom_css
|
||||
<body>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Photo extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -43,8 +42,6 @@ $custom_css
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="px-16 py-10">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Plain extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -17,7 +17,6 @@ class Playful extends AbstractDesign
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function includes()
|
||||
{
|
||||
return '<title>$number</title>
|
||||
@ -39,7 +38,6 @@ $custom_css
|
||||
</style>';
|
||||
}
|
||||
|
||||
|
||||
public function header()
|
||||
{
|
||||
return '<div class="my-12 mx-16">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -12,16 +12,15 @@
|
||||
namespace App\Events\Account;
|
||||
|
||||
use Illuminate\Broadcasting\Channel;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Broadcasting\PrivateChannel;
|
||||
use Illuminate\Broadcasting\PresenceChannel;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Broadcasting\PresenceChannel;
|
||||
use Illuminate\Broadcasting\PrivateChannel;
|
||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
/**
|
||||
* Class AccountCreated
|
||||
* @package App\Events\Account
|
||||
* Class AccountCreated.
|
||||
*/
|
||||
class AccountCreated
|
||||
{
|
||||
@ -35,6 +34,7 @@ class AccountCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -47,7 +47,6 @@ class ClientWasArchived
|
||||
$this->client = $client;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -41,6 +41,5 @@ class ClientWasCreated
|
||||
$this->client = $client;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -40,6 +40,5 @@ class ClientWasDeleted
|
||||
$this->client = $client;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -40,6 +40,5 @@ class ClientWasRestored
|
||||
$this->client = $client;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -40,6 +40,5 @@ class ClientWasUpdated
|
||||
$this->client = $client;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -21,21 +21,21 @@ use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
/**
|
||||
* Class UserLoggedIn
|
||||
* @package App\Events\User
|
||||
* Class UserLoggedIn.
|
||||
*/
|
||||
class ContactLoggedIn
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
/**
|
||||
* @var $client_contact
|
||||
* @var
|
||||
*/
|
||||
public $client_contact;
|
||||
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -9,7 +9,6 @@
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
|
||||
namespace App\Events\Credit;
|
||||
|
||||
use App\Models\Company;
|
||||
@ -25,8 +24,9 @@ class CreditWasArchived
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -9,7 +9,6 @@
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
|
||||
namespace App\Events\Credit;
|
||||
|
||||
use App\Models\Company;
|
||||
@ -25,8 +24,9 @@ class CreditWasCreated
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -9,7 +9,6 @@
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
|
||||
namespace App\Events\Credit;
|
||||
|
||||
use App\Models\Company;
|
||||
@ -25,8 +24,9 @@ class CreditWasDeleted
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -23,8 +23,9 @@ class CreditWasEmailed
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -23,15 +23,15 @@ class CreditWasEmailedAndFailed
|
||||
public $credit;
|
||||
|
||||
public $errors;
|
||||
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
public function __construct(Credit $credit, $company, array $errors, array $event_vars)
|
||||
{
|
||||
$this->credit = $credit;
|
||||
|
||||
|
||||
$this->company = $company;
|
||||
|
||||
$this->errors = $errors;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -27,8 +27,9 @@ class CreditWasMarkedSent
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -40,6 +40,5 @@ class CreditWasRestored
|
||||
$this->credit = $credit;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -24,8 +24,9 @@ class CreditWasUpdated
|
||||
public $credit;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -36,6 +36,7 @@ class DesignWasArchived
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class DesignWasCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class DesignWasDeleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
@ -53,5 +54,4 @@ class DesignWasDeleted
|
||||
{
|
||||
return new PrivateChannel('channel-name');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -21,7 +21,7 @@ use Illuminate\Queue\SerializesModels;
|
||||
class DesignWasRestored
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Design
|
||||
*/
|
||||
@ -30,6 +30,7 @@ class DesignWasRestored
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class DesignWasUpdated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
@ -43,6 +44,7 @@ class DesignWasUpdated
|
||||
|
||||
$this->event_vars = $event_vars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channels the event should broadcast on.
|
||||
*
|
||||
@ -52,5 +54,4 @@ class DesignWasUpdated
|
||||
{
|
||||
return new PrivateChannel('channel-name');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class ExpenseWasArchived
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class ExpenseWasCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class ExpenseWasDeleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class ExpenseWasRestored
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class ExpenseWasUpdated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasArchived
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasCancelled
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasDeleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasEmailed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -35,6 +35,7 @@ class InvoiceWasEmailedAndFailed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
@ -43,9 +44,9 @@ class InvoiceWasEmailedAndFailed
|
||||
public function __construct(Invoice $invoice, Company $company, string $errors, array $event_vars)
|
||||
{
|
||||
$this->invoice = $invoice;
|
||||
|
||||
|
||||
$this->company = $company;
|
||||
|
||||
|
||||
$this->errors = $errors;
|
||||
|
||||
$this->event_vars = $event_vars;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasMarkedSent
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasPaid
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -26,12 +26,13 @@ class InvoiceWasRestored
|
||||
* @var Invoice
|
||||
*/
|
||||
public $invoice;
|
||||
|
||||
|
||||
public $fromDeleted;
|
||||
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasReversed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -32,6 +32,7 @@ class InvoiceWasUpdated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class InvoiceWasViewed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -31,6 +31,7 @@ class InvitationWasViewed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -31,8 +31,9 @@ class MethodDeleted
|
||||
private $payment_method;
|
||||
|
||||
public $company;
|
||||
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
@ -42,7 +43,7 @@ class MethodDeleted
|
||||
{
|
||||
$this->payment_method = $payment_method;
|
||||
$this->company = $company;
|
||||
$this->event_vars = $event_vars;
|
||||
$this->event_vars = $event_vars;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class PaymentCompleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentFailed
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentFailed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentWasArchived
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentWasArchived
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -30,6 +30,7 @@ class PaymentWasCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentWasDeleted
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentWasDeleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentWasEmailed
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentWasEmailed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -31,6 +31,7 @@ class PaymentWasEmailedAndFailed
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* PaymentWasEmailedAndFailed constructor.
|
||||
* @param Payment $payment
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -32,6 +32,7 @@ class PaymentWasRefunded
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -29,6 +29,7 @@ class PaymentWasRestored
|
||||
public $fromDeleted;
|
||||
public $company;
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentWasUpdated
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentWasUpdated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -22,7 +22,6 @@ class PaymentWasVoided
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
|
||||
/**
|
||||
* @var Payment
|
||||
*/
|
||||
@ -31,6 +30,7 @@ class PaymentWasVoided
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -26,6 +26,7 @@ class ProductWasArchived
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -29,12 +29,13 @@ class ProductWasCreated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Product $product, $input = null, Company $company, array $event_vars)
|
||||
public function __construct(Product $product, $input, Company $company, array $event_vars)
|
||||
{
|
||||
$this->product = $product;
|
||||
$this->input = $input;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -27,6 +27,7 @@ class ProductWasDeleted
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
@ -26,6 +26,7 @@ class ProductWasUpdated
|
||||
public $company;
|
||||
|
||||
public $event_vars;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user