mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 23:17:32 -05: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['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())];
 | 
					        $rules['project_id'] =  ['bail', 'sometimes', new ValidProjectForClient($this->all())];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -66,7 +69,7 @@ class StoreInvoiceRequest extends Request
 | 
				
			|||||||
        $input = $this->decodePrimaryKeys($input);
 | 
					        $input = $this->decodePrimaryKeys($input);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
 | 
					        $input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
 | 
				
			||||||
        //$input['line_items'] = json_encode($input['line_items']);
 | 
					
 | 
				
			||||||
        $this->replace($input);
 | 
					        $this->replace($input);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -38,6 +38,10 @@ class StoreTaskRequest extends Request
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $rules = [];
 | 
					        $rules = [];
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        if ($this->input('number')) {
 | 
				
			||||||
 | 
					            $rules['number'] = 'unique:tasks,number,'.$this->id.',id,company_id,'.auth()->user()->company()->id;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->globalRules($rules);
 | 
					        return $this->globalRules($rules);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -53,6 +53,7 @@ class Expense extends BaseModel
 | 
				
			|||||||
        'custom_value2',
 | 
					        'custom_value2',
 | 
				
			||||||
        'custom_value3',
 | 
					        'custom_value3',
 | 
				
			||||||
        'custom_value4',
 | 
					        'custom_value4',
 | 
				
			||||||
 | 
					        'number',
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected $casts = [
 | 
					    protected $casts = [
 | 
				
			||||||
 | 
				
			|||||||
@ -39,6 +39,7 @@ class Task extends BaseModel
 | 
				
			|||||||
        'status_sort_order',
 | 
					        'status_sort_order',
 | 
				
			||||||
        'invoice_documents',
 | 
					        'invoice_documents',
 | 
				
			||||||
        'rate',
 | 
					        'rate',
 | 
				
			||||||
 | 
					        'number',
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected $touches = [];
 | 
					    protected $touches = [];
 | 
				
			||||||
 | 
				
			|||||||
@ -45,7 +45,6 @@ class TaskRepository extends BaseRepository
 | 
				
			|||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return     task|null  task Object
 | 
					     * @return     task|null  task Object
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function save(array $data, Task $task) : ?Task
 | 
					    public function save(array $data, Task $task) : ?Task
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -198,7 +198,8 @@ trait ClientGroupSettingsSaver
 | 
				
			|||||||
        switch ($key) {
 | 
					        switch ($key) {
 | 
				
			||||||
            case 'int':
 | 
					            case 'int':
 | 
				
			||||||
            case 'integer':
 | 
					            case 'integer':
 | 
				
			||||||
                return ctype_digit(strval(abs($value)));
 | 
					                // return ctype_digit(strval(abs($value)));
 | 
				
			||||||
 | 
					                return ctype_digit(strval($value));
 | 
				
			||||||
            case 'real':
 | 
					            case 'real':
 | 
				
			||||||
            case 'float':
 | 
					            case 'float':
 | 
				
			||||||
            case 'double':
 | 
					            case 'double':
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ use App\Models\Payment;
 | 
				
			|||||||
use App\Models\Project;
 | 
					use App\Models\Project;
 | 
				
			||||||
use App\Models\Quote;
 | 
					use App\Models\Quote;
 | 
				
			||||||
use App\Models\RecurringInvoice;
 | 
					use App\Models\RecurringInvoice;
 | 
				
			||||||
 | 
					use App\Models\Task;
 | 
				
			||||||
use App\Models\Timezone;
 | 
					use App\Models\Timezone;
 | 
				
			||||||
use App\Models\Vendor;
 | 
					use App\Models\Vendor;
 | 
				
			||||||
use Illuminate\Support\Carbon;
 | 
					use Illuminate\Support\Carbon;
 | 
				
			||||||
@ -312,6 +313,45 @@ trait GeneratesCounter
 | 
				
			|||||||
        return $vendor_number;
 | 
					        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.
 | 
					     * 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);
 | 
					        $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()
 | 
					    public function testTaskGet()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $response = $this->withHeaders([
 | 
					        $response = $this->withHeaders([
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user