recurring trait
This commit is contained in:
		
							
								
								
									
										56
									
								
								app/Traits/Recurring.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								app/Traits/Recurring.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Traits;
 | 
			
		||||
 | 
			
		||||
trait Recurring
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public function createRecurring()
 | 
			
		||||
    {
 | 
			
		||||
        $request = request();
 | 
			
		||||
 | 
			
		||||
        if ($request->get('recurring_frequency') == 'no') {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $frequency = ($request['recurring_frequency'] != 'custom') ? $request['recurring_frequency'] : $request['recurring_custom_frequency'];
 | 
			
		||||
        $interval = ($request['recurring_frequency'] != 'custom') ? 1 : (int) $request['recurring_interval'];
 | 
			
		||||
        $started_at = $request->get('paid_at') ?: ($request->get('invoiced_at') ?: $request->get('billed_at'));
 | 
			
		||||
 | 
			
		||||
        $this->recurring()->create([
 | 
			
		||||
            'company_id' => session('company_id'),
 | 
			
		||||
            'frequency' => $frequency,
 | 
			
		||||
            'interval' => $interval,
 | 
			
		||||
            'started_at' => $started_at,
 | 
			
		||||
            'count' => (int) $request['recurring_count'],
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function updateRecurring()
 | 
			
		||||
    {
 | 
			
		||||
        $request = request();
 | 
			
		||||
 | 
			
		||||
        if ($request->get('recurring_frequency') == 'no') {
 | 
			
		||||
            $this->recurring()->delete();
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $frequency = ($request['recurring_frequency'] != 'custom') ? $request['recurring_frequency'] : $request['recurring_custom_frequency'];
 | 
			
		||||
        $interval = ($request['recurring_frequency'] != 'custom') ? 1 : (int) $request['recurring_interval'];
 | 
			
		||||
        $started_at = $request->get('paid_at') ?: ($request->get('invoiced_at') ?: $request->get('billed_at'));
 | 
			
		||||
 | 
			
		||||
        if ($this->has('recurring')->count()) {
 | 
			
		||||
            $function = 'update';
 | 
			
		||||
        } else {
 | 
			
		||||
            $function = 'create';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->recurring()->$function([
 | 
			
		||||
            'company_id' => session('company_id'),
 | 
			
		||||
            'frequency' => $frequency,
 | 
			
		||||
            'interval' => $interval,
 | 
			
		||||
            'started_at' => $started_at,
 | 
			
		||||
            'count' => (int) $request['recurring_count'],
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user