Files
exchange/app/Http/Controllers/BookingController.php
T
2018-05-30 13:24:22 +08:00

198 lines
7.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\PurchaseOrder;
use Illuminate\Http\Request;
use App\Booking;
use App\Rate;
use App\UserBankSlip;
use App\User;
use Auth;
class BookingController extends Controller
{
public function store(Request $request)
{
$rates = Rate::all()->last();
$term = $request->input('term');
$rate = 1;
switch($term){
case "x1_cash":
$rate = $rates->x1_cash;
break;
case "x1_cheque":
$rate = $rates->x1_cheque;
break;
case "x1_ba":
$rate = $rates->x1_ba;
break;
case "x2_cash":
$rate = $rates->x2_cash;
break;
case "x2_cheque":
$rate = $rates->x2_cheque;
break;
case "x2_ba":
$rate = $rates->x2_ba;
break;
default:
//$rate = "no";
return Response::json(array(
'code' => 422,
'message' => 'Invalid input'
), 422);
break;
}
//Calculation part
//$bookings = Booking::all();
$amount = $request->input("amount");
if ($amount >= 10000 && ($term == 'x2_cash' || $term = 'x2_cheque' || $term = 'x2_ba')) {
$svcharge = 0;
}
else {
$svcharge = 20.00;
}
$gst = 0*($amount + $svcharge);
$bia = round(($amount + $svcharge) / $rate + $gst,2);
//gst = 0.00% -> (0*($amount + $svcharge))
//bia = bank in amount in MYR
// return $bia;
$user = Auth::user();
$booking = new Booking();
$booking->account_name = $request->input('account_name');
$booking->account_num = $request->input('account_num');
$booking->bank_name = $request->input('bank_name');
$booking->bank_branch = $request->input('bank_branch');
$booking->company_name = $request->input('company_name');
$booking->company_address = $request->input('company_address');
$booking->bank_address = $request->input('bank_address');
$booking->swift_code = $request->input('swift_code');
$booking->cnap = $request->input('cnap');
$booking->term = $request->input('term');
$booking->amount = $request->input('amount');
$booking->rate_id = $rate;
$booking->rmb_book_amount = $request->input('rmb_book_amount');
$booking->rmb_book_pay_method = $request->input('rmb_book_pay_method');
$booking->rmb_book_account_name = $request->input('rmb_book_account_name');
$booking->rmb_book_acc_no = $request->input('rmb_book_acc_no');
$booking->rmb_book_bank_branch = $request->input('rmb_book_bank_branch');
$booking->usd_book_amount = $request->input('usd_book_amount');
$booking->usd_book_pay_method = $request->input('usd_book_pay_method');
$booking->usd_book_company_name = $request->input('usd_book_company_name');
$booking->usd_book_company_address = $request->input('usd_book_company_address');
$booking->usd_book_swift_code = $request->input('usd_book_swift_code');
$booking->usd_book_cnap = $request->input('usd_book_cnap');
$booking->usd_book_bank_branch = $request->input('usd_book_bank_branch');
$booking->verification_status = $request->input('verification_status');
$booking->user()->associate($user);
//$booking->user_id = $request->input('user_id');
$booking->bia = $bia;
$booking->save();
// return false;
//$booking = Booking::create($request->all());
return response()->json($booking, 201);
}
public function uploadbankslip(Request $request, $id)
{
// Handle File Upload
if($request->hasFile('bankslip_url')){
// Get filename with the extension
$filenameWithExt = $request->file('bankslip_url')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('bankslip_url')->getClientOriginalExtension();
// Filename to store
$fileNameToStore= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('bankslip_url')->storeAs('public/userbankslip', $fileNameToStore);
} else {
return response()->json(['message'=>'No file detected'],400);
}
$booking = Booking::find($id);
$booking->cust_marking = $request->input('cust_marking');
$booking->bank_slip_type = $request->input('bank_slip_type');
// Create Post
$post = new UserBankSlip;
$post->book_id = $booking->id;
$post->transfer_amount = $request->input('transfer_amount');
$post->bankslip_url = $fileNameToStore;
$post->save();;
}
public function uploadPurchaseOrder(Request $request, $id)
{
// Handle File Upload
if($request->hasFile('image_url')){
// Get filename with the extension
$filenameWithExt = $request->file('image_url')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('image_url')->getClientOriginalExtension();
// Filename to store
$fileNameToStore= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('image_url')->storeAs('public/userPurchaseOrder', $fileNameToStore);
} else {
return response()->json(['message'=>'No file detected'],400);
}
$booking = Booking::find($id);
// Create Post
$post = new PurchaseOrder;
$post->book_id = $booking->id;
$post->amount = $request->input('amount');
$post->image_url = $fileNameToStore;
$post->save();
}
public function update(Request $request, $book_id)
{
$book_id = Booking::find($book_id);
//$com_id->id = $request->input('id');
$book_id->account_name = $request->input('account_name');
$book_id->account_num = $request->input('account_num');
$book_id->bank_name = $request->input('bank_name');
$book_id->bank_branch = $request->input('bank_branch');
$book_id->company_name = $request->input('company_name');
$book_id->company_address = $request->input('company_address');
$book_id->bank_address = $request->input('bank_address');
$book_id->swift_code = $request->input('swift_code');
$book_id->cnap = $request->input('cnap');
$book_id->save();
return response()->json(['book_id'=>$book_id],200);
}
public function delete(Booking $book_id)
{
$book_id->delete($book_id);
return response()->json($book_id, 204);
}
}