Subiendo proyecto completo sin restricciones de git ignore
This commit is contained in:
BIN
temp/vi2oLRRdVN/addons/refund_system/assets/refund_request.png
Normal file
BIN
temp/vi2oLRRdVN/addons/refund_system/assets/refund_request.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
64
temp/vi2oLRRdVN/addons/refund_system/config.json
Normal file
64
temp/vi2oLRRdVN/addons/refund_system/config.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"name":"refund",
|
||||
"unique_identifier":"refund_request",
|
||||
"version":"1.6",
|
||||
"minimum_item_version":"7.0.0",
|
||||
"addon_banner":"refund_request.png",
|
||||
"directory":[
|
||||
{
|
||||
"name":[
|
||||
"resources/views/refund_request",
|
||||
"resources/views/refund_request/frontend",
|
||||
"resources/views/refund_request/frontend/refund_request",
|
||||
"resources/views/refund_request/frontend/recieved_refund_request"
|
||||
]
|
||||
}
|
||||
],
|
||||
"sql_file":"",
|
||||
"files":[
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/index.blade.php",
|
||||
"update_directory":"resources/views/refund_request/index.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/config.blade.php",
|
||||
"update_directory":"resources/views/refund_request/config.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/paid_refund.blade.php",
|
||||
"update_directory":"resources/views/refund_request/paid_refund.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/reason.blade.php",
|
||||
"update_directory":"resources/views/refund_request/reason.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/rejected_refund.blade.php",
|
||||
"update_directory":"resources/views/refund_request/rejected_refund.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/frontend/refund_request/index.blade.php",
|
||||
"update_directory":"resources/views/refund_request/frontend/refund_request/index.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/frontend/refund_request/create.blade.php",
|
||||
"update_directory":"resources/views/refund_request/frontend/refund_request/create.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/frontend/refund_request/reason.blade.php",
|
||||
"update_directory":"resources/views/refund_request/frontend/refund_request/reason.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/views/refund_request/frontend/recieved_refund_request/index.blade.php",
|
||||
"update_directory":"resources/views/refund_request/frontend/recieved_refund_request/index.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/controllers/RefundRequestController.php",
|
||||
"update_directory":"app/Http/Controllers/RefundRequestController.php"
|
||||
},
|
||||
{
|
||||
"root_directory":"addons/refund_system/assets/refund_request.png",
|
||||
"update_directory":"public/refund_request.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,311 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\BusinessSetting;
|
||||
use App\Models\ClubPoint;
|
||||
use App\Models\RefundRequest;
|
||||
use App\Models\OrderDetail;
|
||||
use App\Models\Shop;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\User;
|
||||
use Artisan;
|
||||
use Auth;
|
||||
|
||||
class RefundRequestController extends Controller
|
||||
{
|
||||
public function __construct() {
|
||||
// Staff Permission Check
|
||||
$this->middleware(['permission:view_refund_requests'])->only('admin_index');
|
||||
$this->middleware(['permission:view_approved_refund_requests'])->only('paid_index');
|
||||
$this->middleware(['permission:view_rejected_refund_requests'])->only('rejected_index');
|
||||
$this->middleware(['permission:refund_request_configuration'])->only('refund_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
//Store Customer Refund Request
|
||||
public function request_store(Request $request, $id)
|
||||
{
|
||||
$order_detail = OrderDetail::where('id', $id)->first();
|
||||
$refund = new RefundRequest;
|
||||
$refund->user_id = Auth::user()->id;
|
||||
$refund->order_id = $order_detail->order_id;
|
||||
$refund->order_detail_id = $order_detail->id;
|
||||
$refund->seller_id = $order_detail->seller_id;
|
||||
$refund->seller_approval = 0;
|
||||
$refund->reason = $request->reason;
|
||||
$refund->admin_approval = 0;
|
||||
$refund->admin_seen = 0;
|
||||
$refund->refund_amount = $order_detail->price + $order_detail->tax;
|
||||
$refund->refund_status = 0;
|
||||
if ($refund->save()) {
|
||||
flash( translate("Refund Request has been sent successfully") )->success();
|
||||
return redirect()->route('purchase_history.index');
|
||||
}
|
||||
else {
|
||||
flash( translate("Something went wrong") )->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function vendor_index()
|
||||
{
|
||||
$refunds = RefundRequest::where('seller_id', Auth::user()->id)->latest()->paginate(10);
|
||||
|
||||
return view('refund_request.frontend.recieved_refund_request.index', compact('refunds'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function customer_index()
|
||||
{
|
||||
$refunds = RefundRequest::where('user_id', Auth::user()->id)->latest()->paginate(10);
|
||||
return view('refund_request.frontend.refund_request.index', compact('refunds'));
|
||||
}
|
||||
|
||||
//Set the Refund configuration
|
||||
public function refund_config()
|
||||
{
|
||||
return view('refund_request.config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function refund_time_update(Request $request)
|
||||
{
|
||||
$business_settings = BusinessSetting::where('type', $request->type)->first();
|
||||
if ($business_settings != null) {
|
||||
$business_settings->value = $request->value;
|
||||
$business_settings->save();
|
||||
}
|
||||
else {
|
||||
$business_settings = new BusinessSetting;
|
||||
$business_settings->type = $request->type;
|
||||
$business_settings->value = $request->value;
|
||||
$business_settings->save();
|
||||
}
|
||||
Artisan::call('cache:clear');
|
||||
flash( translate("Refund Request sending time has been updated successfully") )->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function refund_sticker_update(Request $request)
|
||||
{
|
||||
$business_settings = BusinessSetting::where('type', $request->type)->first();
|
||||
if ($business_settings != null) {
|
||||
$business_settings->value = $request->logo;
|
||||
$business_settings->save();
|
||||
}
|
||||
else {
|
||||
$business_settings = new BusinessSetting;
|
||||
$business_settings->type = $request->type;
|
||||
$business_settings->value = $request->logo;
|
||||
$business_settings->save();
|
||||
}
|
||||
Artisan::call('cache:clear');
|
||||
flash( translate("Refund Sticker has been updated successfully"))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function admin_index()
|
||||
{
|
||||
$refunds = RefundRequest::where('refund_status', 0)->latest()->paginate(15);
|
||||
return view('refund_request.index', compact('refunds'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function paid_index()
|
||||
{
|
||||
$refunds = RefundRequest::where('refund_status', 1)->latest()->paginate(15);
|
||||
return view('refund_request.paid_refund', compact('refunds'));
|
||||
}
|
||||
|
||||
public function rejected_index()
|
||||
{
|
||||
$refunds = RefundRequest::where('refund_status', 2)->latest()->paginate(15);
|
||||
return view('refund_request.rejected_refund', compact('refunds'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function request_approval_vendor(Request $request)
|
||||
{
|
||||
$refund = RefundRequest::findOrFail($request->el);
|
||||
if (Auth::user()->user_type == 'admin' || Auth::user()->user_type == 'staff') {
|
||||
$refund->seller_approval = 1;
|
||||
$refund->admin_approval = 1;
|
||||
}
|
||||
else {
|
||||
$refund->seller_approval = 1;
|
||||
}
|
||||
|
||||
if ($refund->save()) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function refund_pay(Request $request)
|
||||
{
|
||||
$refund = RefundRequest::findOrFail($request->refund_id);
|
||||
if ($refund->seller_approval == 1) {
|
||||
$seller = Shop::where('user_id', $refund->seller_id)->first();
|
||||
if ($seller != null) {
|
||||
$seller->admin_to_pay -= $refund->refund_amount;
|
||||
}
|
||||
$seller->save();
|
||||
}
|
||||
|
||||
$refund_amount = $refund->refund_amount;
|
||||
|
||||
// Club Point conversion check
|
||||
if (addon_is_activated('club_point')) {
|
||||
$club_point = ClubPoint::where('order_id', $refund->order_id)->first();
|
||||
if($club_point != null){
|
||||
$club_point_details = $club_point->club_point_details->where('product_id',$refund->orderDetail->product->id)->first();
|
||||
|
||||
if($club_point->convert_status == 1 ){
|
||||
$refund_amount -= $club_point_details->converted_amount;
|
||||
}
|
||||
else{
|
||||
$club_point_details->refunded = 1;
|
||||
$club_point_details->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$wallet = new Wallet;
|
||||
$wallet->user_id = $refund->user_id;
|
||||
$wallet->amount = $refund_amount;
|
||||
$wallet->payment_method = 'Refund';
|
||||
$wallet->payment_details = 'Product Money Refund';
|
||||
$wallet->save();
|
||||
$user = User::findOrFail($refund->user_id);
|
||||
$user->balance += $refund_amount;
|
||||
$user->save();
|
||||
if (Auth::user()->user_type == 'admin' || Auth::user()->user_type == 'staff') {
|
||||
$refund->admin_approval = 1;
|
||||
$refund->refund_status = 1;
|
||||
}
|
||||
|
||||
if ($refund->save()) {
|
||||
flash(translate('Refund has been sent successfully.'))->success();
|
||||
}
|
||||
else {
|
||||
flash(translate('Something went wrong.'))->error();
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function reject_refund_request(Request $request){
|
||||
$refund = RefundRequest::findOrFail($request->refund_id);
|
||||
if (Auth::user()->user_type == 'admin' || Auth::user()->user_type == 'staff') {
|
||||
$refund->admin_approval = 2;
|
||||
$refund->refund_status = 2;
|
||||
$refund->reject_reason = $request->reject_reason;
|
||||
}
|
||||
else{
|
||||
$refund->seller_approval = 2;
|
||||
$refund->reject_reason = $request->reject_reason;
|
||||
}
|
||||
|
||||
if ($refund->save()) {
|
||||
flash(translate('Refund request rejected successfully.'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function refund_request_send_page($id)
|
||||
{
|
||||
$order_detail = OrderDetail::findOrFail($id);
|
||||
if ($order_detail->product != null && $order_detail->product->refundable == 1) {
|
||||
return view('refund_request.frontend.refund_request.create', compact('order_detail'));
|
||||
}
|
||||
else {
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for view the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
//Shows the refund reason
|
||||
public function reason_view($id)
|
||||
{
|
||||
$refund = RefundRequest::findOrFail($id);
|
||||
if (Auth::user()->user_type == 'admin' || Auth::user()->user_type == 'staff') {
|
||||
if ($refund->orderDetail != null) {
|
||||
$refund->admin_seen = 1;
|
||||
$refund->save();
|
||||
return view('refund_request.reason', compact('refund'));
|
||||
}
|
||||
}
|
||||
else {
|
||||
return view('refund_request.frontend.refund_request.reason', compact('refund'));
|
||||
}
|
||||
}
|
||||
|
||||
public function reject_reason_view($id)
|
||||
{
|
||||
$refund = RefundRequest::findOrFail($id);
|
||||
return $refund->reject_reason;
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.1.sql
Normal file
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.1.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
3
temp/vi2oLRRdVN/addons/refund_system/sql/1.2.sql
Normal file
3
temp/vi2oLRRdVN/addons/refund_system/sql/1.2.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `refund_requests` ADD `reject_reason` LONGTEXT NULL DEFAULT NULL AFTER `refund_status`;
|
||||
|
||||
COMMIT;
|
||||
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.3.sql
Normal file
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.3.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.4.sql
Normal file
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.4.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.5.sql
Normal file
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.5.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.6.sql
Normal file
1
temp/vi2oLRRdVN/addons/refund_system/sql/1.6.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
79
temp/vi2oLRRdVN/addons/refund_system/sql/update.sql
Normal file
79
temp/vi2oLRRdVN/addons/refund_system/sql/update.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
INSERT INTO `business_settings` (`type`, `value`, `created_at`, `updated_at`) VALUES ('refund_request_time', '3', '2019-03-12 05:58:23', '2019-03-12 05:58:23');
|
||||
|
||||
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.9.1
|
||||
-- https://www.phpmyadmin.net/
|
||||
--
|
||||
-- Host: 127.0.0.1
|
||||
-- Generation Time: Mar 15, 2020 at 06:20 AM
|
||||
-- Server version: 10.4.8-MariaDB
|
||||
-- PHP Version: 7.3.11
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET AUTOCOMMIT = 0;
|
||||
START TRANSACTION;
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
--
|
||||
-- Database: `shop`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `refund_requests`
|
||||
--
|
||||
|
||||
CREATE TABLE `refund_requests` (
|
||||
`id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`order_id` int(11) NOT NULL,
|
||||
`order_detail_id` int(11) NOT NULL,
|
||||
`seller_id` int(11) NOT NULL,
|
||||
`seller_approval` int(1) NOT NULL DEFAULT 0,
|
||||
`admin_approval` int(1) NOT NULL DEFAULT 0,
|
||||
`refund_amount` double(8,2) NOT NULL DEFAULT 0.00,
|
||||
`refund_status` int(1) NOT NULL DEFAULT 0,
|
||||
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
|
||||
`updated_at` timestamp NOT NULL DEFAULT current_timestamp()
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `refund_requests`
|
||||
--
|
||||
ALTER TABLE `refund_requests`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
ALTER TABLE `refund_requests` ADD `reason` LONGTEXT NULL DEFAULT NULL AFTER `refund_amount`;
|
||||
ALTER TABLE `refund_requests` ADD `admin_seen` INT NOT NULL AFTER `reason`;
|
||||
|
||||
|
||||
ALTER TABLE `products` ADD `refundable` INT(1) NOT NULL DEFAULT '0' AFTER `slug`;
|
||||
ALTER TABLE `refund_requests` ADD `reject_reason` LONGTEXT NULL DEFAULT NULL AFTER `refund_status`;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `refund_requests`
|
||||
--
|
||||
ALTER TABLE `refund_requests`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
|
||||
COMMIT;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Set Refund Time')}}</h5>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{{ route('refund_request_time_config') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<input type="hidden" name="type" value="refund_request_time">
|
||||
<label class="col-lg-4 col-from-label">{{translate('Set Time for sending Refund Request')}}</label>
|
||||
<div class="col-lg-5">
|
||||
<input type="number" min="0" step="1" value="{{ get_setting('refund_request_time') }}" placeholder="" name="value" class="form-control">
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<option class="form-control">days</option>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h6 class="mb-0 h6">{{translate('Set Refund Sticker')}}</h6>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{{ route('refund_sticker_config') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<input type="hidden" name="type" value="refund_sticker">
|
||||
<label class="col-md-2 col-form-label" for="signinSrEmail">{{translate('Sticker')}}</label>
|
||||
<div class="col-md-10">
|
||||
<div class="input-group" data-toggle="aizuploader" data-type="image" data-multiple="false">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text bg-soft-secondary font-weight-medium">{{ translate('Browse')}}</div>
|
||||
</div>
|
||||
<div class="form-control file-amount">{{ translate('Choose File') }}</div>
|
||||
<input type="hidden" name="logo" class="selected-files" value="{{ get_setting('refund_sticker') }}">
|
||||
</div>
|
||||
<div class="file-preview box sm">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="form-group row">
|
||||
<input type="hidden" name="type" value="refund_sticker">
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-3 col-from-label" for="logo">{{translate('Sticker')}}</label>
|
||||
<div class="col-lg-5">
|
||||
<input type="file" id="logo" name="logo" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,171 @@
|
||||
@extends('seller.layouts.app')
|
||||
|
||||
@section('panel_content')
|
||||
|
||||
<div class="aiz-titlebar mt-2 mb-4">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-6">
|
||||
<h1 class="h3">{{ translate('Refund Requests') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header row gutters-5">
|
||||
<h5 class="mb-0 h6">{{ translate('All Refund Request') }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th data-breakpoints="lg">{{ translate('Date') }}</th>
|
||||
<th>{{translate('Order id')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Product')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Amount')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Status')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Reason')}}</th>
|
||||
<th>{{translate('Approval')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Reject')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($refunds as $key => $refund)
|
||||
<tr>
|
||||
<td>{{ $key+1 }}</td>
|
||||
<td>{{ date('d-m-Y', strtotime($refund->created_at)) }}</td>
|
||||
<td>
|
||||
@if ($refund->order != null)
|
||||
{{ $refund->order->code }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null)
|
||||
{{ $refund->orderDetail->product->getTranslation('name') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null)
|
||||
{{single_price($refund->orderDetail->price)}}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($refund->refund_status == 1)
|
||||
<span class="badge badge-inline badge-success"><strong>{{translate('Approved')}}</strong></span>
|
||||
@elseif($refund->refund_status == 2)
|
||||
<span class="badge badge-inline badge-danger"><strong>{{translate('Rejected')}}</strong></span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-warning"><strong>{{translate('PENDING')}}</strong></span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('seller.reason_show', $refund->id) }}"><span class="badge badge-inline badge-success">{{translate('Show')}}</span></a>
|
||||
</td>
|
||||
<td>
|
||||
@if($refund->refund_status != 2 && $refund->seller_approval != 2)
|
||||
@if ($refund->seller_approval == 1)
|
||||
<label class="aiz-switch aiz-switch-success mb-0 ">
|
||||
<input type="checkbox" @if ($refund->seller_approval == 1) checked @endif>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
@else
|
||||
<label class="aiz-switch aiz-switch-success mb-0">
|
||||
<input onchange="update_refund_approval('{{ $refund->id }}')" type="checkbox" @if ($refund->seller_approval == 1) checked @endif>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($refund->refund_status == 0 && $refund->seller_approval == 0)
|
||||
<a class="btn btn-soft-danger btn-icon btn-circle btn-sm" onclick="reject_refund_request({{$refund->id}})" title="{{ translate('Reject Refund Request') }}">
|
||||
<i class="las la-trash"></i>
|
||||
</a>
|
||||
@elseif($refund->seller_approval == 2 || $refund->refund_status == 2)
|
||||
<a href="javascript:void(0);" onclick="refund_reject_reason_show('{{ route('seller.reject_reason_show', $refund->id )}}')" class="btn btn-soft-primary btn-icon btn-circle btn-sm" title="{{ translate('Reject Reason') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $refunds->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
<div class="modal fade reject_refund_request" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form class="form-horizontal member-block" action="{{ route('seller.reject_refund_request')}}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="refund_id" id="refund_id" value="">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Reject Refund Request !')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 col-form-label">{{translate('Reject Reason')}}</label>
|
||||
<div class="col-md-9">
|
||||
<textarea type="text" name="reject_reason" rows="5" class="form-control" placeholder="{{translate('Reject Reason')}}" required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
<button type="submit" class="btn btn-success">{{translate('Submit')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade reject_reason_show_modal" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Refund Request Reject Reason')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body reject_reason_show">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
|
||||
function update_refund_approval(el){
|
||||
$.post('{{ route('seller.vendor_refund_approval') }}',{_token:'{{ @csrf_token() }}', el:el}, function(data){
|
||||
if (data == 1) {
|
||||
AIZ.plugins.notify('success', '{{ translate('Approval has been done successfully') }}');
|
||||
}
|
||||
else {
|
||||
AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function reject_refund_request(id) {
|
||||
$('.reject_refund_request').modal('show');
|
||||
$('#refund_id').val(id);
|
||||
}
|
||||
|
||||
function refund_reject_reason_show(url){
|
||||
$.get(url, function(data){
|
||||
$('.reject_reason_show').html(data);
|
||||
$('.reject_reason_show_modal').modal('show');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,64 @@
|
||||
@extends('frontend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<section class="py-5">
|
||||
<div class="container">
|
||||
<div class="d-flex align-items-start">
|
||||
@include('frontend.inc.user_side_nav')
|
||||
<div class="aiz-user-panel">
|
||||
<div class="card rounded-0 shadow-none border">
|
||||
<div class="card-header border-bottom-0">
|
||||
<h5 class="mb-0 fs-20 fw-700 text-dark">{{translate('Send Refund Request')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="" action="{{route('refund_request_send', $order_detail->id)}}" method="POST" enctype="multipart/form-data" id="choice_form">
|
||||
@csrf
|
||||
<div class="form-box bg-white mt-4">
|
||||
<div class="form-box-content p-3">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>{{translate('Product Name')}} <span class="text-danger">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<input type="text" class="form-control mb-3 rounded-0" name="name" placeholder="{{translate('Product Name')}}" value="{{ $order_detail->product->getTranslation('name') }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>{{translate('Product Price')}} <span class="text-danger">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<input type="number" class="form-control mb-3 rounded-0" name="name" placeholder="{{translate('Product Price')}}" value="{{ $order_detail->product->unit_price }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>{{translate('Order Code')}} <span class="text-danger">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<input type="text" class="form-control mb-3 rounded-0" name="code" value="{{ $order_detail->order->code }}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<label>{{translate('Refund Reason')}} <span class="text-danger">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<textarea name="reason" rows="8" class="form-control mb-3 rounded-0"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-primary rounded-0 w-150px">{{translate('Send Request')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,103 @@
|
||||
@extends('frontend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<section class="py-5">
|
||||
<div class="container">
|
||||
<div class="d-flex align-items-start">
|
||||
@include('frontend.inc.user_side_nav')
|
||||
<div class="aiz-user-panel">
|
||||
<div class="card rounded-0 shadow-none border">
|
||||
<div class="card-header border-bottom-0">
|
||||
<h5 class="mb-0 fs-20 fw-700 text-dark">{{ translate('Applied Refund Requests') }}</h5>
|
||||
</div>
|
||||
<div class="card-body py-0">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead class="text-gray fs-12">
|
||||
<tr>
|
||||
<th class="pl-0">#</th>
|
||||
<th data-breakpoints="lg">{{ translate('Date') }}</th>
|
||||
<th>{{translate('Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Product')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Amount')}}</th>
|
||||
<th class="text-right pr-0 w-140px">{{translate('Status')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="fs-14">
|
||||
@foreach ($refunds as $key => $refund)
|
||||
<tr>
|
||||
<td class="pl-0 text-dark" style="vertical-align: middle;">{{ sprintf('%02d', $key+1) }}</td>
|
||||
<td class="text-secondary" style="vertical-align: middle;">{{ date('d-m-Y', strtotime($refund->created_at)) }}</td>
|
||||
<td style="vertical-align: middle;">
|
||||
@if ($refund->order != null)
|
||||
<a href="{{route('purchase_history.details', encrypt($refund->order->id))}}" class="fw-700 text-primary">{{ $refund->order->code }}</a>
|
||||
@endif
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null)
|
||||
{{ $refund->orderDetail->product->getTranslation('name') }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="fw-700" style="vertical-align: middle;">
|
||||
@if ($refund->orderDetail != null)
|
||||
{{single_price($refund->orderDetail->price)}}
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right pr-0" style="vertical-align: middle;">
|
||||
@if ($refund->refund_status == 1)
|
||||
<span class="badge badge-inline badge-success p-3 fs-12" style="border-radius: 25px; min-width: 80px !important;">{{translate('Approved')}}</span>
|
||||
@elseif ($refund->refund_status == 2)
|
||||
<a href="javascript:void(0);" onclick="refund_reject_reason_show('{{ route('reject_reason_show', $refund->id )}}')" class="btn btn-soft-primary hov-svg-white btn-icon btn-circle btn-sm" title="{{ translate('Reject Reason') }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12.004" height="11.001" viewBox="0 0 12.004 11.001">
|
||||
<g id="Group_24939" data-name="Group 24939" transform="translate(-1336.909 -418.5)">
|
||||
<path id="Intersection_8" data-name="Intersection 8" d="M9246.738,757.5a5.908,5.908,0,0,0-9.655,0h-1.174a6.9,6.9,0,0,1,12,0Z" transform="translate(-7899 -335.501)" fill="#d43533"/>
|
||||
<path id="Intersection_9" data-name="Intersection 9" d="M0,0H1.176A5.91,5.91,0,0,0,6,2.5,5.91,5.91,0,0,0,10.828,0H12A6.9,6.9,0,0,1,6,3.5,6.9,6.9,0,0,1,0,0Z" transform="translate(1336.909 426)" fill="#d43533"/>
|
||||
<rect id="Rectangle_18880" data-name="Rectangle 18880" width="4" height="4" rx="2" transform="translate(1341 422)" fill="#d43533"/>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<span class="badge badge-inline badge-danger p-3 fs-12" style="border-radius: 25px; min-width: 80px !important;">{{translate('REJECTED')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-info p-3 fs-12" style="border-radius: 25px; min-width: 80px !important;">{{translate('PENDING')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
{{ $refunds->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
<div class="modal fade reject_reason_show_modal" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Refund Request Reject Reason')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body reject_reason_show">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-sm btn-secondary rounded-0" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function refund_reject_reason_show(url){
|
||||
$.get(url, function(data){
|
||||
$('.reject_reason_show').html(data);
|
||||
$('.reject_reason_show_modal').modal('show');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,36 @@
|
||||
@extends('seller.layouts.app')
|
||||
|
||||
@section('panel_content')
|
||||
|
||||
<div class="aiz-titlebar mt-2 mb-4">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-6">
|
||||
<h1 class="h3">{{ translate('Reason of Refund Request') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="py-5">
|
||||
<div class="container">
|
||||
<div class="d-flex align-items-start">
|
||||
|
||||
<div class="aiz-user-panel">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{ translate('Reason of Refund Request') }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ $refund->reason }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,193 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<!-- Basic Data Tables -->
|
||||
<!--===================================================-->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Refund Request All')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Order Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Name')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Product')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Price')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Approval')}}</th>
|
||||
<th>{{translate('Refund Status')}}</th>
|
||||
<th data-breakpoints="lg" width="15%" class="text-right">{{translate('Options')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($refunds as $key => $refund)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($refunds->currentPage() - 1)*$refunds->perPage() }}</td>
|
||||
<td>
|
||||
@if($refund->order != null)
|
||||
{{ optional($refund->order)->code }}
|
||||
@else
|
||||
{{ translate('Order deleted') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->seller != null)
|
||||
{{ $refund->seller->name }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null)
|
||||
<a href="{{ route('product', $refund->orderDetail->product->slug) }}" target="_blank" class="media-block">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<img src="{{ uploaded_asset($refund->orderDetail->product->thumbnail_img) }}" alt="Image" class="size-50px">
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="media-body text-truncate-2">{{ $refund->orderDetail->product->getTranslation('name') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null)
|
||||
{{single_price($refund->orderDetail->price)}}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null && $refund->orderDetail->product->added_by == 'admin')
|
||||
<span class="badge badge-inline badge-warning">{{translate('Own Product')}}</span>
|
||||
@else
|
||||
@if ($refund->seller_approval == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Approved')}}</span>
|
||||
@elseif ($refund->seller_approval == 2)
|
||||
<span class="badge badge-inline badge-danger">{{translate('Rejected')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-primary">{{translate('Pending')}}</span>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->refund_status == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Paid')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-warning">{{translate('Non-Paid')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right">
|
||||
@can('accept_refund_request')
|
||||
<a class="btn btn-soft-success btn-icon btn-circle btn-sm" onclick="refund_request_money('{{ $refund->id }}')" title="{{ translate('Refund Now') }}">
|
||||
<i class="las la-backward"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@can('reject_refund_request')
|
||||
<a class="btn btn-soft-danger btn-icon btn-circle btn-sm" onclick="reject_refund_request('{{ route('admin.reject_reason_show', $refund->id )}}', '{{$refund->id}}', '{{ optional($refund->order)->code }}')" title="{{ translate('Reject Refund Request') }}">
|
||||
<i class="las la-trash"></i>
|
||||
</a>
|
||||
@endcan
|
||||
<a href="{{ route('admin.reason_show', $refund->id) }}" class="btn btn-soft-primary btn-icon btn-circle btn-sm" title="{{ translate('View Reason') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="clearfix">
|
||||
<div class="pull-right">
|
||||
{{ $refunds->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
<div class="modal fade reject_refund_request" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form class="form-horizontal member-block" action="{{ route('admin.reject_refund_request')}}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="refund_id" id="refund_id" value="">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Reject Refund Request !')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 col-form-label">{{translate('Order Code')}}</label>
|
||||
<div class="col-md-9">
|
||||
<input type="text" value="" id="order_id" class="form-control" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 col-form-label">{{translate('Reject Reason')}}</label>
|
||||
<div class="col-md-9">
|
||||
<textarea type="text" name="reject_reason" id="reject_reason" rows="5" class="form-control" placeholder="{{translate('Reject Reason')}}" required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
<button type="submit" class="btn btn-success">{{translate('Submit')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade approve_refund_request" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form class="form-horizontal member-block" action="{{ route('refund_request_money_by_admin')}}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="refund_id" id="approve_refund_id" value="">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Approve Refund Request !')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="text-center">{{translate('Do you want to approve this refund request?')}}</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
<button type="submit" class="btn btn-success">{{translate('Approve')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function update_refund_approval(el){
|
||||
$.post('{{ route('admin.refund_approval') }}',{_token:'{{ @csrf_token() }}', el:el}, function(data){
|
||||
if (data == 1) {
|
||||
AIZ.plugins.notify('success', '{{ translate('Approval has been done successfully') }}');
|
||||
}
|
||||
else {
|
||||
AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function refund_request_money(refund_id){
|
||||
$('.approve_refund_request').modal('show');
|
||||
$('#approve_refund_id').val(refund_id);
|
||||
}
|
||||
|
||||
function reject_refund_request(url, id, order_id){
|
||||
$.get(url, function(data){
|
||||
$('.reject_refund_request').modal('show');
|
||||
$('#refund_id').val(id);
|
||||
$('#order_id').val(order_id);
|
||||
$('#reject_reason').html(data);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,89 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Approved Request')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Order Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Name')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Product')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Price')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Approval')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Admin Approval')}}</th>
|
||||
<th>{{translate('Refund Status')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($refunds as $key => $refund)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($refunds->currentPage() - 1)*$refunds->perPage() }}</td>
|
||||
<td>
|
||||
@if($refund->order != null)
|
||||
{{ $refund->order->code }}
|
||||
@else
|
||||
{{ translate('Order deleted') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->seller != null)
|
||||
{{ $refund->seller->name }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null)
|
||||
<a href="{{ route('product', $refund->orderDetail->product->slug) }}" target="_blank" class="media-block">
|
||||
<div class="form-group row">
|
||||
<div class="col-md-5">
|
||||
<img src="{{ uploaded_asset($refund->orderDetail->product->thumbnail_img)}}" alt="Image" class="w-50px">
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<div class="media-body">{{ $refund->orderDetail->product->getTranslation('name') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null)
|
||||
{{single_price($refund->orderDetail->price)}}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->seller_approval == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Approved')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-warning">{{translate('Pending')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->admin_approval == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Approved')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->refund_status == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Paid')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-warning">{{translate('Non-Paid')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="clearfix">
|
||||
<div class="pull-right">
|
||||
{{ $refunds->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,22 @@
|
||||
@extends('backend.layouts.app')
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Reason For Refund Request')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-from-label"><b>{{translate('Reason')}}:</b></label>
|
||||
<div class="col-lg-8">
|
||||
<p class="bord-all pad-all">{{ $refund->reason }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,115 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Rejected Request')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Order Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Name')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Product')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Price')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Seller Approval')}}</th>
|
||||
<th>{{translate('Admin Approval')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Reject Reason')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($refunds as $key => $refund)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($refunds->currentPage() - 1)*$refunds->perPage() }}</td>
|
||||
<td>
|
||||
@if($refund->order != null)
|
||||
{{ $refund->order->code }}
|
||||
@else
|
||||
{{ translate('Order deleted') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->seller != null)
|
||||
{{ $refund->seller->name }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null && $refund->orderDetail->product != null)
|
||||
<a href="{{ route('product', $refund->orderDetail->product->slug) }}" target="_blank" class="media-block">
|
||||
<div class="form-group row">
|
||||
<div class="col-md-5">
|
||||
<img src="{{ uploaded_asset($refund->orderDetail->product->thumbnail_img)}}" alt="Image" class="w-50px">
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<div class="media-body">{{ $refund->orderDetail->product->getTranslation('name') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->orderDetail != null)
|
||||
{{single_price($refund->orderDetail->price)}}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($refund->seller_approval == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Approved')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-warning">{{translate('Pending')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($refund->admin_approval == 2)
|
||||
<span class="badge badge-inline badge-danger">{{translate('Rejected')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a href="javascript:void(0);" onclick="refund_reject_reason_show('{{ route('admin.reject_reason_show', $refund->id )}}')" class="btn btn-soft-primary btn-icon btn-circle btn-sm" title="{{ translate('Reject Reason') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="clearfix">
|
||||
<div class="pull-right">
|
||||
{{ $refunds->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
<div class="modal fade reject_reason_show_modal" id="modal-basic">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title h6">{{translate('Refund Request Reject Reason')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body reject_reason_show">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal">{{translate('Close')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function refund_reject_reason_show(url){
|
||||
$.get(url, function(data){
|
||||
$('.reject_reason_show').html(data);
|
||||
$('.reject_reason_show_modal').modal('show');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user