$bookingsupplier ]; return response()->json($response, 200); } public function show($id) { $booking = Booking::where('id', $id)->first(); $bankin_amount = round($booking->amount / $booking->rate, 2); if (!$booking){ return response()->json(['message' => 'Booking not found'], 404); } switch ($booking->term) { case "x1_cash": $payment_method = "CASH"; break; case "x1_cheque": $payment_method = "CHEQUE"; break; case "x1_ba": $payment_method = "BA"; break; case "x2_cash": $payment_method = "CASH"; break; case "x2_cheque": $payment_method = "CHEQUE"; break; case "x2_ba": $payment_method = "BA"; break; default: return response()->json([ 'success' => false, 'message' => 'Invalid input', ], 422); break; } $supplier_booking = $booking->supplierBooking()->first(); $dt = new \DateTime($supplier_booking->created_at); $supplier_booking->date = $dt->format('j F Y'); $supplier_booking->marking = $booking->user->marking; $supplier_booking->payment_for = $booking->payment_for; $supplier_booking->order_no = $booking->order_no; $supplier_booking->payment_method = $payment_method; $active_bank = SettingActiveBank::first(); // if setting is set to use customer's beneficiary if ($active_bank->beneficiary_id == 0){ $supplier_booking->acc_name = $booking->account_name; $supplier_booking->acc_no = $booking->account_num; // TODO : standardize acc_no $supplier_booking->bank_name = $booking->bank_name; } else{ $beneficiary = SettingBeneficiary::find($active_bank->beneficiary_id); $supplier_booking->acc_name = $beneficiary->company_name; $supplier_booking->acc_no = $beneficiary->acc_no; $supplier_booking->bank_name = $beneficiary->bank_name; } return response()->json($supplier_booking ,200); } // Only for single booking // TODO : Multiple booking public function store(Request $request) { //$transfer_amount = $request->input("transfer_amount"); $supplier_id = $request->input("supplier_id"); $booking_id = $request->input("booking_id"); //$rate = $request->input('rate'); $rebate = $request->input('rebate'); $supplier = SettingSupplier::find($supplier_id); $booking = Booking::find($booking_id); // Calculation (backup) // $amountInRMB = $transfer_amount * $rate; // $billing = 0.015 * $transfer_amount; // $sales_tax = 0.0 * $transfer_amount; // $gst = 0 * $transfer_amount; // do we still need this ? // $customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); // $rmbBankAmount = round($customerBankInAmount + $rebate, 2); // Update: changes in 1.1 according to new supplier booking report $transfer_amount = $booking->amount; $rate = $booking->rate; $amount_in_myr = round($transfer_amount / $rate, 2); $amountInRMB = $transfer_amount; $tax_rate = SettingTaxRate::latest()->first()->tax_rate; $sales_tax = round($tax_rate * $amount_in_myr - $amount_in_myr, 2); $amount_after_tax = round($amount_in_myr * $tax_rate,2); //$billing = 0.015 * $transfer_amount; // //$gst = 0 * $transfer_amount; // do we still need this ? //$customerBankInAmount = round($transfer_amount + $gst + $sales_tax + $billing,2); //$rmbBankAmount = round($customerBankInAmount + $rebate, 2); // update existing booking supplier if exist $bookingsupplier = SupplierBooking::where('booking_id', $booking_id)->first(); if (!$bookingsupplier){ $bookingsupplier = new SupplierBooking(); } $bookingsupplier->supplier_id = $supplier->id; $bookingsupplier->amountInRMB = $amountInRMB; // TODO : rename to underscore $bookingsupplier->amount_in_myr = $amount_in_myr; $bookingsupplier->tax_rate = $tax_rate; $bookingsupplier->amount_after_tax = $amount_after_tax; $bookingsupplier->rate = $rate; $bookingsupplier->rebate = $rebate; $bookingsupplier->salestax_amount = $sales_tax; //$bookingsupplier->payment_method = $request->input('payment_method'); // TODO : remove from db //$bookingsupplier->transfer_amount = $transfer_amount; // TODO : remove from db //$bookingsupplier->billing_amount = $billing; // TODO : remove from db //$bookingsupplier->rmbBankAmount = $rmbBankAmount; // TODO : remove from db $bookingsupplier->booking_id = $booking->id; $bookingsupplier->save(); // update booking status $booking->status = 4; $booking->admin_status = 4; $booking->save(); return response()->json($bookingsupplier, 201); } public function report(Request $request, $id) { $supplier_booking = Booking::firstOrFail($id)->supplierBooking()->firstOrFail(); return response()->json($supplier_booking ,200); } }