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(); }