NASER add setting controller & dynamic fee in settings & add send transactions to tahesab in settings

This commit is contained in:
2026-02-09 14:09:19 +03:30
parent cfb5b17ab7
commit 875c1b09b2
7 changed files with 88 additions and 20 deletions
@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
class SettingsController extends Controller
{
public function index(){
$Setting = Setting::where('can_edit',1)->select('id','title_fa', 'key','value','description','is_active')->get();
return response()->json($Setting);
}
public function edit(Request $request)
{
// Check if the setting exists
$setting = Setting::where('key', $request->key)->first();
if ($setting) {
// Update the existing setting
$setting->value = $request->value;
$setting->description = $request->description;
$setting->is_active = $request->is_active;
$setting->save();
} else {
// Create a new setting
$setting = new Setting();
$setting->key = $request->key;
$setting->value = $request->value;
$setting->description = $request->description;
$setting->is_active = $request->is_active;
$setting->save();
}
// Return the setting as a JSON response
return response()->json($setting);
}
}
@@ -18,6 +18,7 @@ use Rooyesh\Wallet\models\Transaction;
use Rooyesh\Wallet\models\Wallet;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
use App\Http\Controllers\Admin\TahesabController;
use App\Models\Setting;
class WalletController extends Controller
@@ -117,9 +118,16 @@ class WalletController extends Controller
'active' => true
], 7, true, $deposit, $gold_block);
$data['direction'] = 0;
// $tahesab = new TahesabController();
// $tahesab->wallet($data);
if(Setting::where('key', 'send_to_tahesab')->first()->value == "true"){
try {
$data['direction'] = 0;
$tahesab = new TahesabController();
$tahesab->wallet($data);
}catch (\Exception $e){
return response($e->getMessage(), 500);
}
}
$status = $data['value'] > 0 ?" شارژ شد ": " کسر شد ";
$message = 'کیف پول شما به اندازه ' . number_format(abs($data['value'])) . " ریال در تاریخ " . verta()->format('Y/n/j H:i:s') .$status . "بابت" . "\n"
. $data['note']
@@ -21,6 +21,7 @@ use Rooyesh\Wallet\models\Wallet;
use App\Models\TransactionsAdmin;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
use Illuminate\Support\Facades\Http;
use App\Models\Setting;
class SingleOrderController extends Controller
@@ -36,8 +37,10 @@ class SingleOrderController extends Controller
$data['all_price'] = $latestPrice;
$data['price'] = $latestPrice->price;
$data['price_id'] = $latestPrice->id;
$data['difference'] = config('fee.cash');
$data['service_charge_percentage'] = config('fee.service_charge_percentage');
// $data['difference'] = config('fee.cash');
$data['difference'] = Setting::where('key', 'fee_cash')->first()->value;
// $data['service_charge_percentage'] = config('fee.service_charge_percentage');
$data['service_charge_percentage'] = Setting::where('key', 'fee_service_charge_percentage')->first()->value;
$data['pay_at'] = (new \DateTime())->format('Y-m-d H:i:s');
} else if (auth('user')->id()) {//admin
$data['service_charge_percentage'] = 0;
@@ -103,13 +106,14 @@ class SingleOrderController extends Controller
$response['sell'] = $this->processSellTransaction($data, $wallet, $wallet_interface);
}
}
try {
$tahesab = new TahesabController();
$data['tahesab'] = $tahesab->storeTrade($data);
}catch (\Exception $e){
return response($e->getMessage(), 500);
if(Setting::where('key', 'send_to_tahesab')->first()->value == "true"){
try {
$tahesab = new TahesabController();
$data['tahesab'] = $tahesab->storeTrade($data);
}catch (\Exception $e){
return response($e->getMessage(), 500);
}
}
// $response['reward'] = $this->give_order_reward($data, $wallet, $wallet_interface);
$response['Notifications'] = $this->sendTransactionNotifications($data, $transactionType);
return response()->json([$response, $data]);
@@ -6,6 +6,7 @@ use App\Http\Controllers\Admin\PriceController;
use App\Http\Controllers\Controller;
use App\Mail\YourMailableClass;
use App\Models\Cnt;
use App\Models\Setting;
use App\Models\ConfigStatic;
use App\Models\Customer;
use App\Models\Price;
@@ -43,7 +44,8 @@ class ReportController extends Controller
public function updatePrise()
{
$difference = config('fee.single');
// $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
$lastPrice = Price::latest()->first();
$PriceTriggers = PriceTrigger::where("is_active", true)->get();
foreach ($PriceTriggers as $PriceTrigger) {
@@ -71,7 +73,8 @@ class ReportController extends Controller
public function upDownPrice()
{
$difference = config('fee.single');
// $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
$today = Carbon::now()->format("Y-m-d");
$prises = Price::where('date_at', $today)->get("price");
@@ -119,7 +122,8 @@ class ReportController extends Controller
public function lastPrice()
{
$difference = config('fee.single');
// $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
// try {
+9 -3
View File
@@ -4,18 +4,24 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
use Rooyesh\Wallet\models\Transaction;
use Tymon\JWTAuth\Contracts\JWTSubject;
class Setting extends Model
{
use HasFactory;
protected $table = 'settings';
use HasFactory,Selector;
protected $fillable = [
'key',
'title_fa',
'is_active',
'description',
'value',
'value_json'
];
protected $casts = [
'value_json'=>'array'
'value_json'=>'array',
'is_active'=>'boolean',
];
}