07-08-2021, 06:53 AM
(This post was last modified: 07-08-2021, 07:00 AM by dremy_kelupallun.)
It is a snippet of the code, I leave the complete copy of the controller code
PHP Code: <?php namespace App\Controllers\Viaticos;
use App\Controllers\BaseController; use App\Models\Configuracion\Md_usuarios; use App\Models\Viaticos\Md_calidad_juridica; use App\Models\Viaticos\Md_establecimientos; use App\Models\Viaticos\Md_grados_descripcion; use App\Models\Viaticos\Md_departamentos; use App\Models\Viaticos\Md_forma_pago; use App\Models\Viaticos\Md_banco; use App\Models\Viaticos\Md_dep_direc_subdirec; use App\Models\Viaticos\Md_dep_departamentos_enc; use App\Models\Viaticos\Md_dep_sub_departamentos; use App\Models\Viaticos\Md_dep_secciones; use App\Models\Viaticos\Md_temporadas; use App\Models\Viaticos\Md_viaticos; use App\Models\Viaticos\Md_viaticos_traza; use App\Models\Nominas\Md_carpeta_documentos; use App\Models\Nominas\Md_carpeta_detalle; use \Mpdf\Mpdf;
class Ctrl_viaticos extends BaseController { protected $usuarios; protected $calidad_juridica; protected $establecimientos; protected $grados_descripcion; protected $departamentos; protected $forma_pago; protected $banco; protected $direccion; protected $departamentos2; protected $subdepartamentos; protected $secciones; protected $temporadas; protected $viaticos; protected $viaticos_traza; protected $carpeta_documentos; protected $carpeta_detalle; protected $sesión; protected $db; protected $validaViatico; // protected $mpdf;
public function __construct() { $this->usuarios = new Md_usuarios(); $this->calidad_juridica = new Md_calidad_juridica(); $this->establecimientos = new Md_establecimientos(); $this->grados_descripcion = new Md_grados_descripcion(); $this->departamentos = new Md_departamentos(); $this->forma_pago = new Md_forma_pago(); $this->banco = new Md_banco(); $this->direccion = new Md_dep_direc_subdirec(); $this->departamentos2 = new Md_dep_departamentos_enc(); $this->subdepartamentos = new Md_dep_sub_departamentos(); $this->secciones = new Md_dep_secciones(); $this->temporadas = new Md_temporadas(); $this->viaticos = new Md_viaticos(); $this->viaticos_traza = new Md_viaticos_traza(); $this->carpeta_documentos = new Md_carpeta_documentos(); $this->carpeta_detalle = new Md_carpeta_detalle(); $this->sesión = session(); $this->db = \Config\Database::connect();
$this->validaViatico = [ "rut" => "required", "total" => "required", "calidad_juridica" => "required", "establecimiento" => "required", "grado" => "required", "departamento" => "required", "cargo" => "required|max_length[45]|regex_match[/a-zA-ZñÑáÁéÉíÍóÓúÚ /]", "motivo" => "required|max_length[500]|regex_match[/^;\"'{}\[\]^<>=/]", "lugar" => "required|max_length[500]|regex_match[/^;\"'{}\[\]^<>=/]", "viatico_100" => "required|numeric", "valor_100" => "required|numeric", "viatico_40" => "required|numeric", "valor_40" => "required|numeric", "viatico_20" => "required|numeric", "valor_20" => "required|numeric", "pernocta" => "required", "fecha_desde" => "required", "fecha_hasta" => "required", "forma_pago" => "required", "banco" => "required", "n_cuenta" => "required|max_length[20]|numeric", ]; // $this->mpdf = new \Mpdf\Mpdf([ // 'mode' => 'utf-8', // 'format' => [48, 75], // 'margin_top' => 2, // 'margin_left' => 5, // 'margin_right' => 3, // 'margin_bottom' => 3 // ]); }
public function validar_sesion() { if (!$this->sesión->has("rut_ses")) { echo "La sesión expiró, actualice el sitio web con F5"; exit(); } }
public function buscar_funcionario() { $this->validar_sesion(); echo view("Viaticos/buscar_funcionario"); }
public function datatable_buscar_funcionario() { $this->validar_sesion(); return $this->usuarios->datatable_buscar_funcionario($this->db); }
public function llenar_cmb_calidad_juridica() { $this->validar_sesion(); $datosCalidadJuridica = $this->calidad_juridica->select("codigo as id")->select("cal_descripcion as calidad_juridica")->where("activar", 1)->findAll();
return json_encode($datosCalidadJuridica); }
public function llenar_cmb_establecimiento() { $this->validar_sesion(); $datosEstab = $this->establecimientos->select("codigo as id")->select("est_descripcion as establecimiento")->findAll();
return json_encode($datosEstab); }
public function llenar_cmb_grado() { $this->validar_sesion(); $datosGrados = $this->grados_descripcion->select("id_grado as id")->select("descripcion as grado")->findAll();
return json_encode($datosGrados); }
public function llenar_cmb_departamento() { $this->validar_sesion(); $datosDepa = $this->departamentos->select("codigo as id")->select("descripcion as departamento")->where("activar", 1)->findAll();
return json_encode($datosDepa); }
public function llenar_cmb_forma_pago() { $this->validar_sesion(); $datosFormaPago = $this->forma_pago->select("codigo as id")->select("forma_descripcion as forma_pago")->findAll();
return json_encode($datosFormaPago); }
public function llenar_cmb_banco() { $this->validar_sesion(); $datosBanco = $this->banco->select("codigo as id")->select("banco_descripcion as banco")->findAll();
return json_encode($datosBanco); }
public function llenar_cmb_direccion() { $this->validar_sesion(); $datosDireccion = $this->direccion->select("id")->select("glosa as direccion")->where("activar", 1)->findAll();
return json_encode($datosDireccion); }
public function llenar_cmb_departamento2($datos) { $this->validar_sesion(); $datos = json_decode($datos, true); $id_direccion = $datos["id_direccion"];
if ($id_direccion != "") { $datosDepartamento = $this->departamentos2->select("id")->select("glosa as departamento")->where("id_direc", $id_direccion)->where("activar", 1)->findAll(); } else { $datosDepartamento = $this->departamentos2->select("id")->select("glosa as departamento")->where("activar", 1)->findAll(); }
return json_encode($datosDepartamento); }
public function llenar_cmb_subdepartamento($datos) { $this->validar_sesion(); $datos = json_decode($datos, true); $id_departamento = $datos["id_departamento"];
if ($id_departamento != "") { $datosSubdepa = $this->subdepartamentos->select("id")->select("glosa as subdepartamento")->where("id_departamento", $id_departamento)->where("activar", 1)->findAll(); } else { $datosSubdepa = $this->subdepartamentos->select("id")->select("glosa as subdepartamento")->where("activar", 1)->findAll(); }
return json_encode($datosSubdepa); }
public function llenar_cmb_seccion($datos) { $this->validar_sesion(); $datos = json_decode($datos, true); $id_subdepartamento = $datos["id_subdepartamento"];
if ($id_subdepartamento != "") { $datosSeccion = $this->secciones->select("id")->select("glosa as seccion")->where("id_subdepto", $id_subdepartamento)->where("activar", 1)->findAll(); } else { $datosSeccion = $this->secciones->select("id")->select("glosa as seccion")->where("activar", 1)->findAll(); }
return json_encode($datosSeccion); }
public function consulta_año() { $this->validar_sesion(); $fecha_desde = $this->request->getPost("fecha_desde");
echo $this->temporadas->consulta_año($this->db, $fecha_desde); }
public function consultar_monto_temporada() { $this->validar_sesion(); $fecha_desde = $this->request->getPost("fecha_desde"); $rut = $this->request->getPost("rut");
echo $this->temporadas->consultar_monto_temporada($this->db, $fecha_desde, $rut); }
public function buscar_nomina() { $this->validar_sesion(); echo view("Viaticos/buscar_nomina"); }
public function datatable_buscar_nomina() { $this->validar_sesion(); define("ACTIVO", 1); $id_usuario = $this->sesión->rut_ses;
$datosNominas = $this->carpeta_documentos->select("id")->select("glosa as nombre_nomina")->select("IFNULL(ELT(FIELD(TIPO, 1, 2, 3),'Viáticos','Pasajes','Documentos'),'Sin registro') as tipo_carpeta")->where("usuario", $id_usuario)->where("estado", ACTIVO)->findAll();
$salida = array('data' => $datosNominas); return json_encode($salida); }
public function guardar_viatico() { $this->validar_sesion(); if ($this->request->getMethod() == "post" && $this->validate($this->validaViatico)) { define("PENDIENTE", 0); define("OK", 1);
$rut = $this->request->getPost("rut"); $total = $this->request->getPost("total"); $calidad_juridica = $this->request->getPost("calidad_juridica"); $establecimiento = $this->request->getPost("establecimiento"); $grado = $this->request->getPost("grado"); $departamento = $this->request->getPost("departamento"); $cargo = $this->request->getPost("cargo"); $id_nomina = $this->request->getPost("id_nomina"); $motivo = $this->request->getPost("motivo"); $lugar = $this->request->getPost("lugar"); $viatico_100 = $this->request->getPost("viatico_100"); $valor_100 = $this->request->getPost("valor_100"); $viatico_40 = $this->request->getPost("viatico_40"); $valor_40 = $this->request->getPost("valor_40"); $viatico_20 = $this->request->getPost("viatico_20"); $valor_20 = $this->request->getPost("valor_20"); $pernocta = $this->request->getPost("pernocta"); $noches = $this->request->getPost("noches"); $fecha_desde = $this->request->getPost("fecha_desde"); $fecha_hasta = $this->request->getPost("fecha_hasta"); $forma_pago = $this->request->getPost("forma_pago"); $banco = $this->request->getPost("banco"); $n_cuenta = $this->request->getPost("n_cuenta"); $direccion = $this->request->getPost("direccion"); $departamento2 = $this->request->getPost("departamento2"); $subdepartamento = $this->request->getPost("subdepartamento"); $seccion = $this->request->getPost("seccion"); $procedimiento_2 = $this->request->getPost("procedimiento_2"); $movil = $this->request->getPost("movil"); $qth = $this->request->getPost("qth"); $hora_salida = $this->request->getPost("hora_salida"); $hora_llegada = $this->request->getPost("hora_llegada"); $tiempo_encomienda = $this->request->getPost("tiempo_encomienda");
$rut_usuario = $this->sesión->rut_ses; $fecha = date("Y-m-d H:i:s");
$this->db->transStart();
$datosViatico = [ "rut_funcionario" => $rut, "motivo" => $motivo, "lugar" => $lugar, "dias_100" => $viatico_100, "monto_entero" => $valor_100, "dias_40" => $viatico_40, "monto_medio" => $valor_40, "dias_20" => $viatico_20, "monto_medio20" => $valor_20, "pernocta" => $pernocta, "noches" => $noches, "fecha_desde" => $fecha_desde, "fecha_hasta" => $fecha_hasta, "total" => $total, "aprobacion" => PENDIENTE, "rut_usuario" => $rut_usuario, "fecha" => $fecha, "samu_2procedimiento" => $procedimiento_2, "samu_movil" => $movil, "samu_qth" => $qth, "samu_hora_salida" => $hora_salida, "samu_hora_llegada" => $hora_llegada, "samu_tiempo_encomienda" => $tiempo_encomienda, "forma_pago" => $forma_pago, "banco" => $banco, "n_cuenta" => $n_cuenta, "cargo" => $cargo, "departamento" => $departamento, "grado" => $grado, "est_cod" => $establecimiento, "cjuridica" => $calidad_juridica, "direccion_subdireccion" => $direccion, "departamento_enc" => $departamento2, "subdepartamento" => $subdepartamento, "seccion" => $seccion ];
$this->viaticos->save($datosViatico);
$datosUsuarios = [ "rut" => $rut, "forma_pago" => $forma_pago, "banco" => $banco, "n_cuenta" => $n_cuenta, "cargo" => $cargo, "departamento" => $departamento, "direccion_subdireccion" => $direccion, "departamento_enc" => $departamento2, "subdepartamento" => $subdepartamento, "seccion" => $seccion ];
$this->usuarios->save($datosUsuarios);
$obtener_id = $this->viaticos->select("max(codigo) as id_viatico")->first(); $id_viatico = $obtener_id["id_viatico"];
$datosViaticoTraza = [ "id_viatico" => $id_viatico, "estado" => PENDIENTE, "rut_usuario" => $rut_usuario, "fecha" => $fecha ];
$this->viaticos_traza->save($datosViaticoTraza);
$datosNominaDetalle = [ "id_carpeta" => $id_nomina, "id_documento" => $id_viatico ];
$this->carpeta_detalle->insert($datosNominaDetalle);
$this->db->transComplete();
if ($this->db->transStatus()) { echo OK; } else { echo "Error al registrar el viático"; } } } } ?>
View:
Code: <div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0">Ingreso Viáticos</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item active">Viáticos</li>
<li class="breadcrumb-item active">Ingreso Viáticos</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
<div class="card">
<div class="card-body">
<div class="container-fluid">
<center>
<button class="btn btn-success" id="btn_aceptar" name="btn_aceptar" type="button"><i class="fas fa-save"></i> Aceptar</button>
<button class="btn btn-info" id="btn_limpiar" name="btn_limpiar" type="button"><i class="fas fa-broom"></i> Limpiar</button>
</center>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<div class="card-title">
Formulario Ingreso de Viáticos
</div>
</div>
<div class="card-body">
<form id="form_viatico" name="form_viatico" enctype="multipart/form-data">
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_total">Total a Pagar</label>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">$</span>
</div>
<input type='text' class="form-control bg-info" id='txt_total' name="txt_total" style="font-size: 120%;" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_rut">RUN Funcionario</label>
<div class="input-group">
<input type='text' class="form-control" id='txt_rut' name="txt_rut" placeholder="Ingrese RUN y presione ENTER" />
<div class="input-group-append">
<button class="btn btn-outline-dark" type="button" id="btn_buscar_func" name="btn_buscar_func"><i class="fas fa-search"></i> Busqueda Avanzada</button>
</div>
</div>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_nombre_completo">Nombre Completo</label>
<input type='text' class="form-control" id='txt_nombre_completo' name="txt_nombre_completo" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_calidad_juridica">Calidad Jurídica</label>
<select id="cmb_calidad_juridica" name="cmb_calidad_juridica" class="form-control"></select>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_establecimiento">Establecimiento</label>
<select id="cmb_establecimiento" name="cmb_establecimiento" class="form-control"></select>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_grado">Grado</label>
<select id="cmb_grado" name="cmb_grado" class="form-control"></select>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_cargo">Cargo</label>
<input type='text' class="form-control" id='txt_cargo' name="txt_cargo" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_departamento">Departamento</label>
<select id="cmb_departamento" name="cmb_departamento" class="form-control"></select>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="container-fluid">
<div class="row">
<div class="card-title">Buscar Nómina (Opcional)</div>
</div>
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_id_nomina">Id. Nómina</label>
<input type='text' class="form-control" id='txt_id_nomina' name="txt_id_nomina" />
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_nombre_nomina">Nombre Nómina</label>
<div class="input-group">
<input type='text' class="form-control" id='txt_nombre_nomina' name="txt_nombre_nomina" />
<div class="input-group-append">
<button class="btn btn-outline-dark" type="button" id="btn_buscar_nomina" name="btn_buscar_nomina"><i class="fas fa-search"></i> Buscar Nómina</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Ingreso de Datos</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Detalle SAMU</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
<div class="container-fluid">
<br>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" name="chk_viatico_0" id="chk_viatico_0">
<label class="form-check-label" for="chk_viatico_0">Viático costo $0</label>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_motivo">Motivo</label>
<textarea class="form-control" id="txt_motivo" name="txt_motivo" rows="3"></textarea>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_lugar">Lugar</label>
<textarea class="form-control" id="txt_lugar" name="txt_lugar" rows="3"></textarea>
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_viatico_100">Viático Completo 100%</label>
<input type='number' class="form-control" id='txt_viatico_100' name="txt_viatico_100" min="0" value="0" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_valor_100">Valor Grado 100%</label>
<input type='text' class="form-control" id='txt_valor_100' name="txt_valor_100" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_viatico_40">Viático Parcial 40%</label>
<input type='number' class="form-control" id='txt_viatico_40' name="txt_viatico_40" min="0" value="0" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_valor_40">Valor Grado 40%</label>
<input type='text' class="form-control" id='txt_valor_40' name="txt_valor_40" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_viatico_20">Viático Parcial 20%</label>
<input type='number' class="form-control" id='txt_viatico_20' name="txt_viatico_20" min="0" value="0" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_valor_20">Valor Grado 20%</label>
<input type='text' class="form-control" id='txt_valor_20' name="txt_valor_20" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_pernocta">Pernocta Fuera</label>
<input type='text' class="form-control" id='txt_pernocta' name="txt_pernocta" value="No" />
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_noches">Noches</label>
<input type='text' class="form-control" id='txt_noches' name="txt_noches" value="0" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="dt_desde">Desde</label>
<input type='text' class="form-control" id='dt_desde' name="dt_desde" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="dt_hasta">Hasta</label>
<input type='text' class="form-control" id='dt_hasta' name="dt_hasta" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_forma_pago">Forma de Pago</label>
<select id="cmb_forma_pago" name="cmb_forma_pago" class="form-control"></select>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_banco">Banco</label>
<select id="cmb_banco" name="cmb_banco" class="form-control"></select>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_n_cuenta">N° de Cuenta</label>
<input type='text' class="form-control" id='txt_n_cuenta' name="txt_n_cuenta" />
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_direccion">Dirección/Subdirección</label>
<select id="cmb_direccion" name="cmb_direccion" class="form-control"></select>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_departamento2">Departamento</label>
<select id="cmb_departamento2" name="cmb_departamento2" class="form-control"></select>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_subdepartamento">Subdepartamento</label>
<select id="cmb_subdepartamento" name="cmb_subdepartamento" class="form-control"></select>
</div>
</div>
<div class="col-xl-6 col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="cmb_seccion">Sección</label>
<select id="cmb_seccion" name="cmb_seccion" class="form-control"></select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
<div class="container-fluid">
<br>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_procedimiento_2">2° Procedimiento</label>
<input type='text' class="form-control" id='txt_procedimiento_2' name="txt_procedimiento_2" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_movil">Móvil</label>
<input type='text' class="form-control" id='txt_movil' name="txt_movil" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_qth">QTH</label>
<input type='text' class="form-control" id='txt_qth' name="txt_qth" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_hora_salida">Hora Salida</label>
<input type='text' class="form-control" id='txt_hora_salida' name="txt_hora_salida" value="00:00" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_hora_llegada">Hora Llegada</label>
<input type='text' class="form-control" id='txt_hora_llegada' name="txt_hora_llegada" value="00:00" />
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="form-group">
<label class="small mb-1" for="txt_tiempo_encomienda">Tiempo Encomienda</label>
<input type='text' class="form-control" id='txt_tiempo_encomienda' name="txt_tiempo_encomienda" value="00:00" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<div id="dlg_buscar" class="modal fade" role="dialog">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h4 id="titulo_modal" class="modal-title"></h4>
</div>
<div class="modal-body">
<input type="hidden" name="txt_origen" id="txt_origen" value="ingresar_viatico">
<div id="divContenedorBuscar"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-dark" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="<?php echo base_url(); ?>/js/Viaticos/ingresar_viatico.js"></script>
JS, function:
Code: function guardar_viatico() {
var rut = $("#txt_rut").val();
var total = $("#txt_total").val();
var calidad_juridica = $("#cmb_calidad_juridica").val();
var establecimiento = $("#cmb_establecimiento").val();
var grado = $("#cmb_grado").val();
var departamento = $("#cmb_departamento").val();
var cargo = $("#txt_cargo").val();
var id_nomina = $("#txt_id_nomina").val();
var motivo = $("#txt_motivo").val();
var lugar = $("#txt_lugar").val();
var viatico_100 = $("#txt_viatico_100").val();
var valor_100 = $("#txt_valor_100").val();
var viatico_40 = $("#txt_viatico_40").val();
var valor_40 = $("#txt_valor_40").val();
var viatico_20 = $("#txt_viatico_20").val();
var valor_20 = $("#txt_valor_20").val();
var pernocta = $("#txt_pernocta").val();
var noches = $("#txt_noches").val();
var fecha_desde = $("#dt_desde").val();
var fecha_hasta = $("#dt_hasta").val();
var forma_pago = $("#cmb_forma_pago").val();
var banco = $("#cmb_banco").val();
var n_cuenta = $("#txt_n_cuenta").val();
var direccion = $("#cmb_direccion").val();
var departamento2 = $("#cmb_departamento2").val();
var subdepartamento = $("#cmb_subdepartamento").val();
var seccion = $("#cmb_seccion").val();
var procedimiento_2 = $("#txt_procedimiento_2").val();
var movil = $("#txt_movil").val();
var qth = $("#txt_qth").val();
var hora_salida = $("#txt_hora_salida").val();
var hora_llegada = $("#txt_hora_llegada").val();
var tiempo_encomienda = $("#txt_tiempo_encomienda").val();
if (viatico_20 > 0 || viatico_40 > 0 || viatico_100 > 0) {
if ($("#dt_desde").data("DateTimePicker").date() <= $("#dt_hasta").data("DateTimePicker").date()) {
if (pernocta=="Si"){
pernocta="S";
}else if(pernocta=="No"){
pernocta="N";
}
$.ajax({
url: base_url + "/index.php/Viaticos/Ctrl_viaticos/guardar_viatico",
type: "POST",
async: false,
data: {
rut: rut,
total: total,
calidad_juridica: calidad_juridica,
establecimiento: establecimiento,
grado: grado,
departamento: departamento,
cargo: cargo,
id_nomina: id_nomina,
motivo: motivo,
lugar: lugar,
viatico_100: viatico_100,
valor_100: valor_100,
viatico_40: viatico_40,
valor_40: valor_40,
viatico_20: viatico_20,
valor_20: valor_20,
pernocta: pernocta,
noches: noches,
fecha_desde: fecha_desde,
fecha_hasta: fecha_hasta,
forma_pago: forma_pago,
banco: banco,
n_cuenta: n_cuenta,
direccion: direccion,
departamento2: departamento2,
subdepartamento: subdepartamento,
seccion: seccion,
procedimiento_2: procedimiento_2,
movil: movil,
qth: qth,
hora_salida: hora_salida,
hora_llegada: hora_llegada,
tiempo_encomienda: tiempo_encomienda
},
success: function(respuesta) {
const OK = 1;
if (respuesta == OK) {
Toast.create("Éxito", "Viático guardado con éxito", TOAST_STATUS.SUCCESS, 5000);
// viatico_pdf();
limpiar_datos();
} else {
Toast.create("Error", respuesta, TOAST_STATUS.DANGER, 5000);
}
},
error: function(error) {
respuesta = JSON.parse(error["responseText"]);
Toast.create("Error", respuesta.message, TOAST_STATUS.DANGER, 5000);
}
});
} else {
Toast.create("Aviso", "Tiene que seleccionar al menos un viático (parcial o completo).", TOAST_STATUS.WARNING, 5000);
}
} else {
Toast.create("Aviso", "Tiene que seleccionar al menos un viático (parcial o completo).", TOAST_STATUS.WARNING, 5000);
}
}
|