Advertisement
Guest User

Distribution/RequsitionPaymentController.php

a guest
Feb 17th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.82 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers\Distribution;
  4.  
  5. use App\Http\Controllers\Controller;
  6. use App\Models\Distribution\Payment;
  7. use App\Models\Distribution\PaymentData;
  8. use App\Nagad\NagadInitailize;
  9. use App\Services\ImageService;
  10. use DB;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Carbon;
  13. use Illuminate\Support\Facades\Redirect;
  14. use Illuminate\Support\Facades\URL;
  15. use Image;
  16. use Session;
  17.  
  18. class RequsitionPaymentController extends Controller
  19. {
  20. public function paymentOption($prefix)
  21. {
  22. $paymentOption = DB::table("payment_options")->get();
  23. return view('distribution.wmm.payment.payment_option', [
  24. 'prefix' => $prefix,
  25. 'paymentOption' => $paymentOption
  26. ]);
  27. }
  28.  
  29. public function paymentWay(Request $request, $prefix)
  30. {
  31. /* $this->validate($request,[
  32. 'paymentOption'=>'required'
  33. ]);
  34. */
  35.  
  36. //return $request->all();
  37.  
  38. $time = DB::table($prefix . '_settings')->get()->first();
  39. $date = Carbon::now()->addDays($time->payment_duration);
  40. $data = $request->paymentOption;
  41.  
  42.  
  43. if ($request->paymentOption == 'cash_on_delivery') {
  44. return view('distribution.wmm.payment.cash_on_delivery', [
  45. 'prefix' => $prefix,
  46. 'data' => $data,
  47. 'date' => $date->toDateString()
  48. ]);
  49. }
  50.  
  51. return view('distribution.wmm.payment.payment_way', [
  52. 'prefix' => $prefix,
  53. 'data' => $data,
  54. 'date' => $date->toDateString()
  55. ]);
  56.  
  57. }
  58.  
  59.  
  60. public function cashOnDelivery(Request $request, $prefix)
  61. {
  62. $transactionid = mt_rand(20000000, 999999999);
  63.  
  64. /*******************************************/
  65. DB::beginTransaction();
  66.  
  67. try {
  68.  
  69. $fileName = null;
  70.  
  71. if (!Session::has('second_payment')) {
  72.  
  73. $payment = new Payment();
  74. $payment->requisition_id = Session::get('requsition_id');
  75. $payment->amount = Session::get('totalAmount');
  76. $payment->save();
  77.  
  78. $paymentData = new PaymentData();
  79. $paymentData->transactionid = $transactionid;
  80. $paymentData->payment_id = $payment->id;
  81. /* $paymentData->payment_way_id = 2;*/ //Commented by Motiur
  82. $paymentData->payment_option_id = 5;
  83. $paymentData->status = "pending";
  84. $paymentData->amount = Session::get('totalAmount');
  85. $paymentData->remarks = $request->remarks;
  86. $paymentData->save();
  87.  
  88. } else {
  89.  
  90. $payment = new Payment();
  91. $payment->requisition_id = Session::get('requsition_id');
  92. $payment->amount = Session::get('totalAmount');
  93. $payment->save();
  94.  
  95. $paymentData = new PaymentData();
  96. $paymentData->transactionid = $transactionid;
  97. $paymentData->payment_id = $payment->id;
  98. $paymentData->payment_way_id = 2;
  99. $paymentData->payment_option_id = 5;
  100. $paymentData->status = "pending";
  101. $paymentData->amount = Session::get('totalAmount');
  102. $paymentData->remarks = $request->remarks;
  103. $paymentData->save();
  104.  
  105. }
  106. DB::commit();
  107. Session::forget('second_payment');
  108.  
  109. } catch (Exception $e) {
  110. DB::rollBack();
  111. throw $e;
  112. }
  113. /*******************************************/
  114.  
  115. $data = "Cash on Delivery";
  116. return view('distribution.wmm.payment.success', [
  117. 'prefix' => $prefix,
  118. 'data' => $data,
  119. 'transctionid' => $transactionid
  120. ]);
  121.  
  122. }
  123.  
  124.  
  125. public function paymentRequsition(Request $request, $prefix)
  126. {
  127.  
  128.  
  129. //return $request->all();
  130.  
  131. //$paymentWay = $request['paymentWay'];
  132.  
  133. /* $this->validate($request,[
  134. 'paymentWay'=>'required'
  135. ]);*/
  136. $transct = mt_rand(20000000, 999999999);
  137. $data = $request->paymentWay;
  138.  
  139.  
  140. /************************************************/
  141. //if wwm select others paymment option
  142. if ($request->way == "credit") {
  143.  
  144. DB::beginTransaction();
  145. try {
  146.  
  147. if (!Session::has('second_payment')) {
  148. $payment = new Payment();
  149. $payment->requisition_id = Session::get('requsition_id');
  150. $payment->amount = Session::get('totalAmount');
  151. $payment->save();
  152.  
  153. $transactionid = $transct;
  154. $paymentData = new PaymentData();
  155. $paymentData->transactionid = $transactionid;
  156. $paymentData->payment_id = $payment->id;
  157. $paymentData->payment_option_id = 1;
  158. $paymentData->payment_pay_date = $request->payable_date;
  159. $paymentData->save();
  160.  
  161. } else {
  162.  
  163. $transactionid = $transct;
  164. $paymentData = new PaymentData();
  165. $paymentData->transactionid = $transactionid;
  166. $paymentData->payment_id = Session::get('second_payment');
  167. $paymentData->payment_option_id = 1;
  168. $paymentData->payment_pay_date = $request->payable_date;
  169. $paymentData->save();
  170.  
  171. }
  172.  
  173. DB::commit();
  174. Session::forget('second_payment');
  175. return view('distribution.wmm.payment.success', [
  176. 'prefix' => $prefix,
  177. 'data' => $data,
  178. 'transctionid' => $transct
  179. ]);
  180.  
  181.  
  182. } catch (Exception $e) {
  183. DB::rollBack();
  184. throw $e;
  185. }
  186.  
  187. }
  188.  
  189.  
  190. if ($request['paymentWay'] == "Nagad") {
  191.  
  192. //Nagad Payment Initialize
  193. $nagad = new NagadInitailize();
  194. return $nagad->orderPayment($prefix);
  195. }
  196.  
  197. if ($request['paymentWay'] == "bank_asia") {
  198.  
  199. //Bank Asia Payment Initialize
  200.  
  201. return $this->paymentByBankAsia($prefix);
  202.  
  203. }
  204.  
  205. /************************************************/
  206.  
  207.  
  208. /************************************************/
  209. //if wwm select others paymment option
  210. if ($request->way == "others") {
  211.  
  212. $image = new ImageService();
  213. $fileName = $image->storeImage($request, 'image', url('/storage/app/public/payment_image'));
  214.  
  215. //dd($fileName);
  216.  
  217. DB::beginTransaction();
  218. try {
  219. if (!Session::has('second_payment')) {
  220.  
  221. $payment = new Payment();
  222. $payment->requisition_id = Session::get('requsition_id');
  223. $payment->amount = Session::get('totalAmount');
  224. $payment->save();
  225.  
  226. $transactionid = $transct;
  227. $paymentData = new PaymentData();
  228. $paymentData->transactionid = $transactionid;
  229. $paymentData->payment_id = $payment->id;
  230. $paymentData->payment_option_id = 4;
  231. $paymentData->remarks = $request->remarks;
  232. if ($fileName != null) {
  233. $paymentData->image = $fileName;
  234. }
  235. $paymentData->save();
  236. } else {
  237. $transactionid = $transct;
  238. $paymentData = new PaymentData();
  239. $paymentData->transactionid = $transactionid;
  240. $paymentData->payment_id = Session::get('second_payment');
  241. $paymentData->payment_option_id = 4;
  242. $paymentData->remarks = $request->remarks;
  243. if ($fileName != null) {
  244. $paymentData->image = $fileName;
  245. }
  246. $paymentData->save();
  247.  
  248.  
  249. }
  250.  
  251. DB::commit();
  252. Session::forget('second_payment');
  253. return view('distribution.wmm.payment.success', [
  254. 'prefix' => $prefix,
  255. 'data' => $data,
  256. 'transctionid' => $transct
  257. ]);
  258.  
  259.  
  260. } catch (Exception $e) {
  261. DB::rollBack();
  262. throw $e;
  263. }
  264. }
  265. /************************************************/
  266.  
  267.  
  268. /************************************************/
  269. //for partial payment
  270. if ($request->way == "partial") {
  271.  
  272. /* $this->validate($request,[
  273. 'partial_amount'=>'required'
  274. ]);*/
  275.  
  276. return view('distribution.wmm.payment.partial_payment', [
  277. 'prefix' => $prefix,
  278. 'data' => $data,
  279. 'partial_amount' => $request->partial_amount
  280. ]);
  281.  
  282. }
  283. /************************************************/
  284.  
  285.  
  286. return view('distribution.wmm.payment.payment', [
  287. 'prefix' => $prefix,
  288. 'data' => $data
  289. ]);
  290.  
  291. }
  292.  
  293.  
  294. public function paymentSubmitForFull(Request $request, $prefix)
  295. {
  296.  
  297.  
  298. $transactionid = mt_rand(20000000, 999999999);
  299. if ($request->paymentWith == "Nagad") {
  300. /* $this->validate($request,[
  301. 'transaction_id'=>'required'
  302. ]);*/
  303.  
  304. //if Nagad payment gateway return true then insert data in payment Table and payment status is done
  305. //check transaction_id
  306.  
  307. // store payment
  308.  
  309. /*******************************************/
  310. DB::beginTransaction();
  311.  
  312. try {
  313.  
  314. if (!Session::has('second_payment')) {
  315. $payment = new Payment();
  316. $payment->requisition_id = Session::get('requsition_id');
  317. $payment->amount = Session::get('totalAmount');
  318. $payment->save();
  319.  
  320. $paymentData = new PaymentData();
  321. $paymentData->transactionid = $transactionid;
  322. $paymentData->payment_id = $payment->id;
  323. $paymentData->payment_way_id = 1;
  324. $paymentData->payment_option_id = 2;
  325. $paymentData->status = "done";
  326. $paymentData->amount = Session::get('totalAmount');
  327. $paymentData->save();
  328. } else {
  329.  
  330. $paymentData = new PaymentData();
  331. $paymentData->transactionid = $transactionid;
  332. $paymentData->payment_id = Session::get('second_payment');
  333. $paymentData->payment_way_id = 1;
  334. $paymentData->payment_option_id = 2;
  335. $paymentData->status = "done";
  336. $paymentData->amount = Session::get('totalAmount');
  337. $paymentData->save();
  338.  
  339. }
  340.  
  341.  
  342. DB::commit();
  343. Session::forget('second_payment');
  344. } catch (Exception $e) {
  345. DB::rollBack();
  346. throw $e;
  347. }
  348.  
  349. /*******************************************/
  350.  
  351.  
  352. } else {
  353.  
  354.  
  355. /*******************************************/
  356. DB::beginTransaction();
  357.  
  358. try {
  359. /*$image = new ImageService();
  360. $fileName = $image->storeImage($request,'image',url('/storage/app/public/payment_image/'));*/
  361.  
  362.  
  363. $fileName = null;
  364. /* $fileName = null;
  365. if($request->hasFile('image')){
  366. $image = $request->file('image');
  367. $filename = time().'.'.$image->getClientOriginalExtension();
  368. $location = public_path('payment_image/'.$filename);
  369. Image::make($image)->save($location);
  370. $fileName = $filename;
  371. }*/
  372.  
  373.  
  374. if (!Session::has('second_payment')) {
  375. $payment = new Payment();
  376. $payment->requisition_id = Session::get('requsition_id');
  377. $payment->amount = Session::get('totalAmount');
  378. $payment->save();
  379.  
  380.  
  381. $paymentData = new PaymentData();
  382. $paymentData->transactionid = $transactionid;
  383. $paymentData->payment_id = $payment->id;
  384. $paymentData->payment_way_id = 2;
  385. $paymentData->payment_option_id = 2;
  386. $paymentData->status = "pending";
  387. $paymentData->amount = Session::get('totalAmount');
  388. $paymentData->remarks = $request->remarks;
  389. if ($fileName != null) {
  390. $paymentData->image = $fileName;
  391. }
  392. $paymentData->save();
  393.  
  394. } else {
  395. $paymentData = new PaymentData();
  396. $paymentData->transactionid = $transactionid;
  397. $paymentData->payment_id = $payment->id;
  398. $paymentData->payment_way_id = 2;
  399. $paymentData->payment_option_id = 2;
  400. $paymentData->status = "pending";
  401. $paymentData->amount = Session::get('totalAmount');
  402. $paymentData->remarks = $request->remarks;
  403. if ($fileName != null) {
  404. $paymentData->image = $fileName;
  405. }
  406. $paymentData->save();
  407.  
  408. }
  409. DB::commit();
  410. Session::forget('second_payment');
  411. } catch (Exception $e) {
  412. DB::rollBack();
  413. throw $e;
  414. }
  415. /*******************************************/
  416.  
  417. // insert data payment table but payment status is pending
  418.  
  419.  
  420. }
  421.  
  422. $data = $request->paymentWay;
  423. return view('distribution.wmm.payment.success', [
  424. 'prefix' => $prefix,
  425. 'data' => $data,
  426. 'transctionid' => $transactionid
  427. ]);
  428.  
  429. }
  430.  
  431.  
  432. public function paymentSubmitForPartial(Request $request, $prefix)
  433. {
  434.  
  435.  
  436. $transactionid = mt_rand(20000000, 999999999);
  437. if ($request->paymentWith == "Nagad") {
  438. /* $this->validate($request,[
  439. 'transaction_id'=>'required'
  440. ]);*/
  441.  
  442. //if Nagad payment gateway return true then insert data in payment Table and payment status is done
  443. //check transaction_id
  444.  
  445. // store payment
  446.  
  447. /*******************************************/
  448. DB::beginTransaction();
  449.  
  450. try {
  451.  
  452. if (!Session::has('second_payment')) {
  453. $payment = new Payment();
  454. $payment->requisition_id = Session::get('requsition_id');
  455. $payment->amount = Session::get('totalAmount');
  456. $payment->save();
  457.  
  458. $paymentData = new PaymentData();
  459. $paymentData->transactionid = $transactionid;
  460. $paymentData->payment_id = $payment->id;
  461. $paymentData->payment_way_id = 1;
  462. $paymentData->payment_option_id = 3;
  463. $paymentData->status = "done";
  464. $paymentData->amount = $request->partial_amount;
  465. $paymentData->save();
  466.  
  467. } else {
  468. $paymentData = new PaymentData();
  469. $paymentData->transactionid = $transactionid;
  470. $paymentData->payment_id = Session::get('second_payment');
  471. $paymentData->payment_way_id = 1;
  472. $paymentData->payment_option_id = 3;
  473. $paymentData->status = "done";
  474. $paymentData->amount = $request->partial_amount;
  475. $paymentData->save();
  476. }
  477.  
  478.  
  479. DB::commit();
  480. Session::forget('second_payment');
  481. } catch (Exception $e) {
  482. DB::rollBack();
  483. throw $e;
  484. }
  485. /*******************************************/
  486.  
  487.  
  488. } else {
  489.  
  490.  
  491. /*******************************************/
  492. DB::beginTransaction();
  493.  
  494. try {
  495. $image = new ImageService();
  496. $fileName = $image->storeImage($request, 'image', url('/storage/app/public/payment_image/'));
  497.  
  498. if (!Session::has('second_payment')) {
  499. $payment = new Payment();
  500. $payment->requisition_id = Session::get('requsition_id');
  501. $payment->amount = Session::get('totalAmount');
  502. $payment->save();
  503.  
  504. $paymentData = new PaymentData();
  505. $paymentData->transactionid = $transactionid;
  506. $paymentData->payment_id = $payment->id;
  507. $paymentData->payment_way_id = 2;
  508. $paymentData->payment_option_id = 3;
  509. $paymentData->status = "pending";
  510. $paymentData->amount = $request->partial_amount;
  511. $paymentData->remarks = $request->remarks;
  512. if ($fileName != null) {
  513. $paymentData->image = $fileName;
  514. }
  515.  
  516. $paymentData->save();
  517. } else {
  518. $paymentData = new PaymentData();
  519. $paymentData->transactionid = $transactionid;
  520. $paymentData->payment_id = Session::get('second_payment');
  521. $paymentData->payment_way_id = 2;
  522. $paymentData->payment_option_id = 3;
  523. $paymentData->status = "pending";
  524. $paymentData->amount = $request->partial_amount;
  525. $paymentData->remarks = $request->remarks;
  526. if ($fileName != null) {
  527. $paymentData->image = $fileName;
  528. }
  529. $paymentData->save();
  530. }
  531. DB::commit();
  532. Session::forget('second_payment');
  533. } catch (Exception $e) {
  534. DB::rollBack();
  535. throw $e;
  536. }
  537. /*******************************************/
  538.  
  539. // insert data payment table but payment status is pending
  540.  
  541.  
  542. }
  543.  
  544. $data = $request->paymentWay;
  545. return view('distribution.wmm.payment.success', [
  546. 'prefix' => $prefix,
  547. 'data' => $data,
  548. 'transctionid' => $transactionid
  549. ]);
  550. }
  551.  
  552. private function paymentByBankAsia($prefix)
  553. {
  554.  
  555. /* return session()->all();
  556. return session()->get('totalAmount');*/
  557.  
  558. $bank_asia_obj = new NagadInitailize();
  559. $group_id = $bank_asia_obj->getBankAsiaGroupId();
  560.  
  561. $marchant = "Member Fees";
  562. $orderNo = session()->get('requsitionid');
  563. $amount = session()->get('totalAmount');
  564. $call_back = URL::to('/bank-asia');
  565.  
  566. $url = "https://mybank.bankasia-bd.com/epayment/logIn.do?groupID=" . $group_id . "?marchant=" . $marchant . "?orderNo=" . $orderNo . "?amount=" . $amount . "?redirectUrl=" . $call_back;
  567.  
  568. //Redirect to another page
  569.  
  570. return Redirect::to($url);
  571.  
  572.  
  573. }
  574.  
  575.  
  576. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement