diff --git a/app/Http/Controllers/PackController.php b/app/Http/Controllers/LabelController.php similarity index 57% rename from app/Http/Controllers/PackController.php rename to app/Http/Controllers/LabelController.php index 5a0d2c7b..2bdcf644 100644 --- a/app/Http/Controllers/PackController.php +++ b/app/Http/Controllers/LabelController.php @@ -3,14 +3,15 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; -use App\Http\Requests\StorePackRequest; -use App\Pack; +use App\Http\Requests\StoreLabelRequest; +use App\Label; +use App\Package; -class PackController extends Controller +class LabelController extends Controller { public function index(Request $request) { - $Packs = Pack::when($request->has('name') && $request->name != '', function($query) use($request){ + $Labels = Label::when($request->has('name') && $request->name != '', function($query) use($request){ $query->where('name', 'LIKE', '%'.$request->name.'%'); }) ->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){ @@ -31,20 +32,20 @@ class PackController extends Controller }); }) ->with('user', 'user.medical_center')->paginate(10); - return \MessageResponse::data($Packs); + return \MessageResponse::data($Labels); } public function create() { } - public function show(Pack $Pack) + public function show(Label $Label) { - $Pack->load('user', 'packages', 'user.medical_center'); - return \MessageResponse::data($Pack); + $Label->load('user', 'packages', 'user.medical_center'); + return \MessageResponse::data($Label); } - public function store(StorePackRequest $request) + public function store(StoreLabelRequest $request) { - $PackData = [ + $LabelData = [ 'name' => $request->name, 'sterile_date' => $request->sterile_date, 'expire_date' => $request->expire_date, @@ -55,44 +56,48 @@ class PackController extends Controller 'note' => $request->note, 'user_id' => auth('api')->user()->id, ]; - $PackObj = Pack::create($PackData); - $PackObj->packages()->attach($request->packages); + $LabelObj = Label::create($LabelData); + Package::find($request->package_id)->update(['label_id' => $Label->id]); return \MessageResponse::success(trans('messages.success')); } - public function edit(Pack $Pack) + public function edit(Label $Label) { - $Packages = $Pack->packages->pluck('id')->toArray(); - unset($Pack->packages); - $Pack->packages = $Packages; - return \MessageResponse::data($Pack); + $Label->load('package'); + dd($Label); + // $Packages = $Label->packages->pluck('id')->toArray(); + // unset($Label->packages); + // $Label->package_id = $Label->package->id; + return \MessageResponse::data($Label); } - public function update(StorePackRequest $request, Pack $Pack) + public function update(Request $request, Label $Label) { - $Pack->update($request->except(['packages'])); - $Pack->packages()->sync($request->packages); + $Label->update($request->except(['package_id'])); + Package::find($request->package_id)->update(['label_id' => $Label->id]); + // $Label->package()->save($request->package_id); + // $Label->packages()->sync($request->packages); return \MessageResponse::success(trans('messages.success')); } - public function destroy(Pack $Pack) + public function destroy(Label $Label) { - if (auth('api')->user()->cant('delete', $Pack)) { + if (auth('api')->user()->cant('delete', $Label)) { return \MessageResponse::error(trans('messages.access_denied')); } - if(count($Pack->packages)) + if(count($Label->packages)) { - $Pack->packages()->detach(); + $Label->packages()->detach(); } - if(count($Pack->cycles)) + if(count($Label->cycles)) { - $Pack->cycles()->detach(); + $Label->cycles()->detach(); } - $Pack->delete(); + $Label->delete(); return \MessageResponse::success(trans('messages.success')); } - public function getPacks() + public function getLabels() { - $Packs = Pack::with('user')->get(); - return \MessageResponse::data($Packs); + $Labels = Label::with('user')->get(); + return \MessageResponse::data($Labels); } } diff --git a/app/Http/Controllers/PackageController.php b/app/Http/Controllers/PackageController.php index b89d84e9..518a65a9 100644 --- a/app/Http/Controllers/PackageController.php +++ b/app/Http/Controllers/PackageController.php @@ -39,20 +39,73 @@ class PackageController extends Controller 'verified' => 'NotVerified', ]; $PackageObj = Package::create($PackageData); + $Items = []; + $count = 1; + foreach ($request->items as $key => $item) { + if (array_key_exists($item['id'], $Items)) { + $preCount = $Items[$item['id']]; + $Items[$item['id']] = $preCount + 1; + } + else { + $Items[$item['id']] = $count; + } + } + foreach ($Items as $Item => $Count) { + $Package->items()->attach(array($Item), ['count' => $Count]); + } $PackageObj->items()->attach($request->items); return \MessageResponse::success(trans('messages.success')); } public function edit(Package $Package) { - $Items = $Package->items->pluck('id')->toArray(); + $Items = []; + $Package->load('items'); + // dd($Package); + foreach ($Package->items as $item) { + for ($i=0; $i < $item->pivot->count ; $i++) { + $Items[] = (object) array('id' => $item->id, 'name' => $item->name); + } + } unset($Package->items); $Package->items = $Items; return \MessageResponse::data($Package); } public function update(StorePackageRequest $request, Package $Package) { + // dd($request->items); $Package->update($request->except(['items'])); - $Package->items()->sync($request->items); + $Items = []; + $count = 1; + foreach ($request->items as $key => $item) { + // dump(in_array($item['id'], array_column($Items, 'id'))); + // if (in_array($item['id'], array_column($Items, 'id'))) { + // $index = array_search($item['id'], array_column($Items)); + // dump(array_search($item['id'], $Items)); + // $Items[$index]['count'] += 1; + // // dump($Items); + // } + // else { + // $Item1 = ['id' => $item['id'], 'count' => $count]; + // $Items[] = $Item1; + // } + + if (array_key_exists($item['id'], $Items)) { + $preCount = $Items[$item['id']]; + $Items[$item['id']] = $preCount + 1; + } + else { + $Items[$item['id']] = $count; + } + } + // dd($Items); + $Package->items()->detach(); + // foreach ($Items as $Item) { + // $Package->items()->attach(array($Item['id']), ['count' => $Item['count']]); + // } + foreach ($Items as $Item => $Count) { + $Package->items()->attach(array($Item), ['count' => $Count]); + } + // $Package->items()->sync($request->items); return \MessageResponse::success(trans('messages.success')); } public function destroy(Package $Package) diff --git a/app/Http/Controllers/TestResultController.php b/app/Http/Controllers/TestResultController.php index a1ccb493..316b2557 100644 --- a/app/Http/Controllers/TestResultController.php +++ b/app/Http/Controllers/TestResultController.php @@ -41,12 +41,10 @@ class TestResultController extends Controller } $TestResult = TestResult::with('test_type', 'user', 'user.medical_center') - ->when($request->has('verified'), function ($query) use ($request) - { + ->when($request->has('verified'), function ($query) use ($request){ return $query->where('verified', $request->verified); }) - ->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request) - { + ->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request){ $from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00'); $upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59'); return $query->whereBetween('created_at', [$from, $upTo]); diff --git a/app/Http/Requests/StorePackRequest.php b/app/Http/Requests/StoreLabelRequest.php similarity index 72% rename from app/Http/Requests/StorePackRequest.php rename to app/Http/Requests/StoreLabelRequest.php index ab791054..d214036c 100644 --- a/app/Http/Requests/StorePackRequest.php +++ b/app/Http/Requests/StoreLabelRequest.php @@ -2,21 +2,21 @@ namespace App\Http\Requests; -use App\Pack; +use App\Label; use Illuminate\Validation\Rule; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Contracts\Validation\Validator; -class StorePackRequest extends FormRequest +class StoreLabelRequest extends FormRequest { public function authorize() { if ($this->method() == 'POST') { - return auth('api')->check() && auth('api')->user()->can('store', Pack::class); + return auth('api')->check() && auth('api')->user()->can('store', Label::class); } else { - $Pack = $this->route('Pack'); - return auth('api')->check() && $Pack && auth('api')->user()->can('update', $Pack); + $Label = $this->route('Label'); + return auth('api')->check() && $Label && auth('api')->user()->can('update', $Label); } } @@ -25,7 +25,7 @@ class StorePackRequest extends FormRequest switch ($this->method()) { case 'POST': { return [ - 'name' => 'required|max:100|unique:packs', + 'name' => 'required|max:100|unique:labels', 'sterile_date' => 'required', 'expire_date' => 'required', 'sterilizer_id' => 'required', @@ -33,15 +33,15 @@ class StorePackRequest extends FormRequest 'lot_number' => 'required', 'department' => 'required', 'note' => 'nullable', - 'packages' => 'required', + 'package_id' => 'required', ]; break; } case 'PUT': case 'PATCH': { - $Pack = $this->route('Pack'); + $Label = $this->route('Label'); return [ - 'name' => 'required|max:100|unique:packs,id,'.$Pack->id, + 'name' => 'required|max:100|unique:labels,id,'.$Label->id, 'sterile_date' => 'required', 'expire_date' => 'required', 'sterilizer_id' => 'required', @@ -49,7 +49,7 @@ class StorePackRequest extends FormRequest 'lot_number' => 'required', 'department' => 'required', 'note' => 'nullable', - 'packages' => 'required', + 'package_id' => 'required', ]; break; diff --git a/app/Pack.php b/app/Label.php similarity index 64% rename from app/Pack.php rename to app/Label.php index 71473075..a5e83e78 100644 --- a/app/Pack.php +++ b/app/Label.php @@ -4,17 +4,21 @@ namespace App; use Illuminate\Database\Eloquent\Model; -class Pack extends Model +class Label extends Model { public $fillable = ['name', 'sterile_date', 'expire_date', 'sterilizer_id', 'cycle_number', 'lot_number', 'department', 'user_id', 'note']; public function user() { return $this->belongsTo('App\User'); } - public function packages() + public function package() { - return $this->belongsToMany('App\Package', 'pack_package'); + return $this->belongsTo('App\Package'); } + // public function packages() + // { + // return $this->belongsToMany('App\Package', 'pack_package'); + // } public function cycles() { return $this->belongsToMany('App\Cycle', 'cycle_pack'); diff --git a/app/Package.php b/app/Package.php index 4057dd76..7cba2091 100644 --- a/app/Package.php +++ b/app/Package.php @@ -6,18 +6,22 @@ use Illuminate\Database\Eloquent\Model; class Package extends Model { - public $fillable = ['name', 'unique_id', 'user_id', 'note', 'verified']; + public $fillable = ['name', 'unique_id', 'user_id', 'note', 'verified', 'label_id']; public function user() { return $this->belongsTo('App\User'); } public function items() { - return $this->belongsToMany('App\Item', 'item_package'); + return $this->belongsToMany('App\Item', 'item_package')->withPivot('count'); } - public function packs() + // public function packs() + // { + // return $this->belongsToMany('App\Pack', 'pack_package'); + // } + public function labels() { - return $this->belongsToMany('App\Pack', 'pack_package'); + return $this->hasMany('App\Label'); } } diff --git a/app/Policies/PackPolicy.php b/app/Policies/LabelPolicy.php similarity index 61% rename from app/Policies/PackPolicy.php rename to app/Policies/LabelPolicy.php index 0c1cba56..6ba23f25 100644 --- a/app/Policies/PackPolicy.php +++ b/app/Policies/LabelPolicy.php @@ -3,18 +3,18 @@ namespace App\Policies; use App\User; -use App\Pack; +use App\Label; use Doctrine\Tests\Common\Inflector\InflectorTest; -class PackPolicy +class LabelPolicy { - public function delete(User $User, Pack $Pack) + public function delete(User $User, Label $Label) { - // if($User->hasRole('Admin') && $Pack->users->count() == 0) + // if($User->hasRole('Admin') && $Label->users->count() == 0) return true; } - public function update(User $User, Pack $Pack) + public function update(User $User, Label $Label) { // if($User->hasRole('Admin')) return true; diff --git a/resources/js/vue/components/modal/cycle/Show.vue b/resources/js/vue/components/modal/cycle/Show.vue index eccbfb79..8232a33d 100644 --- a/resources/js/vue/components/modal/cycle/Show.vue +++ b/resources/js/vue/components/modal/cycle/Show.vue @@ -56,6 +56,34 @@
{{ key+1 + ": " + pack.name }}
+ + + + + diff --git a/resources/js/vue/components/modal/Pack/Show.vue b/resources/js/vue/components/modal/label/Show.vue similarity index 98% rename from resources/js/vue/components/modal/Pack/Show.vue rename to resources/js/vue/components/modal/label/Show.vue index a9ddcb61..7b70b64b 100644 --- a/resources/js/vue/components/modal/Pack/Show.vue +++ b/resources/js/vue/components/modal/label/Show.vue @@ -1,7 +1,7 @@