-Modificacion en sistema : Se agrega rut en el sistema

parent a2f756a1
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<?php
namespace App\Http\Controllers;
use App\Consts\AppVersion;
use App\Repositories\InstallerRepository;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class InstallerController extends Controller
{
protected $installer;
public function __construct(InstallerRepository $installer)
{
$this->installer = $installer;
}
public function index(Request $request)
{
if ($request->getSchemeAndHttpHost() . '/' . $request->route()->uri == $request->url()) $sub_directory = 'false';
else $sub_directory = 'true';
return view('vendor.installer.installer', ['sub_directory' => $sub_directory, 'app_version' => AppVersion::VERSION, 'timezones' => json_encode(timezone_identifiers_list()), 'host' => str_replace("install", "", $request->url())]);
}
public function requirements()
{
$phpSupportInfo = $this->installer->checkPHPversion(
config('installer.core.minPhpVersion')
);
$requirements = $this->installer->check(
config('installer.requirements')
);
$html = view('vendor.installer.requirements', compact('requirements', 'phpSupportInfo'))->render();
$status = false;
if (!isset($requirements['errors']) && $phpSupportInfo['supported']) {
$status = true;
}
return response()->json(['html' => $html, 'status' => $status]);
}
public function permissions()
{
$permissions = $this->installer->checkPermission(
config('installer.permissions')
);
$html = view('vendor.installer.permissions', compact('permissions'))->render();
$status = false;
if (!isset($permissions['errors'])) $status = true;
return response()->json(['html' => $html, 'status' => $status]);
}
public function environmentWizard()
{
$envConfig = $this->installer->getEnvContent();
return view('vendor.installer.environment-wizard', compact('envConfig'));
}
public function saveWizard(Request $request)
{
$data = $request->all();
$rules = config('installer.environment.form.rules');
try {
$request->validate($rules);
$this->validateCustomerData($data['customer_details']);
$app_url = str_replace("environment/save", "", $request->url());
$res = $this->installer->saveFileWizard($request->all(), $app_url);
$data['customer_details']['host'] = $app_url;
$same_directory = false;
if ($request->getSchemeAndHttpHost() . '/' . $request->route()->uri == $request->url()) $same_directory = true;
if ($res['results']) {
$outputLog = $this->installer->migrateAndSeed();
if ($outputLog['message'] == 'error') return response()->json(['status_code' => 500, 'errors' => $outputLog['status']]);
$final = $this->installer->finish($same_directory, $data['customer_details'], $data['app_timezone']);
} else return response()->json(['status_code' => 500, 'errors' => $res['message']]);
} catch (\Exception $e) {
if ($e instanceof \Illuminate\Validation\ValidationException) {
$errors = $e->errors();
return response()->json(['status_code' => 422, 'errors' => $errors,]);
}
return response()->json(['status_code' => 500, 'errors' => 'something went wrong']);
}
return response()->json(['status_code' => 200, 'dbOutputLog' => $outputLog['dbOutputLog'], 'final' => $final]);
}
public function testDBConnection(Request $request)
{
try {
$request->validate([
'database_connection' => 'required',
'database_hostname' => 'required',
'database_port' => 'required',
'database_name' => 'required',
'database_user_name' => 'required',
'database_password' => 'nullable'
]);
$database = config('database.connections.' . $request->database_connection);
$database["host"] = $request->database_hostname;
$database["port"] = $request->database_port;
$database["database"] = $request->database_name;
$database["username"] = $request->database_user_name;
$database["password"] = $request->database_password;
config(['database.connections.test_connection' => $database]);
DB::connection('test_connection')->getPdo();
} catch (\Exception $e) {
if ($e instanceof \Illuminate\Validation\ValidationException) {
$errors = $e->errors();
return response()->json(['status_code' => 422, 'errors' => $errors, 'message' => 'something went wrong']);
}
return response()->json(['status_code' => 500, 'errors' => null, 'message' => 'connection does not exists']);
}
return response()->json(['status_code' => 200, 'data' => null, 'message' => 'success']);
}
public function validateCustomerData($data)
{
validator($data, [
'purchase_code' => 'bail|required',
'name' => 'bail|required',
'company_name' => 'bail|required',
'email' => 'email|bail|required',
'phone' => 'bail|required',
'city' => 'bail|required',
'country' => 'bail|required',
'username' => 'bail|required',
])->validate();
}
}
......@@ -81,6 +81,8 @@ class ServiceController extends Controller
'email_required' => 'nullable',
'ask_phone' => 'required',
'phone_required' => 'nullable',
'ask_rut' => 'required',
'rut_required' => 'nullable',
]);
DB::beginTransaction();
try {
......@@ -152,6 +154,8 @@ class ServiceController extends Controller
'email_required' => 'nullable',
'ask_phone' => 'required',
'phone_required' => 'nullable',
'ask_rut' => 'required',
'rut_required' => 'nullable',
]);
DB::beginTransaction();
try {
......
......@@ -10,7 +10,7 @@ class Queue extends Model
{
use HasFactory;
protected $fillable = [
'service_id','number','called','letter','reference_no','phone','email','name','position'
'service_id','number','called','letter','reference_no','phone','email','name','position', 'rut'
];
protected $appends = ['formated_date','token_number'];
......
......@@ -9,7 +9,7 @@ class Service extends Model
{
use HasFactory;
protected $fillable = [
'name','letter','start_number','status','sms_enabled','optin_message_enabled','call_message_enabled','noshow_message_enabled','completed_message_enabled','optin_message_format','call_message_format','noshow_message_format','completed_message_format','ask_name','name_required','ask_email','email_required','ask_phone','phone_required','status_message_enabled','status_message_format','status_message_positions'
'name','letter','start_number','status','sms_enabled','optin_message_enabled','call_message_enabled','noshow_message_enabled','completed_message_enabled','optin_message_format','call_message_format','noshow_message_format','completed_message_format','ask_name','name_required','ask_email','email_required','ask_phone','phone_required','status_message_enabled','status_message_format','status_message_positions, ask_rut, rut_required'
];
......
......@@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Storage;
class Setting extends Model
{
protected $fillable = [
'language_id', 'name', 'address', 'email', 'phone', 'location', 'display_notification', 'display_font_size', 'display_font_color', 'logo', 'timezone', 'sms_url', 'sms_enabled', 'installed'
'language_id', 'name', 'address', 'email', 'phone', 'location', 'display_notification', 'display_font_size', 'display_font_color', 'logo', 'timezone', 'sms_url', 'sms_enabled', 'installed','rut'
];
protected $appends = ['logo_url'];
......
<?php
namespace App\Repositories;
use App\Models\Setting;
use Exception;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Symfony\Component\Console\Output\BufferedOutput;
use Throwable;
class InstallerRepository
{
protected $results = [];
public function __construct()
{
$this->envPath = base_path('.env');
$this->envExamplePath = base_path('.env.example');
}
public function checkPHPversion(string $minPhpVersion = null)
{
$minVersionPhp = $minPhpVersion;
$currentPhpVersion = $this->getPhpVersionInfo();
$supported = false;
if ($minPhpVersion == null) {
$minVersionPhp = $this->getMinPhpVersion();
}
if (version_compare($currentPhpVersion['version'], $minVersionPhp) >= 0) {
$supported = true;
}
$phpStatus = [
'full' => $currentPhpVersion['full'],
'current' => $currentPhpVersion['version'],
'minimum' => $minVersionPhp,
'supported' => $supported,
];
return $phpStatus;
}
private static function getPhpVersionInfo()
{
$currentVersionFull = PHP_VERSION;
preg_match("#^\d+(\.\d+)*#", $currentVersionFull, $filtered);
$currentVersion = $filtered[0];
return [
'full' => $currentVersionFull,
'version' => $currentVersion,
];
}
protected function getMinPhpVersion()
{
return $this->_minPhpVersion;
}
public function check(array $requirements)
{
$results = [];
foreach ($requirements as $type => $requirement) {
switch ($type) {
// check php requirements
case 'php':
foreach ($requirements[$type] as $requirement) {
$results['requirements'][$type][$requirement] = true;
if (!extension_loaded($requirement)) {
$results['requirements'][$type][$requirement] = false;
$results['errors'] = true;
}
}
break;
// check apache requirements
case 'apache':
foreach ($requirements[$type] as $requirement) {
// if function doesn't exist we can't check apache modules
if (function_exists('apache_get_modules')) {
$results['requirements'][$type][$requirement] = true;
if (!in_array($requirement, apache_get_modules())) {
$results['requirements'][$type][$requirement] = false;
$results['errors'] = true;
}
}
}
break;
}
}
return $results;
}
public function checkPermission(array $folders)
{
foreach ($folders as $folder => $permission) {
if (!($this->getPermission($folder) >= $permission)) {
$this->addFileAndSetErrors($folder, $permission, false);
} else {
$this->addFile($folder, $permission, true);
}
}
return $this->results;
}
private function getPermission($folder)
{
return substr(sprintf('%o', fileperms(base_path($folder))), -4);
}
/**
* Add the file to the list of results.
*
* @param $folder
* @param $permission
* @param $isSet
*/
private function addFile($folder, $permission, $isSet)
{
if (!isset($this->results['permissions'])) $this->results['permissions'] = [];
array_push($this->results['permissions'], [
'folder' => $folder,
'permission' => $permission,
'isSet' => $isSet,
]);
}
/**
* Add the file and set the errors.
*
* @param $folder
* @param $permission
* @param $isSet
*/
private function addFileAndSetErrors($folder, $permission, $isSet)
{
$this->addFile($folder, $permission, $isSet);
$this->results['errors'] = true;
}
public function getEnvContent()
{
if (!file_exists($this->envPath)) {
if (file_exists($this->envExamplePath)) {
copy($this->envExamplePath, $this->envPath);
} else {
touch($this->envPath);
}
}
return file_get_contents($this->envPath);
}
public function saveFileWizard($request, $app_url)
{
$results = true;
$message = 'Your .env file settings have been saved.';
$envFileData =
'APP_NAME=\'' . $request['app_name'] . "'\n" .
'APP_ENV=local' . "\n" .
'APP_KEY=' . 'base64:' . base64_encode(Str::random(32)) . "\n" .
'APP_DEBUG=true' . "\n" .
'APP_LOG_LEVEL=debug' . "\n" .
'APP_URL=' . $app_url . "\n\n" .
'DB_CONNECTION=' . $request['database_connection'] . "\n" .
'DB_HOST=' . $request['database_hostname'] . "\n" .
'DB_PORT=' . $request['database_port'] . "\n" .
'DB_DATABASE=' . $request['database_name'] . "\n" .
'DB_USERNAME=' . $request['database_username'] . "\n" .
'DB_PASSWORD=' . $request['database_password'] . "\n\n";
try {
file_put_contents($this->envPath, $envFileData);
$database = config('database.connections.' . $request['database_connection']);
$database["host"] = $request['database_hostname'];
$database["port"] = $request['database_port'];
$database["database"] = $request['database_name'];
$database["username"] = $request['database_username'];
$database["password"] = $request['database_password'];
config(['database.connections.' . $request['database_connection'] => $database]);
} catch (Exception $e) {
$results = false;
$message = 'Unable to save the .env file, Please create it manually.';
}
return ['results' => $results, 'message' => $message];
}
public function migrateAndSeed()
{
$outputLog = new BufferedOutput();
return $this->migrate($outputLog);
}
private function migrate(BufferedOutput $outputLog)
{
try {
Artisan::call('optimize:clear');
Artisan::call('optimize');
Artisan::call('migrate', ['--force' => true], $outputLog);
} catch (Exception $e) {
return $this->response($e->getMessage(), 'error', $outputLog);
}
return $this->seed($outputLog);
}
private function seed(BufferedOutput $outputLog)
{
try {
Artisan::call('db:seed', ['--force' => true], $outputLog);
} catch (Exception $e) {
return $this->response($e->getMessage(), 'error', $outputLog);
}
return $this->response('Successfully Completed', 'success', $outputLog);
}
private function response($message, $status, BufferedOutput $outputLog)
{
return [
'status' => $status,
'message' => $message,
'dbOutputLog' => $outputLog->fetch(),
];
}
public function finish($same_directory, $customer_details, $timezone)
{
$finalMessages = $this->runFinal($same_directory);
$this->setTimezone($timezone);
$this->setCustomerDetails($customer_details);
$this->updateInstalledStatus();
$finalStatusMessage = $this->create();
$finalEnvFile = $this->getEnvContent();
return ['finalMessages' => $finalMessages, 'finalStatusMessage' => $finalStatusMessage, 'finalEnvFile' => $finalEnvFile];
}
public function runFinal($same_directory)
{
$outputLog = new BufferedOutput;
$this->generateKey($outputLog);
$this->publishVendorAssets($outputLog);
$this->linkStorage($outputLog);
if (!$same_directory) $this->clearRoute($outputLog);
$this->createFile();
return $outputLog->fetch();
}
private static function publishVendorAssets(BufferedOutput $outputLog)
{
try {
if (config('installer.final.publish')) {
Artisan::call('vendor:publish', ['--all' => true], $outputLog);
}
} catch (Exception $e) {
return static::response('error', $e->getMessage(), $outputLog);
}
return $outputLog;
}
private static function generateKey(BufferedOutput $outputLog)
{
try {
if (config('installer.final.key')) {
Artisan::call('key:generate', ['--force' => true], $outputLog);
}
} catch (Exception $e) {
return static::response('error', $e->getMessage(), $outputLog);
}
return $outputLog;
}
private static function linkStorage(BufferedOutput $outputLog)
{
try {
if (config('installer.final.key')) {
Artisan::call('storage:link');
}
} catch (Exception $e) {
return null;
}
return $outputLog;
}
private static function updateInstalledStatus()
{
$settings = Setting::first();
$settings->installed = 1;
$settings->save();
return $settings;
}
private static function setTimezone($timezone)
{
try {
$settings = Setting::first();
$settings->timezone = $timezone;
$settings->save();
} catch (Throwable $th) {
return null;
}
return true;
}
private static function clearRoute(BufferedOutput $outputLog)
{
try {
if (config('installer.final.key')) {
Artisan::call('route:clear');
}
} catch (Exception $e) {
return null;
}
return $outputLog;
}
private static function createFile()
{
$data = [];
Storage::put('public/tokens_for_callpage.json', json_encode($data));
Storage::put('public/tokens_for_display.json', json_encode($data));
}
public function create()
{
// $installedLogFile = storage_path('installed');
// $dateStamp = date('Y/m/d h:i:sa');
//if (!file_exists($installedLogFile)) {
$message = 'JL Token Installer successfully INSTALLED on' . date('Y/m/d h:i:sa') . "\n";
// file_put_contents($installedLogFile, $message);
// } else {
// $message = 'JL Token Installer successfully UPDATED on' . $dateStamp;
// file_put_contents($installedLogFile, $message . PHP_EOL, FILE_APPEND | LOCK_EX);
// }
return $message;
}
public function setCustomerDetails($data)
{
try {
$response = Http::withoutVerifying()
->withOptions(["verify" => false])
->post(config('services.key_verification.set_customer_details'), $data);
if ($response->successful() && isset($response->collect()['status_code']) && $response->collect()['status_code'] == 200) {
return 'Success';
}
throw new Exception('verification api error');
} catch (\Throwable $th) {
throw new Exception('verification api error');
}
}
}
......@@ -47,6 +47,8 @@ class ServiceRepository
'name_required' => $data['ask_name'] == 1 ? $data['name_required'] : false,
'ask_email' => $data['ask_email'],
'email_required' => $data['ask_email'] == 1 ? $data['email_required'] : false,
'ask_rut' => $data['ask_rut'],
'rut_required' => $data['ask_rut'] == 1 ? $data['rut_required'] : false
]);
return $service;
}
......@@ -75,6 +77,8 @@ class ServiceRepository
$service->email_required = ($data['ask_email'] == 1) ? $data['email_required'] : false;
$service->ask_phone = $data['ask_phone'];
$service->phone_required = ($data['ask_phone'] == 1) ? $data['phone_required'] : false;
$service->ask_rut = $data['ask_rut'];
$service->rut_required = ($data['ask_rut'] == 1) ? $data['rut_required'] : false;
$service->save();
return $service;
}
......
......@@ -25,6 +25,7 @@ class TokenRepository
'name' => ($is_details && $service->ask_name == 1) ? $data['name'] : null,
'email' => ($is_details && $service->ask_email == 1) ? $data['email'] : null,
'phone' => ($is_details && $service->ask_phone == 1) ? $data['phone'] : null,
'rut' => ($is_details && $service->ask_rut == 1) ? $data['rut'] : null,
'position' => $this->customerWaiting($service) + 1
]);
return $queue;
......
<?php
return [
/*
|--------------------------------------------------------------------------
| Server Requirements
|--------------------------------------------------------------------------
|
| This is the default Laravel server requirements, you can add as many
| as your application require, we check if the extension is enabled
| by looping through the array and run "extension_loaded" on it.
|
*/
'core' => [
'minPhpVersion' => '7.3.0',
],
'final' => [
'key' => true,
'publish' => false,
],
'requirements' => [
'php' => [
'openssl',
'pdo',
'mbstring',
'tokenizer',
'JSON',
'cURL',
'bcmath',
'ctype',
'fileinfo',
'xml',
],
'apache' => [
'mod_rewrite',
],
],
/*
|--------------------------------------------------------------------------
| Folders Permissions
|--------------------------------------------------------------------------
|
| This is the default Laravel folders permissions, if your application
| requires more permissions just add them to the array list bellow.
|
*/
'permissions' => [
'storage/framework/' => '775',
'storage/app/' => '775',
'storage/logs/' => '775',
'bootstrap/cache/' => '775',
],
/*
|--------------------------------------------------------------------------
| Environment Form Wizard Validation Rules & Messages
|--------------------------------------------------------------------------
|
| This are the default form field validation rules. Available Rules:
| https://laravel.com/docs/5.4/validation#available-validation-rules
|
*/
'environment' => [
'form' => [
'rules' => [
'app_name' => 'required|string|max:50',
'database_connection' => 'required|string|max:50',
'database_hostname' => 'required|string|max:50',
'database_port' => 'required|numeric',
'database_name' => 'required|string|max:50',
'database_username' => 'required|string|max:50',
'database_password' => 'nullable|string|max:50',
'customer_details' => 'required',
'app_timezone' => 'required'
],
],
],
/*
|--------------------------------------------------------------------------
| Installed Middleware Options
|--------------------------------------------------------------------------
| Different available status switch configuration for the
| canInstall middleware located in `canInstall.php`.
|
*/
'installed' => [
'redirectOptions' => [
'route' => [
'name' => 'welcome',
'data' => [],
],
'abort' => [
'type' => '404',
],
'dump' => [
'data' => 'Dumping a not found message.',
],
],
],
/*
|--------------------------------------------------------------------------
| Selected Installed Middleware Option
|--------------------------------------------------------------------------
| The selected option fo what happens when an installer instance has been
| Default output is to `/resources/views/error/404.blade.php` if none.
| The available middleware options include:
| route, abort, dump, 404, default, ''
|
*/
'installedAlreadyAction' => '',
/*
|--------------------------------------------------------------------------
| Updater Enabled
|--------------------------------------------------------------------------
| Can the application run the '/update' route with the migrations.
| The default option is set to False if none is present.
| Boolean value
|
*/
'updaterEnabled' => 'true',
];
......@@ -70,6 +70,8 @@ return [
'Email is required' => 'Email is required',
'Ask Phone For Token' => 'Ask Phone For Token',
'Phone is required' => 'Phone is required',
'Ask Rut For Token' => 'Ask Rut For Token',
'Rut is required' => 'Rut is required',
'Optin Message' => 'Optin Message',
'Optin Message Format' => 'Optin Message Format',
'Call Message' => 'Call Message',
......@@ -153,6 +155,7 @@ return [
],
'settings' => [
'company settings' => 'Company Settings',
'rut' => 'Rut',
'name' => 'Name',
'email' => 'Email',
'address' => 'Address',
......
......@@ -70,6 +70,8 @@ return [
'Email is required' => 'correo electronico es requerido',
'Ask Phone For Token' => 'Pedir token al teléfono',
'Phone is required' => 'Se requiere teléfono',
'Ask Rut For Token' => 'Pedir token al rut',
'Rut is required' => 'Se requiere rut',
'Optin Message' => 'Mensaje de suscripción',
'Optin Message Format' => 'Formato de mensaje de opción',
'Call Message' => 'Mensaje de llamada',
......@@ -157,6 +159,7 @@ return [
'company settings' => 'Configuración de la empresa',
'name' => 'Nombre',
'email' => 'Correo electrónico',
'rut' => 'Rut',
'address' => 'Habla a',
'phone' => 'Teléfono',
'location' => 'Ubicación',
......
......@@ -58,6 +58,13 @@
<label for="email">{{__('messages.settings.email')}}</label>
<div class="email">
</div>
</div>
<div class="input-field col s4" id="rut_tab">
<input id="rut" name="rut" type="text" value="" data-error=".rut">
<label for="rut">{{__('messages.settings.rut')}}</label>
<div class="rut">
</div>
</div>
</div>
......@@ -88,7 +95,9 @@
if (value.ask_name == 1) $('#name_tab').show();
else $('#name_tab').hide();
if (value.ask_phone == 1) $('#phone_tab').show();
else $('#phone_tab').hide()
else $('#phone_tab').hide();
if (value.ask_rut == 1) $('#rut_tab').show();
else $('#rut_tab').hide();
service = value;
$('#modal_button').removeAttr('disabled');
$('#modal1').modal('open');
......@@ -122,6 +131,11 @@
},
number: true
},
rut: {
required: function(element) {
return service.rut_required == "1";
},
},
},
errorElement: 'div',
errorPlacement: function(error, element) {
......@@ -140,6 +154,7 @@
name: $('#name').val(),
email: $('#email').val(),
phone: $('#phone').val(),
rut: $('#rut').val(),
with_details: true
}
createToken(data);
......@@ -159,6 +174,7 @@
$('#phone').val(null);
$('#email').val(null);
$('#name').val(null);
$('#rut').val(null);
let html = `
<p style="font-size: 15px; font-weight: bold; margin-top:-15px;">` + response.settings.name + `,` + response.settings.location + `
</p>
......@@ -175,7 +191,7 @@
$('#printarea').html(html);
$('body').addClass('loaded');
window.print();
} else if (response.status_code == 422 && response.errors && (response.errors['name'] || response.errors['email'] || response.errors['phone'])) {
} else if (response.status_code == 422 && response.errors && (response.errors['name'] || response.errors['email'] || response.errors['phone'] || response.errors['rut'])) {
$('#modal_button').removeAttr('disabled');
if (response.errors['name'] && response.errors['name'][0]) {
$('.name').html('<span class="text-danger errbk">' + response.errors['name'][0] + '</span>')
......@@ -186,12 +202,16 @@
if (response.errors['phone'] && response.errors['phone'][0]) {
$('.phone').html('<span class="text-danger errbk">' + response.errors['phone'][0] + '</span>')
}
if (response.errors['rut'] && response.errors['rut'][0]) {
$('.rut').html('<span class="text-danger errbk">' + response.errors['rut'][0] + '</span>')
}
$('body').addClass('loaded');
} else {
$('#modal1').modal('close');
$('#phone').val(null);
$('#email').val(null);
$('#name').val(null);
$('#rut').val(null);
$('body').addClass('loaded');
M.toast({
html: 'something went wrong',
......
......@@ -131,6 +131,31 @@
@endif
</div>
</div>
<div class="row form_align">
<div class="input-field col s3">
<select name="ask_rut" id="ask_rut" data-error=".ask_rut" onchange="enableRequired()">
<option value="0" selected>No</option>
<option value="1">Yes</option>
</select>
<label>{{__('messages.service_page.Ask Rut For Token')}}</label>
<div class="ask_rut">
@if ($errors->has('ask_rut'))
<span class="text-danger errbk">{{ $errors->first('ask_rut') }}</span>
@endif
</div>
</div>
<div class="input-field col s3">
<select name="rut_required" id="rut_required" data-error=".rut_required">
<option value="0" selected>No</option>
<option value="1">Yes</option>
</select>
<label>{{__('messages.service_page.Rut is required')}}</label>
<div class="rut_required">
@if ($errors->has('rut_required'))
<span class="text-danger errbk">{{ $errors->first('rut_required') }}</span>
@endif
</div>
</div>
@if($settings->sms_enabled)
<div class="input-field col s6">
<select name="sms" id="sms" data-error=".sms" onchange="changeSMS()">
......@@ -449,6 +474,12 @@
$('#email_required').val(0);
$('#email_required').prop('disabled', true);
}
if($('#ask_rut').val() == 1){
$('#rut_required').prop('disabled', false);
}else{
$('#rut_required').val(0);
$('#rut_required').prop('disabled', true);
}
if ($('#ask_phone').val() == 1) {
$('#phone_required,#sms').prop('disabled', false);
} else {
......
......@@ -131,6 +131,34 @@
@endif
</div>
</div>
<!---
Se añade configuracion de rut
!-->
<div class="row form_align">
<div class="input-field col s3">
<select name="ask_rut" id="ask_rut" data-error=".ask_rut" onchange="enableRequired()">
<option value="0" @if($service->ask_rut==0) selected @endif>No</option>
<option value="1" @if($service->ask_rut==1) selected @endif>Yes</option>
</select>
<label>{{__('messages.service_page.Ask Rut For Token')}}</label>
<div class="ask_rut">
@if ($errors->has('ask_rut'))
<span class="text-danger errbk">{{ $errors->first('ask_rut') }}</span>
@endif
</div>
</div>
<div class="input-field col s3">
<select name="rut_required" id="rut_required" data-error=".rut_required">
<option value="0" @if($service->rut_required==0) selected @endif>No</option>
<option value="1" @if($service->rut_required==1) selected @endif>Yes</option>
</select>
<label>{{__('messages.service_page.Rut is required')}}</label>
<div class="rut_required">
@if ($errors->has('rut_required'))
<span class="text-danger errbk">{{ $errors->first('rut_required') }}</span>
@endif
</div>
</div>
@if($settings->sms_enabled)
<div class="input-field col s6">
<select name="sms" id="sms" data-error=".sms" onchange="changeSMS()">
......@@ -455,6 +483,8 @@
}
if ($('#ask_phone').val() == 1) {
$('#phone_required,#sms').prop('disabled', false);
}if($('#ask_rut').val() == 1){
$('#rut_required').prop('disabled', false);
} else {
$('#sms,#phone_required').val(0);
$('#phone_required,#sms').prop('disabled', true);
......
<?php
\ No newline at end of file
use App\Http\Controllers\InstallerController;
use Illuminate\Support\Facades\Route;
Route::get('/install', [InstallerController::class, 'index'])->name('install');
Route::get('/requirements', [InstallerController::class, 'requirements'])->name('requirements');
Route::get('/permissions', [InstallerController::class, 'permissions'])->name('permissions');
Route::get('/environment', [InstallerController::class, 'environmentWizard'])->name('environment');
Route::post('/test-connection', [InstallerController::class, 'testDBConnection'])->name('test-connection');
Route::post('/environment/save', [InstallerController::class, 'saveWizard'])->name('set-env');
{"tokens_for_call":[{"id":5,"service_id":1,"number":1,"called":0,"reference_no":"YX0CqzUH5","letter":"TO","name":null,"email":null,"phone":null,"rut":null,"position":1,"created_at":"2022-12-20T18:28:00.000000Z","updated_at":"2022-12-20T18:28:00.000000Z","formated_date":"20-December-2022","token_number":"TO-1"},{"id":6,"service_id":1,"number":2,"called":0,"reference_no":"iF52pedUN","letter":"TO","name":null,"email":null,"phone":null,"rut":null,"position":2,"created_at":"2022-12-20T18:28:06.000000Z","updated_at":"2022-12-20T18:28:06.000000Z","formated_date":"20-December-2022","token_number":"TO-2"},{"id":7,"service_id":1,"number":3,"called":0,"reference_no":"JWKbyP6KF","letter":"TO","name":null,"email":null,"phone":null,"rut":null,"position":3,"created_at":"2022-12-20T18:28:32.000000Z","updated_at":"2022-12-20T18:28:32.000000Z","formated_date":"20-December-2022","token_number":"TO-3"}],"called_tokens":[]}
\ No newline at end of file
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