Subiendo proyecto completo sin restricciones de git ignore
This commit is contained in:
BIN
temp/BJUT7zE1yp/addons/club_point/assets/club_points.png
Normal file
BIN
temp/BJUT7zE1yp/addons/club_point/assets/club_points.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
57
temp/BJUT7zE1yp/addons/club_point/config.json
Normal file
57
temp/BJUT7zE1yp/addons/club_point/config.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"name" : "club_point",
|
||||
|
||||
"unique_identifier" : "club_point",
|
||||
|
||||
"version" : "1.7",
|
||||
|
||||
"minimum_item_version" : "7.0.0",
|
||||
|
||||
"addon_banner" : "club_points.png",
|
||||
|
||||
"directory" :
|
||||
[
|
||||
{
|
||||
"name" : ["resources/views/club_points", "resources/views/club_points/frontend"]
|
||||
}
|
||||
],
|
||||
|
||||
"sql_file" : "",
|
||||
|
||||
"files" :
|
||||
[
|
||||
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/club_point_details.blade.php",
|
||||
"update_directory" : "resources/views/club_points/club_point_details.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/config.blade.php",
|
||||
"update_directory" : "resources/views/club_points/config.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/index.blade.php",
|
||||
"update_directory" : "resources/views/club_points/index.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/product_point_edit.blade.php",
|
||||
"update_directory" : "resources/views/club_points/product_point_edit.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/set_point.blade.php",
|
||||
"update_directory" : "resources/views/club_points/set_point.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/views/club_points/frontend/index.blade.php",
|
||||
"update_directory" : "resources/views/club_points/frontend/index.blade.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/controllers/ClubPointController.php",
|
||||
"update_directory" : "app/Http/Controllers/ClubPointController.php"
|
||||
},
|
||||
{
|
||||
"root_directory" : "addons/club_point/assets/club_points.png",
|
||||
"update_directory" : "public/club_points.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\BusinessSetting;
|
||||
use App\Models\ClubPointDetail;
|
||||
use App\Models\ClubPoint;
|
||||
use App\Models\Product;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\Order;
|
||||
use Artisan;
|
||||
use Auth;
|
||||
|
||||
class ClubPointController extends Controller
|
||||
{
|
||||
public function __construct() {
|
||||
// Staff Permission Check
|
||||
$this->middleware(['permission:club_point_configurations'])->only('configure_index');
|
||||
$this->middleware(['permission:set_club_points'])->only('set_point');
|
||||
$this->middleware(['permission:view_users_club_points'])->only('index');
|
||||
}
|
||||
|
||||
public function configure_index()
|
||||
{
|
||||
return view('club_points.config');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$club_points = ClubPoint::latest()->paginate(15);
|
||||
return view('club_points.index', compact('club_points'));
|
||||
}
|
||||
|
||||
public function userpoint_index()
|
||||
{
|
||||
$club_points = ClubPoint::where('user_id', Auth::user()->id)->latest()->paginate(15);
|
||||
return view('club_points.frontend.index', compact('club_points'));
|
||||
}
|
||||
|
||||
public function set_point()
|
||||
{
|
||||
$products = Product::latest()->paginate(15);
|
||||
return view('club_points.set_point', compact('products'));
|
||||
}
|
||||
|
||||
public function set_products_point(Request $request)
|
||||
{
|
||||
$products = Product::whereBetween('unit_price', [$request->min_price, $request->max_price])->get();
|
||||
foreach ($products as $product) {
|
||||
$product->earn_point = $request->point;
|
||||
$product->save();
|
||||
}
|
||||
flash(translate('Point has been inserted successfully for ').count($products).translate(' products'))->success();
|
||||
return redirect()->route('set_product_points');
|
||||
}
|
||||
|
||||
public function set_all_products_point(Request $request)
|
||||
{
|
||||
$products = Product::all();
|
||||
foreach ($products as $product) {;
|
||||
$product->earn_point = $product->unit_price * $request->point;
|
||||
$product->save();
|
||||
}
|
||||
flash(translate('Point has been inserted successfully for ').count($products).translate(' products'))->success();
|
||||
return redirect()->route('set_product_points');
|
||||
}
|
||||
|
||||
public function set_point_edit($id)
|
||||
{
|
||||
$product = Product::findOrFail(decrypt($id));
|
||||
return view('club_points.product_point_edit', compact('product'));
|
||||
}
|
||||
|
||||
public function update_product_point(Request $request, $id)
|
||||
{
|
||||
$product = Product::findOrFail($id);
|
||||
$product->earn_point = $request->point;
|
||||
$product->save();
|
||||
flash(translate('Point has been updated successfully'))->success();
|
||||
return redirect()->route('set_product_points');
|
||||
}
|
||||
|
||||
public function convert_rate_store(Request $request)
|
||||
{
|
||||
$club_point_convert_rate = BusinessSetting::where('type', $request->type)->first();
|
||||
if ($club_point_convert_rate != null) {
|
||||
$club_point_convert_rate->value = $request->value;
|
||||
}
|
||||
else {
|
||||
$club_point_convert_rate = new BusinessSetting;
|
||||
$club_point_convert_rate->type = $request->type;
|
||||
$club_point_convert_rate->value = $request->value;
|
||||
}
|
||||
$club_point_convert_rate->save();
|
||||
|
||||
Artisan::call('cache:clear');
|
||||
|
||||
flash(translate('Point convert rate has been updated successfully'))->success();
|
||||
return redirect()->route('club_points.configs');
|
||||
}
|
||||
|
||||
public function processClubPoints(Order $order)
|
||||
{
|
||||
$club_point = new ClubPoint;
|
||||
$club_point->user_id = $order->user_id;
|
||||
$club_point->points = 0;
|
||||
foreach ($order->orderDetails as $key => $orderDetail) {
|
||||
$total_pts = ($orderDetail->earn_point) * $orderDetail->quantity;
|
||||
$club_point->points += $total_pts;
|
||||
}
|
||||
if($club_point->points > 0){
|
||||
$club_point->order_id = $order->id;
|
||||
$club_point->convert_status = 0;
|
||||
$club_point->save();
|
||||
|
||||
foreach ($order->orderDetails as $key => $orderDetail) {
|
||||
$club_point_detail = new ClubPointDetail;
|
||||
$club_point_detail->club_point_id = $club_point->id;
|
||||
$club_point_detail->product_id = $orderDetail->product_id;
|
||||
$club_point_detail->point = ($orderDetail->earn_point) * $orderDetail->quantity;
|
||||
$club_point_detail->save();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function club_point_detail($id)
|
||||
{
|
||||
$club_point_details = ClubPointDetail::where('club_point_id', decrypt($id))->paginate(12);
|
||||
return view('club_points.club_point_details', compact('club_point_details'));
|
||||
}
|
||||
|
||||
public function convert_point_into_wallet(Request $request)
|
||||
{
|
||||
$club_point = ClubPoint::findOrFail($request->el);
|
||||
if($club_point->convert_status == 0) {
|
||||
|
||||
$amount = 0;
|
||||
foreach ($club_point->club_point_details as $club_point_detail) {
|
||||
if($club_point_detail->refunded == 0){
|
||||
$club_point_detail->converted_amount = floatval($club_point_detail->point / get_setting('club_point_convert_rate'));
|
||||
$club_point_detail->save();
|
||||
$amount += $club_point_detail->converted_amount;
|
||||
}
|
||||
}
|
||||
|
||||
// Wallet history
|
||||
$wallet = new Wallet;
|
||||
$wallet->user_id = Auth::user()->id;
|
||||
$wallet->amount = $amount;
|
||||
$wallet->payment_method = 'Club Point Convert';
|
||||
$wallet->payment_details = 'Club Point Convert';
|
||||
$wallet->save();
|
||||
|
||||
// converted money from the club point, add to the user balance
|
||||
$user = Auth::user();
|
||||
$user->balance = $user->balance + $amount;
|
||||
$user->save();
|
||||
|
||||
$club_point->convert_status = 1;
|
||||
}
|
||||
|
||||
if ($club_point->save()) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
1
temp/BJUT7zE1yp/addons/club_point/sql/1.1.sql
Normal file
1
temp/BJUT7zE1yp/addons/club_point/sql/1.1.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
1
temp/BJUT7zE1yp/addons/club_point/sql/1.2.sql
Normal file
1
temp/BJUT7zE1yp/addons/club_point/sql/1.2.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
2
temp/BJUT7zE1yp/addons/club_point/sql/1.3.sql
Normal file
2
temp/BJUT7zE1yp/addons/club_point/sql/1.3.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE `club_points` ADD `order_id` INT NOT NULL AFTER `points`;
|
||||
COMMIT;
|
||||
1
temp/BJUT7zE1yp/addons/club_point/sql/1.4.sql
Normal file
1
temp/BJUT7zE1yp/addons/club_point/sql/1.4.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
1
temp/BJUT7zE1yp/addons/club_point/sql/1.5.sql
Normal file
1
temp/BJUT7zE1yp/addons/club_point/sql/1.5.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
5
temp/BJUT7zE1yp/addons/club_point/sql/1.6.sql
Normal file
5
temp/BJUT7zE1yp/addons/club_point/sql/1.6.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE `club_point_details`
|
||||
ADD `converted_amount` DOUBLE(25,2) NULL DEFAULT '0.00' AFTER `point`,
|
||||
ADD `refunded` INT(1) NOT NULL DEFAULT '0' AFTER `converted_amount`;
|
||||
|
||||
COMMIT;
|
||||
1
temp/BJUT7zE1yp/addons/club_point/sql/1.7.sql
Normal file
1
temp/BJUT7zE1yp/addons/club_point/sql/1.7.sql
Normal file
@@ -0,0 +1 @@
|
||||
COMMIT;
|
||||
128
temp/BJUT7zE1yp/addons/club_point/sql/update.sql
Normal file
128
temp/BJUT7zE1yp/addons/club_point/sql/update.sql
Normal file
@@ -0,0 +1,128 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.9.1
|
||||
-- https://www.phpmyadmin.net/
|
||||
--
|
||||
-- Host: 127.0.0.1
|
||||
-- Generation Time: Mar 16, 2020 at 06:38 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 `club_points`
|
||||
--
|
||||
|
||||
|
||||
INSERT INTO `business_settings` (`id`, `type`, `value`, `created_at`, `updated_at`) VALUES (NULL, 'club_point_convert_rate', '10', '2019-03-12 05:58:23', '2019-03-12 05:58:23');
|
||||
|
||||
CREATE TABLE `club_points` (
|
||||
`id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`points` double(18,2) NOT NULL,
|
||||
`convert_status` int(1) NOT NULL,
|
||||
`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 `club_points`
|
||||
--
|
||||
ALTER TABLE `club_points`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `club_points`
|
||||
--
|
||||
ALTER TABLE `club_points`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
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 */;
|
||||
|
||||
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 `club_point_details`
|
||||
--
|
||||
|
||||
CREATE TABLE `club_point_details` (
|
||||
`id` int(11) NOT NULL,
|
||||
`club_point_id` int(11) NOT NULL,
|
||||
`product_id` int(11) NOT NULL,
|
||||
`product_qty` int(11) NOT NULL,
|
||||
`point` double(8,2) NOT NULL,
|
||||
`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 `club_point_details`
|
||||
--
|
||||
ALTER TABLE `club_point_details`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `club_point_details`
|
||||
--
|
||||
ALTER TABLE `club_point_details`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
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 */;
|
||||
ALTER TABLE `products` ADD `earn_point` DOUBLE(8,2) NOT NULL DEFAULT '0' AFTER `slug`;
|
||||
ALTER TABLE `club_points` ADD `order_id` INT NOT NULL AFTER `points`;
|
||||
|
||||
ALTER TABLE `club_point_details`
|
||||
ADD `converted_amount` DOUBLE(8,2) NULL DEFAULT '0.00' AFTER `point`,
|
||||
ADD `refunded` INT(1) NOT NULL DEFAULT '0' AFTER `converted_amount`;
|
||||
@@ -0,0 +1,43 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Product Name')}}</th>
|
||||
<th>{{translate('Points')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Earned At')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($club_point_details as $key => $club_point)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($club_point_details->currentPage() - 1)*$club_point_details->perPage() }}</td>
|
||||
@if ($club_point->product != null)
|
||||
<td>{{ $club_point->product->getTranslation('name') }}</td>
|
||||
@else
|
||||
<td>{{ translate('Deleted Product') }}</td>
|
||||
@endif
|
||||
<td>{{ $club_point->point }}</td>
|
||||
<td>{{ $club_point->created_at }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="clearfix">
|
||||
<div class="pull-right">
|
||||
{{ $club_point_details->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,35 @@
|
||||
@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('Convert Point To Wallet')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('point_convert_rate_store') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="type" value="club_point_convert_rate">
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-4">
|
||||
<label class="col-from-label">{{translate('Set Point For ')}} {{ single_price(1) }}</label>
|
||||
</div>
|
||||
<div class="col-lg-5">
|
||||
<input type="number" min="0" step="0.01" class="form-control" name="value" value="{{ get_setting('club_point_convert_rate') }}" placeholder="100" required>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{translate('Points')}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-3 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
<i class="fs-12"><b>{{ translate('Note: You need to activate wallet option first before using club point addon.') }}</b></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,113 @@
|
||||
@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="aiz-titlebar mt-2 mb-4">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-6">
|
||||
<h1 class="fs-20 fw-700 text-dark">{{ translate('My Clubpoints') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-dark overflow-hidden">
|
||||
<div class="px-3 py-4">
|
||||
<div class="fs-14 fw-400 text-center text-secondary mb-1">{{ translate('Exchange Rate') }}</div>
|
||||
<div class="fs-30 fw-700 text-center text-white">{{ get_setting('club_point_convert_rate') }} {{ translate(' Points') }} = {{ single_price(1) }} {{ translate('Wallet Money') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<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('Clubpoint Earning History')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead class="text-gray fs-12">
|
||||
<tr>
|
||||
<th class="pl-0">#</th>
|
||||
<th>{{translate('Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Points')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Converted')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Date') }}</th>
|
||||
<th class="text-right pr-0">{{translate('Action')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="fs-14">
|
||||
@foreach ($club_points as $key => $club_point)
|
||||
@php
|
||||
$convertible_club_point = $club_point->club_point_details->where('refunded',0)->sum('point');
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="pl-0" style="vertical-align: middle;">{{ sprintf('%02d', $key+1) }}</td>
|
||||
<td class="fw-700 text-primary" style="vertical-align: middle;">
|
||||
@if ($club_point->order != null)
|
||||
{{ $club_point->order->code }}
|
||||
@else
|
||||
{{ translate('Order not found') }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="fw-700" style="vertical-align: middle;">
|
||||
@if($convertible_club_point > 0)
|
||||
{{ $convertible_club_point }} {{ translate(' pts') }}
|
||||
@else
|
||||
{{ translate('Refunded') }}
|
||||
@endif
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
@if ($club_point->convert_status == 1)
|
||||
<span class="badge badge-inline badge-success p-3 fs-12" style="border-radius: 25px;">{{ translate('Yes') }}</strong></span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-info p-3 fs-12" style="border-radius: 25px;">{{ translate('No') }}</strong></span>
|
||||
@endif
|
||||
</td>
|
||||
<td style="vertical-align: middle;">{{ date('d-m-Y', strtotime($club_point->created_at)) }}</td>
|
||||
|
||||
<td class="text-right pr-0" style="vertical-align: middle;">
|
||||
|
||||
@if ($club_point->convert_status == 0 && $convertible_club_point > 0)
|
||||
<button onclick="convert_point({{ $club_point->id }})" class="btn btn-sm btn-styled btn-primary" style="border-radius: 25px;">{{translate('Convert Now')}}</button>
|
||||
@elseif($convertible_club_point == 0)
|
||||
<span class="badge badge-inline text-white badge-warning p-3 fs-12" style="border-radius: 25px; min-width: 80px !important;">{{ translate('Refunded') }}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-success p-3 fs-12" style="border-radius: 25px; min-width: 80px !important;">{{ translate('Done') }}</span>
|
||||
@endif
|
||||
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination mt-3">
|
||||
{{ $club_points->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function convert_point(el)
|
||||
{
|
||||
$.post('{{ route('convert_point_into_wallet') }}',{_token:'{{ csrf_token() }}', el:el}, function(data){
|
||||
if (data == 1) {
|
||||
location.reload();
|
||||
AIZ.plugins.notify('success', '{{ translate('Convert has been done successfully Check your Wallets') }}');
|
||||
}
|
||||
else {
|
||||
AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,66 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Order Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Customer Name')}}</th>
|
||||
<th>{{translate('Points')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Convert Status')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Earned At')}}</th>
|
||||
<th class="text-right" width="10%">{{translate('Options')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($club_points as $key => $club_point)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($club_points->currentPage() - 1)*$club_points->perPage() }}</td>
|
||||
<td>
|
||||
@if ($club_point->order != null)
|
||||
{{ $club_point->order->code }}
|
||||
@else
|
||||
{{ translate('Order not found') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($club_point->user != null)
|
||||
{{ $club_point->user->name }}
|
||||
@else
|
||||
{{ translate('User not found') }}
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ $club_point->points }}</td>
|
||||
<td>
|
||||
@if ($club_point->convert_status == 1)
|
||||
<span class="badge badge-inline badge-success">{{translate('Converted')}}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-info">{{translate('Pending')}}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ $club_point->created_at }}</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-soft-primary btn-icon btn-circle btn-sm" href="{{route('club_point.details', encrypt($club_point->id))}}" title="{{ translate('View') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $club_points->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,32 @@
|
||||
@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 Point for Product')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('product_point.update', $product->id) }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{translate('Set Point')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<input type="number" min="0" step="0.01" class="form-control" name="point" value="{{ $product->earn_point }}" placeholder="100" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,126 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card">
|
||||
<div class="card-body px-3">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{translate('Name')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Owner')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Price')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Point')}}</th>
|
||||
<th>{{translate('Options')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($products as $key => $product)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($products->currentPage() - 1)*$products->perPage() }}</td>
|
||||
<td>
|
||||
<a href="{{ route('product', $product->slug) }}" target="_blank">
|
||||
<div class="form-group row">
|
||||
<div class="col-auto">
|
||||
<img src="{{ uploaded_asset($product->thumbnail_img)}}" alt="Image" class="size-50px">
|
||||
</div>
|
||||
<div class="col">
|
||||
<span class="text-muted text-truncate-2">{{ $product->getTranslation('name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@if ($product->user != null)
|
||||
{{ $product->user->name }}
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ number_format($product->unit_price,2) }}</td>
|
||||
<td>{{ $product->earn_point }}</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-soft-primary btn-icon btn-circle btn-sm" href="{{route('product_club_point.edit', encrypt($product->id))}}" title="{{ translate('Edit') }}">
|
||||
<i class="las la-edit"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $products->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Set Point for Product Within a Range')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 text-muted">
|
||||
<small>{{ translate('Set any specific point for those products what are between Min-price and Max-price. Min-price should be less than Max-price') }}</small>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{{ route('set_products_point.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-6">
|
||||
<label class="col-from-label">{{translate('Set Point for multiple products')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" min="0" step="0.01" class="form-control" name="point" placeholder="100" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-6">
|
||||
<label class="col-from-label">{{translate('Min Price')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" min="0" step="0.01" class="form-control" name="min_price" value="{{ \App\Models\Product::min('unit_price') }}" placeholder="50" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-6">
|
||||
<label class="col-from-label">{{translate('Max Price')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" min="0" step="0.01" class="form-control" name="max_price" value="{{ \App\Models\Product::max('unit_price') }}" placeholder="110" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Set Point for all Products')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('set_all_products_point.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-4">
|
||||
<label class="col-from-label">{{translate('Set Point For ')}} {{ single_price(1) }}</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" step="0.001" class="form-control" name="point" placeholder="1" required>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<label class="col-from-label">{{translate('Points')}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
Reference in New Issue
Block a user