mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-13 01:21:07 +03:30
update cssd
This commit is contained in:
+1
-1
@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class Cycle extends Model
|
class Cycle extends Model
|
||||||
{
|
{
|
||||||
public $fillable = ['name', 'date', 'user_id', 'cycle_number', 'sterilizer_id', 'note', 'verified'];
|
public $fillable = ['name', 'date', 'user_id', 'cycle_number', 'sterilizer_id', 'note', 'verified', 'unique_id'];
|
||||||
public function user()
|
public function user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\User');
|
return $this->belongsTo('App\User');
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||||||
use \Milon\Barcode\DNS1D;
|
use \Milon\Barcode\DNS1D;
|
||||||
use \Milon\Barcode\DNS2D;
|
use \Milon\Barcode\DNS2D;
|
||||||
use App\TestResult;
|
use App\TestResult;
|
||||||
|
use App\Package;
|
||||||
|
|
||||||
class BarCodeController extends Controller
|
class BarCodeController extends Controller
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ class BarCodeController extends Controller
|
|||||||
$QRCode = DNS2D::getBarcodePNG($Number, "QRCODE");
|
$QRCode = DNS2D::getBarcodePNG($Number, "QRCODE");
|
||||||
return \MessageResponse::data(['Barcode' => 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode]);
|
return \MessageResponse::data(['Barcode' => 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public function generateQRcode(TestResult $TestResult)
|
public function generateQRcode(TestResult $TestResult)
|
||||||
{
|
{
|
||||||
@@ -29,4 +29,14 @@ class BarCodeController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public function generatePackageBarcode($Number)
|
||||||
|
{
|
||||||
|
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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,10 @@ class CycleController extends Controller
|
|||||||
}
|
}
|
||||||
public function store(StoreCycleRequest $request)
|
public function store(StoreCycleRequest $request)
|
||||||
{
|
{
|
||||||
|
$UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10);
|
||||||
$CycleData = [
|
$CycleData = [
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
|
'unique_id' => $UniqueID,
|
||||||
'date' => $request->date,
|
'date' => $request->date,
|
||||||
'sterilizer_id' => $request->sterilizer_id,
|
'sterilizer_id' => $request->sterilizer_id,
|
||||||
'cycle_number' => $request->cycle_number,
|
'cycle_number' => $request->cycle_number,
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class ItemController extends Controller
|
|||||||
->when($request->has('specific') && $request->specific != '', function($query) use($request){
|
->when($request->has('specific') && $request->specific != '', function($query) use($request){
|
||||||
$query->where('specific', $request->specific);
|
$query->where('specific', $request->specific);
|
||||||
})
|
})
|
||||||
|
->where('user_id', auth('api')->user()->id)
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
return \MessageResponse::data($Items);
|
return \MessageResponse::data($Items);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -410,6 +410,9 @@ class TestTypeController extends Controller
|
|||||||
if (!auth('api')->user()->can('delete', $TestType)) {
|
if (!auth('api')->user()->can('delete', $TestType)) {
|
||||||
return \MessageResponse::error(trans('messages.access_denied'));
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
}
|
}
|
||||||
|
$UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10);
|
||||||
|
$TestType->unique_code = $TestType->unique_code.'--'.$UniqueID;
|
||||||
|
$TestType->save();
|
||||||
$TestType->delete();
|
$TestType->delete();
|
||||||
return \MessageResponse::success(trans('messages.success'));
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,13 +26,20 @@ class StoreTestTypeRequest extends FormRequest
|
|||||||
case 'POST': {
|
case 'POST': {
|
||||||
return [
|
return [
|
||||||
'name' => 'required|max:100|unique:test_types',
|
'name' => 'required|max:100|unique:test_types',
|
||||||
'unique_code' => 'required|max:100|unique:test_types',
|
// 'unique_code' => 'required|max:100|unique:test_types',
|
||||||
'device_label' => 'required',
|
'device_label' => 'required',
|
||||||
'info.*.name'=>'required',
|
'info.*.name'=>'required',
|
||||||
'info.*.type'=>'required',
|
'info.*.type'=>'required',
|
||||||
'info.*.size'=>'nullable',
|
'info.*.size'=>'nullable',
|
||||||
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
|
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
|
||||||
];
|
];
|
||||||
|
// $rules['unique_code'] = [
|
||||||
|
// 'required',
|
||||||
|
// Rule::unique('test_types')->where(function ($query) use ($request) {
|
||||||
|
// return $query->whereNotNull('deleted_at');
|
||||||
|
// })
|
||||||
|
// ];
|
||||||
|
// return $rules;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'PUT':
|
case 'PUT':
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ return [
|
|||||||
'public' => [
|
'public' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => public_path('uploads'),
|
'root' => public_path('uploads'),
|
||||||
'url' => env('APP_URL') . '/storage',
|
// 'url' => env('APP_URL') . '/storage',
|
||||||
'visibility' => 'public',
|
'visibility' => 'public',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -130,9 +130,9 @@ export default {
|
|||||||
role: 'Admin'
|
role: 'Admin'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: {name: 'AllPack'},
|
to: {name: 'AllLabels'},
|
||||||
icon: 'fas fa-inbox',
|
icon: 'fas fa-inbox',
|
||||||
text: 'Packs'
|
text: 'Labels'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: {name: 'AllCycle'},
|
to: {name: 'AllCycle'},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<v-container grid-list-xs>
|
<v-container grid-list-xs>
|
||||||
<material-card color="black" title="Show Package">
|
<material-card color="black" id="printMe" title="Show Label">
|
||||||
<v-layout align-left justify-left wrap class="px-5 my-3">
|
<v-layout align-left justify-left wrap class="px-5 my-3">
|
||||||
<h3 class="ml-3">Info</h3>
|
<h3 class="ml-3">Info</h3>
|
||||||
<v-flex xs12>
|
<v-flex xs12>
|
||||||
@@ -53,6 +53,31 @@
|
|||||||
</v-flex>
|
</v-flex>
|
||||||
</v-layout>
|
</v-layout>
|
||||||
</v-layout>
|
</v-layout>
|
||||||
|
<v-layout id="printMe" align-left justify-left wrap class="px-5 my-3">
|
||||||
|
<h3 class="ml-3">Barcode And QRCode Image</h3>
|
||||||
|
<v-flex xs12>
|
||||||
|
<hr class="v-divider theme--light">
|
||||||
|
</v-flex>
|
||||||
|
<v-layout row wrap class="ml-4">
|
||||||
|
<v-flex xs12 md6 sm6 v-if="data.bar_code">
|
||||||
|
<img :src="data.bar_code">
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
<v-layout row wrap class="ml-4">
|
||||||
|
<v-flex xs12 md6 sm6 v-if="data.qr_code">
|
||||||
|
<img :src="data.qr_code">
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-layout>
|
||||||
|
<v-layout row wrap align-center justify-center>
|
||||||
|
<v-flex class xs12 md2 sm2 @click="print" >
|
||||||
|
<v-btn class="WM-CyanBlueGradient-BG" style="padding:10px 60px">
|
||||||
|
<v-icon class="white--text mr-2 caption">fas fa-print</v-icon>
|
||||||
|
<span class="white--text">Print</span>
|
||||||
|
</v-btn>
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
|
||||||
</material-card>
|
</material-card>
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
@@ -79,6 +104,39 @@ export default {
|
|||||||
this.setResultModal(result.data.data);
|
this.setResultModal(result.data.data);
|
||||||
this.closeModal();
|
this.closeModal();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
print() {
|
||||||
|
const prtHtml = document.getElementById("printMe").innerHTML;
|
||||||
|
|
||||||
|
// Get all stylesheets HTML
|
||||||
|
let stylesHtml = "";
|
||||||
|
for (const node of [
|
||||||
|
...document.querySelectorAll('link[rel="stylesheet"], style')
|
||||||
|
]) {
|
||||||
|
stylesHtml += node.outerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the print window
|
||||||
|
const WinPrint = window.open(
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0"
|
||||||
|
);
|
||||||
|
|
||||||
|
WinPrint.document.write(`<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
${stylesHtml}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
${prtHtml}
|
||||||
|
</body>
|
||||||
|
</html>`);
|
||||||
|
|
||||||
|
WinPrint.document.close();
|
||||||
|
WinPrint.focus();
|
||||||
|
WinPrint.print();
|
||||||
|
WinPrint.close();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|||||||
Vendored
+3
@@ -173,6 +173,9 @@ const urls = {
|
|||||||
},
|
},
|
||||||
Barcode: function(code) {
|
Barcode: function(code) {
|
||||||
return `/BarCode/${code}`;
|
return `/BarCode/${code}`;
|
||||||
|
},
|
||||||
|
packageBarcode: function(code) {
|
||||||
|
return `/Package/Barcode/${code}`;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export { urls };
|
export { urls };
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@ require('./services/global/errorHandler.service');
|
|||||||
// If token exists set Authorizion header
|
// If token exists set Authorizion header
|
||||||
if (TokenService.getToken()) {
|
if (TokenService.getToken()) {
|
||||||
ApiService.setAuthHeader();
|
ApiService.setAuthHeader();
|
||||||
|
|
||||||
// If info exists set info in Store
|
// If info exists set info in Store
|
||||||
if(TokenService.getInfo()) {
|
if(TokenService.getInfo()) {
|
||||||
let info = TokenService.getInfo();
|
let info = TokenService.getInfo();
|
||||||
|
|||||||
Vendored
+2
-2
@@ -165,8 +165,8 @@ export default [
|
|||||||
view: 'Pack/AddEdit'
|
view: 'Pack/AddEdit'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/packs',
|
path: '/labels',
|
||||||
name: 'AllPack',
|
name: 'AllLabels',
|
||||||
view: 'Pack/List'
|
view: 'Pack/List'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
item-text="name"
|
item-text="name"
|
||||||
item-value="id"
|
item-value="id"
|
||||||
v-model="formData.packs"
|
v-model="formData.packs"
|
||||||
label="Select Packs For Cycle"
|
label="Select Labels For Cycle"
|
||||||
></v-autocomplete>
|
></v-autocomplete>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
|
|||||||
@@ -109,6 +109,10 @@
|
|||||||
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
|
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
|
||||||
<span>Remove</span>
|
<span>Remove</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
<v-btn color="orange darken-1" @click="generateBarcode(item.unique_id)">
|
||||||
|
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
|
||||||
|
<span>Generate Barcode</span>
|
||||||
|
</v-btn>
|
||||||
</td>
|
</td>
|
||||||
</template>
|
</template>
|
||||||
</v-data-table>
|
</v-data-table>
|
||||||
@@ -204,6 +208,15 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async generateBarcode(code) {
|
||||||
|
const result = await ApiService.post(urls.Barcode(code));
|
||||||
|
if (result && result.status == 200) {
|
||||||
|
this.changeCurrentModal({
|
||||||
|
modal: "modal-barcode-barcode",
|
||||||
|
properties: { result }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
async remove(testResultId) {
|
async remove(testResultId) {
|
||||||
const result = await ApiService.delete(
|
const result = await ApiService.delete(
|
||||||
urls.removeCycle(testResultId)
|
urls.removeCycle(testResultId)
|
||||||
|
|||||||
@@ -136,7 +136,7 @@
|
|||||||
</v-btn>
|
</v-btn>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md2 sm2 class="text-md-center text-sm-center text-xs-center">
|
<v-flex xs12 md2 sm2 class="text-md-center text-sm-center text-xs-center">
|
||||||
<router-link :to="{name: 'AllPack'}">
|
<router-link :to="{name: 'AllLabels'}">
|
||||||
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
|
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
|
||||||
<v-icon class="black--text">keyboard_arrow_left</v-icon>
|
<v-icon class="black--text">keyboard_arrow_left</v-icon>
|
||||||
<span class="black--text">Back</span>
|
<span class="black--text">Back</span>
|
||||||
@@ -209,7 +209,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result && result.status == 200) {
|
if (result && result.status == 200) {
|
||||||
this.$router.push({ name: "AllPack" });
|
this.$router.push({ name: "AllLabels" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async generateBarcode(code) {
|
async generateBarcode(code) {
|
||||||
const result = await ApiService.post(urls.Barcode(code));
|
const result = await ApiService.post(urls.packageBarcode(code));
|
||||||
if (result && result.status == 200) {
|
if (result && result.status == 200) {
|
||||||
this.changeCurrentModal({
|
this.changeCurrentModal({
|
||||||
modal: "modal-barcode-barcode",
|
modal: "modal-barcode-barcode",
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ Route::group(['namespace' => 'Api'],function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Route::middleware('auth:api')->group(function () {
|
Route::middleware('auth:api')->group(function () {
|
||||||
|
|
||||||
|
|
||||||
Route::get('/TestResults/ListFilterItems', 'TestResultController@listFilterItems');
|
Route::get('/TestResults/ListFilterItems', 'TestResultController@listFilterItems');
|
||||||
Route::post('/TestResults/Verify/{TestResult}', 'TestResultController@verifyTestResult');
|
Route::post('/TestResults/Verify/{TestResult}', 'TestResultController@verifyTestResult');
|
||||||
Route::get('TestTypes/ListNames', 'TestTypeController@listNames');
|
Route::get('TestTypes/ListNames', 'TestTypeController@listNames');
|
||||||
@@ -34,6 +36,7 @@ Route::middleware('auth:api')->group(function () {
|
|||||||
Route::post('/TestResults/chart', 'TestResultController@chart');
|
Route::post('/TestResults/chart', 'TestResultController@chart');
|
||||||
// Route::get('/TestTypes/All', 'TestTypeController@AllTestTypes');
|
// Route::get('/TestTypes/All', 'TestTypeController@AllTestTypes');
|
||||||
// Route::get('/MedicalCenters/All', 'MedicalCenterController@listMedicalCenters');
|
// Route::get('/MedicalCenters/All', 'MedicalCenterController@listMedicalCenters');
|
||||||
|
|
||||||
Route::post('/BarCode/{Code}', 'BarCodeController@generateBarcode');
|
Route::post('/BarCode/{Code}', 'BarCodeController@generateBarcode');
|
||||||
Route::post('/TestResult/QRCode/{TestResult}', 'BarCodeController@generateQRcode');
|
Route::post('/TestResult/QRCode/{TestResult}', 'BarCodeController@generateQRcode');
|
||||||
|
|
||||||
@@ -58,6 +61,8 @@ Route::middleware('auth:api')->group(function () {
|
|||||||
Route::get('/GetPacks', 'PackController@getPacks');
|
Route::get('/GetPacks', 'PackController@getPacks');
|
||||||
|
|
||||||
Route::resource('Cycles', 'CycleController');
|
Route::resource('Cycles', 'CycleController');
|
||||||
|
|
||||||
|
Route::post('Package/Barcode/{Code}', 'BarCodeController@generatePackageBarcode');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('TestResults/{id}', 'TestResultController@show');
|
Route::get('TestResults/{id}', 'TestResultController@show');
|
||||||
|
|||||||
Reference in New Issue
Block a user