Commit 9d47970b authored by Chanon.u's avatar Chanon.u
Browse files

Add validate profile production on reference no

parent 6ef4272c
......@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use App\Http\Controllers\ManualResponse\GenXmlController;
use App\Http\Controllers\ManualResponse\SpnConfigController;
use App\Models\ConfListProfile;
use App\Models\ManualResponse\MasterMessages;
use App\Models\ManualResponse\MasterResponseTemplates;
use App\Models\ManualResponse\MasterDocTypes;
......@@ -144,6 +145,14 @@ class ManualResponse extends Component
public function generateAndUploadXml()
{
$this->reGenerateXML();
if(!$this->validateBeforeSend($this->xmlContent)){
$this->dispatchBrowserEvent('open-modal', [
'name' => 'alert-modal',
'message' => 'Profile production is not allowed.',
'status' => 'failed'
]);
return;
}
// Generate XML file from string
$now = Carbon::now();
......@@ -231,4 +240,13 @@ class ManualResponse extends Component
]);
}
}
private function validateBeforeSend(){
$referenceNo = $this->xmlData['ReferenceNumber'];
$profileProds = ConfListProfile::where('type', 'PROD')->pluck('name')->toArray();
if(isset($referenceNo) && in_array(substr($referenceNo, 0, 1), $profileProds)){
return false;
}
return true;
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ConfListProfile extends Model
{
use HasFactory;
protected $table = 'conf_list_profiles';
protected $fillable = [
'id',
'name',
'type',
'desc',
];
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('conf_list_profiles', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('type');
$table->string('desc');
$table->timestamps();
});
DB::table('conf_list_profiles')->insert([
[
'name' => 'D',
'type' => 'PROD',
'desc' => ''
],
[
'name' => 'P',
'type' => 'PROD',
'desc' => ''
],
[
'name' => 'Q',
'type' => 'PROD',
'desc' => ''
],
[
'name' => 'A',
'type' => 'TEST',
'desc' => ''
],
[
'name' => 'B',
'type' => 'TEST',
'desc' => ''
],
[
'name' => 'H',
'type' => 'TEST',
'desc' => ''
]
]);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('conf_list_profiles');
}
};
......@@ -30,11 +30,11 @@ import 'quill/dist/quill.snow.css';
import flatpickr from 'flatpickr';
import Tom from 'tom-select/dist/js/tom-select.complete.min';
import "@fortawesome/fontawesome-free/css/all.css";
import Prism from 'prismjs';
import 'prismjs/themes/prism.css';
import 'prismjs/components/prism-diff.min.js';
import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
import 'prismjs/plugins/line-numbers/prism-line-numbers.js';
// import Prism from 'prismjs';
// import 'prismjs/themes/prism.css';
// import 'prismjs/components/prism-diff.min.js';
// import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
// import 'prismjs/plugins/line-numbers/prism-line-numbers.js';
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
// Helper Functions
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment