/** * 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; }
/** * 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(); }
/** * 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án corruptos"; $this->form_validation->set_message('periodo_pago_cierre_date_check', $message); return FALSE; } }