added timestamp and fixed block for duplicate nota and timestamp

This commit is contained in:
Hafifie PKB
2024-09-17 17:05:00 +08:00
parent f4609f469e
commit e5b7244029
3 changed files with 98 additions and 3 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ class AddTunai extends Model
* *
* @var array * @var array
*/ */
protected $fillable = ['tarikh','kodcaw','kodlaluan','tambah','kurang','nota']; protected $fillable = ['tarikh','kodcaw','kodlaluan','tambah','kurang','nota','created_at'];
public $timestamps = false; public $timestamps = false;
/** /**
+24 -2
View File
@@ -11,7 +11,7 @@ use App\Denominasi;
use App\Vault; use App\Vault;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
class TunaiController extends Controller class TunaiController extends Controller
{ {
@@ -194,7 +194,28 @@ class TunaiController extends Controller
$current = new Carbon(); $current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
//Same Note e.g P1 and S1
$same_note = AddTunai::on($cawangan['mysql'])
->where('kodlaluan', $request->kodlaluan)
->where('nota',$request->nota)
->where('tarikh',$current->toDateString())->first();
if($same_note){
Log::error('Error: same-note :' . $kodcaw . ': Name :' . $request->kodlaluan);
return 'same-note';
}
//Time Interval
$latestRecord = AddTunai::on($cawangan['mysql'])->where('kodlaluan', $request->kodlaluan)->latest()->first();
if($latestRecord){
$time = Carbon::parse($latestRecord->created_at);
$time_end = $time->copy()->addMinutes(1);
if($current->between($time,$time_end)){
Log::error('Error: within 1 minute :' . $kodcaw . ': Name :' . $request->kodlaluan);
return 'within 1 minute';
}
}
$addtunai=AddTunai::on($cawangan['mysql'])->create([ $addtunai=AddTunai::on($cawangan['mysql'])->create([
@@ -203,7 +224,8 @@ class TunaiController extends Controller
'kodlaluan'=>$request->kodlaluan, 'kodlaluan'=>$request->kodlaluan,
'tambah'=>$request->tambah, 'tambah'=>$request->tambah,
'kurang'=>$request->kurang, 'kurang'=>$request->kurang,
'nota'=>$request->nota 'nota'=>$request->nota,
'created_at'=>$current
]); ]);
return response()->json($addtunai,201); return response()->json($addtunai,201);
@@ -0,0 +1,73 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class AddColumnTimestampToAddtunaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
protected $db_connection;
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$this->db_connection = $this->getActiveDB();
foreach($this->db_connection as $dbase){
Schema::connection($dbase)->table('addtunai', function (Blueprint $table) use($dbase) {
$isCreatedAt = Schema::connection($dbase)->hasColumn('addtunai', 'created_at');
if (! $isCreatedAt) {
$table->timestamp('created_at');
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$this->db_connection = $this->getActiveDB();
foreach($this->db_connection as $dbase){
$columns = ['created_at'];
$columns_exist = array_filter($columns,function($column) use($dbase){
return Schema::connection($dbase)->hasColumn('addtunai', $column);
});
Schema::connection($dbase)->table('addtunai', function(Blueprint $table) use($columns_exist){
foreach($columns_exist as $column){
$table->dropColumn($column);
}
});
}
}
}