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]); + if ($Type == 'Cycle') { + $Cycle = Cycle::where('unique_id', $Number)->first(); + $Number = $Cycle->id; + } + return \MessageResponse::data(['Barcode' => 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode, 'ShowLink' => 'Show/'.$Type.'/'.$Number]); } } public function generateQRcode(TestResult $TestResult) @@ -33,10 +37,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..7dfa01f6 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -31,8 +31,8 @@ class ItemController extends Controller ->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 +47,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 +91,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..d4ab2c8e 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; } @@ -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..a4994fd9 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,7 +43,7 @@ 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); } @@ -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/Requests/StoreMedicalCenterRequest.php b/app/Http/Requests/StoreMedicalCenterRequest.php index 02550274..a8da55c1 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', @@ -37,9 +40,9 @@ class StoreMedicalCenterRequest extends FormRequest $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', + 'phone_number' => 'required|digits_between:10,11', + 'address' => 'required', + 'city_id' => 'required|max:100|exists:cities,id', ]; break; 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..4edda861 100644 --- a/resources/js/show/config/urls.js +++ b/resources/js/show/config/urls.js @@ -1,13 +1,25 @@ const urls = { + 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}`; }, + 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..b75f375e 100644 --- a/resources/js/show/router/paths.js +++ b/resources/js/show/router/paths.js @@ -10,11 +10,21 @@ 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', diff --git a/resources/js/show/views/Cycle/ShowCycle.vue b/resources/js/show/views/Cycle/ShowCycle.vue index 381742ee..f34e0e3f 100644 --- a/resources/js/show/views/Cycle/ShowCycle.vue +++ b/resources/js/show/views/Cycle/ShowCycle.vue @@ -2,7 +2,7 @@ -

Info

+

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


@@ -13,8 +13,6 @@ {{ data.id }} - -
Sterilizer ID : @@ -30,8 +28,8 @@
- - {{ data.note }} + Cycle Number : + {{ data.cycle_number }}
@@ -40,6 +38,12 @@ {{ data.date }}
+ +
+ + {{ data.note }} +
+

Barcode And QRCode Image

diff --git a/resources/js/show/views/Item/ShowItem.vue b/resources/js/show/views/Item/ShowItem.vue new file mode 100644 index 00000000..1c4a71f4 --- /dev/null +++ b/resources/js/show/views/Item/ShowItem.vue @@ -0,0 +1,116 @@ + + + + diff --git a/resources/js/show/views/Label/ShowLabel.vue b/resources/js/show/views/Label/ShowLabel.vue new file mode 100644 index 00000000..053e15d4 --- /dev/null +++ b/resources/js/show/views/Label/ShowLabel.vue @@ -0,0 +1,205 @@ + + + + diff --git a/resources/js/show/views/Package/ShowPackage.vue b/resources/js/show/views/Package/ShowPackage.vue index cca5877e..e88a886f 100644 --- a/resources/js/show/views/Package/ShowPackage.vue +++ b/resources/js/show/views/Package/ShowPackage.vue @@ -3,7 +3,7 @@ -

Info

+

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


diff --git a/resources/js/vue/components/core/Drawer.vue b/resources/js/vue/components/core/Drawer.vue index 32220e07..c91950b4 100644 --- a/resources/js/vue/components/core/Drawer.vue +++ b/resources/js/vue/components/core/Drawer.vue @@ -128,7 +128,6 @@ export default { to: {name: 'AllPackage'}, icon: 'fas fa-archive', text: 'Packages', - role: 'Admin' }, { to: {name: 'AllLabels'}, diff --git a/resources/js/vue/components/modal/barcode/Barcode.vue b/resources/js/vue/components/modal/barcode/Barcode.vue index 626fa588..759ec8ed 100644 --- a/resources/js/vue/components/modal/barcode/Barcode.vue +++ b/resources/js/vue/components/modal/barcode/Barcode.vue @@ -13,7 +13,7 @@
- +
@@ -33,14 +33,16 @@ import { mapGetters } from "vuex"; export default { data: () => ({ barcodeimg : null, - QRCodeimg : null + QRCodeimg : null, + ShowLink : '' }), created() { this.barcodeimg = this.getModalProperties.result.data.data.Barcode ? this.getModalProperties.result.data.data.Barcode : null; this.QRCodeimg = this.getModalProperties.result.data.data.QRCode ? this.getModalProperties.result.data.data.QRCode : null; + this.ShowLink = this.getModalProperties.result.data.data.ShowLink ? this.getModalProperties.result.data.data.ShowLink : '#'; }, computed: { - ...mapGetters("modal", ["getModalProperties"]) + ...mapGetters("modal", ["getModalProperties", "getModalLink"]) }, methods: { print() { @@ -78,4 +80,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/resources/js/vue/components/modal/cycle/Show.vue b/resources/js/vue/components/modal/cycle/Show.vue index e068c2b0..f6c2ab16 100644 --- a/resources/js/vue/components/modal/cycle/Show.vue +++ b/resources/js/vue/components/modal/cycle/Show.vue @@ -3,7 +3,7 @@ -

Info

+

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


@@ -28,11 +28,10 @@ {{ (typeof data.user != 'undefined') ? data.user.name : '' }} -
- - {{ data.note }} + Cycle Number : + {{ data.cycle_number }}
@@ -41,6 +40,12 @@ {{ data.date }} + +
+ + {{ data.note }} +
+

Barcode And QRCode Image

@@ -55,7 +60,7 @@
- + @@ -118,7 +123,7 @@ - +
diff --git a/resources/js/vue/components/modal/item/show.vue b/resources/js/vue/components/modal/item/show.vue index 11f42cef..c5163dbe 100644 --- a/resources/js/vue/components/modal/item/show.vue +++ b/resources/js/vue/components/modal/item/show.vue @@ -3,7 +3,7 @@ -

Info

+

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


@@ -44,7 +44,26 @@ {{ data.created_at }} +
+ +

Barcode And QRCode Image

+ +
+
+ + +
+ {{data.unique_id}} +
+
+ + + + + +
+
@@ -62,16 +81,28 @@ import { ApiService } from "@/services"; import { urls } from "@/config/urls"; export default { data: () => ({ - data : {} + data : {}, + QRCodeimg : '', + barcodeimg : '' }), methods: { ...mapMutations("modal", ["closeModal", "setResultModal"]), + async generateBarcode(itemId) { + const result = await ApiService.post(urls.Barcode(itemId)); + 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; + } + }, }, created() { this.data = this.getModalProperties.result.data.data; }, computed: { ...mapGetters("modal", ["getModalProperties"]) + }, + mounted() { + this.generateBarcode(this.data.id); } }; diff --git a/resources/js/vue/components/modal/label/Show.vue b/resources/js/vue/components/modal/label/Show.vue index b9dda476..f71617bb 100644 --- a/resources/js/vue/components/modal/label/Show.vue +++ b/resources/js/vue/components/modal/label/Show.vue @@ -3,7 +3,7 @@ -

Info

+

Label


@@ -67,7 +67,7 @@
- +
diff --git a/resources/js/vue/components/modal/package/Show.vue b/resources/js/vue/components/modal/package/Show.vue index c3fcc9ca..83d5b060 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 }}


-
@@ -53,7 +46,7 @@ - + diff --git a/resources/js/vue/components/modal/testresult/Show.vue b/resources/js/vue/components/modal/testresult/Show.vue index 71234a83..434ea910 100644 --- a/resources/js/vue/components/modal/testresult/Show.vue +++ b/resources/js/vue/components/modal/testresult/Show.vue @@ -3,7 +3,7 @@ -

Common Info

+

Test Type : {{ data.test_type.name }}


diff --git a/resources/js/vue/config/urls.js b/resources/js/vue/config/urls.js index 268f414d..51e14ae7 100644 --- a/resources/js/vue/config/urls.js +++ b/resources/js/vue/config/urls.js @@ -3,6 +3,7 @@ const urls = { getInfo: "/GetInfo", login: "/login", logout: "/logout", + allCities: "/GetCities", storeMedicalCenter: "/MedicalCenters", storeTestResult: "/TestResults", listFilterItemsTestResult: `/TestResults/ListFilterItems`, @@ -171,8 +172,8 @@ const urls = { verifyItem: function(id) { return `/Item/Verify/${id}`; }, - Barcode: function(code) { - return `/BarCode/${code}`; + Barcode: function(code, type) { + return `/BarCode/${code}/${type}`; }, packageBarcode: function(code) { return `/Package/Barcode/${code}`; diff --git a/resources/js/vue/store/modules/modal/getters.js b/resources/js/vue/store/modules/modal/getters.js index f0526685..1fe68876 100644 --- a/resources/js/vue/store/modules/modal/getters.js +++ b/resources/js/vue/store/modules/modal/getters.js @@ -7,6 +7,9 @@ export default { }, getModalResult: (state) => { return state.currentModal.result; + }, + getModalLink: (state) => { + return state.currentModal.link; } } diff --git a/resources/js/vue/store/modules/modal/state.js b/resources/js/vue/store/modules/modal/state.js index d64eb9f3..9b3e6557 100644 --- a/resources/js/vue/store/modules/modal/state.js +++ b/resources/js/vue/store/modules/modal/state.js @@ -2,6 +2,7 @@ export default { currentModal: { name: '', properties: {}, - result: {} + result: {}, + link : '' }, } diff --git a/resources/js/vue/views/Auth/Register.vue b/resources/js/vue/views/Auth/Register.vue index 308abefe..f47baa25 100644 --- a/resources/js/vue/views/Auth/Register.vue +++ b/resources/js/vue/views/Auth/Register.vue @@ -29,7 +29,7 @@ \ No newline at end of file + diff --git a/resources/js/vue/views/Cycle/List.vue b/resources/js/vue/views/Cycle/List.vue index 3e5f3794..b6eba46a 100644 --- a/resources/js/vue/views/Cycle/List.vue +++ b/resources/js/vue/views/Cycle/List.vue @@ -109,7 +109,7 @@ fas fa-times Remove - + fas fa-barcode Generate Barcode @@ -208,8 +208,8 @@ export default { }); } }, - async generateBarcode(code) { - const result = await ApiService.post(urls.Barcode(code)); + async generateBarcode(code, type) { + const result = await ApiService.post(urls.Barcode(code, type)); if (result && result.status == 200) { this.changeCurrentModal({ modal: "modal-barcode-barcode", diff --git a/resources/js/vue/views/Dashboard.vue b/resources/js/vue/views/Dashboard.vue index cb61e14d..b9a8e5a2 100644 --- a/resources/js/vue/views/Dashboard.vue +++ b/resources/js/vue/views/Dashboard.vue @@ -1,12 +1,11 @@