Commit ecd58c68 authored by Cristian Mauricio Diaz Canales's avatar Cristian Mauricio Diaz Canales 💬

Merge branch 'padNumerico' into 'master'

Pad numerico

See merge request !1
parents f5affe25 bf956fea
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Jobs\SendSmsJob; use App\Jobs\SendSmsJob;
use App\Models\User;
use App\Models\Call; use App\Models\Call;
use App\Models\Counter; use App\Models\Counter;
use App\Models\Service; use App\Models\Service;
...@@ -15,6 +16,7 @@ use App\Repositories\TokenRepository; ...@@ -15,6 +16,7 @@ use App\Repositories\TokenRepository;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
class CallController extends Controller class CallController extends Controller
{ {
...@@ -30,7 +32,8 @@ class CallController extends Controller ...@@ -30,7 +32,8 @@ class CallController extends Controller
public function showCallPage(Request $request) public function showCallPage(Request $request)
{ {
return view('call.call', ['counters' => $this->counterRepository->getAllActiveCounters(), 'services' => $this->serviceRepository->getAllActiveServices(), 'date' => Carbon::now()->toDateString(), 'show_menu' => true, 'settings' => Setting::first()]);
return view('call.call', ['counters' => $this->counterRepository->getAllActiveCounters(), 'services' => $this->serviceRepository->getAllActiveServicesByUser(Auth::user()), 'date' => Carbon::now()->toDateString(), 'show_menu' => true, 'settings' => Setting::first()]);
} }
public function getAllServicesAndCounters() public function getAllServicesAndCounters()
......
...@@ -9,6 +9,8 @@ use App\Repositories\UserRepository; ...@@ -9,6 +9,8 @@ use App\Repositories\UserRepository;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
use App\Models\Service;
use App\Models\Uservices;
// use Spatie\Permission\Models\Role; // use Spatie\Permission\Models\Role;
...@@ -46,7 +48,7 @@ class UserController extends Controller ...@@ -46,7 +48,7 @@ class UserController extends Controller
*/ */
public function create() public function create()
{ {
return view('user.create', ['roles' => Role::get()]); return view('user.create', ['roles' => Role::get(), 'activities' => Service::get()]);
} }
/** /**
...@@ -61,8 +63,10 @@ class UserController extends Controller ...@@ -61,8 +63,10 @@ class UserController extends Controller
'email' => 'required|email|unique:users', 'email' => 'required|email|unique:users',
'name' => 'required', 'name' => 'required',
'password' => 'required|min:5', 'password' => 'required|min:5',
'role' => 'exists:roles,id' 'role' => 'exists:roles,id',
'services' => 'exists: services,id'
]); ]);
DB::beginTransaction(); DB::beginTransaction();
try { try {
$users = $this->users->create($request->all()); $users = $this->users->create($request->all());
...@@ -95,9 +99,18 @@ class UserController extends Controller ...@@ -95,9 +99,18 @@ class UserController extends Controller
*/ */
public function edit(User $user) public function edit(User $user)
{ {
//Obtener id de la actividad asociada al usuario
$actividadAsociada = Uservices::where('user_id', $user->id)->first();
if(is_null($actividadAsociada)){
$actividad = 0;
}else{
$actividad = $actividadAsociada->services_id;
}
return view('user.edit', [ return view('user.edit', [
'user' => $user, 'user' => $user,
'roles' => Role::get() 'roles' => Role::get(),
'activities' => Service::get(),
'actividadAsociada' => $actividad
]); ]);
} }
...@@ -113,13 +126,17 @@ class UserController extends Controller ...@@ -113,13 +126,17 @@ class UserController extends Controller
$request->validate([ $request->validate([
'email' => 'required|email|unique:users,email,' . $user->id, 'email' => 'required|email|unique:users,email,' . $user->id,
'name' => 'required', 'name' => 'required',
'role' => 'required|exists:roles,id' 'role' => 'required|exists:roles,id',
'activity' => 'required|exists:services,id',
]); ]);
DB::beginTransaction(); DB::beginTransaction();
try { try {
$users = $this->users->update($request->all(), $user); $users = $this->users->update($request->all(), $user);
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollback(); DB::rollback();
//print_r($e->getMessage());
//die();
$request->session()->flash('error', 'Something Went Wrong'); $request->session()->flash('error', 'Something Went Wrong');
return redirect()->route('users.index'); return redirect()->route('users.index');
} }
......
...@@ -5,6 +5,7 @@ namespace App\Models; ...@@ -5,6 +5,7 @@ namespace App\Models;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Symfony\Component\Translation\TranslatorInterface;
class Queue extends Model class Queue extends Model
{ {
...@@ -20,8 +21,61 @@ class Queue extends Model ...@@ -20,8 +21,61 @@ class Queue extends Model
} }
public function getFormatedDateAttribute($value){ public function getFormatedDateAttribute($value){
$date = Carbon::parse($this->created_at)->format('j-F-Y'); $dateString = Carbon::parse($this->created_at)->format('Y-m-d');
return $date; $format = 'Y-m-d'; // input format
$date = Carbon::createFromFormat($format, $dateString);
$spanishMonths = [
'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'
];
$year= explode('-',$dateString)[0];
$month = explode('-',$dateString)[1];
$day = explode('-',$dateString)[2];
switch($month):
case '01':
$mntStr = $spanishMonths[0];
break;
case '02':
$mntStr = $spanishMonths[1];
break;
case '03':
$mntStr = $spanishMonths[2];
break;
case '04':
$mntStr = $spanishMonths[3];
break;
case '05':
$mntStr = $spanishMonths[4];
break;
case '06':
$mntStr = $spanishMonths[5];
break;
case '07':
$mntStr = $spanishMonths[6];
break;
case '08':
$mntStr = $spanishMonths[7];
break;
case '09':
$mntStr = $spanishMonths[8];
break;
case '10':
$mntStr = $spanishMonths[9];
break;
case '11':
$mntStr = $spanishMonths[10];
break;
case '12':
$mntStr = $spanishMonths[11];
break;
endswitch;
return $year."-".$mntStr."-".$day;
} }
public function call(){ public function call(){
return $this->hasOne(Call::class); return $this->hasOne(Call::class);
...@@ -30,4 +84,5 @@ class Queue extends Model ...@@ -30,4 +84,5 @@ class Queue extends Model
public function getTokenNumberAttribute(){ public function getTokenNumberAttribute(){
return $this->letter.'-'.$this->number; return $this->letter.'-'.$this->number;
} }
} }
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Uservices extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'services_id'
];
protected $primaryKey = 'use_id';
public $incrementing = true;
}
...@@ -4,6 +4,7 @@ namespace App\Repositories; ...@@ -4,6 +4,7 @@ namespace App\Repositories;
use App\Models\Service; use App\Models\Service;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\DB;
class ServiceRepository class ServiceRepository
{ {
...@@ -12,6 +13,17 @@ class ServiceRepository ...@@ -12,6 +13,17 @@ class ServiceRepository
return Service::get(); return Service::get();
} }
public function getAllActiveServicesByUser($user)
{
$services = DB::table('uservices')
->join('services', 'uservices.services_id', '=', 'services.id')
->select('services.*')
->where('uservices.user_id',$user->id)
->get();
return $services;
}
public function getAllActiveServices() public function getAllActiveServices()
{ {
return Service::where('status', true)->get(); return Service::where('status', true)->get();
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
namespace App\Repositories; namespace App\Repositories;
use App\Models\User; use App\Models\User;
use App\Models\Uservices;
use App\Repositories\UserviceRepository;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
...@@ -19,6 +21,11 @@ class UserRepository ...@@ -19,6 +21,11 @@ class UserRepository
'password' => Hash::make($data['password']), 'password' => Hash::make($data['password']),
]); ]);
$user->assignRole($data['role']); $user->assignRole($data['role']);
$uservices = new UserviceRepository();
$uservices->create([
'user_id' => $user->id,
'services_id' => $data['activity']
]);
return $user; return $user;
} }
...@@ -26,6 +33,7 @@ class UserRepository ...@@ -26,6 +33,7 @@ class UserRepository
{ {
$user->name= $data['name']; $user->name= $data['name'];
$user->email= $data['email']; $user->email= $data['email'];
if(isset($data['password'])) if(isset($data['password']))
{ {
$user->password= Hash::make($data['password']); $user->password= Hash::make($data['password']);
...@@ -47,11 +55,21 @@ class UserRepository ...@@ -47,11 +55,21 @@ class UserRepository
$user->syncRoles($data['role']); $user->syncRoles($data['role']);
} }
} }
if(!$from_profile){
if($data['activity']){
$uservices = Uservices::where('user_id',$user->id)->first();
//Llamar a UservicesRepository
$uservicesrepository = new UserviceRepository();
$uservicesrepository->update($uservices,["user_id" => $user->id, "services_id" => $data["activity"]]);
}
}
return $user; return $user;
} }
public function delete($data,$user) public function delete($data,$user)
{ {
$user->delete(); $user->delete();
Uservices::where('user_id', $user->id)->delete();
if($user->image) if($user->image)
{ {
Storage::disk('public')->delete($user->image); Storage::disk('public')->delete($user->image);
......
<?php
namespace App\Repositories;
use App\Models\Uservices;
class UserviceRepository
{
public function create($data)
{
$uservice = Uservices::create([
'user_id' => $data['user_id'],
'services_id' => $data['services_id']
]);
return $uservice;
}
public function update($uservice,$data)
{
if(!is_null($uservice)){
$uservice->user_id = $data["user_id"];
$uservice->services_id = $data["services_id"];
$uservice->save();
}else{
$uservice = Uservices::create([
'user_id' => $data['user_id'],
'services_id' => $data['services_id']]);
}
return $uservice;
}
}
...@@ -101,7 +101,9 @@ return [ ...@@ -101,7 +101,9 @@ return [
'image' => 'Image', 'image' => 'Image',
'role' => 'Role', 'role' => 'Role',
'select role' => 'Select Role', 'select role' => 'Select Role',
'edit user' => 'Edit User' 'edit user' => 'Edit User',
'select activities' => 'Select Activity',
'activity' => 'Activiy'
], ],
'user_roles_page' => [ 'user_roles_page' => [
'user roles' => 'User Roles', 'user roles' => 'User Roles',
......
...@@ -100,7 +100,9 @@ return [ ...@@ -100,7 +100,9 @@ return [
'image' => 'Imagen', 'image' => 'Imagen',
'role' => 'Papel', 'role' => 'Papel',
'select role' => 'Seleccionar rol', 'select role' => 'Seleccionar rol',
'edit user' => 'editar usuario' 'edit user' => 'editar usuario',
'select activities' => 'Seleccionar Actividades',
'activity' => 'Actividad'
], ],
'user_roles_page' => [ 'user_roles_page' => [
'user roles' => 'Roles del usuario', 'user roles' => 'Roles del usuario',
......
...@@ -75,11 +75,11 @@ ...@@ -75,11 +75,11 @@
</div> </div>
<div class="input-field col-lg-4 s4" id="rut_tab"> <div class="input-field col-lg-4 s4" id="rut_tab">
<input id="rut" name="rut" type="text" value="" oninput="formatearRut(this);" data-error=".rut"> <input id="rut" name="rut" type="text" value="" maxlength="12" oninput="formatearRut(this);" maxlength=13 data-error=".rut" autofocus>
<label for="rut">{{__('messages.settings.rut')}}</label> <label for="rut">{{__('messages.settings.rut')}}</label>
<div class="rut"> <div class="rut">
<span><b>Ingrese su rut para poder solicitar su número de atención</b></span> <span><b>Ingrese su rut para poder solicitar su número de atención</b></span>
<div class="input-field numeric-pad" style="padding-left: 150px;"> <div class="input-field numeric-pad" style="padding-left: 150px">
<button onclick="escribirValor(1,event)">1</button> <button onclick="escribirValor(1,event)">1</button>
<button onclick="escribirValor(2,event)">2</button> <button onclick="escribirValor(2,event)">2</button>
<button onclick="escribirValor(3,event)">3</button> <button onclick="escribirValor(3,event)">3</button>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<button onclick="escribirValor(9,event)">9</button> <button onclick="escribirValor(9,event)">9</button>
<button onclick="escribirValor(-2,event)">K</button> <button onclick="escribirValor(-2,event)">K</button>
<button onclick="escribirValor(0,event)">0</button> <button onclick="escribirValor(0,event)">0</button>
<button onclick="escribirValor(-1,event)">Del</button> <button onclick="escribirValor(-1,event)">Borrar</button>
</div> </div>
</div> </div>
</div> </div>
...@@ -139,6 +139,8 @@ ...@@ -139,6 +139,8 @@
function formatearRut(input){ function formatearRut(input){
let value = input.value.replace(/\./g, '').replace('-', ''); let value = input.value.replace(/\./g, '').replace('-', '');
let maxLength = 12;
if (value.length > maxLength) value = value.slice(0, maxLength);
if (value.match(/^(\d{2})(\d{3}){2}(\w{1})$/)) { if (value.match(/^(\d{2})(\d{3}){2}(\w{1})$/)) {
value = value.replace(/^(\d{2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4'); value = value.replace(/^(\d{2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4');
...@@ -157,6 +159,8 @@ ...@@ -157,6 +159,8 @@
function formatearRutPorValor(val){ function formatearRutPorValor(val){
let value = val.replace(/\./g, '').replace('-', ''); let value = val.replace(/\./g, '').replace('-', '');
let maxLength = 12;
if (value.length > maxLength) value = value.slice(0, maxLength);
if (value.match(/^(\d{2})(\d{3}){2}(\w{1})$/)) { if (value.match(/^(\d{2})(\d{3}){2}(\w{1})$/)) {
value = value.replace(/^(\d{2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4'); value = value.replace(/^(\d{2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4');
...@@ -177,7 +181,9 @@ ...@@ -177,7 +181,9 @@
event.preventDefault(); event.preventDefault();
let inputValue = $("#rut").val(); let inputValue = $("#rut").val();
if(number == -1){ if(number == -1){
inputValue = inputValue.slice(0,-1); inputValue = $("#rut").val("");
$("#rut").focus();
return;
}else if(number == -2){ }else if(number == -2){
inputValue = inputValue+""+"K"; inputValue = inputValue+""+"K";
}else{ }else{
...@@ -198,8 +204,10 @@ ...@@ -198,8 +204,10 @@
else $('#phone_tab').hide() else $('#phone_tab').hide()
if (value.ask_rut == 1) { if (value.ask_rut == 1) {
$('#rut_tab').show(); $('#rut_tab').show();
$('#rut_pad').show();
}else{ }else{
$('#rut_tab').hide(); $('#rut_tab').hide();
$('#rut_pad').hide();
} }
service = value; service = value;
......
...@@ -76,6 +76,15 @@ ...@@ -76,6 +76,15 @@
</select> </select>
<label>{{__('messages.user_page.role')}}</label> <label>{{__('messages.user_page.role')}}</label>
</div> </div>
<div class="input-field col s6">
<select name="activity" id="activities_id">
<option value="" disabled selected>{{__('messages.user_page.select activities')}}</option>
@foreach ($activities as $activity)
<option value="{{$activity->id}}">{{$activity->name}} </option>
@endforeach
</select>
<label>{{__('messages.user_page.activity')}}</label>
</div>
</div> </div>
</div> </div>
<div class="input-field col s12"> <div class="input-field col s12">
...@@ -109,6 +118,9 @@ ...@@ -109,6 +118,9 @@
role: { role: {
required: true, required: true,
}, },
activity:{
required: true,
},
email: { email: {
required: true, required: true,
email: true, email: true,
......
...@@ -78,6 +78,15 @@ ...@@ -78,6 +78,15 @@
</select> </select>
<label>{{__('messages.user_page.role')}}</label> <label>{{__('messages.user_page.role')}}</label>
</div> </div>
<div class="input-field col s6">
<select name="activity" id="activities_id">
<option value="" disabled selected>{{__('messages.user_page.select activities')}}</option>
@foreach ($activities as $activity)
<option value="{{$activity->id}}" {{ $activity->id == $actividadAsociada ? 'selected' : '' }}>{{$activity->name}} </option>
@endforeach
</select>
<label>{{__('messages.user_page.activity')}}</label>
</div>
</div> </div>
<div class="input-field col s12"> <div class="input-field col s12">
<button class="btn waves-effect waves-light right submit" type="submit" name="action">{{__('messages.common.update')}} <button class="btn waves-effect waves-light right submit" type="submit" name="action">{{__('messages.common.update')}}
...@@ -110,6 +119,9 @@ ...@@ -110,6 +119,9 @@
role: { role: {
required: true, required: true,
}, },
activity: {
required: true,
},
email: { email: {
required: true, required: true,
email: true email: true
......
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