fix some bugs

This commit is contained in:
2026-09-02 11:38:57 +03:30
parent b54f9f0527
commit e9674d6571
3 changed files with 58 additions and 2 deletions
@@ -175,8 +175,11 @@ class CustomerController extends SuperController
$customer = Customer::findOrFail($id); $customer = Customer::findOrFail($id);
if (array_key_exists('referral_to_id', $data) && filled($customer->referral_to_id)) { if (array_key_exists('referral_to_id', $data)) {
unset($data['referral_to_id']); $incoming = is_string($data['referral_to_id']) ? trim($data['referral_to_id']) : $data['referral_to_id'];
if (filled($customer->referral_to_id) || $incoming === null || $incoming === '') {
unset($data['referral_to_id']);
}
} }
if (isset($data['fname'], $data['lname'])) { if (isset($data['fname'], $data['lname'])) {
+12
View File
@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Carbon\Carbon;
use Rooyesh\Wallet\models\Wallet; use Rooyesh\Wallet\models\Wallet;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException; use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
@@ -136,6 +137,17 @@ class Customer extends Authenticatable implements JWTSubject
$this->attributes['password'] = Hash::make($value); $this->attributes['password'] = Hash::make($value);
} }
public function setBirthDateAttribute($value): void
{
if ($value === null || $value === '') {
$this->attributes['birth_date'] = null;
return;
}
$this->attributes['birth_date'] = Carbon::parse($value)->format('Y-m-d');
}
public function getJWTIdentifier() public function getJWTIdentifier()
{ {
return $this->getKey(); return $this->getKey();
@@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
/**
* تولد قبل از ۱۹۷۰ روی TIMESTAMP مای‌اسکیوال ذخیره نمی‌شود (مثلاً ۱۹۶۷-۱۰-۲۳ → ۱۲۹۲).
*/
return new class extends Migration
{
public function up(): void
{
if (! Schema::hasTable('customers') || ! Schema::hasColumn('customers', 'birth_date')) {
return;
}
$row = DB::selectOne(
'SELECT DATA_TYPE AS data_type FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND COLUMN_NAME = ?',
[DB::connection()->getDatabaseName(), $this->customersTable(), 'birth_date']
);
$type = strtolower((string) ($row->data_type ?? ''));
if ($type === 'date') {
return;
}
DB::statement('ALTER TABLE `'.$this->customersTable().'` MODIFY `birth_date` DATE NULL DEFAULT NULL');
}
public function down(): void
{
// به TIMESTAMP برنمی‌گردانیم — تاریخ‌های قبل از ۱۹۷۰ قطع می‌شوند
}
private function customersTable(): string
{
return DB::getTablePrefix().'customers';
}
};