mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-09-26 03:13:08 -04:00
Subscription Module Update
Payment Codes for china team
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Subscription\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Modules\Subscription\Repositories\PaymentCodeRepository;
|
||||
use Modules\Subscription\Entities\PaymentCode;
|
||||
use Modules\Subscription\Entities\PaymentCodeAddon;
|
||||
use Modules\Subscription\Entities\SubscriptionPlanPrice;
|
||||
use Carbon\Carbon;
|
||||
use Exception;
|
||||
use Log;
|
||||
|
||||
class PaymentCodeController extends Controller
|
||||
{
|
||||
private $paymentCodeRepository;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->paymentCodeRepository = new PaymentCodeRepository();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('subscription::payment_codes.index');
|
||||
}
|
||||
|
||||
public function data()
|
||||
{
|
||||
try {
|
||||
|
||||
$paymentCodes = $this->paymentCodeRepository->all();
|
||||
$subscription_plans = SubscriptionPlanPrice::with('plan')->where('payment','upfront')->where('payment_method','prepaid')->whereHas('plan', function ($query) {
|
||||
$query->where('status', 1);
|
||||
})->get()->map(function($price, $key) {
|
||||
return [
|
||||
'id' => $price->id,
|
||||
'label' => $price->plan->title.' - $'. number_format($price->price,2).' for '.$price->access_expire_duration.' Months'
|
||||
];
|
||||
});
|
||||
return response()->json([
|
||||
'payment_codes' => $paymentCodes,
|
||||
'subscription_plans' => $subscription_plans
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => 'An error occurred.'
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'subscription_plan_price_id' => 'required|exists:subscription_plan_prices,id',
|
||||
'start_date' => 'required',
|
||||
'end_date' => 'required',
|
||||
'addons' => 'nullable|array',
|
||||
'addons.*.description' => 'required',
|
||||
'addons.*.price' => 'required|numeric',
|
||||
],
|
||||
[
|
||||
'subscription_plan_price_id.required' => 'The subscription plan field is required.'
|
||||
]
|
||||
);
|
||||
|
||||
try {
|
||||
|
||||
$this->paymentCodeRepository->create($request);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Payment Code has been successfully generated.'
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'subscription_plan_price_id' => 'required|exists:subscription_plan_prices,id',
|
||||
'start_date' => 'required',
|
||||
'end_date' => 'required',
|
||||
'addons' => 'nullable|array',
|
||||
'addons.*.description' => 'required',
|
||||
'addons.*.price' => 'required|numeric',
|
||||
],
|
||||
[
|
||||
'subscription_plan_price_id.required' => 'The subscription plan field is required.'
|
||||
]
|
||||
);
|
||||
|
||||
try {
|
||||
|
||||
$this->paymentCodeRepository->update($request);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Payment Code has been successfully updated.'
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
try {
|
||||
|
||||
$ret = $this->subscriptionCouponsRepository->delete($request->id);
|
||||
|
||||
if ($ret === true) {
|
||||
return response()->json([
|
||||
'message' => 'Coupon has been successfully deleted.'
|
||||
]);
|
||||
}
|
||||
else {
|
||||
if ($ret == 'in_use') {
|
||||
return response()->json([
|
||||
'message' => 'Unable to delete coupon. Coupon is in use.'
|
||||
], 403);
|
||||
}
|
||||
else {
|
||||
return response()->json([
|
||||
'message' => 'Failed to delete coupon. Coupon not found.'
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user