Example #1
0
 public function destroy($code)
 {
     $earnings = Earning::where('code', '=', $code)->get();
     foreach ($earnings as $earning) {
         switch ($earning->earnable_type) {
             case 'Receivable':
                 $receivable = Receivable::find($earning->earnable_id);
                 $receivable->balance += $receivable->balance + $earning->payment;
                 $receivable->save();
                 $earning->delete();
                 break;
             case 'Installment':
                 $installment = Installment::find($earning->earnable_id);
                 $installment->balance += $installment->balance + $earning->payment;
                 $installment->paid = 0;
                 $installment->save();
                 $earning->delete();
                 break;
             case 'Registration':
                 $registration = Registration::find($earning->earnable_id);
                 $registration->cost_is_paid = 0;
                 $registration->save();
                 $earning->delete();
                 break;
             case 'Movement':
                 $movement = Movement::find($earning->earnable_id);
                 $movement->paid = 0;
                 $movement->save();
                 $earning->delete();
                 break;
             case 'Punishment':
                 $punishment = Punishment::find($earning->earnable_id);
                 $punishment->paid = 0;
                 $punishment->save();
                 $earning->delete();
                 break;
             case 'Resign':
                 $resign = Resign::find($earning->earnable_id);
                 $resign->is_earned = 0;
                 $resign->save();
                 $earning->delete();
                 break;
             default:
                 $earning->delete();
                 break;
         }
     }
 }
 public function payment($id)
 {
     $movement = Movement::find($id);
     $movement->paid = 1;
     $movement->save();
     $earning = new Earning();
     $earning->project_id = Auth::user()->curr_project_id;
     $earning->location_id = Auth::user()->location_id;
     $earning->issue_id = $movement->issue_id;
     $earning->employee_id = $movement->employee_id;
     $earning->earning_date = date('Y-m-d');
     $earning->earnable_type = 'Movement';
     $earning->earnable_id = $movement->id;
     $earning->code = $this->generateEarningCode();
     $earning->signature = $this->generateSignature();
     $earning->payment = $movement->movement_costs + $movement->upgrade_costs;
     $earning->save();
 }