mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
commit
7f74c62fd7
@ -1 +1 @@
|
||||
5.1.46
|
||||
5.1.47
|
@ -388,20 +388,20 @@ class DemoMode extends Command
|
||||
$invoice->line_items = $this->buildLineItems(rand(1, 10));
|
||||
$invoice->uses_inclusive_taxes = false;
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name1 = 'GST';
|
||||
$invoice->tax_rate1 = 10.00;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name1 = 'GST';
|
||||
// $invoice->tax_rate1 = 10.00;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name2 = 'VAT';
|
||||
$invoice->tax_rate2 = 17.50;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name2 = 'VAT';
|
||||
// $invoice->tax_rate2 = 17.50;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name3 = 'CA Sales Tax';
|
||||
$invoice->tax_rate3 = 5;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name3 = 'CA Sales Tax';
|
||||
// $invoice->tax_rate3 = 5;
|
||||
// }
|
||||
|
||||
// $invoice->custom_value1 = $faker->date;
|
||||
// $invoice->custom_value2 = rand(0, 1) ? 'yes' : 'no';
|
||||
@ -455,20 +455,20 @@ class DemoMode extends Command
|
||||
$invoice->line_items = $this->buildLineItems(rand(1, 10));
|
||||
$invoice->uses_inclusive_taxes = false;
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name1 = 'GST';
|
||||
$invoice->tax_rate1 = 10.00;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name1 = 'GST';
|
||||
// $invoice->tax_rate1 = 10.00;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name2 = 'VAT';
|
||||
$invoice->tax_rate2 = 17.50;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name2 = 'VAT';
|
||||
// $invoice->tax_rate2 = 17.50;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$invoice->tax_name3 = 'CA Sales Tax';
|
||||
$invoice->tax_rate3 = 5;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $invoice->tax_name3 = 'CA Sales Tax';
|
||||
// $invoice->tax_rate3 = 5;
|
||||
// }
|
||||
|
||||
// $invoice->custom_value1 = $faker->date;
|
||||
// $invoice->custom_value2 = rand(0, 1) ? 'yes' : 'no';
|
||||
@ -504,20 +504,20 @@ class DemoMode extends Command
|
||||
$credit->line_items = $this->buildLineItems(rand(1, 10));
|
||||
$credit->uses_inclusive_taxes = false;
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$credit->tax_name1 = 'GST';
|
||||
$credit->tax_rate1 = 10.00;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $credit->tax_name1 = 'GST';
|
||||
// $credit->tax_rate1 = 10.00;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$credit->tax_name2 = 'VAT';
|
||||
$credit->tax_rate2 = 17.50;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $credit->tax_name2 = 'VAT';
|
||||
// $credit->tax_rate2 = 17.50;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$credit->tax_name3 = 'CA Sales Tax';
|
||||
$credit->tax_rate3 = 5;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $credit->tax_name3 = 'CA Sales Tax';
|
||||
// $credit->tax_rate3 = 5;
|
||||
// }
|
||||
|
||||
$credit->save();
|
||||
|
||||
@ -559,20 +559,20 @@ class DemoMode extends Command
|
||||
$quote->line_items = $this->buildLineItems(rand(1, 10));
|
||||
$quote->uses_inclusive_taxes = false;
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$quote->tax_name1 = 'GST';
|
||||
$quote->tax_rate1 = 10.00;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $quote->tax_name1 = 'GST';
|
||||
// $quote->tax_rate1 = 10.00;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$quote->tax_name2 = 'VAT';
|
||||
$quote->tax_rate2 = 17.50;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $quote->tax_name2 = 'VAT';
|
||||
// $quote->tax_rate2 = 17.50;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$quote->tax_name3 = 'CA Sales Tax';
|
||||
$quote->tax_rate3 = 5;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $quote->tax_name3 = 'CA Sales Tax';
|
||||
// $quote->tax_rate3 = 5;
|
||||
// }
|
||||
|
||||
$quote->save();
|
||||
|
||||
@ -600,20 +600,20 @@ class DemoMode extends Command
|
||||
$item->quantity = 1;
|
||||
//$item->cost = 10;
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$item->tax_name1 = 'GST';
|
||||
$item->tax_rate1 = 10.00;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $item->tax_name1 = 'GST';
|
||||
// $item->tax_rate1 = 10.00;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$item->tax_name1 = 'VAT';
|
||||
$item->tax_rate1 = 17.50;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $item->tax_name1 = 'VAT';
|
||||
// $item->tax_rate1 = 17.50;
|
||||
// }
|
||||
|
||||
if (rand(0, 1)) {
|
||||
$item->tax_name1 = 'Sales Tax';
|
||||
$item->tax_rate1 = 5;
|
||||
}
|
||||
// if (rand(0, 1)) {
|
||||
// $item->tax_name1 = 'Sales Tax';
|
||||
// $item->tax_rate1 = 5;
|
||||
// }
|
||||
|
||||
$product = Product::all()->random();
|
||||
|
||||
|
@ -68,6 +68,11 @@ class Kernel extends ConsoleKernel
|
||||
|
||||
}
|
||||
|
||||
if(config('queue.default') == 'database' && Ninja::isSelfHost()) {
|
||||
$schedule->command('queue:work')->everyMinute()->withoutOverlapping();
|
||||
$schedule->command('queue:restart')->everyFiveMinutes()->withoutOverlapping();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -22,6 +22,7 @@ class TaskStatusFactory
|
||||
$task_status->company_id = $company_id;
|
||||
$task_status->name = '';
|
||||
$task_status->color = '#fff';
|
||||
$task_status->status_order = 9999;
|
||||
|
||||
return $task_status;
|
||||
}
|
||||
|
@ -582,12 +582,47 @@ class TaskController extends BaseController
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param StoreTaskRequest $request
|
||||
* @return Response
|
||||
*
|
||||
*
|
||||
*
|
||||
* @OA\Post(
|
||||
* path="/api/v1/tasks/stort",
|
||||
* operationId="sortTasks",
|
||||
* tags={"tasks"},
|
||||
* summary="Sort tasks on KanBan",
|
||||
* description="Sorts tasks after drag and drop on the KanBan.",
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||
* @OA\Response(
|
||||
* response=200,
|
||||
* description="Returns an Ok, 200 HTTP status",
|
||||
* @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"),
|
||||
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response=422,
|
||||
* description="Validation error",
|
||||
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||
*
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="default",
|
||||
* description="Unexpected Error",
|
||||
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||
* ),
|
||||
* )
|
||||
*/
|
||||
public function sort(SortTaskRequest $request)
|
||||
{
|
||||
// : {"status_ids":
|
||||
// ["VolejYWdjN","wMvbmqpbYA","OpnelRlbKB","Wpmbk2xazJ"],
|
||||
// "task_ids":{"VolejYWdjN":
|
||||
// ["xYRdG7dDzO","q9wdLwbjPX","4w9aAOdvMR","mxkazYeJ0P","WJxbojagwO","oBDbDxbl2E"],"wMvbmqpbYA":["4openRe7Az","1YQdJ2dOGp"],"OpnelRlbKB":["X46dBXa79j"],"Wpmbk2xazJ":["k8mep2bMyJ","JX7ax9byv4"]}}
|
||||
|
||||
$task_statuses = $request->input('status_ids');
|
||||
$tasks = $request->input('task_ids');
|
||||
@ -608,17 +643,19 @@ class TaskController extends BaseController
|
||||
|
||||
$sort_status_id = $this->decodePrimaryKey($key);
|
||||
|
||||
nlog($task_list);
|
||||
// nlog($task_list);
|
||||
|
||||
foreach ($task_list as $key => $task)
|
||||
{
|
||||
|
||||
nlog($task);
|
||||
// nlog($task);
|
||||
|
||||
$task_record = Task::where('id', $this->decodePrimaryKey($task))
|
||||
->where('company_id', auth()->user()->company()->id)
|
||||
->first();
|
||||
|
||||
nlog($task_record->id);
|
||||
// nlog($task_record->id);
|
||||
|
||||
$task_record->status_order = $key;
|
||||
$task_record->status_id = $sort_status_id;
|
||||
$task_record->save();
|
||||
|
@ -8,6 +8,7 @@ use App\Http\Requests\TaskStatus\DestroyTaskStatusRequest;
|
||||
use App\Http\Requests\TaskStatus\ShowTaskStatusRequest;
|
||||
use App\Http\Requests\TaskStatus\StoreTaskStatusRequest;
|
||||
use App\Http\Requests\TaskStatus\UpdateTaskStatusRequest;
|
||||
use App\Models\Task;
|
||||
use App\Models\TaskStatus;
|
||||
use App\Repositories\TaskStatusRepository;
|
||||
use App\Transformers\TaskStatusTransformer;
|
||||
@ -398,7 +399,8 @@ class TaskStatusController extends BaseController
|
||||
*/
|
||||
public function destroy(DestroyTaskStatusRequest $request, TaskStatus $task_status)
|
||||
{
|
||||
$task_status->delete();
|
||||
|
||||
$this->task_status_repo->delete($task_status);
|
||||
|
||||
return $this->itemResponse($task_status->fresh());
|
||||
}
|
||||
|
@ -11,9 +11,39 @@
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\Task;
|
||||
|
||||
/**
|
||||
* Class for task status repository.
|
||||
*/
|
||||
class TaskStatusRepository extends BaseRepository
|
||||
{
|
||||
|
||||
public function delete($task_status)
|
||||
{
|
||||
|
||||
Task::where('status_id', $task_status->id)
|
||||
->where('company_id', $task_status->company_id)
|
||||
->update(['status_id' => null]);
|
||||
|
||||
|
||||
parent::delete($task_status);
|
||||
|
||||
return $task_status;
|
||||
|
||||
}
|
||||
|
||||
public function archive($task_status)
|
||||
{
|
||||
|
||||
Task::where('status_id', $task_status->id)
|
||||
->where('company_id', $task_status->company_id)
|
||||
->update(['status_id' => null]);
|
||||
|
||||
|
||||
parent::archive($task_status);
|
||||
|
||||
return $task_status;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ class ConvertQuote
|
||||
public function run($quote)
|
||||
{
|
||||
$invoice = CloneQuoteToInvoiceFactory::create($quote, $quote->user_id);
|
||||
|
||||
$invoice->design_id = $this->client->getSetting('invoice_design_id');
|
||||
$invoice = $this->invoice_repo->save([], $invoice);
|
||||
|
||||
$invoice->fresh();
|
||||
|
@ -14,8 +14,8 @@ return [
|
||||
'require_https' => env('REQUIRE_HTTPS', true),
|
||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||
'app_domain' => env('APP_DOMAIN', ''),
|
||||
'app_version' => '5.1.46',
|
||||
'app_tag' => '5.1.46-release',
|
||||
'app_version' => '5.1.47',
|
||||
'app_tag' => '5.1.47-release',
|
||||
'minimum_client_version' => '5.0.16',
|
||||
'terms_version' => '1.0.1',
|
||||
'api_secret' => env('API_SECRET', false),
|
||||
|
@ -122,6 +122,23 @@ class TaskStatusApiTest extends TestCase
|
||||
$this->assertEquals(0, $arr['data'][0]['archived_at']);
|
||||
}
|
||||
|
||||
|
||||
public function testTaskStatusDeletedFromDELETEROute()
|
||||
{
|
||||
$data = [
|
||||
'ids' => [$this->encodePrimaryKey($this->task_status->id)],
|
||||
];
|
||||
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->delete('/api/v1/task_statuses/'.$this->encodePrimaryKey($this->task_status->id));
|
||||
|
||||
$arr = $response->json();
|
||||
|
||||
$this->assertTrue($arr['data']['is_deleted']);
|
||||
}
|
||||
|
||||
public function testTaskStatusDeleted()
|
||||
{
|
||||
$data = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user