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