diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index fee95df7257f..4b8b721d38bd 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -25,6 +25,7 @@ use App\Repositories\ProjectRepository; use App\Transformers\ProjectTransformer; use App\Utils\Traits\BulkOptions; use App\Utils\Traits\MakesHash; +use App\Utils\Traits\SavesDocuments; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; @@ -34,6 +35,7 @@ use Illuminate\Support\Facades\Cache; class ProjectController extends BaseController { use MakesHash; + use SavesDocuments; protected $entity_type = Project::class; diff --git a/app/Http/Requests/Project/StoreProjectRequest.php b/app/Http/Requests/Project/StoreProjectRequest.php index ecee7100ecf6..f17afb073761 100644 --- a/app/Http/Requests/Project/StoreProjectRequest.php +++ b/app/Http/Requests/Project/StoreProjectRequest.php @@ -33,7 +33,7 @@ class StoreProjectRequest extends Request { $rules = []; - //$rules['name'] ='required|unique:projects,name,null,null,company_id,'.auth()->user()->companyId(); + $rules['name'] ='required|unique:projects,name,null,null,company_id,'.auth()->user()->companyId(); $rules['client_id'] = 'required|exists:clients,id,company_id,'.auth()->user()->company()->id; return $rules; diff --git a/app/Models/Credit.php b/app/Models/Credit.php index 9a222ad7938d..4c1a0ef25998 100644 --- a/app/Models/Credit.php +++ b/app/Models/Credit.php @@ -40,6 +40,7 @@ class Credit extends BaseModel protected $fillable = [ 'assigned_user_id', + 'project_id', 'number', 'discount', 'po_number', diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 693b74c3cc3c..e8db121cb19d 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -43,6 +43,7 @@ class Expense extends BaseModel 'tax_name3', 'payment_date', 'payment_type_id', + 'project_id', 'transaction_reference', 'invoice_documents', 'should_be_invoiced', diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index 82aab212b1e0..1b9c6edb6b51 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -25,7 +25,8 @@ class Gateway extends StaticModel 'updated_at' => 'timestamp', 'created_at' => 'timestamp', 'default_gateway_type_id' => 'string', - 'fields' => 'json', + // 'fields' => 'json', + 'fields' => 'object', 'options' => 'array', ]; @@ -35,21 +36,21 @@ class Gateway extends StaticModel protected $dateFormat = 'Y-m-d H:i:s.u'; - /** - * @return mixed - * @deprecated 5.0.17 No longer needs as we are removing omnipay dependence - */ - public function getFields() - { - if ($this->isCustom()) { - return [ - 'name' => '', - 'text' => '', - ]; - } else { - return Omnipay::create($this->provider)->getDefaultParameters(); - } - } + // /** + // * @return mixed + // * @deprecated 5.0.17 No longer needs as we are removing omnipay dependence + // */ + // public function getFields() + // { + // if ($this->isCustom()) { + // return [ + // 'name' => '', + // 'text' => '', + // ]; + // } else { + // return Omnipay::create($this->provider)->getDefaultParameters(); + // } + // } public function getOptionsAttribute() { diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index c3678d5687e7..2da78e574a7f 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -86,6 +86,7 @@ class Invoice extends BaseModel 'footer', 'partial', 'partial_due_date', + 'project_id', 'custom_value1', 'custom_value2', 'custom_value3', diff --git a/app/Models/Quote.php b/app/Models/Quote.php index 7a8baa9cf298..5ee3026c4345 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -54,6 +54,7 @@ class Quote extends BaseModel 'terms', 'public_notes', 'private_notes', + 'project_id', 'invoice_type_id', 'tax_name1', 'tax_rate1', diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 1c4e827102b0..078202fbcfbb 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -63,6 +63,7 @@ class RecurringInvoice extends BaseModel protected $fillable = [ 'client_id', + 'project_id', 'number', 'discount', 'is_amount_discount', diff --git a/app/Transformers/CreditTransformer.php b/app/Transformers/CreditTransformer.php index 94ac1f8f7d60..72f5eefadfbc 100644 --- a/app/Transformers/CreditTransformer.php +++ b/app/Transformers/CreditTransformer.php @@ -84,6 +84,7 @@ class CreditTransformer extends EntityTransformer return [ 'id' => $this->encodePrimaryKey($credit->id), 'user_id' => $this->encodePrimaryKey($credit->user_id), + 'project_id' => $this->encodePrimaryKey($credit->project_id), 'assigned_user_id' => $this->encodePrimaryKey($credit->assigned_user_id), 'amount' => (float) $credit->amount, 'balance' => (float) $credit->balance, diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index e1d6c9ca6a17..6795ebb52832 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -87,6 +87,7 @@ class ExpenseTransformer extends EntityTransformer 'updated_at' => (int) $expense->updated_at, 'archived_at' => (int) $expense->deleted_at, 'created_at' => (int) $expense->created_at, + 'project_id' => $this->encodePrimaryKey($expense->project_id), ]; } } diff --git a/app/Transformers/InvoiceTransformer.php b/app/Transformers/InvoiceTransformer.php index a35986307900..d4a308730bb7 100644 --- a/app/Transformers/InvoiceTransformer.php +++ b/app/Transformers/InvoiceTransformer.php @@ -88,6 +88,7 @@ class InvoiceTransformer extends EntityTransformer return [ 'id' => $this->encodePrimaryKey($invoice->id), 'user_id' => $this->encodePrimaryKey($invoice->user_id), + 'project_id' => $this->encodePrimaryKey($invoice->project_id), 'assigned_user_id' => $this->encodePrimaryKey($invoice->assigned_user_id), 'amount' => (float) $invoice->amount, 'balance' => (float) $invoice->balance, diff --git a/app/Transformers/QuoteTransformer.php b/app/Transformers/QuoteTransformer.php index 75f206f1ea89..454ba2b7985f 100644 --- a/app/Transformers/QuoteTransformer.php +++ b/app/Transformers/QuoteTransformer.php @@ -137,6 +137,7 @@ class QuoteTransformer extends EntityTransformer 'line_items' => $quote->line_items ?: (array) [], 'entity_type' => 'quote', 'exchange_rate' => (float) $quote->exchange_rate, + 'project_id' => $this->encodePrimaryKey($quote->project_id), ]; } } diff --git a/app/Transformers/RecurringInvoiceTransformer.php b/app/Transformers/RecurringInvoiceTransformer.php index b43e1195dc38..cd1f50270351 100644 --- a/app/Transformers/RecurringInvoiceTransformer.php +++ b/app/Transformers/RecurringInvoiceTransformer.php @@ -83,6 +83,7 @@ class RecurringInvoiceTransformer extends EntityTransformer return [ 'id' => $this->encodePrimaryKey($invoice->id), 'user_id' => $this->encodePrimaryKey($invoice->user_id), + 'project_id' => $this->encodePrimaryKey($invoice->project_id), 'assigned_user_id' => $this->encodePrimaryKey($invoice->assigned_user_id), 'amount' => (float) $invoice->amount, 'balance' => (float) $invoice->balance, diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index edd0af5e83f9..09c5eeed9b54 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -90,7 +90,7 @@ class CreateUsersTable extends Migration $table->string('site_url', 200)->nullable(); $table->boolean('is_offsite')->default(false); $table->boolean('is_secure')->default(false); - $table->mediumText('fields')->nullable(); + $table->longText('fields')->nullable(); $table->unsignedInteger('default_gateway_type_id')->default(1); $table->timestamps(6); }); diff --git a/database/migrations/2020_10_14_201320_project_ids_to_entities.php b/database/migrations/2020_10_14_201320_project_ids_to_entities.php new file mode 100644 index 000000000000..c014e0081a03 --- /dev/null +++ b/database/migrations/2020_10_14_201320_project_ids_to_entities.php @@ -0,0 +1,30 @@ +unsignedInteger('project_id')->nullable(); + }); + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + } +}