//"0" para no enviar email y "1" para enviarlo if ($mobile) { echo "<meta http-equiv='Refresh' content='0; URL=http://" . $SERVER . $RUTA_R . "flujos/solicitudes/index.php?docs=docs&type=2&action=autorizar'>"; } else { echo "<script language='Javascript'> location.href='http://" . $SERVER . $RUTA_R . "flujos/solicitudes/index.php?docs=docs&type=2&action=autorizar';</script>"; } } if (isset($_POST['rechazar_si'])) { // Datos del tramite $HObser = $_POST['historial_observaciones']; $sObser = $_POST['observ']; $idTramite = $_POST['idt']; $delegado = $_POST['delegado']; $iduser = $_POST['iu']; // Actualiza el campo de observaciones $Csv = new C_SV(); $tramite = new Tramite(); $tramite->Load_Tramite($idTramite); $t_dueno = $tramite->Get_dato("t_dueno"); $iniciador = $tramite->Get_dato("t_iniciador"); $t_delegado = $tramite->Get_dato("t_delegado"); //$Csv->Load_Solicitud_Invitacion_Tramite($idTramite); if ($sObser != "") { $notificacion = new Notificacion(); $observaciones = $notificacion->anotaObservacion($t_dueno, $HObser, $sObser, FLUJO_SOLICITUD_INVITACION, ""); //$observaciones = anotaObservacion($t_dueno,$HObser,$sObser); $Csv->Modifica_Observaciones($idTramite, $observaciones, FLUJO_SOLICITUD_INVITACION); } $duenoActual = new Usuario(); $duenoActual->Load_Usuario_By_ID($t_dueno); // Modifica la etapa
} //Datos del empleado $iduser = 0; $delegado = 0; $numempleado = $_POST["empleado"]; $idempresa = $_POST["empresa"]; $cnn = new conexion(); $FechaMySQL = date("Y-m-d"); if ($sesionDelegado != 0) { $iduser = $sesionDelegado; $delegado = $_POST["idusuario"]; } else { $iduser = $_POST["idusuario"]; } $tramite = new Tramite(); $Solicitud_invitacion = new C_SV(); $notificacion = new Notificacion(); if (isset($_POST['rowCount']) || $_POST['rowCount'] != 1) { if (isset($_POST['tramiteID']) && $_POST['tramiteID'] != 0) { $idTramite = $_POST['tramiteID']; $tramite->Load_Tramite($idTramite); $t_autorizaciones_historial = $tramite->Get_dato("t_autorizaciones_historial"); $t_etapa = $_POST['etapa']; if ($t_etapa == 4 || $t_etapa == 6 || $t_autorizaciones_historial != "") { $HObser = $_POST['historial_observaciones']; } else { $HObser = ""; } // Agregamos el nombre del usuario al campo de Observaciones if ($observaciones_solicitud != "") { $observaciones_solicitud = $notificacion->anotaObservacion($delegado, $HObser, $observaciones_solicitud, FLUJO_SOLICITUD_INVITACION, SOLICITUD_INVITACION_ETAPA_APROBACION);
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; }
//Se cargan los comensales de la comprobacion de invitacion $comensales = new Comensales(); $invitados = $comensales->Load_comensales_by_tramite($idTramite); // Carga datos de autorizadores $rutaAutorizacion = new RutaAutorizacion(); $autorizadores = $rutaAutorizacion->getNombreAutorizadores($idTramite); //Se carga el tramite de la comprobacion $tramite = new Tramite(); $tramite->Load_Tramite($idTramite); //Se carga la comprobacion $comp_inv = new Comprobacion(); $comp_inv->Load_Comprobacion_Invitacion_By_co_mi_tramite($idTramite); //Se obtiene el id del tramite de la solicitud de invitacion $id_tramite_sol_inv = $comp_inv->Get_dato("co_tramite"); //Se carga la solicitud de invitacion a la que hace referencia la comprobacion $sol_inv = new C_SV(); $sol_inv->Load_Solicitud_Invitacion_Tramite($id_tramite_sol_inv); //Datos de la comprobacion $idComprobacion = $comp_inv->Get_dato("co_id"); $co_fecha_registro = cambiarFormatoFecha($comp_inv->Get_dato("co_fecha_registro")); $co_tipo = $comp_inv->Get_dato("co_tipo"); $motivo = $comp_inv->Get_dato("co_motivo"); $ciudad = $comp_inv->Get_dato("co_ciudad"); $co_tramite = $comp_inv->Get_dato("co_tramite"); $co_cc_clave = $comp_inv->Get_dato("co_cc_clave"); $subtotal_comp = number_format($comp_inv->Get_dato("co_subtotal"), 2, ".", ","); $iva_comp = number_format($comp_inv->Get_dato("co_iva"), 2, ".", ","); $total_comp = number_format($comp_inv->Get_dato("co_total"), 2, ".", ","); $co_total_aprobado = number_format($comp_inv->Get_dato("co_total_aprobado"), 2, ".", ","); $co_pendiente = number_format($comp_inv->Get_dato("co_total") - $comp_inv->Get_dato("co_total_aprobado"), 2, ".", ","); $observaciones = $comp_inv->Get_dato("co_observaciones");
require_once "../comprobaciones/services/func_comprobacion.php"; require_once "services/C_SV.php"; if (isset($_POST['rowCount']) || $_POST['rowCount'] != 0) { // Información de tramite $motivo = $_POST['motive']; $cat_cecos_cargado = $_POST['cat_cecos_cargado']; $cat_cecos_beneficiado = $_POST['cat_cecos_beneficiado']; // TODO: Este valor se tiene que guardar como informativo // Informacion de solicitud $TotalDias = $_POST['TotalDias']; $sObser = $_POST['observ']; // Fecha de viaje (salida) $sFecha = $_POST['salida' . '1']; $FechaMySQL = fecha_to_mysql($sFecha); //objeto creado (services/C_SV.php) $CViaje = new C_SV(); //Datos del empleado $iduser = $_POST["idusuario"]; $numempleado = $_POST["empleado"]; $idempresa = $_POST["empresa"]; $cnn = new conexion(); // Buscamos quien debe aprobar esta solicitud $Us = new Usuario(); $Us->Load_Usuario_By_No_Empleado($numempleado); $aprobador = $Us->buscaAgenciaViajesParaSolicitud($cat_cecos_cargado); // Registra nuevo tramite $tramite = new Tramite(); $tramite->insertar("BEGIN WORK"); $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, ANTICIPO_AMEX_ETAPA_SOLICITUD, FLUJO_AMEX, $motivo); // Registramos la solicitud Amex $amexID = $CViaje->Add_amex($TotalDias, $sObser, $motivo, $cat_cecos_cargado, $cat_cecos_beneficiado, $FechaMySQL, $idTramite);
// Carga los datos del itinerario - AUTO 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
require_once "../../lib/php/constantes.php"; require_once "{$RUTA_A}/Connections/fwk_db.php"; require_once "{$RUTA_A}/flujos/solicitudes/services/C_SV.php"; require_once "{$RUTA_A}/flujos/solicitudes/services/utils.php"; require_once "{$RUTA_A}/flujos/comprobaciones/services/func_comprobacion.php"; require_once "../../lib/php/messageResources.php"; if (isset($_POST['guardarComp'])) { $cnn = new conexion(); @mysql_query("BEGIN"); if (isset($_POST['rechazarTramite']) && $_POST['rechazarTramite'] != "") { $cnn = new conexion(); $sql = "DELETE t, solicitud_viaje, observaciones, sv_itinerario, hospedaje, traslados, anticipos\n\t\t\t\t\tFROM tramites t\n\t\t\t\t\tLEFT JOIN solicitud_viaje ON sv_tramite = t.t_id\n\t\t\t\t\tLEFT JOIN observaciones ON ob_tramite = t.t_id\n\t\t\t\t\tLEFT JOIN sv_itinerario ON svi_solicitud = sv_id\n\t\t\t\t\tLEFT JOIN hospedaje ON h_id_itinerario = svi_id\n\t\t\t\t\tLEFT JOIN traslados ON t_id_itinerario = svi_id\n\t\t\t\t\tLEFT JOIN anticipos ON a_sv_solicitud = sv_id\n\t\t\t\t\tWHERE t.t_id =" . $_POST['rechazarTramite']; $res = @mysql_query($sql); } if (isset($_POST['rowCount']) || $_POST['rowCount'] != 0) { $CViaje = new C_SV(); $tipoUsuario = $_POST['tipo_tarjeta_usuario']; $iduser = $_POST["idusuario"]; $sMotivo = $_POST['motive']; $tipoPasaje = $_POST['select_tipo_viaje_pasaje']; $sObser = $_POST['observ']; /*$query = "SELECT cc_id FROM cecos JOIN empleado WHERE cc_id = idcentrocosto AND idfwk_usuario = '".$iduser."'"; $rst2 = $cnn->consultar($query); $filaa = @mysql_fetch_assoc($rst2); $sCat_cecos_original = $filaa['cc_id']; */ $sCat_cecos = $_POST['cat_cecos_cargado_id']; //$sCat_cecos_cambiado = ($sCat_cecos_original!=$sCat_cecos) ? 1 : 0;*/ $Us = new Usuario(); $ruta_autorizadores = $Us->buscaAprobadorParaSolicitud($iduser, FLUJO_SOLICITUD); $string_ruta_autorizacion = "0" . "|" . $ruta_autorizadores[0] . "|" . $ruta_autorizadores[1]; $tramite = new Tramite();
//Recibimos campo Observaciones $cnn = new conexion(); $sObser = isset($_POST['observ']) ? $_POST['observ'] : ""; $idTramite = $_POST['idT']; $excepcion = $_POST['guardarExcepcion']; $envia_segundo_aprobador = $_POST['segundo_aprobador']; $sol = $_POST['solicitud']; $diferencia = $_POST['diferencia']; $fin_de_ruta_autorizacion = false; // Actualizamos el campo de observaciones if ($sObser != "") { $query = "UPDATE solicitud_viaje SET sv_observaciones = '{$sObser}' WHERE sv_tramite = '{$idTramite}'"; $cnn->ejecutar($query); } // Guardamos la diferencia de los montos entre la cotización y la política $CSV = new C_SV(); $idDiferencia = $CSV->add_diferencia_hospedaje($sol, $diferencia); // Guardar excepción if ($excepcion == 1) { $ex_mensaje = "La solocitud excedió el presupuesto"; $query = "INSERT INTO excepciones (ex_id, ex_mensaje, ex_solicitud) VALUES(default, '{$ex_mensaje}', '{$sol}')"; $cnn->insertar($query); } if ($diferencia < 0) { $ex_mensaje = "La solocitud excedió la política."; $query = "INSERT INTO excepciones (ex_id, ex_mensaje, ex_diferencia, ex_solicitud) VALUES(default, '{$ex_mensaje}', '{$diferencia}', '{$sol}')"; $cnn->insertar($query); } //error_log(date("Y-m-d h:i:s")." :excepcion = $excepcion y diferencia = $diferencia \n" , 3, "log.log"); // Buscamos quien debe aprobar esta solicitud $tramite = new Tramite();
} else if($t_flujo==FLUJO_REEMBOLSO_CAJA_CHICA){ $tramite->Modifica_Etapa($idTramite, COMPROBACION_CAJA_CHICA_ETAPA_APROBADA, FLUJO_REEMBOLSO_CAJA_CHICA, $iniciador); } header("Location: ./index.php?action=regresar"); } // Rechaza la solicitud de manera definitiva } else if(isset($_POST["rechazar"])){ // Datos del tramite $idTramite = $_POST["idTramite"]; $observaciones = $_POST["observaciones"]; // Actualiza el campo de observaciones $Csv=new C_SV(); $Csv->Load_Solicitud_tramite($idTramite); $Csv->Modifica_Observaciones($idTramite, $observaciones, FLUJO_COMPROBACION); // Envia el tramite a cancelacion $tramite = new Tramite(); $tramite->Load_Tramite($idTramite); $iniciador = $tramite->Get_dato("t_iniciador"); $aprobador = $tramite->Get_dato("t_dueno"); $t_etapa_actual = $tramite->Get_dato("t_etapa_actual"); $t_flujo = $tramite->Get_dato("t_flujo"); $usuarioAprobador = new Usuario(); $usuarioAprobador->Load_Usuario_By_ID($aprobador); $mensaje = sprintf("La comprobación <strong>%05s</strong> ha sido <strong>RECHAZADA</strong> por <strong>%s</strong>.", $idTramite, $usuarioAprobador->Get_dato('nombre'));
$VSql = "UPDATE solicitud_amex SET sa_status_erp = {$ESTATUS_ERP_AUTORIZADO} WHERE sa_tramite = '{$idTramite}';"; $Rvsql = $cnn->insertar($VSql); $VSql = "UPDATE tramites SET t_fecha_cierre = NOW();"; $Rvsql = $cnn->insertar($VSql); // Regresa a la pagina de solicitudes header("Location: ./index.php?action=autorizar"); // // Rechaza la solicitud (ANTICIPO_ETAPA_RECHAZADA) // } else { if (isset($_POST['rechazar']) && isset($_POST['idT']) && $_POST['idT'] != "") { // Datos del tramite $sObser = $_POST['observ']; $idTramite = $_POST['idT']; // Actualiza el campo de observaciones $Csv = new C_SV(); $Csv->Load_Solicitud_Amex_Tramite($idTramite); $Csv->Modifica_Observaciones($idTramite, $sObser, FLUJO_AMEX); // Regresa el monto apartado al ceco $idceco = $Csv->Get_dato("sa_ceco_paga"); $monto = $Csv->Get_dato("sa_anticipo"); $fecha = $Csv->Get_dato("sa_fecha_viaje"); $Cc = new CentroCosto(); $Cc->regresa_monto($idceco, $monto, $fecha); // Envia el tramite a cancelacion $tramite = new Tramite(); $tramite->Load_Tramite($idTramite); $iniciador = $tramite->Get_dato("t_iniciador"); $aprobador = $tramite->Get_dato("t_dueno"); $usuarioAprobador = new Usuario(); $usuarioAprobador->Load_Usuario_By_ID($aprobador);
$sDivisa = $_POST['selecttipodivisa_' . $i . '_' . $j]; $sComentario = $_POST['comentario_' . $i . '_' . $j]; $sSubtotal = $_POST['subtotal_' . $i . '_' . $j]; $stipoHotel = $_POST['tipoHotel_' . $i . '_' . $j]; // Transformar la fechas a formato de MySQL $sLlegada = fecha_to_mysql($sLlegada); $sSalida = fecha_to_mysql($sSalida); $idHotel = $hoteles->agregarHotel($idItinerario, $sDivisa, $sComentario, $stipoHotel, $sCostoNoche, $sHotel, $sIva, $sLlegada, $sMontoH_pesos, $sCiudad, $sNoches, $sNo_reservacion, $sSalida, $sSubtotal, $sTotal, 1); if ($idHotel <= 0) { $CViaje->insertar("ROLL BACK"); header("Location: ./index.php?errsave"); } } } // Registra los conceptos $CViaje = new C_SV(); if (isset($_POST['Accion']) == 'true') { for ($j = 1; $j <= $_POST['rowCount_concepto' . $i]; $j++) { $MontoU = str_replace(',', '', $_POST["monto_u_" . $i . "_" . $j]); $DivisaU = $_POST["divisa_u_" . $i . "_" . $j]; $MontoTotalU = str_replace(',', '', $_POST["montototalmo_u_" . $i . "_" . $j]); $MontoTotalMxnU = str_replace(',', '', $_POST["montomxn_u_" . $i . "_" . $j]); $DiasConceptoU = $_POST["no_dias_" . $i . "_" . $j]; $IDconcepto = $_POST["id_cpto_" . $i . "_" . $j]; $IDitinerario = $idItinerario; $idConcepto_detalle = $CViaje->add_conceptos_detalle($IDitinerario, $idTramite, $tramite->truncate($MontoU, 2), $DivisaU, $MontoTotalU, $MontoTotalMxnU, $DiasConceptoU, $IDconcepto); $conceptoItinerarioId = $CViaje->add_concepto_itinerario($IDconcepto, $idConcepto_detalle, $IDitinerario); $conceptoItinerarioId2[] = $conceptoItinerarioId; } } }