public static function approve($id) { $payment = Payment::with(array('user', 'donations'))->find($id); if ($payment == null) { return array('success' => false, 'errors' => array('Pembayaran tidak ditemukan.')); } if ($payment->status != 0) { return array('success' => false, 'errors' => array('Pembayaran sudah pernah direspon oleh admin sebelumnya.')); } // approve $payment->status = 1; $payment->save(); // update donation Donation::where('payment_id', '=', $payment->id)->update(array('status' => 1)); // get all donations $donations = Donation::with(array('user'))->where('payment_id', '=', $payment->id)->get(); foreach ($donations as $donation) { // update donation $donation->status = 1; $donation->save(); // get social target / social action $donation->setAppends(array('type')); // update total donation in social target / social action if (isset($donation->type->social_action_category_id)) { $social_action = SocialAction::find($donation->type->id); $social_action->total_donation = $social_action->total_donation + $donation->total; $social_action->save(); } else { if (isset($donation->type->social_target_category_id)) { $social_target = SocialTarget::find($donation->type->id); $social_target->total_donation = $social_target->total_donation + $donation->total; $social_target->save(); } } // send email to social creator / social action creator Newsletter::addDonationNewsletter($donation); } // set type for each donation foreach ($payment->donations as $donation) { $donation->setAppends(array('type')); } // send email to donor Newsletter::addPaymentNewsletter($payment); return array('success' => true, 'data' => $payment); }
public static function UpdateSocialAction($input) { $rules = array('name' => 'required', 'description' => 'required|min:5', 'stewardship' => 'required|min:5', 'bank_account_description' => 'required|min:5', 'currency' => 'required', 'total_donation_target' => 'required', 'expired_at' => 'required'); $validator = Validator::make($input, $rules); if ($validator->fails()) { return $validator->errors()->all(); } else { $id = $input['id']; unset($input['id']); if (!empty($input['expired_at'])) { $started_at = preg_split("/([\\/: ])/", $input['expired_at']); $input['expired_at'] = mktime((int) $started_at[3], (int) $started_at[4], 0, (int) $started_at[0], (int) $started_at[1], (int) $started_at[2]); } else { $input['expired_at'] = ''; } $getSlug = SocialAction::where('id', $id)->first(); $slug = Str::slug($input['name']); // jika input tidak sama dengan slug di database if (strcmp($input['name'], $getSlug['name']) != 0) { $checkSlug = SocialAction::where('slug', $slug)->where('id', '!=', $id)->count(); if ($checkSlug > 0) { $input['slug'] = $slug . "-" . $id; } else { $input['slug'] = $slug; } } $photo = Photo::updateAvatar($getSlug['cover_photo_id'], 'social_actions', $getSlug->id); $input['cover_photo_id'] = $photo['cover_photo_id']; $SocialAction = SocialAction::find($id); $SocialAction->fill($input); $SocialAction->save(); return "ok"; } }
public function delete($id) { $SocialAction = SocialAction::find($id); $SocialAction->delete(); Session::flash('sukses', 'Data berhasil dihapus'); return Redirect::route('admin.social-action'); }