diff --git a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php index 6a941b1fa394..307ab9cffe5f 100644 --- a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php @@ -80,6 +80,10 @@ class StoreRecurringInvoiceRequest extends Request $input['due_date_days'] = 'terms'; } + if(!isset($input['next_send_date']) || $input['next_send_date'] == '') { + $input['next_send_date'] = now()->format('Y-m-d'); + } + if (array_key_exists('next_send_date', $input) && is_string($input['next_send_date'])) { $input['next_send_date_client'] = $input['next_send_date']; } diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index eab645792ac8..a41f58629fb6 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -114,67 +114,6 @@ use Laracasts\Presenter\PresentableTrait; * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice query() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope() - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereAmount($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereAssignedUserId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereAutoBill($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereAutoBillEnabled($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereBackup($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereBalance($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereClientId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCompanyId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCreatedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurcharge1($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurcharge2($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurcharge3($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurcharge4($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurchargeTax1($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurchargeTax2($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurchargeTax3($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomSurchargeTax4($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomValue1($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomValue2($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomValue3($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCustomValue4($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDeletedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDesignId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDiscount($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDueDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDueDateDays($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereExchangeRate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereFooter($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereFrequencyId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereIsAmountDiscount($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereIsDeleted($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereLastSentDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereLastViewed($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereLineItems($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereNextSendDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereNextSendDateClient($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereNumber($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePaidToDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePartial($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePartialDueDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePoNumber($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePrivateNotes($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereProjectId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePublicNotes($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereRemainingCycles($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereStatusId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereSubscriptionId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxName1($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxName2($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxName3($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxRate1($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxRate2($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTaxRate3($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTerms($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTotalTaxes($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUpdatedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUserId($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUsesInclusiveTaxes($value) - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereVendorId($value) * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice withoutTrashed() * @property-read \Illuminate\Database\Eloquent\Collection $activities @@ -183,62 +122,6 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @property-read \Illuminate\Database\Eloquent\Collection $invoices * @property bool $is_proforma - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereIsProforma($value) - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $invoices * @mixin \Eloquent */ class RecurringInvoice extends BaseModel diff --git a/tests/Feature/RecurringInvoiceTest.php b/tests/Feature/RecurringInvoiceTest.php index e13b0e7026e6..def58d0e50cc 100644 --- a/tests/Feature/RecurringInvoiceTest.php +++ b/tests/Feature/RecurringInvoiceTest.php @@ -40,6 +40,8 @@ class RecurringInvoiceTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp() :void { parent::setUp(); @@ -58,6 +60,49 @@ class RecurringInvoiceTest extends TestCase } + public function testNextSendDateCatch() + { + $line_items = []; + + $item = InvoiceItemFactory::create(); + $item->quantity = 1; + $item->cost = 10; + $item->task_id = $this->encodePrimaryKey($this->task->id); + $item->expense_id = $this->encodePrimaryKey($this->expense->id); + $item->notes = "Hello this is the month of :MONTH"; + + $line_items[] = $item; + + + $data = [ + 'frequency_id' => 1, + 'status_id' => 2, + 'discount' => 0, + 'is_amount_discount' => 1, + 'po_number' => '3434343', + 'public_notes' => 'notes', + 'is_deleted' => 0, + 'custom_value1' => 0, + 'custom_value2' => 0, + 'custom_value3' => 0, + 'custom_value4' => 0, + 'status' => 1, + 'client_id' => $this->encodePrimaryKey($this->client->id), + 'line_items' => $line_items, + 'remaining_cycles' => -1, + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->post('/api/v1/recurring_invoices/', $data) + ->assertStatus(200); + + $arr = $response->json(); + + $this->assertEquals(now()->startOfDay(), $arr['data']['next_send_date']); + + } public function testBulkIncreasePriceWithJob() {