mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 09:24:34 -04:00
Recurring Expenses
This commit is contained in:
parent
174248e03d
commit
2bafe5d1fc
@ -98,6 +98,9 @@ class CompanySettings extends BaseSettings
|
|||||||
public $expense_number_pattern = ''; //@implemented
|
public $expense_number_pattern = ''; //@implemented
|
||||||
public $expense_number_counter = 1; //@implemented
|
public $expense_number_counter = 1; //@implemented
|
||||||
|
|
||||||
|
public $recurring_expense_number_pattern = '';
|
||||||
|
public $recurring_expense_number_counter = 1;
|
||||||
|
|
||||||
public $vendor_number_pattern = ''; //@implemented
|
public $vendor_number_pattern = ''; //@implemented
|
||||||
public $vendor_number_counter = 1; //@implemented
|
public $vendor_number_counter = 1; //@implemented
|
||||||
|
|
||||||
@ -347,6 +350,8 @@ class CompanySettings extends BaseSettings
|
|||||||
'task_number_counter' => 'int',
|
'task_number_counter' => 'int',
|
||||||
'expense_number_pattern' => 'string',
|
'expense_number_pattern' => 'string',
|
||||||
'expense_number_counter' => 'int',
|
'expense_number_counter' => 'int',
|
||||||
|
'recurring_expense_number_pattern' => 'string',
|
||||||
|
'recurring_expense_number_counter' => 'int',
|
||||||
'vendor_number_pattern' => 'string',
|
'vendor_number_pattern' => 'string',
|
||||||
'vendor_number_counter' => 'int',
|
'vendor_number_counter' => 'int',
|
||||||
'ticket_number_pattern' => 'string',
|
'ticket_number_pattern' => 'string',
|
||||||
|
@ -130,6 +130,10 @@ Route::group(['middleware' => ['api_db', 'token_auth', 'locale'], 'prefix' => 'a
|
|||||||
Route::put('quotes/{quote}/upload', 'QuoteController@upload');
|
Route::put('quotes/{quote}/upload', 'QuoteController@upload');
|
||||||
|
|
||||||
Route::resource('recurring_expenses', 'RecurringExpenseController');
|
Route::resource('recurring_expenses', 'RecurringExpenseController');
|
||||||
|
Route::post('recurring_expenses/bulk', 'RecurringExpenseController@bulk')->name('recurring_expenses.bulk');
|
||||||
|
Route::put('recurring_expenses/{recurring_expense}/upload', 'RecurringExpenseController@upload');
|
||||||
|
|
||||||
|
|
||||||
Route::resource('recurring_invoices', 'RecurringInvoiceController'); // name = (recurring_invoices. index / create / show / update / destroy / edit
|
Route::resource('recurring_invoices', 'RecurringInvoiceController'); // name = (recurring_invoices. index / create / show / update / destroy / edit
|
||||||
Route::post('recurring_invoices/bulk', 'RecurringInvoiceController@bulk')->name('recurring_invoices.bulk');
|
Route::post('recurring_invoices/bulk', 'RecurringInvoiceController@bulk')->name('recurring_invoices.bulk');
|
||||||
Route::put('recurring_invoices/{recurring_invoice}/upload', 'RecurringInvoiceController@upload');
|
Route::put('recurring_invoices/{recurring_invoice}/upload', 'RecurringInvoiceController@upload');
|
||||||
|
@ -75,76 +75,74 @@ class RecurringExpenseApiTest extends TestCase
|
|||||||
])->post('/api/v1/recurring_expenses', $data);
|
])->post('/api/v1/recurring_expenses', $data);
|
||||||
|
|
||||||
$response->assertStatus(200);
|
$response->assertStatus(200);
|
||||||
|
|
||||||
|
$arr = $response->json();
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->put('/api/v1/recurring_expenses/'.$arr['data']['id'], $data)->assertStatus(200);
|
||||||
|
|
||||||
|
try{
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->post('/api/v1/recurring_expenses', $data);
|
||||||
|
}
|
||||||
|
catch(ValidationException $e){
|
||||||
|
$response->assertStatus(302);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// $arr = $response->json();
|
|
||||||
|
|
||||||
// $response = $this->withHeaders([
|
public function testRecurringExpensePut()
|
||||||
// 'X-API-SECRET' => config('ninja.api_secret'),
|
{
|
||||||
// 'X-API-TOKEN' => $this->token,
|
$data = [
|
||||||
// ])->put('/api/v1/recurring_expenses/'.$arr['data']['id'], $data)->assertStatus(200);
|
'amount' => 20,
|
||||||
|
'public_notes' => 'Coolio',
|
||||||
|
];
|
||||||
|
|
||||||
// try{
|
$response = $this->withHeaders([
|
||||||
// $response = $this->withHeaders([
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
// 'X-API-SECRET' => config('ninja.api_secret'),
|
'X-API-TOKEN' => $this->token,
|
||||||
// 'X-API-TOKEN' => $this->token,
|
])->put('/api/v1/recurring_expenses/'.$this->encodePrimaryKey($this->recurring_expense->id), $data);
|
||||||
// ])->post('/api/v1/recurring_expenses', $data);
|
|
||||||
// }
|
$response->assertStatus(200);
|
||||||
// catch(ValidationException $e){
|
}
|
||||||
// $response->assertStatus(302);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
public function testRecurringExpenseNotArchived()
|
||||||
|
{
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->get('/api/v1/recurring_expenses/'.$this->encodePrimaryKey($this->recurring_expense->id));
|
||||||
|
|
||||||
// }
|
$arr = $response->json();
|
||||||
|
|
||||||
// public function testRecurringExpensePut()
|
$this->assertEquals(0, $arr['data']['archived_at']);
|
||||||
// {
|
}
|
||||||
// $data = [
|
|
||||||
// 'name' => $this->faker->firstName,
|
|
||||||
// 'public_notes' => 'Coolio',
|
|
||||||
// ];
|
|
||||||
|
|
||||||
// $response = $this->withHeaders([
|
public function testRecurringExpenseArchived()
|
||||||
// 'X-API-SECRET' => config('ninja.api_secret'),
|
{
|
||||||
// 'X-API-TOKEN' => $this->token,
|
$data = [
|
||||||
// ])->put('/api/v1/recurring_expenses/'.$this->encodePrimaryKey($this->project->id), $data);
|
'ids' => [$this->encodePrimaryKey($this->recurring_expense->id)],
|
||||||
|
];
|
||||||
|
|
||||||
// $response->assertStatus(200);
|
$response = $this->withHeaders([
|
||||||
// }
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
|
'X-API-TOKEN' => $this->token,
|
||||||
|
])->post('/api/v1/recurring_expenses/bulk?action=archive', $data);
|
||||||
|
|
||||||
|
$arr = $response->json();
|
||||||
|
|
||||||
// public function testRecurringExpenseNotArchived()
|
$this->assertNotNull($arr['data'][0]['archived_at']);
|
||||||
// {
|
}
|
||||||
// $response = $this->withHeaders([
|
|
||||||
// 'X-API-SECRET' => config('ninja.api_secret'),
|
|
||||||
// 'X-API-TOKEN' => $this->token,
|
|
||||||
// ])->get('/api/v1/recurring_expenses/'.$this->encodePrimaryKey($this->project->id));
|
|
||||||
|
|
||||||
// $arr = $response->json();
|
|
||||||
|
|
||||||
// $this->assertEquals(0, $arr['data']['archived_at']);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public function testRecurringExpenseArchived()
|
|
||||||
// {
|
|
||||||
// $data = [
|
|
||||||
// 'ids' => [$this->encodePrimaryKey($this->project->id)],
|
|
||||||
// ];
|
|
||||||
|
|
||||||
// $response = $this->withHeaders([
|
|
||||||
// 'X-API-SECRET' => config('ninja.api_secret'),
|
|
||||||
// 'X-API-TOKEN' => $this->token,
|
|
||||||
// ])->post('/api/v1/recurring_expenses/bulk?action=archive', $data);
|
|
||||||
|
|
||||||
// $arr = $response->json();
|
|
||||||
|
|
||||||
// $this->assertNotNull($arr['data'][0]['archived_at']);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public function testRecurringExpenseRestored()
|
// public function testRecurringExpenseRestored()
|
||||||
// {
|
// {
|
||||||
// $data = [
|
// $data = [
|
||||||
// 'ids' => [$this->encodePrimaryKey($this->project->id)],
|
// 'ids' => [$this->encodePrimaryKey($this->recurring_expense->id)],
|
||||||
// ];
|
// ];
|
||||||
|
|
||||||
// $response = $this->withHeaders([
|
// $response = $this->withHeaders([
|
||||||
@ -160,7 +158,7 @@ class RecurringExpenseApiTest extends TestCase
|
|||||||
// public function testRecurringExpenseDeleted()
|
// public function testRecurringExpenseDeleted()
|
||||||
// {
|
// {
|
||||||
// $data = [
|
// $data = [
|
||||||
// 'ids' => [$this->encodePrimaryKey($this->project->id)],
|
// 'ids' => [$this->encodePrimaryKey($this->recurring_expense->id)],
|
||||||
// ];
|
// ];
|
||||||
|
|
||||||
// $response = $this->withHeaders([
|
// $response = $this->withHeaders([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user