Fixes for recurring expense generation of next_send_date

This commit is contained in:
David Bomba 2023-09-15 07:28:26 +10:00
parent a3d99d185c
commit df35545fef
5 changed files with 19 additions and 15 deletions

View File

@ -34,7 +34,8 @@ class RecurringExpenseFactory
$recurring_expense->tax_amount1 = 0;
$recurring_expense->tax_amount2 = 0;
$recurring_expense->tax_amount3 = 0;
$recurring_expense->date = null;
$recurring_expense->date = now()->format('Y-m-d');
$recurring_expense->next_send_date = now()->format('Y-m-d');
$recurring_expense->payment_date = null;
$recurring_expense->amount = 0;
$recurring_expense->foreign_amount = 0;
@ -47,6 +48,7 @@ class RecurringExpenseFactory
$recurring_expense->custom_value4 = '';
$recurring_expense->uses_inclusive_taxes = true;
$recurring_expense->calculate_tax_by_amount = true;
$recurring_expense->remaining_cycles = -1;
return $recurring_expense;
}

View File

@ -75,6 +75,9 @@ class UpdateRecurringExpenseRequest extends Request
public function prepareForValidation()
{
/** @var \App\Models\User $user*/
$user = auth()->user();
$input = $this->all();
$input = $this->decodePrimaryKeys($input);
@ -88,7 +91,7 @@ class UpdateRecurringExpenseRequest extends Request
}
if (! array_key_exists('currency_id', $input) || strlen($input['currency_id']) == 0) {
$input['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
$input['currency_id'] = (string) $user->company()->settings->currency_id;
}
$this->replace($input);

View File

@ -11,12 +11,14 @@
namespace App\Jobs\Cron;
use App\Utils\Ninja;
use App\Libraries\MultiDB;
use Illuminate\Support\Carbon;
use App\Models\RecurringExpense;
use App\Models\RecurringInvoice;
use Illuminate\Support\Facades\Auth;
use App\Utils\Traits\GeneratesCounter;
use App\Events\Expense\ExpenseWasCreated;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Factory\RecurringExpenseToExpenseFactory;
@ -109,6 +111,9 @@ class RecurringExpensesCron
$expense->number = $this->getNextExpenseNumber($expense);
$expense->saveQuietly();
event(new ExpenseWasCreated($expense, $expense->company, Ninja::eventVars(null)));
event('eloquent.created: App\Models\Expense', $expense);
$recurring_expense->next_send_date = $recurring_expense->nextSendDate();
$recurring_expense->next_send_date_client = $recurring_expense->next_send_date;
$recurring_expense->last_sent_date = now();

View File

@ -49,7 +49,8 @@ class CreatedExpenseActivity implements ShouldQueue
$fields->user_id = $user_id;
$fields->company_id = $event->expense->company_id;
$fields->activity_type_id = Activity::CREATE_EXPENSE;
$fields->recurring_expense_id = $event->expense->recurring_expense_id ?? null;
$this->activity_repo->save($fields, $event->expense, $event->event_vars);
}
}

View File

@ -81,7 +81,6 @@ class ClientSettingsTest extends TestCase
$response->assertStatus(200);
$arr = $response->json();
nlog($arr);
$this->assertEquals('frank', $arr['data']['settings']['name']);
@ -106,7 +105,7 @@ class ClientSettingsTest extends TestCase
$response->assertStatus(200);
$arr = $response->json();
nlog($arr);
$this->assertEquals('white', $arr['data']['settings']['name']);
$data = [
@ -140,7 +139,6 @@ class ClientSettingsTest extends TestCase
$response->assertStatus(200);
$arr = $response->json();
nlog($arr);
$this->assertEquals('white', $arr['data']['settings']['name']);
// $this->assertEquals('1', $arr['data']['settings']['currency_id']);
@ -169,7 +167,6 @@ class ClientSettingsTest extends TestCase
])->post('/api/v1/clients/', $data);
} catch (ValidationException $e) {
$message = json_decode($e->validator->getMessageBag(), 1);
nlog($message);
}
$response->assertStatus(200);
@ -203,7 +200,6 @@ class ClientSettingsTest extends TestCase
])->post('/api/v1/clients/', $data);
} catch (ValidationException $e) {
$message = json_decode($e->validator->getMessageBag(), 1);
nlog($message);
}
$response->assertStatus(200);
@ -235,17 +231,14 @@ class ClientSettingsTest extends TestCase
$response = false;
try {
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/clients/', $data);
} catch (ValidationException $e) {
$message = json_decode($e->validator->getMessageBag(), 1);
nlog($message);
}
])->postJson('/api/v1/clients/', $data);
$response->assertStatus(302);
$response->assertStatus(422);
}
public function testClientIllegalLanguage()