예제 #1
0
function obtener_ruta_de_autorizacion_de_solicitud_viaje($id_tramite, $zonaGeografica)
{
    $t_ruta_autorizacion = "";
    $id_agencia = "";
    $id_director_de_area = "";
    $id_director_general = "";
    $id_controlling = "";
    $id_finanzas = "";
    $agencia = true;
    $dir_area = true;
    $dir_gral = true;
    $controlling = true;
    $finanzas = true;
    //Cargamos la soliciytu de viaje en base al tramite
    $compInv = new C_SV();
    $compInv->Load_Solicitud_tramite($id_tramite);
    //Se obtiene el ID del usuario de agencia
    $usuario_aux = new Usuario();
    $id_agencia = $usuario_aux->Get_Id_by_Tipo("4");
    //El 4 es el ID del tipo agencia actualmente 16/abr/2012
    //El primer autorizador es el "Gerente de area",
    //osea el responsable del centro de costos de la comprobacion de invitacion.
    $cc_id = $compInv->Get_dato("sv_ceco_paga");
    $cc = new CentroCosto();
    $cc->Load_CeCo($cc_id);
    $id_gerente_de_area = $cc->Get_Dato("cc_responsable");
    /*	
    	//Se checa si el usuario es de "BMW Financial Services".
    	$tramite = new Tramite();
    	$tramite->Load_Tramite($id_tramite);
    	$id_iniciador = $tramite->Get_dato("t_iniciador");
    	
    	$usuario = new Usuario();
    	$usuario->Load_Usuario_By_ID($id_iniciador);
    	$usu_empresa = $usuario->Get_dato("u_empresa");
    	if($usu_empresa == "2"){
    		$dir_gral = true;
    	}else{
    		//Se checa si existe un invitado de tipo "Gobierno".
    		$comensales = new Comensales();
    		$comensales_array = $comensales->Load_comensales_by_tramite($id_tramite);
    		$no_invitados = count($comensales_array);
    		for($i=0;$i<$no_invitados;$i++){
    			if($comensales_array[$i]['dci_tipo_invitado'] == "Gobierno"){
    				$dir_gral = true;
    				break;
    			}
    		}
    		if($dir_gral == true){
    		}else{
    			//Se checa si el monto solicitado por persona es mayor a 50 EUR.
    			$si_monto_pesos = $sol_inv->Get_dato("si_monto_pesos");
    			
    			$divisa = new Divisa();
    			$divisa->Load_data("3"); //div_id de EUR = 3
    			$tasa_eur = $divisa->Get_dato("div_tasa");
    			
    			$monto_x_persona = $si_monto_pesos/$tasa_eur/$no_invitados;
    			if($monto_x_persona > 50){
    				$dir_gral = true;
    			}
    		}
    	}
    */
    $usuario = new Usuario();
    //El segundo autorizador es el "Director de area".
    if ($dir_area == true) {
        $id_director_de_area = $cc->Get_Dato("cc_director_de_area");
    }
    //El tercer autorizador es el "Director general".
    if ($dir_gral == true) {
        $usuario->Load_Usuario_By_Clave(1);
        // por el campo director_general obtenemos su idfwk_usuario
        $id_director_general = $usuario->Get_dato("idfwk_usuario");
    }
    $agrup_usu = new AgrupacionUsuarios();
    //El cuarto autorizador es el "Controlling".
    if ($controlling == true) {
        $agrup_usu->Load_Grupo_de_Usuario_By_Nombre('Controlling');
        $id_controlling = $agrup_usu->Get_dato("au_id");
    }
    //El quinto autorizador es el "Finanzas".
    if ($finanzas == true) {
        $agrup_usu->Load_Grupo_de_Usuario_By_Nombre('Finanzas');
        $id_finanzas = $agrup_usu->Get_dato("au_id");
    }
    //Se arma la ruta de autorizacion
    //La nueva ruta consiste en tomar el tipo de region que se ha seleccionado en el itinerario creado
    $t_ruta_autorizacion = $id_agencia . "|" . $id_gerente_de_area;
    //Si es de tipo Nacional
    if ($zonaGeografica == "Nacional") {
        //La nueva ruta de autorizacion sera: Gerente Area->Director de Area->Controlling->Finanzas
        if ($dir_area == true && $id_director_de_area != "") {
            if (existe_substr($t_ruta_autorizacion, $id_director_de_area, "|") == false) {
                $t_ruta_autorizacion .= "|" . $id_director_de_area;
            }
        }
        if ($controlling == true && $id_controlling != "") {
            if (existe_substr($t_ruta_autorizacion, $id_controlling, "|") == false) {
                $t_ruta_autorizacion .= "|" . $id_controlling;
            }
        }
        if ($finanzas == true && $id_finanzas != "") {
            if (existe_substr($t_ruta_autorizacion, $id_finanzas, "|") == false) {
                $t_ruta_autorizacion .= "|" . $id_finanzas;
            }
        }
        //si es de tipo Continental y/o Intercontinental
    } else {
        if ($zonaGeografica == "Continental" || $zonaGeografica == "Intercontinental") {
            //La Ruta de autorizacion sera la ruta base Gerente Area->Director de Area->Director General->Controlling->Finanzas
            if ($dir_area == true && $id_director_de_area != "") {
                if (existe_substr($t_ruta_autorizacion, $id_director_de_area, "|") == false) {
                    $t_ruta_autorizacion .= "|" . $id_director_de_area;
                }
            }
            if ($dir_gral == true && $id_director_general != "") {
                if (existe_substr($t_ruta_autorizacion, $id_director_general, "|") == false) {
                    $t_ruta_autorizacion .= "|" . $id_director_general;
                }
            }
            if ($controlling == true && $id_controlling != "") {
                if (existe_substr($t_ruta_autorizacion, $id_controlling, "|") == false) {
                    $t_ruta_autorizacion .= "|" . $id_controlling;
                }
            }
            if ($finanzas == true && $id_finanzas != "") {
                if (existe_substr($t_ruta_autorizacion, $id_finanzas, "|") == false) {
                    $t_ruta_autorizacion .= "|" . $id_finanzas;
                }
            }
        }
    }
    //error_log($t_ruta_autorizacion.$zonaGeografica);
    return $t_ruta_autorizacion;
}
예제 #2
0
     for ($i = 1; $i <= $_POST['rowCountAuto2'] + $_POST['rowCountAuto']; $i++) {
         //Partidas de Itinerario
         if (isset($_POST['id_itinerario_auto' . $i])) {
             $nId_itinerario = $_POST['id_itinerario_auto' . $i];
             $empresa_auto = $_POST['empresa_auto' . $i];
             $tipo_de_auto = $_POST['tipo_de_auto' . $i];
             $dias_de_renta_auto = $_POST['dias_de_renta' . $i];
             $costo_x_dia_auto = $_POST['costo_x_dia' . $i];
             $subtotal_auto = $_POST['subtotal_auto' . $i];
             $CViaje->Edit_Itinerario_Viaje_Auto($nId_itinerario, $empresa_auto, $tipo_de_auto, $dias_de_renta_auto, $costo_x_dia_auto, $subtotal_auto);
         }
     }
     //for
     // Actualiza el campo de observaciones
     $Csv = new C_SV();
     $Csv->Load_Solicitud_tramite($idTramite);
     $tramite->Load_Tramite($idTramite);
     $iniciador = $tramite->Get_dato("t_iniciador");
     $agencia = $tramite->Get_dato("t_dueno");
     $usuarioAgencia = new Usuario();
     $usuarioAgencia->Load_Usuario_By_ID($agencia);
     // Se envia el mensaje a las 3 partes de la transaccion
     $mensaje = sprintf("La solicitud <strong>%05s</strong> ha sido <strong>COMPRADA</strong> por <strong>(AGENCIA) %s</strong>.", $idTramite, $usuarioAgencia->Get_dato('nombre'));
     $tramite->EnviaNotificacion($idTramite, $mensaje, $agencia, $agencia);
     $tramite->EnviaNotificacion($idTramite, $mensaje, $agencia, $iniciador);
 }
 $empleado = new Empleado();
 $empleado->Load_datos_por_usuario2($iniciador);
 $iniciador = $empleado->Get_dato("jefe");
 //Se modifica la etapa
 $aprobador = $_POST['iniciador'];