mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Change start_time datatype
This commit is contained in:
parent
580cab1415
commit
c1c8b6c14e
@ -52,7 +52,10 @@ class StoreInvoiceRequest extends Request
|
||||
|
||||
$rules['invitations.*.client_contact_id'] = 'distinct';
|
||||
|
||||
$rules['number'] = new UniqueInvoiceNumberRule($this->all());
|
||||
if ($this->input('number')) {
|
||||
$rules['number'] = 'unique:invoices,number,'.$this->id.',id,company_id,'.auth()->user()->company()->id;
|
||||
}
|
||||
// $rules['number'] = new UniqueInvoiceNumberRule($this->all());
|
||||
|
||||
$rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())];
|
||||
|
||||
@ -66,7 +69,7 @@ class StoreInvoiceRequest extends Request
|
||||
$input = $this->decodePrimaryKeys($input);
|
||||
|
||||
$input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
|
||||
//$input['line_items'] = json_encode($input['line_items']);
|
||||
|
||||
$this->replace($input);
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,10 @@ class StoreTaskRequest extends Request
|
||||
{
|
||||
$rules = [];
|
||||
|
||||
if ($this->input('number')) {
|
||||
$rules['number'] = 'unique:tasks,number,'.$this->id.',id,company_id,'.auth()->user()->company()->id;
|
||||
}
|
||||
|
||||
return $this->globalRules($rules);
|
||||
}
|
||||
|
||||
|
@ -53,6 +53,7 @@ class Expense extends BaseModel
|
||||
'custom_value2',
|
||||
'custom_value3',
|
||||
'custom_value4',
|
||||
'number',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
|
@ -39,6 +39,7 @@ class Task extends BaseModel
|
||||
'status_sort_order',
|
||||
'invoice_documents',
|
||||
'rate',
|
||||
'number',
|
||||
];
|
||||
|
||||
protected $touches = [];
|
||||
|
@ -45,7 +45,6 @@ class TaskRepository extends BaseRepository
|
||||
*
|
||||
* @return task|null task Object
|
||||
*/
|
||||
|
||||
public function save(array $data, Task $task) : ?Task
|
||||
{
|
||||
|
||||
|
@ -198,7 +198,8 @@ trait ClientGroupSettingsSaver
|
||||
switch ($key) {
|
||||
case 'int':
|
||||
case 'integer':
|
||||
return ctype_digit(strval(abs($value)));
|
||||
// return ctype_digit(strval(abs($value)));
|
||||
return ctype_digit(strval($value));
|
||||
case 'real':
|
||||
case 'float':
|
||||
case 'double':
|
||||
|
@ -20,6 +20,7 @@ use App\Models\Payment;
|
||||
use App\Models\Project;
|
||||
use App\Models\Quote;
|
||||
use App\Models\RecurringInvoice;
|
||||
use App\Models\Task;
|
||||
use App\Models\Timezone;
|
||||
use App\Models\Vendor;
|
||||
use Illuminate\Support\Carbon;
|
||||
@ -312,6 +313,45 @@ trait GeneratesCounter
|
||||
return $vendor_number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the next task number.
|
||||
*
|
||||
* @param Task $task The task
|
||||
* @return string The next task number.
|
||||
*/
|
||||
public function getNextTaskNumber(Task $task) :string
|
||||
{
|
||||
$this->resetCompanyCounters($task->company);
|
||||
|
||||
$counter = $task->company->settings->task_number_counter;
|
||||
$setting_entity = $task->company->settings->task_number_counter;
|
||||
|
||||
$task_number = $this->checkEntityNumber(Task::class, $task, $counter, $task->company->settings->counter_padding, $task->company->settings->task_number_pattern);
|
||||
|
||||
$this->incrementCounter($task->company, 'task_number_counter');
|
||||
|
||||
return $task_number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the next expense number.
|
||||
*
|
||||
* @param Expense $expense The expense
|
||||
* @return string The next expense number.
|
||||
*/
|
||||
public function getNextExpenseNumber(Expense $expense) :string
|
||||
{
|
||||
$this->resetCompanyCounters($expense->company);
|
||||
|
||||
$counter = $expense->company->settings->expense_number_counter;
|
||||
$setting_entity = $expense->company->settings->expense_number_counter;
|
||||
|
||||
$expense_number = $this->checkEntityNumber(Expense::class, $expense, $counter, $expense->company->settings->counter_padding, $expense->company->settings->expense_number_pattern);
|
||||
|
||||
$this->incrementCounter($expense->company, 'expense_number_counter');
|
||||
|
||||
return $expense_number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if it has shared counter.
|
||||
|
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class ChangeStartTimeColumnType extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('tasks', function (Blueprint $table){
|
||||
$table->unsignedInteger('duration')->nullable()->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
@ -79,6 +79,18 @@ class TaskApiTest extends TestCase
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
|
||||
|
||||
public function testTasksGet()
|
||||
{
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->get('/api/v1/tasks');
|
||||
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
|
||||
|
||||
public function testTaskGet()
|
||||
{
|
||||
$response = $this->withHeaders([
|
||||
|
Loading…
x
Reference in New Issue
Block a user