Working on recurring schedules

This commit is contained in:
David Bomba 2020-09-24 21:03:59 +10:00
parent b906e1e92f
commit 4cf56d5138
5 changed files with 35 additions and 26 deletions

View File

@ -82,6 +82,6 @@ class SelfUpdateController extends BaseController
Artisan::call('ninja:post-update');
return response()->json(['message'=>$res], 200);
return response()->json(['message' => ''], 200);
}
}

View File

@ -17,6 +17,7 @@ use App\Helpers\Email\InvoiceEmail;
use App\Jobs\Invoice\EmailInvoice;
use App\Models\Invoice;
use App\Models\RecurringInvoice;
use App\Utils\Ninja;
use App\Utils\Traits\GeneratesCounter;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;

View File

@ -202,27 +202,27 @@ class RecurringInvoice extends BaseModel
{
switch ($this->frequency_id) {
case self::FREQUENCY_WEEKLY:
return Carbon::parse($this->next_send_date->addWeek());
return Carbon::parse($this->next_send_date)->addWeek();
case self::FREQUENCY_TWO_WEEKS:
return Carbon::parse($this->next_send_date->addWeeks(2));
return Carbon::parse($this->next_send_date)->addWeeks(2);
case self::FREQUENCY_FOUR_WEEKS:
return Carbon::parse($this->next_send_date->addWeeks(4));
return Carbon::parse($this->next_send_date)->addWeeks(4);
case self::FREQUENCY_MONTHLY:
return Carbon::parse($this->next_send_date->addMonthNoOverflow());
return Carbon::parse($this->next_send_date)->addMonthNoOverflow();
case self::FREQUENCY_TWO_MONTHS:
return Carbon::parse($this->next_send_date->addMonthsNoOverflow(2));
return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(2);
case self::FREQUENCY_THREE_MONTHS:
return Carbon::parse($this->next_send_date->addMonthsNoOverflow(3));
return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(3);
case self::FREQUENCY_FOUR_MONTHS:
return Carbon::parse($this->next_send_date->addMonthsNoOverflow(4));
return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(4);
case self::FREQUENCY_SIX_MONTHS:
return Carbon::parse($this->next_send_date->addMonthsNoOverflow(6));
return Carbon::parse($this->next_send_date)->addMonthsNoOverflow(6);
case self::FREQUENCY_ANNUALLY:
return Carbon::parse($this->next_send_date->addYear());
return Carbon::parse($this->next_send_date)->addYear();
case self::FREQUENCY_TWO_YEARS:
return Carbon::parse($this->next_send_date->addYears(2));
return Carbon::parse($this->next_send_date)->addYears(2);
case self::FREQUENCY_THREE_YEARS:
return Carbon::parse($this->next_send_date->addYears(3));
return Carbon::parse($this->next_send_date)->addYears(3);
default:
return null;
}
@ -233,27 +233,27 @@ class RecurringInvoice extends BaseModel
switch ($this->frequency_id) {
case self::FREQUENCY_WEEKLY:
return Carbon::parse($date->addWeek());
return Carbon::parse($date)->addWeek();
case self::FREQUENCY_TWO_WEEKS:
return Carbon::parse($date->addWeeks(2));
return Carbon::parse($date)->addWeeks(2);
case self::FREQUENCY_FOUR_WEEKS:
return Carbon::parse($date->addWeeks(4));
return Carbon::parse($date)->addWeeks(4);
case self::FREQUENCY_MONTHLY:
return Carbon::parse($date->addMonthNoOverflow());
return Carbon::parse($date)->addMonthNoOverflow();
case self::FREQUENCY_TWO_MONTHS:
return Carbon::parse($date->addMonthsNoOverflow(2));
return Carbon::parse($date)->addMonthsNoOverflow(2);
case self::FREQUENCY_THREE_MONTHS:
return Carbon::parse($date->addMonthsNoOverflow(3));
return Carbon::parse($date)->addMonthsNoOverflow(3);
case self::FREQUENCY_FOUR_MONTHS:
return Carbon::parse($date->addMonthsNoOverflow(4));
return Carbon::parse($date)->addMonthsNoOverflow(4);
case self::FREQUENCY_SIX_MONTHS:
return Carbon::parse($date->addMonthsNoOverflow(6));
return Carbon::parse($date)->addMonthsNoOverflow(6);
case self::FREQUENCY_ANNUALLY:
return Carbon::parse($date->addYear());
return Carbon::parse($date)->addYear();
case self::FREQUENCY_TWO_YEARS:
return Carbon::parse($date->addYears(2));
return Carbon::parse($date)->addYears(2);
case self::FREQUENCY_THREE_YEARS:
return Carbon::parse($date->addYears(3));
return Carbon::parse($date)->addYears(3);
default:
return null;
}
@ -381,9 +381,15 @@ class RecurringInvoice extends BaseModel
if($this->remaining_cycles == -1)
$iterations = 10;
$next_send_date = Carbon::parse($this->next_send_date)->copy();
$data = [];
$next_send_date = Carbon::parse($this->next_send_date)->copy();
// $data[] = [
// 'next_send_date' => $next_send_date->format('Y-m-d'),
// 'due_date' => $next_due_date->format('Y-m-d'),
// ];
for($x=0; $x<$iterations; $x++)
{
@ -398,7 +404,7 @@ class RecurringInvoice extends BaseModel
'due_date' => $next_due_date->format('Y-m-d'),
];
$next_send_date = $this->calculateDueDate($next_send_date);
$next_send_date = $this->nextDateByFrequency($next_send_date->format('Y-m-d'));
}

View File

@ -72,6 +72,7 @@ class RefundPayment
{
if ($this->refund_data['gateway_refund'] !== false && $this->total_refund > 0) {
if ($this->payment->company_gateway) {
$response = $gateway->driver($this->payment->client)->refund($this->payment, $this->total_refund);
if ($response['success']) {

View File

@ -12,6 +12,7 @@
namespace App\Services\Recurring;
use App\Models\RecurringInvoice;
use Illuminate\Support\Carbon;
class RecurringService
{
@ -42,7 +43,7 @@ class RecurringService
if(Carbon::parse($this->recurring_entity->next_send_date)->lt(now()))
return $this;
$this->status_id = RecurringInvoice::STATUS_ACTIVE;
$this->recurring_entity->status_id = RecurringInvoice::STATUS_ACTIVE;
return $this;