public function delete()
 {
     // get user id
     $user_id = Auth::user()->id;
     $result = Donation::whereIn('id', Input::get('donations'))->where('user_id', '=', $user_id)->update(array('status' => 3));
     Session::flash('success', 'Proses pembatalam donasi Anda berhasil dilakukan. Terima kasih.');
     return serialize(Input::get('donations'));
 }
Esempio n. 2
0
 public static function add($input)
 {
     // init
     $total_donation = 0;
     $currency = 'IDR';
     // get payment ids
     $donation_ids = explode(',', $input['donation_ids']);
     unset($input['donation_ids']);
     // compare total of donation with total of payment
     $donations = Donation::whereIn('id', $donation_ids)->get();
     foreach ($donations as $donation) {
         $total_donation += $donation->total;
         $currency = $donation->currency;
     }
     if ($total_donation > $input['total']) {
         return array('success' => false, 'errors' => array('Total yang Anda inputkan tidak sama dengan total donasi Anda. Jika Anda ingin melakukan perubahan donasi silahkan batalkan donasi sebelumnya dan lakukan donasi kembali.'));
     } else {
         if ($currency != $input['currency']) {
             return array('success' => false, 'errors' => array('Mata uang yang Anda inputkan tidak sama dengan mata uang donasi Anda. Jika Anda ingin melakukan perubahan donasi silahkan batalkan donasi sebelumnya dan lakukan donasi kembali.'));
         }
     }
     // set rules
     $rules = array('user_id' => 'required|exists:users,id', 'currency' => 'required', 'transferred_at' => 'required|numeric', 'total' => 'required|numeric', 'to_bank' => 'required|max:100', 'bank_name' => 'required|max:40', 'bank_account' => 'required|max:25', 'bank_account_name' => 'required|max:40', 'message' => '');
     $validator = Validator::make($input, $rules);
     if ($validator->fails()) {
         // if fails
         return array('success' => false, 'errors' => $validator->errors()->all());
     } else {
         // save to database
         $payment = new Payment();
         // set input
         foreach ($input as $field => $value) {
             $payment->{$field} = $value;
         }
         $payment->status = 0;
         // new (waiting approval)
         $payment->save();
         // update donation
         foreach ($donation_ids as $donation_id) {
             $donation = Donation::find($donation_id);
             $donation->payment_id = $payment->id;
             $donation->save();
         }
         // send email
         $payment = Payment::with(array('user', 'donations'))->find($payment->id);
         // 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);
     }
 }