diff --git a/app/DataMapper/EmailTemplateDefaults.php b/app/DataMapper/EmailTemplateDefaults.php index 39b053b4f800..0ad337c5eb90 100644 --- a/app/DataMapper/EmailTemplateDefaults.php +++ b/app/DataMapper/EmailTemplateDefaults.php @@ -220,6 +220,7 @@ class EmailTemplateDefaults public static function emailReminder3Template() { + return ''; // return Parsedown::instance()->line('Third Email Reminder Text'); } @@ -231,17 +232,20 @@ class EmailTemplateDefaults public static function emailReminderEndlessTemplate() { - return ctrans('Endless Email Reminder Text'); + return ''; + // return ctrans(''); } public static function emailStatementSubject() { - return ctrans('Statement Subject needs texts record!'); + return ''; + // return ctrans(''); } public static function emailStatementTemplate() { - return ctrans('Statement Templates needs texts record!'); + return ''; + // return ctrans(''); } private static function transformText($string) diff --git a/app/Factory/ExpenseFactory.php b/app/Factory/ExpenseFactory.php index ddade6b1c18a..0272d8f3c288 100644 --- a/app/Factory/ExpenseFactory.php +++ b/app/Factory/ExpenseFactory.php @@ -33,7 +33,16 @@ class ExpenseFactory $expense->tax_rate3 = 0; $expense->date = null; $expense->payment_date = null; - + $expense->amount = 0; + $expense->foreign_amount = 0; + $expense->private_notes = ''; + $expense->public_notes = ''; + $expense->transaction_reference = ''; + $expense->custom_value1 = ''; + $expense->custom_value2 = ''; + $expense->custom_value3 = ''; + $expense->custom_value4 = ''; + return $expense; } } diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ba7111ef860d..3c8a49610a63 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -60,10 +60,9 @@ class BaseController extends Controller private $first_load = [ 'account', - 'user.company_user', 'token.company_user', 'company.activities', - 'company.users.company_user', + 'company.users.company_users', 'company.tax_rates', 'company.groups', 'company.company_gateways.gateway', @@ -203,60 +202,60 @@ class BaseController extends Controller $updated_at = date('Y-m-d H:i:s', $updated_at); $query->with( - [ + [ 'user.company_users', 'company' => function ($query) use ($updated_at) { $query->whereNotNull('updated_at')->with('documents'); }, 'company.clients' => function ($query) use ($updated_at) { - $query->where('clients.updated_at', '>=', $updated_at)->with('contacts', 'gateway_tokens','documents'); - }, - 'company.tax_rates' => function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at); - }, - 'company.groups' => function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at); + $query->where('clients.updated_at', '>=', $updated_at)->with('contacts.company', 'gateway_tokens','documents','company'); }, 'company.company_gateways' => function ($query) { $query->whereNotNull('updated_at'); }, - 'company.products' => function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('documents'); + 'company.credits'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents',); }, - 'company.recurring_invoices'=> function ($query) use ($updated_at) { + 'company.designs'=> function ($query) use ($updated_at) { $query->where('updated_at', '>=', $updated_at)->with('company'); }, - 'company.invoices'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('invitations', 'company', 'documents'); + 'company.documents'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at); }, - 'company.recurring_invoices'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('invitations', 'company', 'documents'); + 'company.expenses'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('documents' ); + }, + 'company.groups' => function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at); + }, + 'company.invoices'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents'); }, 'company.payments'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('paymentables','documents'); - }, - 'company.quotes'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents'); - }, - 'company.credits'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents'); + $query->where('updated_at', '>=', $updated_at)->with('paymentables','documents', ); }, 'company.payment_terms'=> function ($query) use ($updated_at) { $query->where('updated_at', '>=', $updated_at); }, - 'company.vendors'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('contacts'); - }, - 'company.expenses'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at); - }, - 'company.tasks'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at); + 'company.products' => function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('documents'); }, 'company.projects'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('documents' ); + }, + 'company.quotes'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents',); + }, + 'company.recurring_invoices'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents'); + }, + 'company.tasks'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('documents' ); + }, + 'company.tax_rates' => function ($query) use ($updated_at) { $query->where('updated_at', '>=', $updated_at); }, - 'company.designs'=> function ($query) use ($updated_at) { - $query->where('updated_at', '>=', $updated_at)->with('company'); + 'company.vendors'=> function ($query) use ($updated_at) { + $query->where('updated_at', '>=', $updated_at)->with('contacts','documents' ); }, ] ); diff --git a/app/Http/Middleware/QueryLogging.php b/app/Http/Middleware/QueryLogging.php index 32d854d17b3b..d0cc13c98f65 100644 --- a/app/Http/Middleware/QueryLogging.php +++ b/app/Http/Middleware/QueryLogging.php @@ -53,7 +53,7 @@ class QueryLogging Log::info($request->method().' - '.$request->url().": $count queries - ".$time); // if($count > 50) - // Log::info($queries); + // Log::info($queries); } } diff --git a/app/Libraries/MultiDB.php b/app/Libraries/MultiDB.php index ad997d15c22c..cd7a0baf3ce7 100644 --- a/app/Libraries/MultiDB.php +++ b/app/Libraries/MultiDB.php @@ -16,6 +16,7 @@ use App\Models\ClientContact; use App\Models\Company; use App\Models\CompanyToken; use App\Models\User; +use Illuminate\Support\Str; /** * Class MultiDB. @@ -237,7 +238,7 @@ class MultiDB public static function findAndSetDbByInvitation($entity, $invitation_key) { - $class = 'App\Models\\'.ucfirst($entity).'Invitation'; + $class = 'App\Models\\'.ucfirst(Str::camel($entity)).'Invitation'; foreach (self::$dbs as $db) { if ($invite = $class::on($db)->whereRaw('BINARY `key`= ?', [$invitation_key])->first()) { diff --git a/app/Models/InvoiceInvitation.php b/app/Models/InvoiceInvitation.php index 60669e07483b..4b27681c2ca5 100644 --- a/app/Models/InvoiceInvitation.php +++ b/app/Models/InvoiceInvitation.php @@ -28,7 +28,6 @@ class InvoiceInvitation extends BaseModel use Inviteable; protected $fillable = [ - //'key', 'client_contact_id', ]; diff --git a/app/Models/RecurringInvoiceInvitation.php b/app/Models/RecurringInvoiceInvitation.php index d958f6b28a1b..fe4e6c4b7b0c 100644 --- a/app/Models/RecurringInvoiceInvitation.php +++ b/app/Models/RecurringInvoiceInvitation.php @@ -69,5 +69,16 @@ class RecurringInvoiceInvitation extends BaseModel return $this->belongsTo(Company::class); } + public function markViewed() + { + $this->viewed_date = Carbon::now(); + $this->save(); + } + + public function markOpened() + { + $this->opened_date = Carbon::now(); + $this->save(); + } } diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index 6795ebb52832..ac2f0eac9b6f 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -23,6 +23,7 @@ class ExpenseTransformer extends EntityTransformer { use MakesHash; use SoftDeletes; + protected $defaultIncludes = [ 'documents', ]; diff --git a/database/migrations/2020_10_19_101823_project_name_unique_removal.php b/database/migrations/2020_10_19_101823_project_name_unique_removal.php new file mode 100644 index 000000000000..0795c0777d95 --- /dev/null +++ b/database/migrations/2020_10_19_101823_project_name_unique_removal.php @@ -0,0 +1,37 @@ +dropUnique('projects_company_id_name_unique'); + }); + + Schema::table('expenses', function (Blueprint $table) { + $table->unsignedInteger('invoice_currency_id')->nullable()->change(); + $table->unsignedInteger('expense_currency_id')->nullable()->change(); + }); + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}