Beispiel #1
0
 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);
 }
Beispiel #2
0
 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');
 }