예제 #1
0
 public function ModificaEtapaDelegados($t_id, $etapa, $flujo, $dueno, $ruta, $iduser, $delegado)
 {
     $tramite = new Tramite();
     $existeDelegado = $this->existenciaDelegado($iduser, $delegado);
     $tramite->Load_Tramite($t_id);
     $iniciador = $tramite->Get_dato("t_iniciador");
     if ($existeDelegado) {
         $etapatramite = $this->obtenerEtapaDelegados($flujo);
         $tramite->Modifica_Etapa($t_id, $etapatramite, $flujo, $iniciador, "");
     } else {
         $tramite->Modifica_Etapa($t_id, $etapa, $flujo, $dueno, $ruta);
         $ruta_autorizacion = new RutaAutorizacion();
         $ruta_autorizacion->generaRutaAutorizacionSolicitudInvitacion($tramite_editar, $iduser);
         $aprobador = $ruta_autorizacion->getSiguienteAprobador($t_id, $iduser);
         return $aprobador;
     }
 }
예제 #2
0
$tipoViajeSol = mysql_result($res, 0, "sv_viaje");
$fecha_registro = $row["fecha_registro"];
$solicitante = $row["nombre"];
$ceco = $row["ceco"];
$motivo = $row["t_etiqueta"];
$etapa = $row["et_etapa_nombre"];
$iniciador = $row["t_iniciador"];
$co_fecha_salida = cambiarFormatoFecha($row["svi_fecha_salida"]);
$co_fecha_llegada = cambiarFormatoFecha($row["svi_fecha_llegada"]);
//$fecha_viaje = $row["fecha_viaje"];
$destino = $row["destino"];
//se obtiene la suma de los dias de cada uno de los itinerarios que poseea
$tramiteDias = new Tramite();
$dias_viaje = $tramiteDias->calculoDias($idTramite);
$t_delegado = $row["t_delegado"];
$rutaAutorizacion = new RutaAutorizacion();
$autorizadores = $rutaAutorizacion->getNombreAutorizadores($idTramite);
//construccion de cuadro principal (informacion general)
$pdf->SetFont('consola', 'B', 12);
$pdf->Ln(7);
$pdf->SetX(50);
$pdf->Multicell(190, 8, "Información general", 'LRT', 'C', 0);
$pdf->SetX(50);
$pdf->Cell(45, 3, "No. de Folio:", 0, 0, 'R');
$pdf->SetFont('consola', '', 10);
$pdf->Cell(45, 3, $idTramite, 0, 0, 'L');
$pdf->SetFont('consola', 'B', 10);
$pdf->Cell(45, 3, "Fecha de creación:", 0, 0, 'R');
$pdf->SetFont('consola', '', 10);
$pdf->Cell(45, 3, $fecha_registro, 0, 0, 'L');
$pdf->Ln();
    function forma_comprobacion()
    {
        ?>
        <!-- Inicia forma para comprobación -->
        <script language="JavaScript" src="../../lib/js/jquery/jquery-1.3.2.js" type="text/javascript"></script>
        <script language="JavaScript" src="../../lib/js/jquery/jquery.date_input.js" type="text/javascript"></script>       
        <script language="JavaScript" src="../../lib/js/jquery/jquery.autocomplete.js" type="text/javascript"></script>
        <script language="JavaScript" src="../../lib/js/jquery/jquery.bgiframe.js" type="text/javascript"></script>
        <script language="JavaScript" src="../../lib/js/jquery/jquery.blockUI.js" type="text/javascript"></script>
		<script language="JavaScript" type ="text/javascript" src="../../lib/js/jquery/jquery.jdpicker.js"></script>
		<script language="JavaScript" src="../../lib/js/formatNumber.js" type="text/javascript"></script>
		<script language="JavaScript" src="../comprobaciones/js/backspaceGeneral.js" type="text/javascript"></script>
        <link rel="stylesheet" href="../../css/jdpicker.css" type="text/css" media="screen" />  



        <script language="JavaScript" type="text/javascript">
            //variables
            var doc;
            doc = $(document);
            doc.ready(inicializarEventos);//cuando el documento esté listo
            function inicializarEventos(){
            	$.blockUI({
    				message: '<h1>Espere un momento...</h1>',
    				css:{
    					border: 'none', 
    					padding: '15px', 
    					backgroundColor: '#000', 
    					'-webkit-border-radius': '10px', 
    					'-moz-border-radius': '10px', 
    					opacity: .5, 
    					color: '#fff'
    				}
    			});
    			
            	$(document).bind("contextmenu", function(e){ e.preventDefault(); });
				var tramite_id=gup("edit2");
				montoMaximoComidas();
				activa_envio();
				//alert(tramite_id);
				fillform(tramite_id);    
				
                //ajusta tabla
                //$("#solicitud_table").tablesorter({ 
                    //cabeceras deshabilitadas del ordenamiento
                //    headers: { 
                //        4: {sorter: false }, 
                //        7: {sorter: false },
                //        9: {sorter: false },
                //        11:{sorter: false }  
                //    } //headers
                //}); //tabla
                //borrarPartida();
                //guardaComprobacion();
                
                $("#fecha_inv").jdPicker({
                    date_format:"dd/mm/YYYY", 
                    date_min:"<?php 
        echo date("d/m/Y");
        ?>
",
                    month_names: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
                    short_month_names: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
                    short_day_names: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"]
                });
				
				//Seleccionar el centro de costos del usuario actual
				//select idcentrocosto from empleado where idempleado = "110"
				
                var id_centro_de_costos = "<?php 
        $varDelegado = 0;
        if (isset($_SESSION['iddelegado'])) {
            $varDelegado = $_SESSION['iddelegado'];
        }
        $iduser = verificaSesion($_SESSION["idusuario"], $varDelegado);
        $query = sprintf("SELECT cc_centrocostos FROM cat_cecos WHERE cc_id = (SELECT idcentrocosto FROM empleado WHERE idfwk_usuario = '%s')", $iduser);
        $var = mysql_query($query);
        $aux = "";
        while ($arr = mysql_fetch_assoc($var)) {
            $aux .= $arr['cc_centrocostos'];
        }
        echo $aux;
        ?>
";
    			seleccionar(id_centro_de_costos);

    			$('#fecha_inv').keydown(function(e){					
					ignoraEventKey(e);				
				});

    			$("input").bind("keydown", function(e){
    				if(!isAlphaNumeric(e)) return false;
    			});
    			
            }//fin ready ó inicializarEventos
            ////IVA
            function gup(name){
            	var regexS = "[\\?&]"+name+"=([^&#]*)";
            	var regex = new RegExp ( regexS );
            	var tmpURL = window.location.href;
            	var results = regex.exec( tmpURL );
            	if( results == null )
            		return"";
            	else
            		return results[1];
            }

            function montoMaximoComidas(){
            	// Monto máximo de Comidas de Invitación
				$.ajax({
					type: "POST",
					url: "services/ajax_solicitudes.php",
					data: "montoMaximo=ok",
					dataType: "json",
					timeout: 10000,		
					success: function(json){
						$("#montoMaximo").val(parseFloat(json[0].montoCantidad));
						$("#montoMaximoDivisa").val(json[0].divisaMonto);
						$("#montoPolitica").html("<span class='style1'>* Monto m&aacute;ximo por persona: " + parseFloat(json[0].montoCantidad) + " " + json[0].divisaMonto + ".</span>");
					}
				});
            }

			function fillform(id_solicitud){
				var frm=document.detallesItinerarios;
				var etapa = 0;
				var historial_autorizaciones = "";
				
					if(id_solicitud != ""){
						$.ajax({
							type: "POST",
							url: "services/ajax_solicitudes.php",
							data: "mntsolicinv="+id_solicitud,
							dataType: "json",
							timeout: 10000,
							success: function(json){
								etapa = json[0].t_etapa;
								historial_autorizaciones = json[0].si_autorizaciones;
								
								$("#motive").val(json[0].si_motivo);
								$("#tramite_sol").val(parseInt(id_solicitud));
								
								$("#fecha_inv").val(json[0].si_fecha_invitacion);

								$("#lugar_inv").val(json[0].si_lugar);
								
								$("#tpesosdisabled").val(json[0].montoPesos);
								$("#tpesos").val(json[0].si_monto_pesos);

								$("#ciudad_invitacion").val(json[0].si_ciudad);

								$("#monto_solicitado_invitacion").val(json[0].si_monto);								

								$("#divisa_solicitud_invitacion").val(parseInt(json[0].si_divisa));

								if(etapa == 4 || etapa == 6 || historial_autorizaciones != ""){
									$("#historial_observaciones").val(json[0].si_observaciones);
								}
								
								$("#observ").val(json[0].si_observaciones_edicion);
								
							}, // Fin de carga de info de Solicitudes de Invitación
							complete: function (json){
								//alert("Completado 001");
								$.ajax({
									type: "POST",
									url: "../comprobaciones/services/Ajax_comprobacion.php",
									data: "t_id="+id_solicitud,
									dataType: "json",
									timeout: 10000,
									success: function(jsonC){
										if(jsonC==null){
										}else{
											seleccionar(jsonC[0]);
										}								
									}, // Fin de Seleccione CECOs
									complete: function (jsonC){
										//alert("Completado 002");
										$.ajax({
											type: "POST",
											url: "../comprobaciones/services/Ajax_comprobacion.php",
											data: "t_id2="+id_solicitud,
											dataType: "json",
											timeout: 10000,
											success: function(jsonINV){			
												if(jsonINV==null){
													VaciarTabla();
													document.getElementById("numInvitadosDisabled").value = 0;
													document.getElementById("numInvitados").value = 0;
												}else{
													VaciarTabla();									
													LlenarTabla(jsonINV,document.getElementById("invitado_table"));
												}
											},
											complete: function(jsonINV){
												//alert("Completado 003");
												guardaprevioComprobacion1();
												recalculaMontos();
												$.unblockUI();
												guardaComprobacion11();
										    }, // Complete 3er AJAX
										    error: function(x, t, m) {
        										if(t==="timeout") {
            										//alert("tiempo de espera agotado 3");
            										location.reload();
           											 abort();
        										} 
   											 }
										}); // Tercer AJAX - Carga de Invitados
									}, // Complete 2do AJAX
									error: function(x, t, m) {
        								if(t==="timeout") {
            								//alert("tiempo de espera agotado 2");
            								location.reload();
            								abort();
        								}
    								}
								}); // Segundo AJAX - Carga de CECO
							}, // Complete 1er AJAX
							error: function(x, t, m) {
        						if(t==="timeout") {
            						//alert("tiempo de espera agotado 1");
            						location.reload();
            						abort();
        						} 
    						}
						}); // Primer AJAX - INFO SI
					}					
				}

	function activa_envio(){
		var delegado = <?php 
        if (isset($_SESSION['iddelegado'])) {
            echo $_SESSION['iddelegado'];
        } else {
            echo 0;
        }
        ?>
;
        if(delegado != 0){
        	$("#enviaDirector").removeAttr("disabled");
        }else{
        	$("#guardarCompedit").removeAttr("disabled");
        }
	}

    function VaciarTabla() {
    	var TABLE = document.getElementById("invitado_table");
    	for(var i=TABLE.rows.length-1;i>=1;i--){
    		TABLE.deleteRow(i);
    	}
    }


  function LlenarTabla(json, tabla){	
    	var frm=document.detallesItinerarios;
    	frm.rowCount.value=parseInt(0);
    	for(var i=0;i<json.length;i++){
    					
    		var toks=json[i].split(":");
    		
    		//Creamos la nueva fila y sus respectivas columnas
    		var nuevaFila='<tr>';
    		nuevaFila+="<td>"+"<div id='renglon"+(i+1)+"' name='renglon"+(i+1)+"'>"+(i+1)+"</div>"+"<input type='hidden' name='row"+(i+1)+"' id='row"+(i+1)+"' value='"+(i+1)+"' readonly='readonly' /></td>";
    		nuevaFila+="<td><input type='hidden' name='nombre"+(i+1)+"' id='nombre"+(i+1)+"' value='"+toks[0]+"' readonly='readonly' />"+toks[0]+"</td>";
    		nuevaFila+="<td><input type='hidden' name='puesto"+(i+1)+"' id='puesto"+(i+1)+"' value='"+toks[1]+"' readonly='readonly' />"+toks[1]+"</td>";
    		nuevaFila+="<td><input type='hidden' name='empresa"+(i+1)+"' id='empresa"+(i+1)+"' value='"+toks[2]+"' readonly='readonly' />"+toks[2]+"</td>";
    		nuevaFila+="<td ><input type='hidden' name='tipo"+(i+1)+"' id='tipo"+(i+1)+"' value='"+toks[3]+"' readonly='readonly' />"+toks[3]+"</td>";
    		nuevaFila+="<td><div align='center'><img class='elimina' src='../../images/delete.gif' alt='Click aqu&iacute; para Eliminar' name='"+(i+1)+"del' id='"+(i+1)+"del' onmousedown='borrarPartida(this.id);' style='cursor:pointer;' /></div><div align='center'>Eliminar Partida</div></td>";
    		nuevaFila+= '</tr>';
    		frm.rowCount.value=parseInt(frm.rowCount.value)+parseInt(1);
    		$("#invitado_table").append(nuevaFila);
    	}
    	document.getElementById("numInvitados").value = parseInt(frm.rowCount.value);
    	document.getElementById("numInvitadosDisabled").value = parseInt(frm.rowCount.value);
  }
  
  function fecha_to_mysql_normal(strFecha){
		var toks1=strFecha.split(" ");
		var toks=toks1[0].split("-");

		strFechaN = toks[0]+"/"+toks[1]+"/"+toks[2];
		return strFechaN;
	}

  function fecha_to_mysql(strFecha){
		var toks1=strFecha.split(" ");
		var toks=toks1[0].split("-");

		strFechaN = toks[2]+"/"+toks[1]+"/"+toks[0];
		return strFechaN;
	}

//Seleccionar elemento de un combo
  function seleccionar(elemento) {
     var combo = document.invitacion_comp.centro_de_costos;
     var cantidad = combo.length;
     for (var i = 1; i < cantidad; i++) {
        var toks=combo[i].text.split("-");
        if (toks[0] == elemento) {
           combo[i].selected = true;
  		 break;
        }
     }
  }
			//Seleccionar elemento del combo de ccentro_costos
			function seleccionar(elemento) {
			   var combo = document.detallesItinerarios.ccentro_costos;
			   var cantidad = combo.length;

			   for (var i = 0; i < cantidad; i++) {
				  var toks=combo[i].text.split(" ");
				  if (toks[0] == elemento) {
					 combo[i].selected = true;
					 break;
				  }
			   }
			}

			function verificar_tipo_invitado(){
				var esDirector = <?php 
        $idusuario = $_SESSION["idusuario"];
        $esDirector = 0;
        $rutaAutorizacion = new RutaAutorizacion();
        $esDirector = $rutaAutorizacion->nivelEmpleado($idusuario);
        echo $esDirector;
        ?>
;
				var directorGeneral = <?php 
        echo DIRECTOR_GENERAL;
        ?>
;
            	if($("#tipo_invitado").val()=="-1"){
            		$("#empresa_invitado").val("");
            		$("#capaDirector").html("");
            		$("#empresa_invitado").attr("disabled", "disable");
                }
            	else{    
                if($("#tipo_invitado").val()=="BMW"){
                    $("#empresa_invitado").val("BMW DE MEXICO SA DE CV.");
                    $("#capaDirector").html("");
                    $("#empresa_invitado").attr("disabled", "disable");
                } else if ($("#tipo_invitado").val() == "Gobierno" && esDirector != directorGeneral){
                	$("#empresa_invitado").val("");
                    $("#empresa_invitado").removeAttr("disabled");
					$("#capaDirector").html("<strong>La solicitud requerir&aacute; ser validada por el Dir. General</strong>");                    
                }else{
                    $("#empresa_invitado").val("");
                    $("#capaDirector").html("");
                    $("#empresa_invitado").removeAttr("disabled");
                                                                                                            
                }
            	}
            }
                            
            function verificar(){
                if($("#motive").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#motive").focus();
                    return false;
                } else if($("#lugar_inv").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#lugar_inv").focus();
                    return false;
                } else if($("#nombre_invitado").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#nombre_invitado").focus();
                    return false;
                }else if($("#puesto_invitado").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#puesto_invitado").focus();
                    return false;
                }else if($("#empresa_invitado").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#empresa_invitado").focus();
                    return false;
                }else if($("#tipo_invitado").val()==""){
                    alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                    $("#tipo_invitado").focus();
                    return false;
                }else{
                    return true;
                }
                                
            }
                            
                            
            function agregarPartida(){
                var frm=document.detallesItinerarios;
                                
                id=parseInt($("#invitado_table").find("tr:last").find("div").eq(0).html());
                                                                        
                if(verificar()){
                    
                    if(isNaN(id)){ 
                        id=1; 
                    }else{ 
                        id+=parseInt(1); 
                    }
                    frm.rowCount.value=parseInt(frm.rowCount.value)+parseInt(1);
                    
                    var nuevaFila='<tr>';
                    nuevaFila+="<td>"+"<div id='renglon"+id+"' name='renglon"+id+"'>"+id+"</div>"+"<input type='hidden' name='row"+id+"' id='row"+id+"' value='"+id+"' readonly='readonly' /></td>";                    nuevaFila+="<td><input type='hidden' name='nombre"+id+"' id='nombre"+id+"' value='"+frm.nombre_invitado.value+"' readonly='readonly' />"+frm.nombre_invitado.value+"</td>"; 
                    nuevaFila+="<td><input type='hidden' name='puesto"+id+"' id='puesto"+id+"' value='"+frm.puesto_invitado.value+"' readonly='readonly' />"+frm.puesto_invitado.value+"</td>"; 
                    nuevaFila+="<td><input type='hidden' name='empresa"+id+"' id='empresa"+id+"' value='"+frm.empresa_invitado.value+"' readonly='readonly' />"+frm.empresa_invitado.value+"</td>"; 
                    nuevaFila+="<td><input type='hidden' name='tipo"+id+"' id='tipo"+id+"' value='"+frm.tipo_invitado.value+"' readonly='readonly' />"+frm.tipo_invitado.value+"</td>";
                    nuevaFila+="<td><div align='center'><img class='elimina' src='../../images/delete.gif' alt='Click aqu&iacute; para Eliminar' name='"+id+"del' id='"+id+"del' onmousedown='borrarPartida(this.id);' style='cursor:pointer;' /></div><div align='center'>Eliminar Partida</div></td>";
                    nuevaFila+= '</tr>';
                                    
                    
                    $("#invitado_table").append(nuevaFila);
                    $("#numInvitados").val(parseInt(frm.rowCount.value));
                    $("#numInvitadosDisabled").val(parseInt(frm.rowCount.value));
                    $("#nombre_invitado").val("");
                    $("#puesto_invitado").val("");
                    $("#empresa_invitado").val("");
                    //$("#capaDirector").html("");
                    $("#tipo_invitado").val("-1");
                    //guardaComprobacion();       
                    $("#guardarComp").removeAttr("disabled");
                    $("#guardarCompprev").removeAttr("disabled");                    
					$("#capaDirector").html("");
					document.getElementById("empresa_invitado").disabled="disable";
					recalculaMontos();
                }
            }
                                                                         
            function borrarPartida(id){
                var frm=document.detallesItinerarios;
                $("#rowCount").bind("restar",function(e,data,data1){
                	e.stopImmediatePropagation();
            			$("#rowCount").val(parseInt($("#invitado_table>tbody>tr").length));
            			$("#numInvitados").val($("#rowCount").val());
            			$("#numInvitadosDisabled").val($("#rowCount").val());
                    });

                $("#rowDel").bind("cambiar",function(e,inicio,tope){
                    e.stopImmediatePropagation();
                    var renglon="";
            		var jqueryrenglon="";
            		var nextrenglon="";
                	var nextrow="";
            		var row="";
            		var jqueryrow="";
                	var nextnombre="";
            		var nombre="";
            		var jquerynombre="";
                	var nextpuesto="";
            		var puesto="";
            		var jquerypuesto="";
                	var nexttipo="";
            		var tipo="";
            		var jquerytipo="";
                	var nextempresa="";
            		var empresa="";
            		var jqueryempresa="";
                	var nextdel="";
            		var del="";
            		var jquerydel="";
            		
            		 for (var i=parseFloat(inicio);i<=parseFloat(tope);i++){ 

             		   	renglon="renglon"+parseInt(i);
            				jqueryrenglon="#renglon"+parseInt(i);
            				nextrenglon="#renglon"+((parseInt(i)+(1)));
                     	nextrow="#row"+((parseInt(i)+(1)));
            				row="row"+parseInt(i);
            				jqueryrow="#row"+parseInt(i);
                     	nextnombre="#nombre"+((parseInt(i)+(1)));
            				nombre="nombre"+parseInt(i);
            				jquerynombre="#nombre"+parseInt(i);
                     	nextpuesto="#puesto"+((parseInt(i)+(1)));
            				puesto="puesto"+parseInt(i);
            				jquerypuesto="#puesto"+parseInt(i);
                     	nexttipo="#tipo"+((parseInt(i)+(1)));
            				tipo="tipo"+parseInt(i);
            				jquerytipo="#tipo"+parseInt(i);           				
                     	nextempresa="#empresa"+((parseInt(i)+(1)));
            				empresa="empresa"+parseInt(i);
            				jqueryempresa="#empresa"+parseInt(i);
                     	nextdel="#"+((parseInt(i)+(1)))+"del";
            				del=parseInt(i)+"del";
            				jquerydel="#"+parseInt(i)+"del";
            				
            				$(nextrenglon).attr("id",renglon);
            	         	$(jqueryrenglon).attr("name",renglon);
            	         	$(jqueryrenglon).html(parseInt(i));
            	         	$(nextrow).attr("id",row);
            	         	$(jqueryrow).attr("name",row);
            	         	$(jqueryrow).val(parseInt(i));          
            	    	  	$(nextnombre).attr("id",nombre);
                  	 	$(jquerynombre).attr("name",nombre);  		        	 
            	      		$(nextpuesto).attr("id",puesto);
              	      		$(jquerypuesto).attr("name",puesto);      
            	      		$(nexttipo).attr("id",tipo);
              			$(jquerytipo).attr("name",tipo);
              			$(nextempresa).attr("id",empresa);
              			$(jqueryempresa).attr("name",empresa);
              			$(nextdel).attr("id",del);
              			$(jquerydel).attr("name",del); 
             		       //next();                                            
                }
                });
                
                            $("img.elimina").click(function(){
                                
                        		$(this).parent().parent().parent().fadeOut("normal", function () {
            						var i=0;
                    				$(this).remove();	
            						$("#rowCount").trigger("restar");
            						$("#rowCount").unbind("restar");
                      				 var tope=$("#rowCount").val();
									 recalculaMontos();
                      				 i=parseFloat(id);
            						$("#rowDel").trigger("cambiar",[i,tope]);
            						$("#rowDel").unbind("cambiar");
                                }); 
                        		return false;    
                            });    
                                                                                                                                                                                                             
                        }
                                                                           
            function getCentroCostos(){
                var frm=document.detallesItinerarios;
                $("#Cecos").val(frm.ccentro_costos.value);
            }      
                                                                
		/***************************************************************************/
		//VARIABLE GLOBAL
		var textoAnterior = '';

		//ESTA FUNCIÓN DEFINE LAS REGLAS DEL JUEGO
		function cumpleReglas(simpleTexto){
			//la pasamos por una poderosa expresión regular
			//var expresion = new RegExp("^(|([0-9]{1,2}(\\.([0-9]{1,2})?)?))$");
			var expresion = new RegExp("^(|([0-9]{1,30}(\\.([0-9]{1,2})?)?))$");

			//si pasa la prueba, es válida
			if(expresion.test(simpleTexto))
				return true;
			return false;
		}//end function checaReglas

		//ESTA FUNCIÓN REVISA QUE TODO LO QUE SE ESCRIBA ESTÉ EN ORDEN
		function revisaCadena(textItem){
			//si comienza con un punto, le agregamos un cero
			if(textItem.value.substring(0,1) == '.') 
				textItem.value = '0' + textItem.value;

			//si no cumples las reglas, no te dejo escribir
			if(!cumpleReglas(textItem.value))
				textItem.value = textoAnterior;
			else //todo en orden
				textoAnterior = textItem.value;
		}//end function revisaCadena
		/***************************************************************************/
			function NumCheck(e, field) { 
				key = e.keyCode ? e.keyCode : e.which ;
				valor = field.value+String.fromCharCode(key);
				// backspace 
				if (key == 8) return true ;
				// 0-9 
				if ((key > 47 && key < 58)) { 
					if (valor == "") return true ;
					//regexp = /.[0-9]{2}$/ 
					regexp = /^[0-9]*(\.[0-9]{0,2})?$/ ;
					return (regexp.test(valor)) ;
				} 
				// . 
				if (key == 46) { 
					if (valor == "") return false ;
					//regexp = /^[0-9]+$/ ;
					regexp = /^[0-9]*(\.[0-9]{0,2})?$/ ;
					return regexp.test(valor) ;
				} 
				// other key 
				return false ;
			}
            function validaNum(valor){                                                                
                cTecla=(document.all)?valor.keyCode:valor.which;
                if(cTecla==8) return true;
                if(cTecla==37) return true;
                if(cTecla==39) return true;
                patron=/^([0-9.]{1,2})?$/;
                cTecla= String.fromCharCode(cTecla);
                return patron.test(cTecla);
            }
            function validaNum2(valor){
                cTecla=(document.all)?valor.keyCode:valor.which;
                if(cTecla==8) return true;
                if(cTecla==37) return "ok";
                if(cTecla==39) return "ok";
                return true;
            }
			function format_input(valor){
				valor = valor.replace(/,/g,"");
				//valor = number_format(valor,2,".",",");
				valor = number_format_sin_redondeo(valor);
				return valor;
			}

            function guardaComprobacion11(){
                var etapaTramite = parseInt($("#etapa").val());
                
                var frm=document.detallesItinerarios;
                id= parseInt($("#solicitud_table").find("tr:last").find("td").eq(0).html());
                if(($("#numInvitados").val() >= 1)){
					if($("#divisa_solicitud_invitacion").val()=="" ||$("#divisa_solicitud_invitacion").val()==-1 ){
                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                        $("#divisa_solicitud_invitacion").focus();
                        return false;
                    }else if($("#ccentro_costos").val()==""){
                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                        $("#ccentro_costos").focus();
                        return false;
                    }else if($("#ciudad_invitacion").val()==""){
                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
                        $("#ciudad_invitacion").focus();
                        return false;
                    }else if(etapaTramite == 1 && $("#banderavalida").val() == 1 && $("#observ").val().length == 0){
						alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
						$("#observ").focus();
						return false;
                    }else if($("#monto_solicitado_invitacion").val()==0){
                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes. Monto");
                        $("#monto_solicitado_invitacion").focus();
                        return false;
                    }else{
                    	document.getElementById("motive").setAttribute("readonly","readonly");
                        $("#guardarCompprev").removeAttr("disabled");
                        if($("#delegado").val() != 0){
                        	$("#enviaDirector").removeAttr("disabled");
                        }else{
                        	$("#guardarCompedit").removeAttr("disabled");
                        }
                    }
                                            
                }      
            }

            function validaInvitados(){
				var numInv = parseInt($("#numInvitados").val());
				if(numInv < 2){
					alert("Favor de ingresar por lo menos dos invitados.");
					return false;
				}else{
					return true;
				}
			}
                                                       
            function guardaComprobacion(){
                var frm=document.detallesItinerarios;
                if(validaInvitados()){
	                id= parseInt($("#solicitud_table").find("tr:last").find("td").eq(0).html());
	                if(($("#numInvitados").val() >= 1)){
	                	if($("#motive").val()==""){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                        $("#motive").focus();
	                        return false;
	                    }else if($("#lugar_inv").val()==""){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                        $("#lugar_inv").focus();
	                        return false;
	                    }else if($("#monto_solicitado_invitacion").val()==0){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes. Monto");
	                        $("#monto_solicitado_invitacion").focus();
	                        return false;
	                    }else if($("#divisa_solicitud_invitacion").val()=="" ||$("#divisa_solicitud_invitacion").val()==-1 ){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                        $("#divisa_solicitud_invitacion").focus();
	                        return false;
	                    }else if($("#ccentro_costos").val()==""){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                        $("#ccentro_costos").focus();
	                        return false;
	                    }else if($("#ciudad_invitacion").val()==""){
	                        alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                        $("#ciudad_invitacion").focus();
	                        return false;
	                    } else if ($("#banderavalida").val() == 1){
	                    	if($("#observ").val().length == 0 ){
	                            alert("Los campos con (*) son obligatorios. Favor de llenar los datos faltantes.");
	                            $("#observ").focus();
	                            return false;
	                        }
	                    } else {
	                    	document.getElementById("motive").setAttribute("readonly","readonly");
	                    	document.getElementById("nombre_invitado").setAttribute("disabled","disabled");
	                    	document.getElementById("puesto_invitado").setAttribute("disabled","disabled");
	                    	document.getElementById("empresa_invitado").setAttribute("disabled","disabled");                    	
	                    	document.getElementById("tipo_invitado").setAttribute("disabled","disabled");						
							document.getElementById("agregar_invitado").setAttribute("disabled","disabled");
	                        $("#guardarCompprev").removeAttr("disabled");
	                        if($("#delegado").val() != 0){
	                        	$("#enviaDirector").removeAttr("disabled");
	                        }else{
	                        	$("#guardarCompedit").removeAttr("disabled");
	                        }
	                    }
	                                            
	                }
                }else{
                    return false;
                }
            }


            function guardaprevioComprobacion(){
                var frm=document.detallesItinerarios;
                    	document.getElementById("motive").setAttribute("readonly","readonly");
						if(document.getElementById("motive").value != "")
							$("#guardarprevCompedit").removeAttr("disabled");
						else if(document.getElementById("motive").value == "")
							frm.guardarprevCompedit.disabled = true;
            }
            function guardaprevioComprobacion1(){
                var frm=document.detallesItinerarios;
                $("#guardarprevCompedit").removeAttr("disabled");                            
            }

            function solicitarConfirmPrevio(){
            	 var frm=document.detallesItinerarios;
        		if(confirm("¿Desea guardar esta Solicitud como previo?")){
        			//frm.submit();
        		}else{
            		return false;
        		}
                }

            function enviarSub(){
                var frm=document.detallesItinerarios;
                document.getElementById("motive").setAttribute("readonly","readonly");                       
            }

            function evaluaMonto(monto){
            	var montoMaximo = 0;
				var montoMaximoDiv = 0;
				
            	var esDirector = <?php 
        $idusuario = $_SESSION["idusuario"];
        $esDirector = 0;
        $rutaAutorizacion = new RutaAutorizacion();
        $esDirector = $rutaAutorizacion->nivelEmpleado($idusuario);
        echo $esDirector;
        ?>
;
				var directorGeneral = <?php 
        echo DIRECTOR_GENERAL;
        ?>
;
				
            	$("#capaWarning").html("");
                var mensajeExcedePoliticas = undefined;
                //Variables de las cajas de Texto 
                var divEuro = parseFloat($("#valorDivisaEUR").val());
                //var monto = parseFloat($("#tpesos").val());
                var num_invitados = parseFloat($("#numInvitados").val());
                //Variable para guardar 
                var monto2 = 0;
                monto2 = ((monto / divEuro) / num_invitados );
                
             	// Monto máximo de Comidas de Invitación
				$.ajax({
					type: "POST",
					url: "services/ajax_solicitudes.php",
					data: "montoMaximo=ok",
					dataType: "json",
					async: false, 
					timeout: 10000, 
					success: function(json){
						montoMaximo = parseFloat(json[0].montoCantidad);
						montoMaximoDiv = json[0].divisaMonto;
					}, 
					complete: function (json){
						//alert("Completo: carga de politicas de comida Invitacion:"+montoMaximo+" "+montoMaximoDiv);
						if(monto2 > montoMaximo && mensajeExcedePoliticas == undefined){
		                    if(esDirector != directorGeneral){
		                		mensajeExcedePoliticas = "<strong>Esta rebasando la pol&iacute;tica del concepto. <br>El monto m&aacute;ximo es de " + montoMaximo + " " + montoMaximoDiv + ".<br /> La solicitud requerir&aacute; ser validada por el Dir. General.</strong>";
		                    }else{
		                    	mensajeExcedePoliticas = "<strong>Esta rebasando la pol&iacute;tica del concepto. <br>El monto m&aacute;ximo es de " + montoMaximo + " " + montoMaximoDiv + ".<br /></strong>";
		                    }
		                	conceptoExcedePoliticas = true;                                        
		                } else {
		                	conceptoExcedePoliticas = false;
		                }
		                
		                if(conceptoExcedePoliticas){
		                    $("#capaWarning").html(mensajeExcedePoliticas);
		                    $("#obsjus").html("Agregar justificaci&oacute;n detallada del motivo del excedente<span class='style1'>*</span>:");
		                    document.getElementById("banderavalida").value = 1;                   
		                } else {
		                	$("#obsjus").html("Observaciones:");
		                	document.getElementById("banderavalida").value = 0;
		                }
					},
					error: function(x, t, m) {
						if(t==="timeout") {
							location.reload();
							abort();
						}else if(montoMaximo == 0 || montoMaximo == ""){
							location.reload();
							abort();
						}
					}
				});
            }
            
            function recalculaMontos(){
                var anticipo = parseFloat(($("#monto_solicitado_invitacion").val()).replace(/,/g,""));

                var totalAnticipo = 0;
				var divisas = $("#divisa_solicitud_invitacion").val();

				var tasaNueva = 1;
				if(divisas != 1){ //Si la divisa es diferente a MXN
					//Se obtiene las tasas de las divisas
					var tasa = "<?php 
        $query = sprintf('SELECT DIV_ID,DIV_TASA FROM divisa');
        $var = mysql_query($query);
        $aux = "";
        while ($arr = mysql_fetch_assoc($var)) {
            $aux .= $arr['DIV_ID'] . ":" . $arr['DIV_TASA'] . ":";
        }
        echo $aux;
        ?>
";
					var tasa2 = tasa.split(":");
					
					//Se obtiene la tasa de la divisa seleccionada
					for(i=0;i<=tasa2.length;i=i+2){
						if(tasa2[i] == divisas){
							tasaNueva = tasa2[i+1];
						}
					}
				}

				totalAnticipo = anticipo * parseFloat(tasaNueva);
				document.getElementById("tpesosdisabled").value = number_format(redondea(totalAnticipo),2,".",",");//redondea a 2 decimales
				document.getElementById("tpesos").value = number_format(redondea(totalAnticipo),2,".",",");//redondea a 2 decimales
                evaluaMonto(totalAnticipo);                	
            }
			
			function redondea(valor){
				return (Math.round(valor * Math.pow(10, 2)) / Math.pow(10, 2));
			}
			            
        </script>

        <link rel="stylesheet" type="text/css" href="../../css/jquery.autocomplete.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/date_input.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/table_style.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/style_Table_Edit.css"/>
        <style type="text/css">
            .style1 {color: #FF0000}

        </style>


        <div id="Layer1" >
            <form action="solicitud_invitacion_new.php?save" method="post" name="detallesItinerarios" id="detallesItinerarios" >
                <center><h3>Solicitud de Invitaci&oacute;n</h3></center>
                <table width="785" border="0" align="center" cellspacing="1" style="border:1px #CCCCCC solid;margin:auto;margin-top:5px;text-align:left;">
                    <tr>
                    <td colspan="9">&nbsp;</td>
                    </tr>
                    <tr style="text-align:center;">
                        <td colspan="9">Motivo<span class="style1">*</span>: <input name="motive" type="text" id="motive" size=50 maxlength="100" onchange="return guardaprevioComprobacion();" onclick="return guardaprevioComprobacion(); " onkeyup="return guardaprevioComprobacion();" />
                        </td>
                    </tr>
                    <tr>
                    	<td>&nbsp;</td>
                    	<td colspan="2" align="right">Fecha de Invitaci&oacute;n<span class="style1">*</span>:</td>
                    	<td align="left"><input name="fecha_inv" id="fecha_inv" value="<?php 
        echo date('d/m/Y');
        ?>
" size="12" readonly="readonly"></td>
						<td>&nbsp;</td>
						<td colspan="2" align="right">Lugar de invitaci&oacute;n/Restaurante<span class="style1">*</span>:</td>
						<td align="left"><input type="text" name="lugar_inv" id="lugar_inv" maxlength="100"/></td>
						<td>&nbsp;</td>
					</tr>
                    <tr>
                    	<td colspan="9"><div>&nbsp;</div></td>
                    </tr>
                </table>
                <br/>
                <center><div id="montoPolitica"></div></center>
                <center><div style="display: none"><span class="style1">* Monto m&aacute;ximo por persona Funcionarios Gubernamentales: 30.00 EUR</span></div></center>
                <br/>
                <center>
                    <table width="785" border="0" cellspacing="1" style="border:1px #CCCCCC solid;margin:auto;margin-top:5px;text-align:left; background-color:#F8F8F8" >  

                        <tr style="text-align:center;" >
                            <td colspan="4"><h3>Invitados</h3></td>
                        </tr>
                        <tr>  
                            <td>&nbsp;</td>
                            <td width="50%">Nombre<span class="style1">*</span>:&nbsp;&nbsp;<input name="nombre_invitado" type="text" id="nombre_invitado" size=50 maxlength="100" />
                            </td>
                            <td width="50%">Tipo de Invitado<span class="style1">*</span>:&nbsp;&nbsp;<select name="tipo_invitado" id="tipo_invitado" onchange="verificar_tipo_invitado();">
                                    <option value="-1">Seleccione...</option>
                                    <option value="BMW">Empleado BMW de M&eacute;xico</option>
                                    <option value="Externo">Externo</option>
                                    <option value="Gobierno">Gobierno</option>
                                </select>

                            </td>
                            <td>&nbsp;</td>
                        </tr> 
                        <tr>
                            <td>&nbsp;</td>
                            <td width="50%">Puesto<span class="style1">*</span>:&nbsp;&nbsp;&nbsp;<input name="puesto_invitado" type="text" id="puesto_invitado" size=50 maxlength="100" />
                            </td>
                            <td width="50%">Empresa<span class="style1">*</span>:&nbsp;&nbsp;<input name="empresa_invitado" type="text" id="empresa_invitado" size=50 maxlength="100" disabled="disable" />
                            </td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><div id="capaDirector"></div></td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td colspan="2">
                                <div align="center">
                                    <input name="agregar_invitado" type="button" id="agregar_invitado" value="     Agregar Invitado"  onclick="agregarPartida();" style="background:url(../../images/ok.png); background-position:left; background-repeat:no-repeat; background-color:#E1E4EC;"/>
                                </div>
                            </td>
                            <td>&nbsp;</td>
                        </tr>

                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr><td>&nbsp;</td><td colspan="2" style="text-align:center">
                                <table id="invitado_table" class="tablesorter" cellspacing="1"> 
                                    <thead> 
                                        <tr> 
                                            <th width="5%" align="center" valign="middle">No.</th>
                                            <th width="30%" align="center" valign="middle">Nombre</th> 
                                            <th width="30%" align="center" valign="middle">Puesto</th>
                                            <th width="30%" align="center" valign="middle">Empresa</th>
                                            <th width="30%" align="center" valign="middle">Tipo</th>
                                            <th width="5%" align="center" valign="middle">Eliminar</th>
                                        </tr>
                                       
                                    </thead> 
                                    <tbody> 
                                     <tr>	
                                     		<?php 
        // Obtener el puesto del empleado
        //$idempleado = $_SESSION["idusuario"];
        $varDelegado = 0;
        if (isset($_SESSION['iddelegado'])) {
            $varDelegado = $_SESSION['iddelegado'];
        }
        $idempleado = verificaSesion($_SESSION["idusuario"], $varDelegado);
        //$idempleado = verificaSesion($_SESSION["idusuario"], $_SESSION["iddelegado"]);
        error_log("Empleado retornado: " . $idempleado);
        $usuarioActivo = new Usuario();
        $usuarioActivo->Load_Usuario_By_ID($idempleado);
        $nombreUsuario = $usuarioActivo->Get_dato("u_paterno") . " " . $usuarioActivo->Get_dato("u_materno") . " " . $usuarioActivo->Get_dato("u_nombre");
        $id_empresa = $usuarioActivo->Get_dato("u_empresa");
        ?>
                                            <td><div id='renglon1' name='renglon1'>1</div><input type="hidden" name="row1" id="row1" value="1" readonly='readonly'/></td>
                                            <td><input type="hidden" name="nombre1" id="nombre1" value="<?php 
        echo $nombreUsuario;
        ?>
" /><?php 
        echo $nombreUsuario;
        ?>
</td> 
                                            <td><?php 
        $cnn = new conexion();
        $query = sprintf("SELECT npuesto FROM empleado WHERE idfwk_usuario='%s'", $idempleado);
        $rst = $cnn->consultar($query);
        $fila = mysql_fetch_assoc($rst);
        echo $fila['npuesto'];
        ?>
<input type="hidden" name="puesto1" id="puesto1" value="<?php 
        echo $fila['npuesto'];
        ?>
" /></td>
                                            <td aling="center"><?php 
        // Obtener el nombre de la empresa
        $cnn = new conexion();
        $query2 = sprintf("SELECT e_nombre FROM empresas WHERE e_id='%s'", $id_empresa);
        $rst2 = $cnn->consultar($query2);
        $filab = mysql_fetch_assoc($rst2);
        echo $filab['e_nombre'];
        ?>
<input type="hidden" name="empresa1" id="empresa1" value="<?php 
        echo $filab['e_nombre'];
        ?>
" /></td>
                                            <td aling="center">BMW<input type="hidden" name="tipo1" id="tipo1" value="BMW" /></td>
                                            <td><div align='center'><img id="1del" class="elimina" style="cursor:pointer;" onmousedown="borrarPartida(this.id);" name="1del" alt="Click aquí para Eliminar" src="../../images/delete.gif"></div><div align="center">Eliminar Partida</div></td>
                                        </tr> 
                                        <!-- cuerpo tabla-->
                                    </tbody> 
                                </table> 

                            </td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td> 
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>

                            <td colspan="2">N&uacute;mero de invitados<span class="style1">*</span>:&nbsp;
                                <input type="text" name="numInvitadosDisabled" id="numInvitadosDisabled" value="1" size="15" disabled="disabled" />
                                <input type="hidden" name="numInvitados" id="numInvitados" value="1" size="15" readonly="readonly" /></td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>

                    </table>

                    <br/>
                    <br/>
                    <table width="785" border="0" align="center" cellspacing="1">
                        <tr>
                            <td width="3%">&nbsp;</td>
                            <td width="15%">&nbsp;</td>
                            <td width="24%">&nbsp;</td>
                            <td width="23%">&nbsp;</td>
                            <td width="34%">&nbsp;</td>
                            <td width="1%">&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td colspan="3">Total Monto solicitado<span class="style1">*</span>:&nbsp;
                                <!--<input name="monto_solicitado_invitacion" type="text" id="monto_solicitado_invitacion" maxlength="100" value="0.00" onkeydown="aux2 = validaNum2(event); return validaNum(event);" onkeypress="" onkeyup="recalculaMontos(); if(aux2 != 'ok'){this.value = format_input(this.value);}" onchange="recalculaMontos();"/>-->
                                <!--<input name="monto_solicitado_invitacion" type="text" id="monto_solicitado_invitacion" maxlength="100" value="0" onkeydown="/*aux2 = validaNum2(event); return validaNum(event);*/" onkeypress="return NumCheck(event, this);" onkeyup="recalculaMontos(); /*if(aux2 != 'ok'){this.value = format_input(this.value);}*/" onchange="recalculaMontos();"/>-->
                                <input name="monto_solicitado_invitacion" type="text" id="monto_solicitado_invitacion" maxlength="100" value="0" onkeydown="" onkeypress="" onkeyup="revisaCadena(this); recalculaMontos();" onchange="recalculaMontos();"/>
                            </td>
                            <td>Divisa<span class="style1">*</span>:&nbsp;<select name="divisa_solicitud_invitacion" id="divisa_solicitud_invitacion" onchange="recalculaMontos();">
                                    <option value="-1">Seleccione...</option>
                                    <option value="1">MXN</option>
                                    <option value="2">USD</option>
                                    <option value="3">EUR</option>
                                </select></td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td colspan="3">Total en Pesos:&nbsp;<input type="text" name="tpesosdisabled" id="tpesosdisabled" value="0.00" size="15" disabled="disabled" />
                            <input type="hidden" name="tpesos" id="tpesos" value="0.00" size="15" readonly="readonly" /> MXN<div id="capaWarning"></div></td>
                            <td>Ciudad<span class="style1">*</span>:&nbsp;<input name="ciudad_invitacion" type="text" id="ciudad_invitacion" maxlength="100" /></td>
                            <td><input type="hidden" name="banderavalida" id="banderavalida" readonly="readonly" /></td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td colspan="3">Centro de Costos<span class="style1">*</span>:&nbsp;
                                <select name="ccentro_costos" id="ccentro_costos" onchange="getCentroCostos();">
                                    <option id="-1" value="-1">Seleccione...</option>
									<?php 
        $query = sprintf("SELECT cc_id,cc_centrocostos,cc_nombre FROM cat_cecos WHERE cc_estatus = '1' AND cc_empresa_id = '" . $_SESSION["empresa"] . "' order by cc_centrocostos");
        $var = mysql_query($query);
        while ($arr = mysql_fetch_assoc($var)) {
            echo sprintf("<option value='%s'>%s - %s</option>", $arr['cc_id'], $arr['cc_centrocostos'], $arr['cc_nombre']);
        }
        ?>
                    
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                         <?php 
        $tramite = $_GET['edit2'];
        $FTramite = new Tramite();
        $FTramite->Load_Tramite($tramite);
        $tEtapa = $FTramite->Get_dato("t_etapa_actual");
        $tAutorizacionesHistorial = $FTramite->Get_dato("t_autorizaciones_historial");
        //                          error_log("Tramite: ".$tramite);
        //                          error_log("Etapa del tramite: ".$tEtapa);
        if ($tEtapa == SOLICITUD_INVITACION_ETAPA_RECHAZADA || $tEtapa == SOLICITUD_INVITACION_ETAPA_RECHAZADA_POR_DIRECTOR || $tAutorizacionesHistorial != "") {
            ?>
							<tr>
	                            <td>&nbsp;</td>
	                            <td>&nbsp;</td>
	                            <td>&nbsp;</td>
	                            <td>&nbsp;</td>
	                            <td>&nbsp;</td>
	                            <td>&nbsp;</td>
							</tr>
	                        <tr>
	                        	<td>&nbsp;</td>
								<td align="right" valign="top">Historial de Observaciones:</td>
								<td colspan="3" rowspan="1" class="alignLeft" >
								<textarea name="historial_observaciones" id="historial_observaciones" cols="80" rows="5" readonly="readonly" onkeypress="confirmaRegreso('historial_observaciones');" onkeydown="confirmaRegreso('historial_observaciones');"></textarea>
								</td>
							</tr>
						<?php 
        }
        ?>
                        <tr>
                            <td><input type="hidden" name="etapa" id="etapa" value="<?php 
        echo $tEtapa;
        ?>
" /></td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td align="right" valign="top"><div id="obsjus">Observaciones:</div></td>
                            <td colspan="3" ><div id="areatext"><textarea name="observ" cols="80" rows="5" id="observ"></textarea></div></td>
                            <td>&nbsp;</td>
                        </tr>
                    </table>
                </center>
                <br />
                <div align="center"></div>



            <?php 
    }
예제 #4
0
        require_once "solicitud_view_edit_viaje.php";
        //}
    }
    ?>
	</html>
<?php 
}
if (isset($_POST['autorizar_cotizacion']) && isset($_POST['idT']) && $_POST['idT'] != "" && isset($_POST['iu']) && $_POST['iu'] != "") {
    $idTramite = $_POST['idT'];
    $sObser = $_POST['observ_to_emple'];
    $sv_total = str_replace(',', '', $_POST['totalSolicitud']);
    $delegado = $_POST['delegado'];
    $HObser = $_POST['campo_historial'];
    $cnn = new conexion();
    $delegados = new Delegados();
    $ruta_autorizacion = new RutaAutorizacion();
    $tramite = new Tramite();
    $tramite->Load_Tramite($idTramite);
    $t_dueno = $tramite->Get_dato("t_dueno");
    $t_delegado = $tramite->Get_dato("t_delegado");
    //error_log("Delegado: ".$delegado);
    //Datos usuario
    if ($delegado == 0) {
        $iduser = $_POST['iu'];
        $delegado = 0;
    } else {
        $iduser = $delegado;
        $delegado = $_POST['iu'];
    }
    $existeDelegado = $delegados->existenciaDelegado($iduser, $delegado);
    /*
예제 #5
0
// 	$t_dueno = $rutaAuto->getDueno($idT);
// 	$tramite->Modifica_Etapa($idT, COMPROBACION_INVITACION_ETAPA_VALIDADO_POR_SUPERVISOR_FINANZAS, FLUJO_COMPROBACION_INVITACION, "2000", "");
// 	//Envia notificacion al Supervisor/Gerente de Finanzas de la solicitud de invitación ----------------------------------
// 	$mensaje = sprintf("La Comprobaci&oacute;n de Invitaci&oacute;n <strong>%05s</strong> ha sido <strong>APROBADA</strong> por el Supervisor de Finanzas.", $idT);
// 	$remitente = $t_dueno;
// 	$destinatario = "2000";
// 	$tramite->EnviaNotificacion($idT, $mensaje, $remitente, $destinatario, "0", ""); //false para no enviar email
// 	echo "realizado";
// }
if (isset($_POST['usuarioFinanzas'])) {
    $usuarioTipoFinanzas = $_POST['usuarioFinanzas'];
    $tramite = $_POST['idtramite'];
    $montoComprobado = $_POST['mntComprobacion'];
    $dueno_act_nombre = "";
    $tu_id = 0;
    $rutaAutorizacion = new RutaAutorizacion();
    if ($usuarioTipoFinanzas == "Supervisor de finanzas") {
        $rutaAutorizacion->AutorizarporSupervisorFinanzas($tramite, $montoComprobado);
    } elseif ($usuarioTipoFinanzas == "Gerente de finanzas") {
        $rutaAutorizacion->AutorizarporGerenteFinanzas($tramite, $montoComprobado);
    }
    echo "realizado";
}
if (isset($_POST['devolverObservaciones'])) {
    $cnn = new conexion();
    $tramiteId = $_POST['idtramite'];
    $ObservacionesNuevas = $_POST['devolverObservaciones'];
    $idusuario = $_POST['idUsuario'];
    $observacionesViejas = "";
    $tramite = new Tramite();
    $tramite->Load_Tramite($tramiteId);
 $cecoOriginal = $_POST['centro_de_costos_old'];
 $divisaEuro = $_POST["valorDivisaEUR"];
 $divisaDolar = $_POST["valorDivisaUSD"];
 if ($observaciones != "") {
     $notificacion = new Notificacion();
     $observaciones = $notificacion->anotaObservacion($idusuario, $historialObservaciones, $observaciones, FLUJO_COMPROBACION, COMPROBACION_ETAPA_EN_APROBACION);
     $sql = "UPDATE comprobaciones \n\t\t\t\t\tSET co_observaciones = '{$observaciones}' \n\t\t\t\t\tWHERE co_mi_tramite = '{$idTramite}'";
     $cnn->ejecutar($sql);
 }
 $tramite = new Tramite();
 $tramite->Load_Tramite($idTramite);
 $t_ruta_autorizacion = $tramite->Get_dato("t_ruta_autorizacion");
 $t_delegado = $tramite->Get_dato("t_delegado");
 $t_dueno = $tramite->Get_dato("t_dueno");
 $t_iniciador = $tramite->Get_dato("t_iniciador");
 $rutaAutorizacion = new RutaAutorizacion();
 //print_r($_REQUEST);
 if ($modo == "autorizar") {
     $finRuta = false;
     //$siguienteAprobador = $rutaAutorizacion->AutorizarFinanzas($idTramite, $cecoNuevo , 1);
     $siguienteAprobador = $rutaAutorizacion->getSiguienteAprobador($idTramite, $t_dueno);
     if ($siguienteAprobador == "") {
         $finRuta = true;
         $siguienteAprobador = $t_iniciador;
     }
     $duenoActual01 = new Usuario();
     if ($duenoActual01->Load_Usuario_By_ID($t_dueno)) {
         $dueno_act_nombre = $duenoActual01->Get_dato('nombre');
     } else {
         $agrup_usu = new AgrupacionUsuarios();
         $agrup_usu->Load_Grupo_de_Usuario_By_ID($t_dueno);
예제 #7
0
             }
         }
     }
     header("Location: ./index.php?action=aprobar");
 } elseif (isset($_POST['enviarCV'])) {
     // Validar Comprobaciones de Viaje por el Supervisor/Gerente de Finanzas
     $tramites_aceptados = $_POST['tramites_aceptadosCV'];
     $tramites_rechazados = $_POST['tramites_rechazadosCV'];
     $perfil = $_POST['perfil'];
     $tramites_a_aprobar = array();
     $tramites_a_rechazar = array();
     $no_tramites_a_aprobar = 0;
     $no_tramites_a_rechazar = 0;
     $cnn = new conexion();
     $tramite = new Tramite();
     $rutaAuto = new RutaAutorizacion();
     if ($perfil == GERENTE_FINANZAS) {
         $validador = "Gerente";
     } else {
         $validador = "Supervisor";
     }
     // Tramites para aprobar
     //error_log("-------------->>>>>>>>>>>>>>>tramites a aprobar: ".$tramites_aceptados);
     if ($tramites_aceptados != 0) {
         $tramites_a_aprobar = explode('|', $tramites_aceptados);
         $no_tramites_a_aprobar = count($tramites_a_aprobar);
         for ($i = 0; $i < (int) $no_tramites_a_aprobar; $i++) {
             if ($tramites_a_aprobar[$i] != "") {
                 //error_log($tramites_a_aprobar[$i]);
                 $idT = $tramites_a_aprobar[$i];
                 $t_dueno = $rutaAuto->getDueno($idT);
예제 #8
0
 // Limpiar Excepciones
 $cnn = new conexion();
 $query = sprintf("DELETE excepciones FROM excepciones WHERE ex_solicitud = %s", $idSolicitud);
 $cnn->ejecutar($query);
 if (!isset($_REQUEST['guardarprevSol'])) {
     // Guardado de las Excepciones
     for ($j = 1; $j <= $_POST['totalExcepciones']; $j++) {
         $e_concepto = $_POST['e_row_concepto' . $j];
         $e_mensaje = $_POST['e_row_mensaje' . $j];
         $e_fecha = $_POST['e_row_fecha' . $j];
         $e_referencia = 0;
         $e_totalPartida = $_POST['e_row_totalPartida' . $j];
         $e_diferencia = $_POST['e_row_diferencia' . $j];
         Add_excepcion($e_mensaje, $e_diferencia, $idSolicitud, 0, $e_referencia, $e_concepto, 0, 0);
     }
     $rutaAutorizacion = new RutaAutorizacion();
     /**
      * Validacion y guardado de excepcion de presupuesto
      **/
     $rutaAutorizadores = $rutaAutorizacion->generarRutaAutorizacion($idTramite, $_SESSION['idrepresentante']);
     // Obtener Autorizador
     $aprobador = $rutaAutorizacion->getSiguienteAprobador($idTramite, $iniciador);
     // Creamos el texto de las observaciones que serán enviadas
     if ($observaciones != '') {
         $observaciones = $notificacion->anotaObservacion($iniciador, $historialObservaciones, $observaciones, FLUJO_SOLICITUD_GASTOS, SOLICITUD_GASTOS_ETAPA_SIN_ENVIAR, $_SESSION['idrepresentante']);
     } else {
         $observaciones = '';
     }
     // Actualizar las observaciones de la solicitud de gastos
     $solicitud->actualizaObservaciones($observaciones, '', $idTramite);
     $tramite->Modifica_Etapa($idTramite, SOLICITUD_GASTOS_ETAPA_APROBACION, FLUJO_SOLICITUD_GASTOS, $aprobador, $rutaAutorizadores, $_SESSION['idrepresentante']);
 }
 limpiar_detalles($idComprobacion);
 // Detalle Comprobación
 $comprobacion->Agrega_Detalle_Comp_Invitacion2($idComprobacion, $cConc, $cP_RFC, $cAmt, $cImp_porc, $cImp, $cTotal, $idProv, $cDate, $cExch, $cRate, $tot_invitados, $cPropina, $cFolio, $cTotalPesos, $cCargo_asociado_amex, $comentario);
 limpiar_invitados($tramite_editar);
 $comensales = new Comensales();
 for ($i = 1; $i <= $_POST['numInvitados']; $i++) {
     $sNombre = $_POST['nombre' . $i];
     $sPuesto = $_POST['puesto' . $i];
     $sTipo = $_POST['tipoinv' . $i];
     $sEmpresa = $_POST['empresa' . $i];
     $id_detalle_solicitud_invitacion = add_detalle_solicitud_invitacion("0", $sNombre, $sPuesto, $sEmpresa, $sTipo, $tramite_editar);
 }
 if ($etapaTramite != COMPROBACION_INVITACION_ETAPA_DEVUELTA_CON_OBSERVACIONES) {
     // Buscamos quien debe aprobar esta solicitud
     $ruta_autorizacion = new RutaAutorizacion();
     $ruta_autorizacion->generRutaAutorizacionComprobacionInvitacion($tramite_editar, $iduser);
     $aprobador = $ruta_autorizacion->getSiguienteAprobador($tramite_editar, $iduser);
     // Envia el tramite a aprobacion
     $usuarioAprobador = new Usuario();
     $usuarioAprobador->Load_Usuario_By_ID($aprobador);
     $duenoActual = new Usuario();
     $duenoActual->Load_Usuario_By_ID($iduser);
     $nombreUsuario = $duenoActual->Get_dato('nombre');
     $tramite->Load_Tramite($tramite_editar);
     $rutaAutorizacion = $tramite->Get_dato('t_ruta_autorizacion');
     $tramite->Modifica_Etapa($tramite_editar, COMPROBACION_INVITACION_ETAPA_APROBACION, FLUJO_COMPROBACION_INVITACION, $aprobador, $rutaAutorizacion);
     if ($sesionDelegado != 0) {
         $duenoActual->Load_Usuario_By_ID($delegado);
         $nombreDelegado = $duenoActual->Get_dato('nombre');
         $mensaje = sprintf("La Comprobaci&oacute;n de Invitaci&oacute;n <strong>%05s</strong> ha sido <strong>CREADA</strong> por: <strong>%s</strong> en nombre de: <strong>%s</strong> y requiere de su autorizaci&oacute;n.", $tramite_editar, $nombreDelegado, $nombreUsuario);
 $tramite->Load_Tramite($idTramite);
 $t_dueno = $tramite->Get_dato('t_dueno');
 $t_delegado = $tramite->Get_dato('t_delegado');
 $iniciador = $tramite->Get_dato('t_iniciador');
 if ($observaciones != "") {
     $query = sprintf("SELECT co_observaciones FROM comprobaciones WHERE co_mi_tramite = '%s'", $idTramite);
     $rst = $cnn->consultar($query);
     $fila = mysql_fetch_assoc($rst);
     $HObser = $fila['co_observaciones'];
     $notificacion = new Notificacion();
     $observaciones = $notificacion->anotaObservacion($t_dueno, $HObser, $observaciones, FLUJO_COMPROBACION, COMPROBACION_ETAPA_EN_APROBACION);
     $queryInsertaObs = sprintf("UPDATE comprobaciones SET co_observaciones = '%s' WHERE co_mi_tramite = '%s'", $observaciones, $idTramite);
     $cnn->ejecutar($queryInsertaObs);
 }
 if ($modo == 'aprobar') {
     $rutaautorizacion = new RutaAutorizacion();
     /**
      * Validacion y guardado de excepcion de presupuesto
      **/
     $presupuesto = new Presupuesto();
     $objetoPresupuesto = $presupuesto->validarPresupuesto($idTramite);
     $rutaautorizacion->generaExcepcion($idTramite, $objetoPresupuesto);
     $rutaautorizacion->generarRutaAutorizacion($idTramite, $t_delegado);
     $excepciones = $rutaautorizacion->get_Excepciones($idTramite);
     $rutaautorizacion->agregaAutorizadoresExcedentes($idTramite, $excepciones);
     $destinatario = $rutaautorizacion->getAprobador($idTramite, $iduser);
     $etapa = COMPROBACION_ETAPA_EN_APROBACION;
     $redirect = "okAut";
 } elseif ($modo == 'rechazar') {
     $etapa = COMPROBACION_ETAPA_RECHAZADA_POR_DIRECTOR;
     $destinatario = $iniciador;
 $modo = $_REQUEST["modo"];
 $idTramite = $_POST["idT"];
 $delegado = $_POST['delegado'];
 $idusuario = $_POST['iu'];
 $perfil = $_POST['perfil'];
 $privilegios = $_POST['privilegios'];
 $etapa = $_POST['t_etapa_actual'];
 $rows = $_POST['total_rows'];
 $observaciones = $_POST['campo_observaciones'];
 $historialObservaciones = $_POST["campo_historial"];
 $cecoNuevo = $_POST['centro_de_costos_new'];
 $cecoOriginal = $_POST['centro_de_costos_old'];
 $divisaEuro = $_POST["valorDivisaEUR"];
 $divisaDolar = $_POST["valorDivisaUSD"];
 $tramite = new Tramite();
 $rutaAutorizacion = new RutaAutorizacion();
 $notificacion = new Notificacion();
 $comprobaciones = new ComprobacionGastos();
 $detalleComprobacion = new DetalleComprobacionGastos();
 $concepto = new Concepto();
 $usuario = new Usuario();
 // Iniciar transaccion en caso de que existir un error
 $tramite->ejecutar("SET AUTOCOMMIT = 0");
 $tramite->ejecutar("BEGIN");
 // Informacion del Tramite
 $tramite->Load_Tramite($idTramite);
 $t_ruta_autorizacion = $tramite->Get_dato("t_ruta_autorizacion");
 $t_delegado = $tramite->Get_dato("t_delegado");
 $t_dueno = $tramite->Get_dato("t_dueno");
 $t_iniciador = $tramite->Get_dato("t_iniciador");
 // Guardado de Observaciones
예제 #12
0
    //Notificacion para empleado
    $mensaje = sprintf("El monto que la agencia de viajes ha registrado para la compra del boleto de avi&oacute;n de la solicitud de viaje <strong>%05s</strong> excede el l&iacute;mite de tolerancia, se enviar&aacute; nuevamente a aprobaci&oacute;n", $tramiteId);
    $remitente = $tramite->Get_dato("t_dueno");
    //enviar la notificacion al empleado ----> t_iniciador
    $destinatario = $tramite->Get_dato("t_iniciador");
    $tramite->EnviaNotificacion($tramiteId, $mensaje, $remitente, $destinatario, "0", "");
    //"0" para no enviar email y "1" para enviarlo
    /*$query=sprintf("select * from EXPENVKIOQA1.usuario where u_id = %s",CONTROLINTERNO);
    	$rst=$cnn->consultar($query);
    	while ($fila = mysql_fetch_assoc($rst)) {
    		$sv_ceco_paga=$fila['u_id'];
    	}
    	*/
    //Notificacion al gerente de area
    //construimos la segunda ruta de autorizacion
    $rutaAutorizacion = new RutaAutorizacion();
    $aprobadornuevo = $rutaAutorizacion->generaRutaSegundaAutorizacion($destinatario, $tramiteId, $diferenciaMontos);
    $tramite->Modifica_Etapa($tramiteId, SOLICITUD_ETAPA_SEGUNDA_APROBACION, FLUJO_SOLICITUD, $aprobadornuevo, "");
    $usuarioCreador = new Usuario();
    $usuarioCreador->Load_Usuario_By_ID($tramite->Get_dato("t_iniciador"));
    $mensaje = sprintf("El monto que la agencia de viajes ha registrado para la compra del boleto de avi&oacute;n de la solicitud de viaje <strong>%05s</strong> creada por:<strong>%s</strong> excede el l&iacute;mite de tolerancia  y requiere de su autorizaci&oacute;n.", $tramiteId, $usuarioCreador->Get_dato('nombre'));
    $remitente = $tramite->Get_dato("t_dueno");
    //se le enviara al Gerente de area
    $tramite->EnviaNotificacion($tramiteId, $mensaje, $remitente, $aprobadornuevo, "1", "");
    //"0" para no enviar email y "1" para enviarlo
}
//funcion que nos regresara el numero de CECO al cual esta asignado el usuario ( creacion de una solicitud viaje)
if (isset($_POST['idEmpleado'])) {
    $idEmpleado = (int) $_POST['idEmpleado'];
    $cecoEmpleado = 0;
    $cnn = new conexion();
    $cnn = new conexion();
    $tramite = $_POST['noSolicitud'];
    $query = sprintf("SELECT sg_motivo, sg_monto, sg_divisa, sg_ceco, sg_ciudad, sg_monto_pesos, \r\n\t\t\t\t\t%s AS sg_fecha_gasto, sg_lugar, cc_centrocostos, FORMAT(sg_monto_pesos, 2) AS montoPesos, \r\n\t\t\t\t\tIF(t_etapa_actual = %s, sg_observaciones_edicion, sg_observaciones) AS observaciones, \r\n\t\t\t\t\tsg_observaciones, sg_observaciones_edicion, sg_requiere_anticipo, sg_concepto, t_etapa_actual \r\n\t\t\t\t\tFROM solicitud_gastos \r\n\t\t\t\t\tJOIN tramites ON sg_tramite = t_id \r\n\t\t\t\t\tJOIN cat_cecos ON sg_ceco = cc_id \r\n\t\t\t\t\tWHERE sg_tramite = '%s'", "DATE_FORMAT(sg_fecha_gasto,'%d/%m/%Y')", SOLICITUD_GASTOS_ETAPA_SIN_ENVIAR, $tramite);
    //error_log("--->> Carga del gasto: ".$query);
    $rst = $cnn->consultar($query);
    while ($fila = mysql_fetch_assoc($rst)) {
        $_arreglo[] = array('motivo' => utf8_encode($fila['sg_motivo']), 'monto' => $fila['sg_monto'], 'divisa' => $fila['sg_divisa'], 'ceco' => $fila['cc_centrocostos'], 'ciudad' => utf8_encode($fila['sg_ciudad']), 'observaciones' => utf8_encode($fila['sg_observaciones']), 'observaciones_edicion' => utf8_encode($fila['sg_observaciones_edicion']), 'fecha_gasto' => $fila['sg_fecha_gasto'], 'lugar' => utf8_encode($fila['sg_lugar']), 'etapaActual' => $fila['t_etapa_actual'], 'requiere_anticipo' => $fila['sg_requiere_anticipo'], 'concepto' => $fila['sg_concepto'], 'montoPesos' => $fila['montoPesos']);
    }
    echo json_encode($_arreglo);
}
// Verificar si el usuario es un director
if (isset($_POST['idUsuario'])) {
    $cnn = new conexion();
    $idUsuario = $_POST['idUsuario'];
    $esDirector = 0;
    $rutaAutorizacion = new RutaAutorizacion();
    $nivel = $rutaAutorizacion->nivelEmpleado($idUsuario);
    if ($nivel == DIRECTOR_GENERAL) {
        $esDirector = 1;
    }
    //error_log("--->>Es director: ".$esDirector." nivel del usuario: ".$nivel);
    echo $esDirector;
}
// Carga de datos del Usuario
if (isset($_POST['idusuario'])) {
    $cnn = new conexion();
    $idUsuario = $_POST['idusuario'];
    $_arreglo = array();
    $i = 0;
    $query = sprintf("SELECT DISTINCT nombre, npuesto, e_nombre, IF(u_interno = 1, 'Interno', 'Externo') as tipo\r\n\t\t\tFROM empleado\r\n\t\t\tINNER JOIN usuario ON (u_id = idfwk_usuario)\r\n\t\t\tINNER JOIN empresas ON (u_empresa = e_id)\r\n\t\t\tWHERE u_id = '%s'", $idUsuario);
    //error_log("--->>Consulta Usario: ".$query);
$monto_pesos = mysql_result($rst, 0, "sg_monto_pesos");
$ciudad = mysql_result($rst, 0, "sg_ciudad");
$observaciones = mysql_result($rst, 0, "sg_observaciones");
$CentroCostoId = mysql_result($rst, 0, "cc_id");
$cc_centrocostos = mysql_result($rst, 0, "cc_centrocostos");
$t_etapa = mysql_result($rst, 0, "t_etapa_actual");
$t_etapa_nombre = mysql_result($rst, 0, "et_etapa_nombre");
$t_flujo = mysql_result($rst, 0, "t_flujo");
$cc_nombre = mysql_result($rst, 0, "cc_nombre");
$nombreUsuarioIniciador = mysql_result($rst, 0, "nombre");
$requiereAnticipo = mysql_result($rst, 0, "sg_requiere_anticipo");
$sg_concepto = mysql_result($rst, 0, "cp_concepto");
$idConcepto = mysql_result($rst, 0, "sg_concepto");
$t_delegado = mysql_result($rst, 0, "t_delegado");
// Traerá la ruta de autorización de la solicitud correspondiente
$rutaAutorizacion = new RutaAutorizacion();
$autorizadores = $rutaAutorizacion->getNombreAutorizadores($t_id);
// Carga de Invitados
$comensales = new Comensales();
$invitados = $comensales->Load_comensales_solicitud_by_tramite($t_id);
// Verificamos si la solicitud fue realizada por un delegado; de ser as� imprimiremos el nombre de los involucrados
if ($t_delegado != 0) {
    $duenoActual = new Usuario();
    $duenoActual->Load_Usuario_By_ID($t_delegado);
    $nombredelegado = $duenoActual->Get_dato('nombre');
    $nombreUsuarioIniciador = "<font color='#0000CA'>" . $nombredelegado . "</font>" . strtoupper(" en nombre de: ") . $nombreUsuarioIniciador;
}
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
예제 #15
0
    //obtenemos el id del usuario al que pertenece ese Director de area
    $query = sprintf("SELECT sv_ceco_paga FROM solicitud_viaje WHERE sv_tramite=%s", $tramiteId);
    $rst = $cnn->consultar($query);
    while ($fila = mysql_fetch_assoc($rst)) {
        $sv_ceco_paga = $fila['sv_ceco_paga'];
    }
    $queryResp = sprintf("SELECT cc_responsable FROM cat_cecos WHERE cc_id=%s", $sv_ceco_paga);
    $rstResp = $cnn->consultar($queryResp);
    while ($fila = mysql_fetch_assoc($rstResp)) {
        $cc_responsable = $fila['cc_responsable'];
    }
    $GerenteArea = new Empleado();
    $GerenteArea->Load_id_empleado($cc_responsable);
    $destinatario = $GerenteArea->Get_dato('idempleado');
    //construimos la segunda ruta de autorizacion
    $rutaAutorizacion = new RutaAutorizacion();
    $aprobadornuevo = $rutaAutorizacion->generaRutaSegundaAutorizacion($destinatario, $tramiteId);
    $tramite->Modifica_Etapa($tramiteId, SOLICITUD_ETAPA_SEGUNDA_APROBACION, FLUJO_SOLICITUD, $aprobadornuevo, "");
    $usuarioCreador = new Usuario();
    $usuarioCreador->Load_Usuario_By_ID($tramite->Get_dato("t_iniciador"));
    $mensaje = sprintf("El monto que la agencia de viajes ha registrado para la compra del boleto de avi&oacute;n de la solicitud de viaje <strong>%05s</strong> creada por:<strong>%s</strong> excede el l&iacute;mite de tolerancia  y requiere de tu autorizaci&oacute;n.", $tramiteId, $usuarioCreador->Get_dato('nombre'));
    $remitente = $tramite->Get_dato("t_dueno");
    //se le enviara al Gerente de area
    $tramite->EnviaNotificacion($tramiteId, $mensaje, $remitente, $destinatario, "0", "");
    //"0" para no enviar email y "1" para enviarlo
    //queda pendiente las notificaciones de la segunda ruta.
}
//funcion que nos regresara el numero de CECO al cual esta asignado el usuario ( creacion de una solicitud viaje)
if (isset($_POST['idEmpleado'])) {
    $idEmpleado = (int) $_POST['idEmpleado'];
    $cecoEmpleado = 0;
 public function enviarComprobacion()
 {
     $rutaautorizacion = new RutaAutorizacion();
     /**
      * Validacion y guardado de excepcion de presupuesto
      **/
     $presupuesto = new Presupuesto();
     $objetoPresupuesto = $presupuesto->validarPresupuesto($this->comprobacion["tramite"]);
     $rutaautorizacion->generaExcepcion($this->comprobacion["tramite"], $objetoPresupuesto);
     $rutaautorizacion->generarRutaAutorizacion($this->comprobacion["tramite"], $this->usuario["delegado"]);
     $excepciones = $rutaautorizacion->get_Excepciones($this->comprobacion["tramite"]);
     $rutaautorizacion->agregaAutorizadoresExcedentes($this->comprobacion["tramite"], $excepciones);
     $aprobador = $rutaautorizacion->getSiguienteAprobador($this->comprobacion["tramite"], $this->usuario["idusuario"]);
     $etapa = COMPROBACION_ETAPA_EN_APROBACION;
     $this->tramite->Load_Tramite($this->comprobacion["tramite"]);
     $etapaActual = $this->tramite->Get_dato("t_etapa_actual");
     if ($etapaActual == COMPROBACION_ETAPA_DEVUELTO_CON_OBSERVACIONES) {
         $aprobador = 2000;
     }
     $this->modificaEtapa($etapa, $aprobador);
     $this->obtenOservaciones();
     $this->enviaNotificacion($aprobador, $this->obtenMensaje($etapa));
 }
예제 #17
0
                         $mensaje = sprintf("La Solicitud de Viaje <strong>%05s</strong> ha sido <strong>CREADA</strong> por: <strong>%s</strong> en nombre de: <strong>%s</strong> y requiere de su autorizaci&oacute;n.", $idTramite, $nombreDelegado, $nombreUsuario);
                         $mensaje_email = sprintf("La Solicitud de Viaje <strong>CREADA</strong> por: <strong>%s</strong> requiere de su autorizaci&oacute;n.", $nombreUsuario);
                     } else {
                         $mensaje = sprintf("La Solicitud de Viaje <strong>%05s</strong> ha sido <strong>CREADA</strong> por: <strong>%s</strong> y requiere de su autorizaci&oacute;n.", $idTramite, $nombreUsuario);
                         $mensaje_email = sprintf("La Solicitud de Viaje <strong>CREADA</strong> por: <strong>%s</strong> requiere de su autorizaci&oacute;n.", $nombreUsuario);
                     }
                     $remitente = $iduser;
                     $destinatario = $aprobador;
                     $tramite->EnviaNotificacion($idTramite, $mensaje, $remitente, $destinatario, "1", $mensaje_email);
                     //"0" para no enviar email y "1" para enviarlo
                 }
             }
         }
     }
 } else {
     $ruta_autorizacion = new RutaAutorizacion();
     $es_agencia = $ruta_autorizacion->generaRutaAutorizacionSolicitudViaje($idTramite, $iduser, false);
     if ($es_agencia == "Agencia") {
         // Se agrega la observacion tambien a la tabla de observaciones
         $texto = $sObservaciones;
         $t_id = $idTramite;
         $u_id = $iduser;
         // Registra las observaciones
         if ($texto != "") {
             if ($tramite->Get_dato('t_etapa_actual') == SOLICITUD_ETAPA_RECHAZADA) {
                 $queryObs = sprintf("SELECT ob_id, ob_texto FROM observaciones  WHERE ob_tramite=%s ORDER BY ob_id DESC LIMIT 0,1", $t_id);
                 $rstObs = $cnn->consultar($queryObs);
                 $idObs = mysql_result($rstObs, 0, "ob_id");
                 $UObs = mysql_result($rstObs, 0, "ob_texto");
                 if ($UObs != $texto) {
                     //Actualizara las observaciones editadas