Merge branch 'amirah' of https://gitlab.com/azfararsyad/lelong into amirah
This commit is contained in:
@@ -90,12 +90,12 @@ class AccountController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
return view('account.sahsagonline', compact('senaraisag', 'user_id', 'lelong_id','total_payment'));
|
||||
return view('account.sahsagonline', compact('senaraisag', 'lelong_id', 'user_id', 'total_payment'));
|
||||
}
|
||||
|
||||
public function sahbayaronline($lelong_id, $user_id)
|
||||
public function sahbayaronline(Request $request)
|
||||
{
|
||||
|
||||
// dd($request->all());
|
||||
$currentdate = Carbon::now();
|
||||
$currentdate = $currentdate->toDateTimeString();
|
||||
|
||||
@@ -103,25 +103,26 @@ class AccountController extends Controller
|
||||
|
||||
$senaraisag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
||||
->join('payment', 'lelongbid.id', '=', 'payment.lelongbid_id')
|
||||
->where('lelongbid.lelong_id', $lelong_id)
|
||||
->where('lelongbidder.user_id', $user_id)
|
||||
->where('lelongbid.lelong_id', $request->lelong_id)
|
||||
->where('lelongbidder.user_id', $request->user_id)
|
||||
->where('lelongbidder.status_bidder', 1)
|
||||
->where('payment.status_payment_opt', 2)
|
||||
->get();
|
||||
->get();
|
||||
|
||||
|
||||
$total_payment = 0;
|
||||
foreach($senaraisag as $sag)
|
||||
{
|
||||
$payment = Payment::where('lelong_id', $lelong_id)
|
||||
->where('user_id', $user_id)
|
||||
$payment = Payment::where('lelong_id', $request->lelong_id)
|
||||
->where('user_id', $request->user_id)
|
||||
->where('lelongbid_id',$sag->lelongbid_id)
|
||||
->first();
|
||||
|
||||
$payment->disahkan_oleh = $user->id;
|
||||
$payment->disahkan_pada = $currentdate;
|
||||
$payment->save();
|
||||
|
||||
$total_payment = $total_payment + $payment->total_payment;
|
||||
|
||||
$updatelelbidbidder = LelongBidder::where('lelongbid_id', $sag->lelongbid_id)
|
||||
->first();
|
||||
$updatelelbidbidder->status_payment = 1;
|
||||
@@ -133,14 +134,14 @@ class AccountController extends Controller
|
||||
$eachbid->save();
|
||||
|
||||
}
|
||||
|
||||
|
||||
$senaraisagallpayment = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
||||
->where('lelongbid.lelong_id', $lelong_id)
|
||||
->where('lelongbidder.user_id', $user_id)
|
||||
->where('lelongbid.lelong_id', $request->lelong_id)
|
||||
->where('lelongbidder.user_id', $request->user_id)
|
||||
->where('lelongbidder.status_bidder', 1)
|
||||
->get();
|
||||
// dd($senaraisagallpayment);
|
||||
$resit = Resit::where('id',$payment->resit_id)->first();
|
||||
|
||||
$resit = Resit::where('id', $payment->resit_id)->first();
|
||||
$resit->total_payment = $resit->total_payment + $total_payment;
|
||||
|
||||
if($resit->total_payment >= $senaraisagallpayment->sum('hargabida'))
|
||||
|
||||
@@ -163,7 +163,7 @@ class ApiController extends Controller
|
||||
Money::MYR($total_bayaran),
|
||||
route('pay.callback'),
|
||||
'Bayaran Borang',
|
||||
['redirect_url' => 'http://192.168.0.88:8003/api/pembayaran/response']
|
||||
['redirect_url' => 'http://192.168.88:8003/api/pembayaran/response']
|
||||
);
|
||||
// dd($response);
|
||||
$previous_siri = Resit::orderBy('id','desc')->first();
|
||||
@@ -296,6 +296,200 @@ class ApiController extends Controller
|
||||
$resit->paid_at = null;
|
||||
$resit->save();
|
||||
|
||||
event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id));
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'resit' => $resit
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function bidpayment(Request $request)
|
||||
{
|
||||
|
||||
$arraycollection_id = array();
|
||||
|
||||
$http = new HttpMethodsClient(
|
||||
new GuzzleHttpClient(),
|
||||
new GuzzleMessageFactory()
|
||||
);
|
||||
|
||||
$billplz = new Client($http, $this->api_key);
|
||||
if(config('app.env') != 'production'){
|
||||
$billplz->useSandbox();
|
||||
}
|
||||
|
||||
$billplz->useVersion('v4');
|
||||
|
||||
$bill = $billplz->bill();
|
||||
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
$day = $current->day;
|
||||
$month = $current->month;
|
||||
$year = $current->format('y');
|
||||
|
||||
$total_bayaran = ($request->total)*100;
|
||||
|
||||
$collection_id = $this->collection_id;
|
||||
$response = $bill->create(
|
||||
$collection_id,
|
||||
$request->email,
|
||||
$request->notel,
|
||||
$request->name,
|
||||
Money::MYR($total_bayaran),
|
||||
route('pay.bidcallback'),
|
||||
'Bayaran Bidaan',
|
||||
['redirect_url' => 'http://192.168.88:8003/api/pembayaran/bidresponse']
|
||||
);
|
||||
// dd($response);
|
||||
$previous_siri = Resit::orderBy('id','desc')->first();
|
||||
if($previous_siri){
|
||||
$nosiri = $previous_siri->id + 1;
|
||||
}else{
|
||||
$nosiri = 1;
|
||||
}
|
||||
|
||||
$billcode = $response->toArray();
|
||||
// dd($billcode);
|
||||
// $billcode['redirect_url'] = 'http://192.168.0.10:8003/api/pembayaran/response';
|
||||
// dd($billcode);
|
||||
$reference_no = 'LPKB' . $day . $month . $year . sprintf("%08d", $nosiri);
|
||||
// $response2 = $bill->get($billcode['id']);
|
||||
// dd($response2->toArray());
|
||||
$resit = new Resit;
|
||||
$resit->user_id = $request->user_id;
|
||||
$resit->lelong_id = $request->lelong_id;
|
||||
$resit->reference_no = $reference_no;
|
||||
$resit->billplz_id = $billcode['id'];
|
||||
$resit->resit_type = 3; //billplz resit for bid payment
|
||||
$resit->total_payment = $request->total;
|
||||
$resit->save();
|
||||
|
||||
|
||||
return redirect($billcode['url'] . '?auto_submit=true');
|
||||
|
||||
// return view('pembayaran.result.berjaya',compact('arraybayaran'));
|
||||
}
|
||||
|
||||
public function bidcallback(Request $request){
|
||||
// dd('hye callback');
|
||||
$http = new HttpMethodsClient(
|
||||
new GuzzleHttpClient(),
|
||||
new GuzzleMessageFactory()
|
||||
);
|
||||
|
||||
$billplz = new Client($http, $this->api_key);
|
||||
if(config('app.env') != 'production'){
|
||||
$billplz->useSandbox();
|
||||
}
|
||||
$billplz->useVersion('v4');
|
||||
|
||||
$bill = $billplz->bill();
|
||||
|
||||
$data = $bill->webhook($request->toArray());
|
||||
|
||||
if($data['billplz']['paid'] == 'true'){
|
||||
$resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first();
|
||||
$resit->status = 'PAID';
|
||||
$resit->paid_at = $data['billplz']['paid_at'];
|
||||
$resit->save();
|
||||
|
||||
$resitoriginal = Resit::where('user_id', $resit->user_id)
|
||||
->where('lelong_id', $resit->lelong_id)
|
||||
->where('resit_type', 2)
|
||||
->first();
|
||||
$payment = $resit->total_payment;
|
||||
$resitoriginal->total_payment = $resitoriginal->total_payment + $payment;
|
||||
$resitoriginal->save();
|
||||
|
||||
$payment = new Payment;
|
||||
$payment->user_id = $resitoriginal->user_id;
|
||||
$payment->lelong_id = $resitoriginal->lelong_id;
|
||||
$payment->total_payment = $resit->total_payment;
|
||||
$payment->resit_id = $resitoriginal->id;
|
||||
$payment->status_payment_opt = 2; //bayar secara online 2
|
||||
$payment->status = 1; //fee rm10 - 1
|
||||
$payment->remark = 'BAYARAN ONLINCE';
|
||||
$payment->save();
|
||||
|
||||
event(new PaymentNotify('PAID',$resitoriginal->user_id));
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'resit' => $resitoriginal
|
||||
]);
|
||||
|
||||
}else{
|
||||
$resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first();
|
||||
$resit->status = 'UNSUCCESSFUL';
|
||||
$resit->paid_at = null;
|
||||
$resit->save();
|
||||
|
||||
event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id));
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'resit' => $resit
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function bidresponse(Request $request){
|
||||
// dd('hye response');
|
||||
$http = new HttpMethodsClient(
|
||||
new GuzzleHttpClient(),
|
||||
new GuzzleMessageFactory()
|
||||
);
|
||||
|
||||
$billplz = new Client($http, $this->api_key);
|
||||
if(config('app.env') != 'production'){
|
||||
$billplz->useSandbox();
|
||||
}
|
||||
$billplz->useVersion('v4');
|
||||
|
||||
$bill = $billplz->bill();
|
||||
$req = $request->toArray();
|
||||
$response = $bill->get($req['billplz']['id']);
|
||||
$data = $response->toArray();
|
||||
// dd($data);
|
||||
if($data['paid'] == 'true'){
|
||||
$resit = Resit::where('billplz_id','=',$data['id'])->first();
|
||||
$resit->status = 'PAID';
|
||||
$resit->paid_at = $data['paid_at'];
|
||||
$resit->save();
|
||||
|
||||
$resitoriginal = Resit::where('user_id', $resit->user_id)
|
||||
->where('lelong_id', $resit->lelong_id)
|
||||
->where('resit_type', 2)
|
||||
->first();
|
||||
|
||||
$resitoriginal->total_payment = $resitoriginal->total_payment + $resit->total_payment;
|
||||
$resitoriginal->save();
|
||||
|
||||
$payment = new Payment;
|
||||
$payment->user_id = $resitoriginal->user_id;
|
||||
$payment->lelong_id = $resitoriginal->lelong_id;
|
||||
$payment->total_payment = $resit->total_payment;
|
||||
$payment->resit_id = $resitoriginal->id;
|
||||
$payment->status_payment_opt = 2; //bayar secara online 2
|
||||
$payment->status = 1; //fee rm10 - 1
|
||||
$payment->remark = 'BAYARAN ONLINCE';
|
||||
$payment->save();
|
||||
|
||||
event(new PaymentNotify('PAID',$resit->user_id));
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'resit' => $resit
|
||||
]);
|
||||
|
||||
}else{
|
||||
$resit = Resit::where('billplz_id','=',$data['id'])->first();
|
||||
$resit->status = 'UNSUCCESSFUL';
|
||||
$resit->paid_at = null;
|
||||
$resit->save();
|
||||
|
||||
event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id));
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
|
||||
@@ -474,6 +474,7 @@ class LelongController extends Controller
|
||||
$previous_siri = Resit::orderBy('id','desc')->first();
|
||||
$checkdata = Resit::where('user_id', $bidder->user_id)
|
||||
->where('lelong_id', $id)
|
||||
->where('resit_type', 2)
|
||||
->first();
|
||||
if(!$checkdata){
|
||||
if($previous_siri){
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use App\Mail\notislelong;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use App\Models\User;
|
||||
|
||||
class MailController extends Controller {
|
||||
|
||||
public function sendEmail() {
|
||||
|
||||
$users = User::where('user_type', 2)
|
||||
->get();
|
||||
|
||||
foreach($users as $user)
|
||||
{
|
||||
$email = $user->email;
|
||||
|
||||
$mailData = [
|
||||
'title' => 'Notis Lelongan Gadaian',
|
||||
'url' => 'https://www.positronx.io' // show unpaid gadaian
|
||||
];
|
||||
|
||||
Mail::to($email)->send(new notislelong($mailData));
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Email has been sent.'
|
||||
], Response::HTTP_OK);
|
||||
}
|
||||
}
|
||||
@@ -180,4 +180,69 @@ class LelongMobileController extends Controller
|
||||
|
||||
return response()->json($lelong);
|
||||
}
|
||||
|
||||
public function bidresult($user_id)
|
||||
{
|
||||
$sag = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
||||
->join('lelong', 'lelongbid.lelong_id', '=', 'lelong.id')
|
||||
->where('lelongbidder.user_id',$user_id)
|
||||
// ->where('lelongbid.lelong_id',$lelong_id)
|
||||
->where('lelongbidder.status_bidder',1)
|
||||
->whereNull('lelongbidder.status_payment')
|
||||
->select(
|
||||
'lelongbid.lelong_id',
|
||||
'lelongbidder.user_id',
|
||||
'lelongbidder.lelongbid_id',
|
||||
'lelongbidder.hargabida',
|
||||
'lelongbidder.status_payment',
|
||||
'lelongbid.norujukan'
|
||||
|
||||
)
|
||||
->get();
|
||||
|
||||
// dd($sag);
|
||||
$data = [];
|
||||
$total_hargabida = $sag->sum('hargabida');
|
||||
array_push($data,[
|
||||
'sag'=> $sag,
|
||||
'total_hargabida'=> $total_hargabida
|
||||
]);
|
||||
// dd($winner);
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
public function updatebiditem(Request $request)
|
||||
{
|
||||
// dd($request->norujukan->toArray());
|
||||
// foreach($request->norujukan as $norujukan)
|
||||
// {
|
||||
// dd($norujukan);
|
||||
// }
|
||||
$currentdate = Carbon::now();
|
||||
$currentdate = $currentdate->toDateTimeString();
|
||||
|
||||
$lelongbid = LelongBid::whereIn('norujukan',$request->norujukan)
|
||||
->where('lelong_id',$request->lelong_id)
|
||||
->get();
|
||||
|
||||
foreach($lelongbid as $bid)
|
||||
{
|
||||
$lelongbidder = LelongBidder::where('lelongbid_id',$bid->id)->first();
|
||||
$lelongbidder->status_payment =1;
|
||||
$lelongbidder->save();
|
||||
|
||||
$lelongbid = LelongBid::where('id',$bid->id)->first();
|
||||
$lelongbid->status_jual = 1;
|
||||
$lelongbid->t_jual = $currentdate;
|
||||
$lelongbid->hargajual = $lelongbidder->hargabida;
|
||||
$lelongbid->save();
|
||||
}
|
||||
$response = [
|
||||
'success' => "success",
|
||||
'message' => "Bidaan berjaya dibayar"
|
||||
];
|
||||
|
||||
return response()->json($response, 201);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,8 +44,6 @@ class NotisController extends Controller
|
||||
public function notislelong()
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
|
||||
|
||||
$lelongid = CawanganLelong::join('lelong','cawangan_lelong.lelong_id','=','lelong.id')
|
||||
->join('cawangan','cawangan_lelong.caw_id','=','cawangan.id')
|
||||
@@ -112,8 +110,6 @@ class NotisController extends Controller
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function listnotis(Request $request){
|
||||
|
||||
|
||||
@@ -155,9 +151,6 @@ class NotisController extends Controller
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ class PaymentController extends Controller
|
||||
|
||||
$resit = Resit::where('lelong_id', $request->lelong_id)
|
||||
->where('user_id',$request->user_id)
|
||||
->where('resit_type', 2)
|
||||
->first();
|
||||
|
||||
$total_hargabida = 0;
|
||||
@@ -170,6 +171,7 @@ class PaymentController extends Controller
|
||||
$eachbidupdate = LelongBid::where('id',$bid)->first();
|
||||
$eachbidupdate->status_jual = 1;
|
||||
$eachbidupdate->t_jual = $currentdate;
|
||||
$eachbidupdate->hargajual = $eachbid->hargabida;
|
||||
$eachbidupdate->save();
|
||||
|
||||
}
|
||||
|
||||
@@ -284,6 +284,7 @@ class SimulasiController extends Controller
|
||||
$simulasi = Simulasi::where('id','=',$id)->first();
|
||||
$cawangansim = CawanganSimulasi::where('simulasi_id','=',$id)->get();
|
||||
$simkarat = SimKarat::where('simulasi_id','=',$id)->get();
|
||||
$jeniskarat = JenisKarat::all();
|
||||
|
||||
$arraydata = [];
|
||||
$arraycaw = [];
|
||||
@@ -444,7 +445,8 @@ class SimulasiController extends Controller
|
||||
'total14K',
|
||||
'total9K',
|
||||
'simkarat',
|
||||
'simulasi_id'));
|
||||
'simulasi_id',
|
||||
'jeniskarat'));
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
@@ -461,6 +463,65 @@ class SimulasiController extends Controller
|
||||
|
||||
}
|
||||
|
||||
public function kemaskini(Request $request)
|
||||
{
|
||||
$simkarat = SimKarat::where('simulasi_id','=',$request->idsimulasi)->get();
|
||||
|
||||
foreach($simkarat as $karat) //save old harga asas
|
||||
{
|
||||
$simkarat_temp = new SimKarat_temp;
|
||||
$simkarat_temp->simulasi_id = $request->idsimulasi;
|
||||
$simkarat_temp->karat = $karat->karat;
|
||||
$simkarat_temp->keterangan = $karat->keterangan;
|
||||
$simkarat_temp->harga = $karat->harga;
|
||||
$simkarat_temp->harga2 = $karat->harga2;
|
||||
$simkarat_temp->save();
|
||||
}
|
||||
foreach($simkarat as $index=>$karat) //update harga asas
|
||||
{
|
||||
$karat->karat = $karat->karat;
|
||||
$karat->keterangan = $karat->keterangan;
|
||||
$karat->harga = $request->harga[$index];
|
||||
$karat->harga2 = $request->harga2[$index];
|
||||
$karat->save();
|
||||
}
|
||||
|
||||
//update marhun
|
||||
$simulasibid = SimulasiBid::where('simulasi_id','=',$request->idsimulasi)->get();
|
||||
|
||||
foreach($simulasibid as $bid)
|
||||
{
|
||||
$sumhargaasas = 0;
|
||||
$simulasibidmarhun = SimulasiBidMarhun::where('simulasibid_id','=',$bid->id)->get();
|
||||
foreach($simulasibidmarhun as $marhun)
|
||||
{
|
||||
$simkarat = SimKarat::where('simulasi_id','=',$bid->simulasi_id)->get();
|
||||
// dd($simkarat);
|
||||
foreach($simkarat as $karat)
|
||||
{
|
||||
|
||||
if($karat->karat == $marhun->karat)
|
||||
{
|
||||
$val = round($marhun->berat * $karat->harga);
|
||||
$sumhargaasas = $sumhargaasas + $val;
|
||||
|
||||
$marhun->harga = $karat->harga;
|
||||
$marhun->n_marhun = $marhun->berat * $karat->harga;
|
||||
$marhun->hargaasas = floatval(number_format($val,2));
|
||||
$marhun->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
$bid->hargaasas = $sumhargaasas;
|
||||
$bid->baki = $sumhargaasas-$bid->pinjaman - $bid->bakiupah - $bid->cajlelong;
|
||||
$bid->save();
|
||||
|
||||
}
|
||||
|
||||
return redirect()->route('analisa.senaraisimulasi',$request->idsimulasi)
|
||||
->with('success','Kemaskini Berjaya');
|
||||
}
|
||||
|
||||
|
||||
// PDF SIMULASI KESELURUHAN SEMUA CAWANGAN
|
||||
public function export(Request $request)
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class notislelong extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
public $mailData;
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($mailData)
|
||||
{
|
||||
$this->mailData = $mailData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
return $this->markdown('Email.notispembida')
|
||||
->with('mailData', $this->mailData);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
@component('mail::message')
|
||||
# {{ $mailData['title'] }}
|
||||
The body of your message.
|
||||
@component('mail::button', ['url' => $mailData['url']])
|
||||
Button Text
|
||||
@endcomponent
|
||||
Thanks,<br>
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@@ -0,0 +1,9 @@
|
||||
@component('mail::message')
|
||||
# {{ $mailData['title'] }}
|
||||
The body of your message.
|
||||
@component('mail::button', ['url' => $mailData['url']])
|
||||
Button Text
|
||||
@endcomponent
|
||||
Thanks,<br>
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@@ -4,33 +4,32 @@
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row ">
|
||||
<form action="{{ route('account.sahbayaronline') }}" method="POST" id="formsahbayaronline">
|
||||
@csrf
|
||||
<input type="hidden" name="lelong_id" value="{{ $lelong_id }}" />
|
||||
<input type="hidden" name="user_id" value="{{ $user_id }}" />
|
||||
|
||||
<div class="col-md-11 mx-auto card p-4">
|
||||
<div class="col-md-11 mx-auto card p-4">
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
<table class="table table-striped table-xl text-center" id="tablekaunter" style="width:100%">
|
||||
<thead class="bg-primary text-white">
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Rujukan</th>
|
||||
<th>Tarikh Lelong</th>
|
||||
<th>Harga Asas (RM)</th>
|
||||
<th>Harga Bida (RM)</th>
|
||||
<th>Masa Bidaan</th>
|
||||
<th class="text-center">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($senaraisag as $sag)
|
||||
<form action="{{ route('account.sahbayaronline') }}" method="POST" id="formsahbayaronline">
|
||||
@csrf
|
||||
<input type="hidden" name="lelong_id" value="{{ $lelong_id }}" />
|
||||
<input type="hidden" name="user_id" value="{{ $user_id }}" />
|
||||
<table class="table table-striped table-xl text-center" id="tablekaunter" style="width:100%">
|
||||
<thead class="bg-primary text-white">
|
||||
<tr>
|
||||
<td> {{ $loop->iteration }} </td>
|
||||
<th>No</th>
|
||||
<th>No Rujukan</th>
|
||||
<th>Tarikh Lelong</th>
|
||||
<th>Harga Asas (RM)</th>
|
||||
<th>Harga Bida (RM)</th>
|
||||
<th>Masa Bidaan</th>
|
||||
<th class="text-center">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($senaraisag as $sag)
|
||||
<tr>
|
||||
<td> {{ $loop->iteration }} </td>
|
||||
<td>{{ $sag['norujukan'] }}</td>
|
||||
<td>{{ $sag['t_lelong'] }}</td>
|
||||
<td>{{ $sag['hargaasas'] }}</td>
|
||||
@@ -39,31 +38,47 @@
|
||||
<td>
|
||||
<span class="btn btn-success btn-sm hovernone-success" disabled>PAID</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<tr>
|
||||
<td colspan="2"><b> Jumlah Bayaran</b></td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="1"><b>RM<input type="text" id="total" value="{{ $total_payment }}" style="border: none;" readonly></b></td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="modal-footer" style="margin-top:2%;">
|
||||
<a href="{{ route('account.senarailelongan') }}" class="btn btn-primary">Kembali</a>
|
||||
<!-- <a href="{{ route('account.sahbayaronline', ['lelong_id'=>$lelong_id, 'user_id'=>$user_id]) }}" class="btn btn-warning">Sahkan</a> -->
|
||||
<button type="button" class="btn btn-warning" onclick="confirm()" >Sahkan</button>
|
||||
</div>
|
||||
</form>
|
||||
<tr>
|
||||
<td colspan="2"><b> Jumlah Bayaran</b></td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="1"><b>RM<input type="text" id="total" value="{{ $total_payment }}" style="border: none;" readonly></b></td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="modal-footer" style="margin-top:2%;">
|
||||
<a href="{{ route('account.senarailelongan') }}" class="btn btn-primary">Kembali</a>
|
||||
<a href="{{ route('account.sahbayaronline', ['lelong_id'=>$lelong_id, 'user_id'=>$user_id]) }}" class="btn btn-warning">Sahkan</a>
|
||||
<button type="button" class="btn btn-warning" onclick="sahbayaronline()" >Sahkan</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
function sahbayaronline() {
|
||||
$("#formsahbayaronline").submit();
|
||||
function confirm() {
|
||||
$.confirm({
|
||||
title: 'Confirmation',
|
||||
content: 'Anda pasti?',
|
||||
type: 'orange',
|
||||
typeAnimated: true,
|
||||
buttons: {
|
||||
Simpan: {
|
||||
btnClass: 'btn-warning',
|
||||
action: function () {
|
||||
$("#formsahbayaronline").submit();
|
||||
}
|
||||
},
|
||||
Batal: {
|
||||
btnClass: 'btn-default',
|
||||
action: function () {}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
var tablekaunter = $('#tablekaunter').DataTable({
|
||||
"columnDefs": [
|
||||
|
||||
@@ -69,6 +69,11 @@
|
||||
<a href="{{url('jananotis/notislelong')}}">Jana Notis Lelong</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="list-unstyled collapse {{ (request()->is('jananotis/*')) ? 'show' : '' }}" id="jananotisSubmenu" >
|
||||
<li class="{{ (request()->is('jananotis/pembida/*') || request()->is('jananotis/pembida') ) ? 'active' : '' }}">
|
||||
<a href="{{url('jananotis/send-email')}}">Notis Pembida</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="{{ ( request()->is('pembayaran/kaunter/*')) ? 'active' : '' }}">
|
||||
<a href="{{url('pembayaran/SenaraiLelongBayar')}}">Pembayaran Pemenang</a>
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
@if($lel->sts_lelong == 0)
|
||||
<a href="{{ route('lelong.refresh',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Kemaskini Data" style="margin-right:40px"><i class="fas fa-sync-alt"></i></a>
|
||||
<a class="startlelong" href="{{ route('lelong.start',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Mula Lelong" style="margin-right:40px"><i class="fa fa-play"></i></a>
|
||||
<a class="confirmdel" href="{{ route('lelong.delete',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Padam" style="margin-right:40px" ><i class="far fa-trash-alt"></i></a>
|
||||
<a href="{{ route('lelong.show',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Lihat"><i class="far fa-edit"></i></a>
|
||||
<a href="{{ route('lelong.show',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Butiran" style="margin-right:40px" ><i class="far fa-edit"></i></a>
|
||||
<a class="confirmdel" href="{{ route('lelong.delete',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Padam" ><i class="far fa-trash-alt"></i></a>
|
||||
@elseif ($lel->sts_lelong == 2)
|
||||
<a href="{{ route('lelong.janapemenang',$lel->id) }}" data-toggle="tooltip" data-placement="top" title="Jana Pemenang"><i class="fas fa-users-cog"></i></a>
|
||||
@elseif ($lel->sts_lelong == 3)
|
||||
|
||||
@@ -195,6 +195,11 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
{{-- {{$cawangan[0] }} --}}
|
||||
</div>
|
||||
<div class="modal fade" tabindex="-1" id="modalfilter">
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
@component('mail::message')
|
||||
# Introduction
|
||||
|
||||
The body of your message.
|
||||
|
||||
@component('mail::button', ['url' => ''])
|
||||
Button Text
|
||||
@endcomponent
|
||||
|
||||
Thanks,<br>
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@@ -144,32 +144,48 @@
|
||||
</div>
|
||||
<div class="tab-pane fade" id="nav-hargaasas" role="tabpanel" aria-labelledby="nav-hargaasas-tab">
|
||||
<br>
|
||||
<div class="d-flex justify-content-center">
|
||||
<table class="table table-striped table-xl" id="jumlahberat" style="width:80%" >
|
||||
<thead class="bg-primary text-white">
|
||||
<tr class="text-center">
|
||||
<th>Karat</th>
|
||||
<th>Keterangan</th>
|
||||
<th>Harga</th>
|
||||
<th>Harga</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
@foreach ($simkarat as $index=>$karat)
|
||||
<tr>
|
||||
<td>{{$karat->karat}}</td>
|
||||
<td>{{$karat->keterangan}}</td>
|
||||
<td>{{$karat->harga2}}</td>
|
||||
<td>{{$karat->harga}}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<div class="row ">
|
||||
<div class="col-md-10 mx-auto ">
|
||||
<button class="btn btn-primary float-right " onclick="kemaskini()" id="btnkemaskini" >Kemaskini</button>
|
||||
|
||||
</table>
|
||||
<div id="hideform">
|
||||
<label for="hargaasas" class="d-inline float-left pr-2 pl-2 pt-2" id="lblhargaasas">Harga Emas Asas</label>
|
||||
<input type="text" class="form-control col-md-4 d-inline float-left" id="txthargaasas" name="hargaasas" placeholder="RM" data-jeniskarat="{{$jeniskarat}}" oninput="calculate(this)">
|
||||
<button class="btn btn-success float-right" onclick="save()" id="btnsimpan">Simpan</button>
|
||||
<button class="btn btn-danger float-right" onclick="kemaskini()" id="btncancel">Cancel</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row ">
|
||||
<div class="col-md-10 mx-auto">
|
||||
<form action="{{ route('analisa.kemaskiniharga') }}" method="POST" id="formhargaasas">
|
||||
@csrf
|
||||
<input type="hidden" name="idsimulasi" value="{{$simulasi_id}}">
|
||||
<table class="table table-striped table-xl" id="kemaskinikarat" style="width:100%" >
|
||||
<thead class="bg-primary text-white">
|
||||
<tr class="text-center">
|
||||
<th>Karat</th>
|
||||
<th>Keterangan</th>
|
||||
<th>Harga</th>
|
||||
<th>Harga</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
@foreach ($simkarat as $index=>$karat)
|
||||
<tr>
|
||||
<td>{{$karat->karat}}</td>
|
||||
<td>{{$karat->keterangan}}</td>
|
||||
<td class="input">{{$karat->harga2}}</td>
|
||||
<td class="input">{{$karat->harga}}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
@@ -179,36 +195,126 @@
|
||||
</div>
|
||||
<div class="modal fade" tabindex="-1" id="modalfilter">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Filter By</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Filter By</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('analisa.filter') }}" method="POST" id="formfilter">
|
||||
@csrf
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="form-group row">
|
||||
<input type="hidden" name="idmarhun" id="idmarhun" >
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Tutup</button>
|
||||
<button type="button" class="btn btn-primary" onclick="">Jana Semula Simulasi</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('analisa.filter') }}" method="POST" id="formfilter">
|
||||
@csrf
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="form-group row">
|
||||
<input type="hidden" name="idmarhun" id="idmarhun" >
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Tutup</button>
|
||||
<button type="button" class="btn btn-primary" onclick="">Jana Semula Simulasi</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$("#hideform").hide();
|
||||
$('#btnsimpan').prop('disabled', true)
|
||||
function kemaskini() {
|
||||
var inputdata = $("td.input").find("input");
|
||||
if(inputdata.length ==0)
|
||||
{
|
||||
$("td.input").each(function(index) {
|
||||
// console.log(index)
|
||||
var la = $(this).html();
|
||||
if(index%2 ==0 ) //even-0-2-4
|
||||
{
|
||||
$(this).html("<input type='text' name='harga2[]' id=harga2"+index+" value="+la+" />");
|
||||
}
|
||||
else //odd-1-3-5-7
|
||||
{
|
||||
$(this).html("<input type='text' name='harga[]' id=harga"+index+" value="+la+" />");
|
||||
}
|
||||
|
||||
})
|
||||
$("#hideform").show();
|
||||
$("#btnkemaskini").hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("td.input").each(function() {
|
||||
var la = $(this).html();
|
||||
$(this).html($(la).val());
|
||||
})
|
||||
$("#hideform").hide();
|
||||
$("#btnkemaskini").show();
|
||||
}
|
||||
|
||||
}
|
||||
function calculate(e)
|
||||
{
|
||||
let hargaasasbaru = $('#txthargaasas').val();
|
||||
|
||||
let jeniskarat = $(e).data('jeniskarat');
|
||||
|
||||
let maxcolumn = 2;
|
||||
let count = 0;
|
||||
let indexarray = 0;
|
||||
$("td.input").each(function(index) {
|
||||
if(hargaasasbaru)
|
||||
{
|
||||
$('#btnsimpan').prop('disabled', false)
|
||||
if(index%2 == 0)
|
||||
{
|
||||
let harga1 = parseInt(hargaasasbaru);
|
||||
let harga2 = parseInt(jeniskarat[indexarray]['dariharga916']);
|
||||
let newhargaasas = harga1 + (harga2);
|
||||
count++;
|
||||
$('#harga2'+index).val(newhargaasas.toFixed(2));
|
||||
}
|
||||
else
|
||||
{
|
||||
let harga1 = parseInt(hargaasasbaru);
|
||||
let harga2 = parseInt(jeniskarat[indexarray]['dariharga916']);
|
||||
let newhargaasas = (harga1 + (harga2))/2.72;;
|
||||
count++;
|
||||
$('#harga'+index).val(newhargaasas.toFixed(2));
|
||||
}
|
||||
|
||||
if(count == maxcolumn)
|
||||
{
|
||||
count = 0;
|
||||
indexarray++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#btnsimpan').prop('disabled', true)
|
||||
let dummy =0;
|
||||
if(index%2 == 0)
|
||||
{
|
||||
$('#harga2'+index).val(dummy.toFixed(2));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$('#harga'+index).val(dummy.toFixed(2));
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
function save(){
|
||||
$('#formhargaasas').submit();
|
||||
}
|
||||
$('a.confirmdel').confirm({
|
||||
title: 'Confirmation',
|
||||
content: 'Anda pasti?',
|
||||
@@ -228,47 +334,47 @@
|
||||
}
|
||||
});
|
||||
|
||||
var tablesimulasi = $('#simulasi').DataTable( {
|
||||
"columnDefs": [
|
||||
{
|
||||
"targets": 0,
|
||||
"orderable": false
|
||||
var tablesimulasi = $('#simulasi').DataTable( {
|
||||
"columnDefs": [
|
||||
{
|
||||
"targets": 0,
|
||||
"orderable": false
|
||||
}
|
||||
],
|
||||
order: [[1, 'asc']],
|
||||
// "ordering": false,
|
||||
"searching":false,
|
||||
"info": false,
|
||||
"lengthChange": false,
|
||||
"pageLength": 15,
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
// 'copy', 'excel', 'pdf'
|
||||
// { text: 'copy', className: 'btn btn-primary' },
|
||||
{
|
||||
className: 'btn btn-outline-success pl-4 pr-4 btn-sm addsim',
|
||||
text: '<i class="fas fa-filter"></i>',
|
||||
titleAttr: 'Filter By',
|
||||
action: function ( e, dt, node, config ) {
|
||||
$('#modalfilter').modal("show");
|
||||
}
|
||||
],
|
||||
order: [[1, 'asc']],
|
||||
// "ordering": false,
|
||||
"searching":false,
|
||||
"info": false,
|
||||
"lengthChange": false,
|
||||
"pageLength": 15,
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
// 'copy', 'excel', 'pdf'
|
||||
// { text: 'copy', className: 'btn btn-primary' },
|
||||
{
|
||||
className: 'btn btn-outline-success pl-4 pr-4 btn-sm addsim',
|
||||
text: '<i class="fas fa-filter"></i>',
|
||||
titleAttr: 'Filter By',
|
||||
action: function ( e, dt, node, config ) {
|
||||
$('#modalfilter').modal("show");
|
||||
}
|
||||
},
|
||||
{
|
||||
className: 'btn btn-outline-secondary pl-4 pr-4 btn-sm export',
|
||||
titleAttr: 'Download to PDF',
|
||||
text: '<i class="fas fa-download"></i>',
|
||||
action: function ( e, dt, node, config ) {
|
||||
$("#exportform").submit();
|
||||
}
|
||||
},
|
||||
{
|
||||
className: 'btn btn-outline-secondary pl-4 pr-4 btn-sm export',
|
||||
titleAttr: 'Download to PDF',
|
||||
text: '<i class="fas fa-download"></i>',
|
||||
action: function ( e, dt, node, config ) {
|
||||
$("#exportform").submit();
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
$('.addsim').tooltip();
|
||||
$('.export').tooltip();
|
||||
// $( '.dt-buttons').addClass('btn-group');
|
||||
$( '.addsim').removeClass('dt-button');
|
||||
$( '.export').removeClass('dt-button');
|
||||
$('.addsim').tooltip();
|
||||
$('.export').tooltip();
|
||||
// $( '.dt-buttons').addClass('btn-group');
|
||||
$( '.addsim').removeClass('dt-button');
|
||||
$( '.export').removeClass('dt-button');
|
||||
|
||||
|
||||
function selectall(cb) {
|
||||
|
||||
@@ -35,6 +35,10 @@ Route::post('/feepayment', [ApiController::class, 'feepayment'])->name('feepaym
|
||||
Route::get('/pembayaran/response', [ApiController::class, 'response'])->name('pay.paymentStatus');
|
||||
Route::get('/pembayaran/backend', [ApiController::class, 'callback'])->name('pay.callback');
|
||||
|
||||
|
||||
Route::post('/bidpayment', [ApiController::class, 'bidpayment'])->name('bidpayment');
|
||||
Route::get('/pembayaran/bidresponse', [ApiController::class, 'bidresponse'])->name('pay.bidpaymentStatus');
|
||||
Route::get('/pembayaran/bidbackend', [ApiController::class, 'bidbackend'])->name('pay.bidcallback');
|
||||
//Protected routes
|
||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
|
||||
@@ -55,10 +59,12 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
Route::get('/lelongDetails/today', [LelongMobileController::class, 'getlelongdetails']);
|
||||
Route::get('/lelongDetails/cawangan', [LelongMobileController::class, 'searchLelByCaw']);
|
||||
Route::get('/karat', [LelongMobileController::class, 'getListKarat']);
|
||||
Route::get('/result/{user_id}', [LelongMobileController::class, 'bidresult']);
|
||||
|
||||
// Lelong => Bidder
|
||||
Route::post('/bidder/biditem', [LelongMobileController::class, 'bidderSelectBidItem']);
|
||||
Route::get('/bidder/listbiditem', [LelongMobileController::class, 'listBidItem']);
|
||||
Route::post('/bidder/updatebiditem', [LelongMobileController::class, 'updatebiditem']);
|
||||
|
||||
});
|
||||
|
||||
|
||||
+5
-3
@@ -54,6 +54,7 @@ Route::group(['middleware' => ['permission:pengguna'],'prefix'=>'pengguna'], fun
|
||||
|
||||
Route::group(['middleware' => ['permission:analisa'],'prefix'=>'analisa'], function () {
|
||||
Route::get('/janasimulasi',['as'=>'analisa.janasimulasi','uses'=>'SimulasiController@index']);
|
||||
Route::post('/kemaskini',['as'=>'analisa.kemaskiniharga','uses'=>'SimulasiController@kemaskini']);
|
||||
Route::post('/janadata',['as'=>'analisa.janadata','uses'=>'SimulasiController@janadata']);
|
||||
Route::get('/senaraisimulasi',['as'=>'analisa.senaraisimulasi','uses'=>'SimulasiController@senaraisimulasi']);
|
||||
Route::get('/showsimulasi/{id}',['as'=>'analisa.show','uses'=>'SimulasiController@show']);
|
||||
@@ -167,17 +168,18 @@ Route::group(['middleware' => ['permission:pengesahanbayaran'],'prefix'=>'accoun
|
||||
Route::get('/senarailelongan', ['as'=>'account.senarailelongan','uses'=>'AccountController@senarailelongan']);
|
||||
Route::get('/listbayaranonline/{lelong_id}', ['as'=>'account.listbayaranonline','uses'=>'AccountController@listbayaranonline']);
|
||||
Route::get('/sahsagonline/{lelong_id}/{user_id}', ['as'=>'account.sahsagonline','uses'=>'AccountController@sahsagonline']);
|
||||
Route::get('/sahbayaronline/{lelong_id}/{user_id}', ['as'=>'account.sahbayaronline','uses'=>'AccountController@sahbayaronline']);
|
||||
Route::post('/sahbayaronline', ['as'=>'account.sahbayaronline','uses'=>'AccountController@sahbayaronline']);
|
||||
|
||||
});
|
||||
// Account
|
||||
|
||||
Route::group(['middleware' => ['permission:jananotis'],'prefix'=>'jananotis'], function () {
|
||||
Route::get('/notislelong',['as'=>'jananotis.notislelong','uses'=>'NotisController@notislelong']);
|
||||
Route::get('/pembida',['as'=>'jananotis.pembida','uses'=>'NotisController@pembida']);
|
||||
Route::get('/senarainotis/{lelong_id}',['as'=>'jananotis.senarainotis','uses'=>'NotisController@senarainotis']);
|
||||
Route::get('/jananotis/{lelong_id}',['as'=>'jananotis.jananotis','uses'=>'NotisController@jananotis']);
|
||||
Route::post('/listnotis',['as'=>'jananotis.listnotis','uses'=>'NotisController@listnotis']);
|
||||
Route::get('/send-email',['as'=>'jananotis.email','uses'=>'MailController@sendEmail']);
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user