示例#1
0
 /**
  * Apertura 
  * 
  * Abrir el periodo de pago
  */
 public function apertura()
 {
     // Comenzar transaccion
     $this->db->trans_start();
     $fecha_inicio = $this->input->post('fecha_inicio_periodo_pago');
     // Crear una fecha de cierre
     // -Debe ser igual al ultimo dia del mes de la fecha de inicio
     $sql_fecha_inicio = to_sql($fecha_inicio);
     $str_fecha_inicio = strtotime($sql_fecha_inicio);
     $sql_fecha_cierre = date("Y-m-d", strtotime("last day of this month", $str_fecha_inicio));
     $str_fecha_cierre = strtotime($sql_fecha_cierre);
     // Abrir periodo de pago
     $this->db->set('fecha_inicio_periodo_pago', $str_fecha_inicio);
     $this->db->set('fecha_final_periodo_pago', $str_fecha_cierre);
     $this->db->set('perioro_pago_abierto', TRUE);
     $this->db->set('fondo_horario', number_to_mysql($this->input->post('fondo_horario')));
     $this->db->where('periodo_pago_id', 1);
     $this->db->update('periodo_pago');
     // Terminar transaccion
     $this->db->trans_complete();
     return $this->db->trans_status();
 }
 /**
  * create_search
  *
  * Funcion encargada de crear el codigo SQL necesario para realizar una busqueda
  * en el modulo
  * @return string
  */
 public function create_search()
 {
     $query = "";
     // AVANZADO
     $campo = $this->input->post('buscar_campo');
     $criterio = $this->input->post('buscar_criterio');
     $texto = $this->input->post('buscar_texto');
     $buscar_btn_avanzado = $this->input->post('buscar_btn_avanzado');
     $periodo = $this->input->post('b_periodo');
     // No se mando a buscar, pero hay busquedas almacenadas en session
     if (!$buscar_btn_avanzado) {
         if (!$campo or count($campo) <= 0) {
             $campo = $this->session->userdata('buscar_campo_salida_cumplimiento_norma');
             $criterio = $this->session->userdata('buscar_criterio_salida_cumplimiento_norma');
             $texto = $this->session->userdata('buscar_texto_salida_cumplimiento_norma');
             $periodo = $this->session->userdata('search_periodo_salida_cn');
         }
     }
     // Buscar
     if ($campo and count($campo) > 0) {
         // Ajustar las entradas al periodo de pago
         //----------------------------
         if ($periodo) {
             switch ($periodo) {
                 case 'present':
                     $this->db->where('fecha_inicio_periodo_pago >=', $this->periodo_pago['fipp']);
                     $this->db->where('fecha_final_periodo_pago <=', $this->periodo_pago['ffpp']);
                     break;
                 case 'past':
                     $this->db->where('fecha_final_periodo_pago <', $this->periodo_pago['fipp']);
                     break;
                 case 'both':
                     $this->db->where('fecha_final_periodo_pago <=', $this->periodo_pago['ffpp']);
                     break;
             }
         }
         foreach ($campo as $key => $value) {
             // Si el campo a buscar es de tipo fecha
             // convertir la fecha a sql
             if (strpos($value, "fecha") !== FALSE) {
                 // strtotime
                 if (strpos($value, "periodo_pago") !== FALSE) {
                     $texto[$key] = strtotime(to_sql($texto[$key]));
                 } else {
                     $texto[$key] = to_sql($texto[$key]);
                 }
             }
             switch ($criterio[$key]) {
                 case 'like_none':
                     $this->db->like($value, $texto[$key], 'none');
                     break;
                 case 'not_like_none':
                     $this->db->not_like($value, $texto[$key], 'none');
                     break;
                 case 'like_both':
                     $this->db->like($value, $texto[$key], 'both');
                     break;
                 case 'or_like_both':
                     $this->db->or_like($value, $texto[$key], 'both');
                     break;
                 case 'not_like_both':
                     $this->db->not_like($value, $texto[$key], 'both');
                     break;
                 case 'or_not_like_both':
                     $this->db->or_not_like($value, $texto[$key], 'both');
                     break;
                 case 'lt':
                     $this->db->where($value . ' < ', $texto[$key]);
                     break;
                 case 'gt':
                     $this->db->where($value . ' > ', $texto[$key]);
                     break;
             }
         }
     } else {
         $this->db->where('fecha_inicio_periodo_pago >=', $this->periodo_pago['fipp']);
         $this->db->where('fecha_final_periodo_pago <=', $this->periodo_pago['ffpp']);
     }
     // Se mando a buscar y hay texto, so alacenarlo en session,
     // no almacenar lo que ya esta almacenado, so preguntar si se envio abuscar
     if ($buscar_btn_avanzado and $campo) {
         if ($this->input->post('b_periodo')) {
             $this->session->set_userdata('search_periodo_salida_cn', $this->input->post('b_periodo'));
         }
         if ($this->input->post('buscar_campo')) {
             $this->session->set_userdata('buscar_campo_salida_cumplimiento_norma', $this->input->post('buscar_campo'));
         }
         if ($this->input->post('buscar_criterio')) {
             $this->session->set_userdata('buscar_criterio_salida_cumplimiento_norma', $this->input->post('buscar_criterio'));
         }
         if ($this->input->post('buscar_texto')) {
             $this->session->set_userdata('buscar_texto_salida_cumplimiento_norma', $this->input->post('buscar_texto'));
         }
     }
     // Se mando a buscar y no hay texto en la busqueda ni en session
     // so, eliminar de session
     if ($buscar_btn_avanzado and !$campo) {
         $this->session->unset_userdata('search_periodo_salida_cn');
         $this->session->unset_userdata('buscar_campo_salida_cumplimiento_norma');
         $this->session->unset_userdata('buscar_criterio_salida_cumplimiento_norma');
         $this->session->unset_userdata('buscar_texto_salida_cumplimiento_norma');
     }
     return $query;
 }
示例#3
0
 /**
  * Editar
  *
  * Editar el elemento del modulo
  * @return bool
  */
 public function editar($id = '')
 {
     $importe_viaje = 0;
     $importe_viaje_progresivo_incrementado = 0;
     $importe_viaje = $this->math->X($this->input->post('fk_capacidad_carga_id'), number_to_mysql($this->input->post('km_recorridos_carga')), $this->input->post('litros_entregados'), $this->input->post('fk_producto_id'), $this->input->post('fk_modo_descarga_id'), $this->input->post('fk_carga_descarga_id'), $this->input->post('numero_de_entregas'), $this->input->post('fk_operario_id'));
     $cumplimiento_norma = $this->math->Y($this->input->post('fk_operario_id'), $importe_viaje, number_to_mysql($this->input->post('horas_de_viaje')));
     // Comenzar transaccion
     $this->db->trans_start();
     // Obtener datos del periodo de pago
     $pp = $this->periodo_pago_m->get_all();
     $fipp = $pp->fecha_inicio_periodo_pago;
     $ffpp = $pp->fecha_final_periodo_pago;
     // ENTRADA
     // Datos requeridos
     $this->db->set('fk_operario_id', $this->input->post('fk_operario_id'));
     $this->db->set('fecha_incidencia', to_sql($this->input->post('fecha_incidencia')));
     $this->db->set('fecha_captacion', to_sql($this->input->post('fecha_captacion')));
     $this->db->set('fecha_inicio_periodo_pago', $fipp);
     $this->db->set('fecha_final_periodo_pago', $ffpp);
     // Datos generales
     if ($this->input->post('fk_capacidad_carga_id')) {
         $this->db->set('fk_capacidad_carga_id', $this->input->post('fk_capacidad_carga_id'));
     } else {
         $this->db->set('fk_capacidad_carga_id', NULL);
     }
     if ($this->input->post('fk_producto_id')) {
         $this->db->set('fk_producto_id', $this->input->post('fk_producto_id'));
     } else {
         $this->db->set('fk_producto_id', NULL);
     }
     if ($this->input->post('hoja_de_ruta')) {
         $this->db->set('hoja_de_ruta', $this->input->post('hoja_de_ruta'));
     } else {
         $this->db->set('hoja_de_ruta', NULL);
     }
     // Vinculacion
     if ($this->input->post('fk_carga_descarga_id')) {
         $this->db->set('fk_carga_descarga_id', $this->input->post('fk_carga_descarga_id'));
     } else {
         $this->db->set('fk_carga_descarga_id', NULL);
     }
     if ($this->input->post('km_recorridos_carga')) {
         $this->db->set('km_recorridos_carga', number_to_mysql($this->input->post('km_recorridos_carga')));
     } else {
         $this->db->set('km_recorridos_carga', NULL);
     }
     if ($this->input->post('litros_entregados')) {
         $this->db->set('litros_entregados', $this->input->post('litros_entregados'));
     } else {
         $this->db->set('litros_entregados', NULL);
     }
     if ($this->input->post('fk_modo_descarga_id')) {
         $this->db->set('fk_modo_descarga_id', $this->input->post('fk_modo_descarga_id'));
     } else {
         $this->db->set('fk_modo_descarga_id', NULL);
     }
     if ($this->input->post('horas_de_viaje')) {
         $this->db->set('horas_de_viaje', number_to_mysql($this->input->post('horas_de_viaje')));
     } else {
         $this->db->set('horas_de_viaje', NULL);
     }
     if ($this->input->post('numero_de_viajes')) {
         $this->db->set('numero_de_viajes', $this->input->post('numero_de_viajes'));
         // Calcular destajo progresivo
         /*$destajo_progresivo = $this->math->R(
           $this->input->post('fk_capacidad_carga_id'),
           $this->input->post('numero_de_viajes'));*/
         // Calcular destajo progresivo (incrementado 2014)
         $destajo_progresivo = $this->math->R1($this->input->post('fk_capacidad_carga_id'), $this->input->post('numero_de_viajes'), to_sql($this->input->post('fecha_incidencia')), $this->input->post('hoja_de_ruta'), true);
         if ($destajo_progresivo !== FALSE) {
             $importe_viaje_progresivo_incrementado = $destajo_progresivo;
         }
     } else {
         $this->db->set('numero_de_viajes', NULL);
     }
     if ($this->input->post('numero_de_entregas')) {
         $this->db->set('numero_de_entregas', $this->input->post('numero_de_entregas'));
     } else {
         $this->db->set('numero_de_entregas', NULL);
     }
     if ($this->input->post('pago_feriado')) {
         $this->db->set('pago_feriado', 1);
     } else {
         $this->db->set('pago_feriado', 0);
     }
     // Sin vinculacion
     if ($this->input->post('horas_ausencia')) {
         $this->db->set('horas_ausencia', number_to_mysql($this->input->post('horas_ausencia')));
     } else {
         $this->db->set('horas_ausencia', NULL);
     }
     if ($this->input->post('fk_causa_ausencia_id')) {
         $this->db->set('fk_causa_ausencia_id', $this->input->post('fk_causa_ausencia_id'));
     } else {
         $this->db->set('fk_causa_ausencia_id', NULL);
     }
     if ($this->input->post('observaciones')) {
         $this->db->set('observaciones', $this->input->post('observaciones'));
     } else {
         $this->db->set('observaciones', "");
     }
     if ($this->input->post('horas_interrupto')) {
         $this->db->set('horas_interrupto', number_to_mysql($this->input->post('horas_interrupto')));
     } else {
         $this->db->set('horas_interrupto', NULL);
     }
     if ($this->input->post('horas_no_vinculado')) {
         $this->db->set('horas_no_vinculado', number_to_mysql($this->input->post('horas_no_vinculado')));
     } else {
         $this->db->set('horas_no_vinculado', NULL);
     }
     if ($this->input->post('horas_nocturnidad_corta')) {
         $this->db->set('horas_nocturnidad_corta', number_to_mysql($this->input->post('horas_nocturnidad_corta')));
         // Calcular cuantia horario para nocturnidad corta y almacenar dicho campo
         $chnc = $this->math->G("CHNC");
         $chnc *= number_to_mysql($this->input->post('horas_nocturnidad_corta'));
         $this->db->set('cuantia_horaria_nocturnidad_corta', $chnc);
     } else {
         $this->db->set('horas_nocturnidad_corta', NULL);
     }
     if ($this->input->post('horas_nocturnidad_larga')) {
         $this->db->set('horas_nocturnidad_larga', number_to_mysql($this->input->post('horas_nocturnidad_larga')));
         // Calcular cuantia horario para nocturnidad larga y almacenar dicho campo
         $chnl = $this->math->G("CHNL");
         $chnl *= number_to_mysql($this->input->post('horas_nocturnidad_larga'));
         $this->db->set('cuantia_horaria_nocturnidad_larga', $chnl);
     } else {
         $this->db->set('horas_nocturnidad_larga', NULL);
     }
     if ($this->input->post('horas_capacitacion')) {
         $this->db->set('horas_capacitacion', number_to_mysql($this->input->post('horas_capacitacion')));
     } else {
         $this->db->set('horas_capacitacion', NULL);
     }
     if ($this->input->post('horas_movilizacion')) {
         $this->db->set('horas_movilizacion', number_to_mysql($this->input->post('horas_movilizacion')));
     } else {
         $this->db->set('horas_movilizacion', NULL);
     }
     if ($this->input->post('horas_feriado')) {
         $this->db->set('horas_feriado', number_to_mysql($this->input->post('horas_feriado')));
     } else {
         $this->db->set('horas_feriado', NULL);
     }
     // Pago feriado
     if ($this->input->post('pago_feriado')) {
         // El importe debe pagarse doble
         $importe_viaje *= 2;
         $importe_viaje_progresivo_incrementado *= 2;
     }
     // Modo de descarga Turbina del equipo
     if ($this->input->post('fk_modo_descarga_id') && $this->input->post('fk_modo_descarga_id') == 5) {
         // El importe debe multiplicarse por el coeficiente CDTMA
         $cdtma = $this->math->G('CDTMA');
         $importe_viaje *= $cdtma;
         $importe_viaje_progresivo_incrementado *= $cdtma;
     }
     // Importe del viaje
     $this->db->set('importe_viaje', $importe_viaje);
     $this->db->set('importe_viaje_progresivo_i', $importe_viaje_progresivo_incrementado);
     // Cumplimiento de la norma
     $this->db->set('cumplimiento_norma', $cumplimiento_norma);
     $this->db->where('entrada_id', $id);
     $this->db->update('entrada');
     // Terminar transaccion
     $this->db->trans_complete();
     return $this->db->trans_status();
 }
示例#4
0
 /**
  * Validar fecha de cierre
  */
 public function periodo_pago_cierre_date_check($user_date = 0)
 {
     $message = "";
     // La fecha que envia el usuario tiene el formato d/m/Y
     // para poder comparar debemos convertir a MySQL time
     $user_date_sql = to_sql($user_date);
     if ($this->fipp != 0 && $this->ffpp != 0 && $this->ppa == 1) {
         // Comporbar que la fecha es igual al primer dia del proximo mes
         $last_day_this_month = date("Y-m-d", strtotime('last day of this month', $this->ffpp));
         if ($user_date_sql == $last_day_this_month) {
             // Comprobar que existan entradas y salidas para el periodo que finaliza
             $counts = $this->periodo_pago_m->checkEntradaSalida($this->fipp, $this->ffpp);
             if ($counts['count_entradas'] > 0 && $counts['count_salida_cumplimineto_norma'] > 0 && $counts['count_salida_salario_equipo'] > 0 && $counts['count_salida_salario_trabajador'] > 0) {
                 return TRUE;
             } else {
                 $this->form_validation->set_message('periodo_pago_cierre_date_check', 'Con los datos actuales usted no puede realizar un cierre de periodo.<br/>No pueden existir entradas ni salidas vacias.');
                 return FALSE;
             }
         } else {
             $message = "Basandonos en las fecha del periodo de pago actual, la fecha proporcionada debe ser: " . to_date($last_day_this_month);
             $this->form_validation->set_message('periodo_pago_cierre_date_check', $message);
             return FALSE;
         }
     } else {
         $message = "Parece que su periodo de pago no esta abierto o los datos del periodo de pago est&aacute;n corruptos";
         $this->form_validation->set_message('periodo_pago_cierre_date_check', $message);
         return FALSE;
     }
 }