diff --git a/app/City.php b/app/City.php new file mode 100644 index 00000000..cd0212eb --- /dev/null +++ b/app/City.php @@ -0,0 +1,11 @@ + 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode]); + $QRCode = DNS2D::getBarcodePNG($URL, "QRCODE"); + $ShowLink = 'Show/'.$Type.'/'.$Number; + if ($Type == 'TestType') { + $QRCode = DNS2D::getBarcodePNG($Number, "QRCODE"); + } + + return \MessageResponse::data(['Barcode' => 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode, 'ShowLink' => $ShowLink]); } } public function generateQRcode(TestResult $TestResult) @@ -24,7 +31,7 @@ class BarCodeController extends Controller if($TestResult) { $URL = 'https://www.cssd-doc.com/ShowTestResult/'.$TestResult->id; - $QRCode = DNS2D::getBarcodePNG($URL, "QRCODE"); + $QRCode = DNS2D::getBarcodePNG($URL, "QRCODE"); return \MessageResponse::data(['QRCode' => 'data:image/png;base64,' .$QRCode]); } @@ -33,10 +40,12 @@ class BarCodeController extends Controller { if($Number != "undefined") { - $Barcode = DNS1D::getBarcodePNGUri($Number, "C128"); - $QRCode = DNS2D::getBarcodePNGUri($Number, "QRCODE"); - Package::where('unique_id', $Number)->update(['bar_code' => $Barcode, 'qr_code' => $QRCode]); - return \MessageResponse::data(['Barcode' => $Barcode, 'QRCode' => $QRCode]); + // $Barcode = DNS1D::getBarcodePNGUri($Number, "C128"); + // $QRCode = DNS2D::getBarcodePNGUri($Number, "QRCODE"); + $Barcode = DNS1D::getBarcodePNG($Number, "C128"); + $QRCode = DNS2D::getBarcodePNG($Number, "QRCODE"); + $Package = Package::where('unique_id', $Number)->first(); + return \MessageResponse::data(['Barcode' => $Barcode, 'QRCode' => $QRCode, 'ShowLink' => 'Show/Package/'.$Package->id]); } } public function generatePackageQRCode(Package $Package) diff --git a/app/Http/Controllers/CycleController.php b/app/Http/Controllers/CycleController.php index bbba84c1..6847ff66 100644 --- a/app/Http/Controllers/CycleController.php +++ b/app/Http/Controllers/CycleController.php @@ -23,7 +23,6 @@ class CycleController extends Controller $query->where('user_id', $user->id); } }) - ->when($request->has('cycle_id') && $request->cycle_id != '', function($query) use($request){ $query->where('id', $request->cycle_id); }) @@ -45,7 +44,7 @@ class CycleController extends Controller } public function show(Cycle $Cycle) { - $Cycle->load('user', 'labels', 'labels.package', 'labels.package.items'); + $Cycle->load('user', 'user.medical_center', 'labels', 'labels.package', 'labels.package.items'); return \MessageResponse::data($Cycle); } public function store(StoreCycleRequest $request) @@ -145,7 +144,7 @@ class CycleController extends Controller public function showCycle(Cycle $Cycle) { - $Cycle->load('user', 'labels', 'labels.package', 'labels.package.items'); + $Cycle->load('user', 'user.medical_center', 'labels', 'labels.package', 'labels.package.items'); return \MessageResponse::data($Cycle); } } diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index cb1a126c..2e751779 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -24,15 +24,14 @@ class ItemController extends Controller $query->where('user_id', $user->id); } }) - ->when($request->has('name') && $request->name != '', function($query) use($request){ $query->where('name', 'LIKE', '%'.$request->name.'%'); }) ->when($request->has('size') && $request->size != '', function($query) use($request){ $query->where('size', $request->size); }) - ->when($request->has('unique_id') && $request->unique_id != '', function($query) use($request){ - $query->where('unique_id', $request->unique_id); + ->when($request->has('item_id') && $request->item_id != '', function($query) use($request){ + $query->where('id', $request->item_id); }) ->when($request->has('specific') && $request->specific != '', function($query) use($request){ $query->where('specific', $request->specific); @@ -47,7 +46,7 @@ class ItemController extends Controller } public function show(Item $Item) { - $Item->load('user'); + $Item->load('user', 'user.medical_center'); return \MessageResponse::data($Item); } public function store(StoreItemRequest $request) @@ -91,4 +90,9 @@ class ItemController extends Controller return \MessageResponse::data($Items); } + public function showItem(Item $Item) + { + $Item->load('user', 'user.medical_center'); + return \MessageResponse::data($Item); + } } diff --git a/app/Http/Controllers/LabelController.php b/app/Http/Controllers/LabelController.php index 52639883..5d33e0a0 100644 --- a/app/Http/Controllers/LabelController.php +++ b/app/Http/Controllers/LabelController.php @@ -16,8 +16,8 @@ class LabelController extends Controller if ($user->hasRole('Supervisor|User')) { $medical_center_id = $user->medical_center_id; } - elseif($request->has('medicalCenter_id') && $request->medicalCenter_id != '') { - $medical_center_id = $request->medicalCenter_id; + elseif($request->has('medical_center_id') && $request->medical_center_id != '') { + $medical_center_id = $request->medical_center_id; } else { $medical_center_id = null; } @@ -70,7 +70,7 @@ class LabelController extends Controller 'package_id' => $request->package_id ]; $LabelObj = Label::create($LabelData); - return \MessageResponse::success(trans('messages.success')); + return \MessageResponse::success(trans('messages.success'), null, $LabelObj); } public function edit(Label $Label) { @@ -81,7 +81,7 @@ class LabelController extends Controller public function update(Request $request, Label $Label) { $Label->update($request->all()); - return \MessageResponse::success(trans('messages.success')); + return \MessageResponse::success(trans('messages.success'), null, $Label); } public function destroy(Label $Label) { @@ -105,4 +105,10 @@ class LabelController extends Controller return \MessageResponse::data($Labels); } + public function showLabel(Label $Label) + { + $Label->load('user', 'package', 'package.items', 'user.medical_center'); + return \MessageResponse::data($Label); + } + } diff --git a/app/Http/Controllers/MedicalCenterController.php b/app/Http/Controllers/MedicalCenterController.php index 3f9d96c7..aa60d3a2 100644 --- a/app/Http/Controllers/MedicalCenterController.php +++ b/app/Http/Controllers/MedicalCenterController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\MedicalCenter; use App\User; +use App\City; use App\Http\Requests\StoreMedicalCenterRequest; class MedicalCenterController extends Controller @@ -39,7 +40,7 @@ class MedicalCenterController extends Controller public function edit(MedicalCenter $MedicalCenter) { - $MedicalCenter = $MedicalCenter->load('users'); + $MedicalCenter->load('users'); return \MessageResponse::data($MedicalCenter); } @@ -62,4 +63,9 @@ class MedicalCenterController extends Controller $MedicalCenters = MedicalCenter::select('id','name')->get(); return \MessageResponse::data($MedicalCenters); } + + public function getCities(){ + $Cities = City::whereNull('parent_id')->get(); + return \MessageResponse::data($Cities); + } } diff --git a/app/Http/Controllers/PackageController.php b/app/Http/Controllers/PackageController.php index 7849d7d6..65c063a4 100644 --- a/app/Http/Controllers/PackageController.php +++ b/app/Http/Controllers/PackageController.php @@ -27,6 +27,9 @@ class PackageController extends Controller ->when($request->has('name') && $request->name != '', function($query) use($request){ $query->where('name', 'LIKE', '%'.$request->name.'%'); }) + ->when($request->has('package_id') && $request->package_id != '', function($query) use($request){ + $query->where('id', $request->package_id); + }) ->when($request->has('unique_id') && $request->unique_id != '', function($query) use($request){ $query->where('unique_id', $request->unique_id); }) @@ -40,16 +43,16 @@ class PackageController extends Controller } public function show(Package $Package) { - $Package->load('user', 'items'); + $Package->load('user', 'items', 'user.medical_center'); // dd($Package); return \MessageResponse::data($Package); } public function store(StorePackageRequest $request) { - $UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10); + // $UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10); $PackageData = [ 'name' => $request->name, - 'unique_id' => $UniqueID, + 'unique_id' => $request->unique_id, 'note' => $request->note, 'user_id' => auth('api')->user()->id, 'verified' => 'NotVerified', @@ -164,7 +167,7 @@ class PackageController extends Controller } public function showPackage(Package $Package) { - $Package->load('user', 'items'); + $Package->load('user', 'user.medical_center', 'items'); return \MessageResponse::data($Package); } } diff --git a/app/Http/Controllers/TestResultController.php b/app/Http/Controllers/TestResultController.php index 316b2557..6fa47650 100644 --- a/app/Http/Controllers/TestResultController.php +++ b/app/Http/Controllers/TestResultController.php @@ -485,6 +485,60 @@ class TestResultController extends Controller //--------------------------------------------------------------------------Show public function showTestResult($id) { - return view('ShowTestResult', compact('id')); + $TestResult = TestResult::with('input_values', 'user.medical_center', 'test_type')->select('result', 'verified', 'device_id','user_id','id', 'test_type_id', 'created_at')->findOrFail($id); + $options = []; + foreach ($TestResult->input_values as $value) { + $input = $value->input; + + if ($input->parent_id != null && $input->parent['type'] == 'Form') { + //----------------------------------------------------------------------FormType + if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') { + $input_options = InputValue::with('option')->where('test_result_id', $TestResult->id)->where('input_id', $input->id)->get(); + $options = []; + foreach ($input_options as $input_option) { + $options[] = $input_option->option->title; + $input_values[$input->name] = $options; + } + + $children[$input->parent->name] = $input_values; + $TestResult['children'] = $children; + } + else { + + $children[$input->parent->name][$input->name] = $value->value; + $TestResult['children'] = $children; + } + //-----------------------------------------------------------------------FormType + } + else { + //-----------------------------------------------------------------------Anothertype + if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') { + $input_options = InputValue::with('option')->where('test_result_id', $TestResult->id)->where('input_id', $input->id)->get(); + $options = []; + foreach ($input_options as $input_option) { + $options[] = $input_option->option->title; + } + + $values[$input->name] = $options; + $TestResult['options'] = $values; + } + else { + $inputs[$input->name] = $value->value; + $TestResult['inputs'] = $inputs; + } + //-----------------------------------------------------------------------Anothertype + } + } + + $ImagesPath = []; + if (count($TestResult->TitleImage)) { + foreach ($TestResult->TitleImage as $Key => $TitleImage) { + $ImagesPath[] = $TitleImage->path; + } + $TestResult['imagesPath'] = $ImagesPath; + } + // dd($TestResult->test_type()->device_label); + $TestResult['device_label'] = $TestResult->test_type->device_label; + return \MessageResponse::data($TestResult); } } diff --git a/app/Http/Requests/StoreItemRequest.php b/app/Http/Requests/StoreItemRequest.php index ce4a7eb8..b3e0a73e 100644 --- a/app/Http/Requests/StoreItemRequest.php +++ b/app/Http/Requests/StoreItemRequest.php @@ -26,7 +26,7 @@ class StoreItemRequest extends FormRequest case 'POST': { return [ 'name' => 'required|max:100|unique:items', - 'unique_id' => 'required|max:100|unique:items', + 'unique_id' => 'nullable|max:100|unique:items', 'size' => 'required', 'specific' => 'required', 'note' => 'nullable', @@ -37,8 +37,8 @@ class StoreItemRequest extends FormRequest case 'PATCH': { $Item = $this->route('Item'); return [ - 'name' => 'required|max:100|unique:items,id,'.$Item->id, - 'unique_id' => 'required|max:100|unique:items,id,'.$Item->id, + 'name' => 'required|max:100|unique:items,name,'.$Item->id, + 'unique_id' => 'nullable|max:100|unique:items,unique_id,'.$Item->id, 'size' => 'required', 'specific' => 'required', 'note' => 'nullable', diff --git a/app/Http/Requests/StoreMedicalCenterRequest.php b/app/Http/Requests/StoreMedicalCenterRequest.php index 02550274..31bf7c88 100644 --- a/app/Http/Requests/StoreMedicalCenterRequest.php +++ b/app/Http/Requests/StoreMedicalCenterRequest.php @@ -26,6 +26,9 @@ class StoreMedicalCenterRequest extends FormRequest case 'POST': { return [ 'name' => 'required|max:100|unique:medical_centers', + 'phone_number' => 'required|digits_between:10,11', + 'address' => 'required', + 'city_id' => 'required|max:100|exists:cities,id', // 'operatores.*.name'=>'required|string|max:255', // 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users', // 'operatores.*.password'=>'required|string|min:6', @@ -36,10 +39,10 @@ class StoreMedicalCenterRequest extends FormRequest case 'PATCH': { $MedicalCenter = $this->route('MedicalCenter'); return [ - 'name' => 'required|max:100|unique:medical_centers,id,'.$MedicalCenter->id, - // 'operatores.*.name'=>'required|string|max:255', - // 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users', - // 'operatores.*.password'=>'required|string|min:6', + 'name' => 'required|max:100|unique:medical_centers,name,'.$MedicalCenter->id, + 'phone_number' => 'required|digits_between:10,11', + 'address' => 'required', + 'city_id' => 'required|max:100|exists:cities,id', ]; break; diff --git a/app/Http/Requests/StorePackageRequest.php b/app/Http/Requests/StorePackageRequest.php index 4c5d2607..b89e57c0 100644 --- a/app/Http/Requests/StorePackageRequest.php +++ b/app/Http/Requests/StorePackageRequest.php @@ -25,7 +25,8 @@ class StorePackageRequest extends FormRequest switch ($this->method()) { case 'POST': { return [ - 'name' => 'required|max:100|unique:packages', + 'name' => 'required|max:250|unique:packages', + 'unique_id' => 'nullable|max:250|unique:packages', 'note' => 'nullable', 'items' => 'required', ]; @@ -35,8 +36,8 @@ class StorePackageRequest extends FormRequest case 'PATCH': { $Package = $this->route('Package'); return [ - 'name' => 'required|max:100|unique:packages,id,'.$Package->id, - 'unique_id' => 'required|max:100|unique:packages,id,'.$Package->id, + 'name' => 'required|max:250|unique:packages,name,'.$Package->id, + 'unique_id' => 'nullable|max:250|unique:packages,unique_id,'.$Package->id, 'note' => 'nullable', 'items' => 'required', ]; diff --git a/app/MedicalCenter.php b/app/MedicalCenter.php index 8a558a22..e4c511f5 100644 --- a/app/MedicalCenter.php +++ b/app/MedicalCenter.php @@ -6,9 +6,13 @@ use Illuminate\Database\Eloquent\Model; class MedicalCenter extends Model { - public $fillable = ['name']; + public $fillable = ['name', 'city_id', 'address', 'phone_number']; public function users() { return $this->hasMany('App\User'); } + public function city() + { + return $this->belongsTo('App\City'); + } } diff --git a/composer.json b/composer.json index 4c301076..5b766880 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,7 @@ "require": { "php": "^7.1.3", "fideloper/proxy": "^4.0", + "kalnoy/nestedset": "^5.0", "laravel/framework": "5.8.*", "laravel/passport": "^7.2", "laravel/tinker": "^1.0", diff --git a/composer.lock b/composer.lock index c23199af..cf335cba 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "282319c473e3a4fae1950c36e3c9832a", + "content-hash": "f4ebb660109a5b97e817e1ccec1328e1", "packages": [ { "name": "defuse/php-encryption", @@ -751,6 +751,65 @@ "description": "Highlight PHP code in terminal", "time": "2018-09-29T18:48:56+00:00" }, + { + "name": "kalnoy/nestedset", + "version": "v5.0.0", + "source": { + "type": "git", + "url": "https://github.com/lazychaser/laravel-nestedset.git", + "reference": "9c0ae248f38289147a5094fa0c5ba9bb9e93104b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lazychaser/laravel-nestedset/zipball/9c0ae248f38289147a5094fa0c5ba9bb9e93104b", + "reference": "9c0ae248f38289147a5094fa0c5ba9bb9e93104b", + "shasum": "" + }, + "require": { + "illuminate/database": "~5.7.0|~5.8.0|~6.0", + "illuminate/events": "~5.7.0|~5.8.0|~6.0", + "illuminate/support": "~5.7.0|~5.8.0|~6.0", + "php": ">=7.1.3" + }, + "require-dev": { + "phpunit/phpunit": "7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "v5.0.x-dev" + }, + "laravel": { + "providers": [ + "Kalnoy\\Nestedset\\NestedSetServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kalnoy\\Nestedset\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander Kalnoy", + "email": "lazychaser@gmail.com" + } + ], + "description": "Nested Set Model for Laravel 5.7 and up", + "keywords": [ + "database", + "hierarchy", + "laravel", + "nested sets", + "nsm" + ], + "time": "2019-09-06T06:18:32+00:00" + }, { "name": "laravel/framework", "version": "v5.8.13", diff --git a/resources/js/show/config/urls.js b/resources/js/show/config/urls.js index 24f12ffe..824a3785 100644 --- a/resources/js/show/config/urls.js +++ b/resources/js/show/config/urls.js @@ -1,13 +1,28 @@ const urls = { - + showTestResult: function(id) { + return `/ShowTestResult/${id}`; + }, + showItem: function(id) { + return `/ShowItem/${id}`; + }, showPackage: function(id) { return `/ShowPackage/${id}`; }, + showLabel: function(id) { + return `/ShowLabel/${id}`; + }, showCycle: function(id) { return `/ShowCycle/${id}`; }, - Barcode: function(code) { - return `/BarCode/${code}`; + Barcode: function(code, type) { + console.log(code, type,'aaa'); + return `/BarCode/${code}/${type}`; }, + packageBarcode: function(code) { + return `/Package/Barcode/${code}`; + }, + packageQRCode: function(code) { + return `/Package/QRCode/${code}`; + } }; export { urls }; diff --git a/resources/js/show/router/paths.js b/resources/js/show/router/paths.js index 312c32f5..fa247d16 100644 --- a/resources/js/show/router/paths.js +++ b/resources/js/show/router/paths.js @@ -10,14 +10,29 @@ export default [ name: 'home', view: 'Package/ShowPackage' }, + { + path: '/Show/Item/:item', + name: 'ShowItem', + view: 'Item/ShowItem' + }, { path: '/Show/Package/:package', name: 'ShowPackage', view: 'Package/ShowPackage' }, + { + path: '/Show/Label/:label', + name: 'ShowLabel', + view: 'Label/ShowLabel' + }, { path: '/Show/Cycle/:cycle', name: 'ShowCycle', view: 'Cycle/ShowCycle' }, + { + path: '/Show/TestResult/:id', + name: 'ShowTestResult', + view: 'TestResult/ShowTestResult' + }, ] diff --git a/resources/js/show/views/Cycle/ShowCycle.vue b/resources/js/show/views/Cycle/ShowCycle.vue index 381742ee..acc9fafb 100644 --- a/resources/js/show/views/Cycle/ShowCycle.vue +++ b/resources/js/show/views/Cycle/ShowCycle.vue @@ -1,20 +1,18 @@ + }; + diff --git a/resources/js/vue/components/modal/package/Show.vue b/resources/js/vue/components/modal/package/Show.vue index c3fcc9ca..1f6debb2 100644 --- a/resources/js/vue/components/modal/package/Show.vue +++ b/resources/js/vue/components/modal/package/Show.vue @@ -3,18 +3,11 @@ -

Info

+

Package - {{ data.user.medical_center.name }}


-
@@ -47,13 +40,13 @@ -
- {{data.unique_id}} +
+ Package ID : {{data.id}}
- + @@ -116,7 +109,7 @@ export default { } }, async generateBarcode(packageId) { - const result = await ApiService.post(urls.Barcode(packageId)); + const result = await ApiService.post(urls.Barcode(packageId, 'Package')); if (result && result.status == 200) { this.QRCodeimg = result.data.data.QRCode ? result.data.data.QRCode : null; this.barcodeimg = result.data.data.Barcode ? result.data.data.Barcode : null; @@ -158,7 +151,7 @@ export default { }, created() { this.data = this.getModalProperties.result.data.data; - this.generateBarcode(this.data.unique_id); + this.generateBarcode(this.data.id); }, computed: { ...mapGetters("modal", ["getModalProperties"]) diff --git a/resources/js/vue/components/modal/testresult/Show.vue b/resources/js/vue/components/modal/testresult/Show.vue index 71234a83..8ac50fe7 100644 --- a/resources/js/vue/components/modal/testresult/Show.vue +++ b/resources/js/vue/components/modal/testresult/Show.vue @@ -2,64 +2,64 @@