Location: PHPKode > projects > Simpledoc > Simple-doc/editar_digital2.php
<?php
//la generacion de borradores esta deshabilitada hasta encontrar una solucion
//para generar las copias sin borrar el formulario
//actualmente se borra con cada envio (existen 2 formularios)
//verificar solucion mediante ajax
// *****************************configuracion de la base de datos y conexion de la misma************************************/
include_once("conexion.php");
//*************************************************funciones utilizadas**************************************************/
include("top.php");
//******************************************************nivel de usuario**************************************************/
if($_SESSION['nivel'] != 2){
oiError("Usted no tiene acceso a este recurso");
?>
                                  <td width="100%">
                                      <tr>
                                        <td colspan="2"><div class="heading1">Sin acceso, solicite informaci&oacute;n con su administrador</div></td>
                                      </tr>
                                      <tr>
                                        <td width="1"><img src="imagenes/pixel.gif" width="1" height="0" border="0"></td>
										<td width="100%" valign="top">
<?php
include ("pie.php");
exit();
}
//*************************************inicializamos variables que se utilizaran en la forma*********************************/

$ar_datos = misDatos();// mete en la variable la lista de los datos obtenidos
$ar_areas = misAreas();

//*************************************************************motor de envio*************************************************************/

if($_GET[cert]=="salida"){
	// verifica datos en null
	if( empty($_POST['no_oficio']) ||
		empty($_POST[destinatario]) ||
		empty($_POST[contenido]) ){
		oiError("Hay espacios necesarios que no se han completado");
	}else{
	
	if(($HTTP_POST_FILES['userfile']['name']) != ""){
		//cuando se envia un archivo este codigo lo procesa

		//datos del arhivo
		$mi_nombre1 = $_POST[no_oficio];
		$mi_nombre   = str_replace ("/", "-", "$mi_nombre1");
		$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
		
			if(strpos($tipo_archivo, "zip")){
			$extension = "zip";
			}elseif(strpos($tipo_archivo, "rar")){
			$extension = "rar";
			}elseif(strpos($tipo_archivo, "7z")){
			$extension = "rar";
			}elseif(strpos($tipo_archivo, "gzip")){
			$extension = "rar";
			}elseif(strpos($tipo_archivo, "tar")){
			$extension = "rar";
			}elseif(strpos($tipo_archivo, "lzh")){
			$extension = "rar";
			}elseif(strpos($tipo_archivo, "ace")){
			$extension = "rar";
			}
		
		$nombre_original = $HTTP_POST_FILES['userfile']['name'];
		$nombre_archivo = "$mi_nombre"."."."$extension";
		$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
		//comprobar la extension del archivo
		if (!((
		strpos($tipo_archivo, "zip") ||
		strpos($tipo_archivo, "rar") || 
		strpos($tipo_archivo, "7z") || 
		strpos($tipo_archivo, "gzip") || 
		strpos($tipo_archivo, "tar") || 
		strpos($tipo_archivo, "lzh") || 
		strpos($tipo_archivo, "ace")) && ($tamano_archivo < 10000000))) {//<--100 MB
		oiError("La extensión o el tamaño de los archivos no es correcta. <br><br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Se permiten archivos con extensiones: zip, rar, 7z, gzip, tar, lzh y ace. solamente<br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Se permiten archivos con un tamaño máximo de 100 MB.");
	}else{
		if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "documentos/".$nombre_archivo)){
		oiNotify("Se adjuntó el archivo $nombre_original correctamente");
		}else{
		oiError("Ocurrió algún error al subir el fichero $nombre_original, ¡no pudo guardarse! verificar upload_max_filesize");
		}
	}
	}else{
		$nombre_archivo = "0";
	}
	
	
	//remplazando caracteres invalidos en el contenido del oficio
	$contenido1 = $_POST['contenido'];
	$contenido2 = str_replace ("'", "´", "$contenido1");
	$contenido3   = str_replace ("\"", "´", "$contenido2");
	$contenido   = str_replace ("\\", "´", "$contenido3");
	
	
	$fecha_oficio = date( "Y:m:d", mktime (date("H"),date("i"),0,date("m"), date("d"),  date("Y")) );
	$ident = $_POST[area];
	$tipo = datosArea($ident,"tipo");
	$sub1 = datosArea($ident,"sub1");
	$sub2 = datosArea($ident,"sub2");
	$sub3 = datosArea($ident,"sub3");
	$sub4 = datosArea($ident,"sub4");
	$sub5 = datosArea($ident,"sub5");
	$sub6 = datosArea($ident,"sub6");
	$sub7 = datosArea($ident,"sub7");
	$sub8 = datosArea($ident,"sub8");
	$sub9 = datosArea($ident,"sub9");
	$hash = md5($contenido);
	$quien = $_SESSION['id_usuario'];
	$pass = md5(datosUsuario($quien,"password"));
	$firmx = mhash(MHASH_HAVAL256,$_POST[contenido],$pass);
	$firma = bin2hex($firmx);
	
/***                                                            ***************digitaldoc_env**********************                                                ************/	
	//se forma la query que inserta los datos en la tabla oficios que ser&aacute; la primera en la relacion uno a varios
	$q = "UPDATE `digitaldoc_env` SET
		`fecha_oficio` = '$fecha_oficio',
		`descripcion` = '$_POST[descripcion]',
		`id_usr_de` = '$_POST[idcaptura]',
		`id_usr_para` = '$_POST[destinatario]',
		`hash` = '$hash',
		`firma` = '$firma',
		`contenido` = '$contenido',
		`id_area` = '$_POST[area]',
		`tipo` = '$tipo',
		`sub1` = '$sub1',
		`sub2` = '$sub2',
		`sub3` = '$sub3',
		`sub4` = '$sub4',
		`sub5` = '$sub5',
		`sub6` = '$sub6',
		`sub7` = '$sub7',
		`sub8` = '$sub8',
		`sub9` = '$sub9',	
		`borrador` = '$_POST[borrador]',
		`doc_anexo` = '$nombre_archivo',
		`id_captura` = '$_POST[idcaptura]'
		WHERE `id_digital` = '$_POST[id_digital]' LIMIT 1";
		// ejecuta la actualizacion de la query
		mysql_query($q,$sql_link);
		if( mysql_affected_rows($sql_link) <= 0 ){
		oiError("No se ingreso el oficio correspondiente"." ".mysql_error($sql_link));
		}

                                                                 /*****************digitaldoc_rec**********************/
if($_POST['borrador'] != 1){
	$idenv = datosUsuario($_POST[destinatario],"id_area");
	$tipo = datosArea($idenv,"tipo");
	$sub1 = datosArea($idenv,"sub1");
	$sub2 = datosArea($idenv,"sub2");
	$sub3 = datosArea($idenv,"sub3");
	$sub4 = datosArea($idenv,"sub4");
	$sub5 = datosArea($idenv,"sub5");
	$sub6 = datosArea($idenv,"sub6");
	$sub7 = datosArea($idenv,"sub7");
	$sub8 = datosArea($idenv,"sub8");
	$sub9 = datosArea($idenv,"sub9");

	//se forma la query que inserta los datos en la tabla oficios que ser&aacute; la primera en la relacion uno a varios
	$q2 = "INSERT INTO `digitaldoc_rec` (no_oficio,fecha_oficio,fecha_acuse,descripcion,id_usr_de,id_usr_para,hash,firma,contenido,id_area,tipo,sub1,sub2,sub3,sub4,sub5,sub6,sub7,sub8,sub9,leido,acuse,doc_anexo,id_captura) VALUES(
		'$_POST[no_oficio]',
		'$fecha_oficio',
		'$_POST[fecha_acuse]',
		'$_POST[descripcion]',
		'$_POST[idcaptura]',
		'$_POST[destinatario]',
		'$hash',
		'$firma',
		'$contenido',
		'$_POST[area]',
		'$tipo',
		'$sub1',
		'$sub2',
		'$sub3',
		'$sub4',
		'$sub5',
		'$sub6',
		'$sub7',
		'$sub8',
		'$sub9',	
		'$_POST[leido]',
		'$_POST[acuse]',
		'$nombre_archivo',
		'$_POST[idcaptura]')";
		// ejecuta la actualizacion de la query
		mysql_query($q2,$sql_link);
		if( mysql_affected_rows($sql_link) <= 0 ){
		oiError("No se ingreso el oficio correspondiente"." ".mysql_error($sql_link));
		}
		else 
		{ // script para el envio de las copias tanto internas como externas
			
			if(isset($_POST['datos'])){
			//para cada entrada de datos num es igual a item
			foreach( $_POST['datos'] as $num => $item )//<-- envio de copias internas
			{
				if( $item != NULL && !empty($item) )
				{
			
				$iden_ar = (datosUsuario($_POST['datos'][$num],"id_area"));
			
				$tipo = datosArea($iden_ar,"tipo");
				$sub1 = datosArea($iden_ar,"sub1");
				$sub2 = datosArea($iden_ar,"sub2");
				$sub3 = datosArea($iden_ar,"sub3");
				$sub4 = datosArea($iden_ar,"sub4");
				$sub5 = datosArea($iden_ar,"sub5");
				$sub6 = datosArea($iden_ar,"sub6");
				$sub7 = datosArea($iden_ar,"sub7");
				$sub8 = datosArea($iden_ar,"sub8");
				$sub9 = datosArea($iden_ar,"sub9");
			
			
					// construyendo la query
					$q = "INSERT INTO `digitaldoc_cc` (int_ext,ccp,dest_ext,no_oficio,fecha_acuse,hash,id_area,tipo,sub1,sub2,sub3,sub4,sub5,sub6,sub7,sub8,sub9,leido,acuse,id_captura) VALUES(
						'".'int'."',
						'".$_POST['datos'][$num]."',
						'".'int'."',
						'".$_POST[no_oficio]."',
						'".$_POST[fecha_acuse]."',
						'$hash',
						'".$iden_ar."',
						'$tipo',
						'$sub1',
						'$sub2',
						'$sub3',
						'$sub4',
						'$sub5',
						'$sub6',
						'$sub7',
						'$sub8',
						'$sub9',
						'$_POST[leido]',
						'$_POST[acuse]',
						'".$_POST[idcaptura]."')";
					mysql_query($q,$sql_link);
					if( mysql_affected_rows($sql_link) <= 0 ){
						oiError("No se enviaron las copias internas"." ".mysql_error($sql_link)." ".mysql_affected_rows($sql_link));
						}else{
						oiNotify("Las copias locales se enviaron satisfactoriamente");
						}
				}
			}
			}
			
			if(isset($_POST['datos_ext'])){
			//para cada entrada de datos num es igual a item
			foreach( $_POST['datos_ext'] as $num => $item )//<-- envio de copias externas
			{
				if( $item != NULL && !empty($item) )
				{
			
				$iden_ar = (datosUsuario($_POST['datos_ext'][$num],"id_area"));
			
				$tipo = datosArea($iden_ar,"tipo");
				$sub1 = datosArea($iden_ar,"sub1");
				$sub2 = datosArea($iden_ar,"sub2");
				$sub3 = datosArea($iden_ar,"sub3");
				$sub4 = datosArea($iden_ar,"sub4");
				$sub5 = datosArea($iden_ar,"sub5");
				$sub6 = datosArea($iden_ar,"sub6");
				$sub7 = datosArea($iden_ar,"sub7");
				$sub8 = datosArea($iden_ar,"sub8");
				$sub9 = datosArea($iden_ar,"sub9");
			
			
					// construyendo la query
					$q = "INSERT INTO `digitaldoc_cc` (int_ext,ccp,dest_ext,no_oficio,fecha_acuse,hash,id_area,tipo,sub1,sub2,sub3,sub4,sub5,sub6,sub7,sub8,sub9,leido,acuse,id_captura) VALUES(
						'".'ext'."',
						'".'ext'."',
						'".$_POST['datos_ext'][$num]."',
						'".$_POST[no_oficio]."',
						'".$_POST[fecha_acuse]."',
						'$hash',
						'".$iden_ar."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".'ext'."',
						'".$_POST[idcaptura]."')";
					mysql_query($q,$sql_link);
					if( mysql_affected_rows($sql_link) <= 0 )
						oiError("No se registraron las copias externas"." ".mysql_error($sql_link)." ".mysql_affected_rows($sql_link));
				}
			}
			oiNotify("El envio de copias externas resultó exitoso");
			}
		}
		
	}
	oiNotify("Se ingreso el oficio de forma correcta");
}
}

//******************************************Inicio de la forma de envio y el dise&ntilde;o****************************************

?>

                                  <td width="100%">
                                      <tr>
                                        <td colspan="2"><div class="heading1">Documentaci&oacute;n digital -editar borrador</div></td>
                                      </tr>
                                      <tr>
                                        <td width="1"><img src="imagenes/pixel.gif" width="1" height="0" border="0"></td>
					
										<td width="100%" valign="top">
<script language="JavaScript">
function  popupwin(url,x,y,title,resize,scroll){
   var left = Math.floor( (screen.width-x) / 2);
   var top = Math.floor( (screen.height-y) / 2);
   var winParms = "top=" + top + ",left=" + left + ",height="+y+",width="+x+",scrollbars="+scroll+",toolbar=no,menubar=no,resizable="+resize+",location=no,directories=no,status=no";
    mywin=open(url,title,winParms);
}
</script>

<?php
menu_digital("2");
?>


<br><br>
<?php 

$quien = $_SESSION['id_usuario'];
$esta_area = datosUsuario($quien,"id_area");

$id = $_GET['id'];
$numero_oficio =  datosDigitalenv($id,"no_oficio");
$resumen =  datosDigitalenv($id,"descripcion");
$contenido =  datosDigitalenv($id,"contenido");
?>

  <table width="100%">
    <tr>
      <td class="titulo3">Enviar documento oficial (solo intranet)</td>
    </tr>
  </table>

<!--*******************barra de ingreso para el numero de copias****************************-->
<tr>
<td>
<div align="right" class="titulo7">
<form name="changedatos" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
Número de copias:
<INPUT type="text" class="upload" size=3 name="num_datos" value="<?php if (isset($_POST['num_datos'])){ echo $_POST['num_datos'];}else{echo "X";} ?>" maxlength="2">&nbsp;&nbsp;internas y 
<INPUT type="text" class="upload" size=3 name="num_datos_ext" value="<?php if (isset($_POST['num_datos_ext'])){ echo $_POST['num_datos_ext'];}else{echo "X";} ?>" maxlength="2">&nbsp;&nbsp;externas
<INPUT class="upload" type="submit" name="SUBMIT" value="-->" onClick="document.changedatos.submit()">
<a href='#' onClick="popupwin('ayuda_ccp.php',500 ,350,'','yes','yes')"><img src="imagenes/ayuda.gif" title="mostrar ayuda"border="0"></a>
</form></div>
</td>
</tr>
  
<!--********************formulario del contenido del oficio***************************-->

<form action="editar_digital.php?cert=salida" method="post" enctype="multipart/form-data" name="forma_envio" >
  <table width="100%">
    <tr>
        <input name="no_oficio" type="hidden" value="<?php echo $numero_oficio?>"/>
        <input name="id_digital" type="hidden" value="<?php echo $id?>"/>
      <td class="contenido3"><div>N&uacute;mero de oficio:  <?php echo $numero_oficio?></div><div align="right">&nbsp;Destinatario&nbsp;&nbsp;
          <select name="destinatario" size='1' class="Text220">
	  <option></option>
            <?php
lista_usuarios();
?>
          </select>
        </div></td>
    </tr>
    <tr>
      <td class="contenido3">
      Resumen:<br><input name="descripcion" style='WIDTH: 100%; HEIGHT: 20px' rows=4 cols=30 value="<?php if (isset($_POST['descripcion'])){ echo $_POST['descripcion'];}else{echo $resumen;} ?>">
      Contenido:<br><textarea name="contenido" style='WIDTH: 100%; HEIGHT: 200px' rows=4 cols=30><?php if (isset($_POST['contenido'])){ echo $_POST['contenido'];}else{echo $contenido;} ?></textarea>
      </td>
    </tr>
    <input name="idcaptura" type="hidden" value="<?php echo $quien ?>"/>
    <input name="acuse" type="hidden" value="0"/>
    <input name="leido" type="hidden" value="0"/>
    <input name="area" type="hidden" value="<?php echo $esta_area ?>"/>
    
 <!--********************envio de archivos************************-->
  <tr>
  <td class="titulo6">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
    <b>Anexar archivo:&nbsp;&nbsp;</b>
    <input class="upload" name="userfile" type="file">Archivos válidos: zip, rar, 7z, gzip, tar, lzh y ace, con un tamaño maximo de 10 MB.
    </td>
  </tr>   
    <tr>
      <td class="contenido3">
       <input name="borrador" type="checkbox" value="1"/>Guardar como borrador
      </td>
    </tr>
    
<tr><td colspan="3" align="center"><hr>
<?php
/*************************************************formulario duplicativo para envio de copias*********************************/
if( ($_POST['num_datos']  == "X" or !isset($_POST['num_datos'])) and
(($_POST['num_datos_ext']  == "X" or !isset($_POST['num_datos_ext']))))
{
?>
    <tr>
      <td class="contenido3">
       No se enviarán copias
      </td>
<?php
}
else
{
	// duplicar las copias internas de acuerdo a la variable $num_datos
	if( is_array($ar_datos) && $ar_datos != "-1" )
	{
		$num_datos = $_POST['num_datos'];
		
		if($num_datos == 0){$num_datos = "X";}
	
		if (ctype_alpha($num_datos) && $num_datos != "X") {
		?>
		<tr>
		<td class="contenido3">
		No se debieran ingresar letras en el campo destinado a números 1
		</td>
		<?php
		}
	
		for( $i=0; $i<$num_datos; $i++ )
		{

		echo "<table width='100%' border='0'>";
		echo "<tr class=\"row2\">";
		echo "<td><table width='50%' border='0'>";
		echo "<tr>";
		echo "<td><font size='2' color='#000000' face='Tahoma'>CC.</font> ";
		echo "<select class=\"Text290\" name=\"datos[]\" size='1'>";
lista_usuarios();
		echo "</select></td>";
		echo "</tr>";
		echo "</table>  </td>";
		echo "</tr>";
		echo "</table>\n";

		}
		echo "</tr>\n";
	}else{echo "<tr><td colspan=\"3\">"."No se pueden asignar copias internas"."</td></tr>";}
	
	// duplicar las copias externas de acuerdo a la variable $num_datos_ext
	$num_datos_ext = $_POST['num_datos_ext'];
	if($num_datos_ext == 0){$num_datos_ext = "X";}
	
	if($num_datos_ext == "X" )
	{
	echo "";
	}else{	
		if (ctype_alpha($num_datos_ext) && $num_datos_ext != "X" ) {
		?>
		<tr>
		<td class="contenido3">
		No se debieran ingresar letras en el campo destinado a números 2
		</td>
		<?php
		}

		for( $i=0; $i<$num_datos_ext; $i++ )
		{

		echo "<table width='100%' border='0'>";
		echo "<tr class=\"row2\">";
		echo "<td><table width='50%' border='0'>";
		echo "<tr>";
		echo "<td><font size='2' color='#000000' face='Tahoma'>CC.</font> ";
		echo "<input class=\"Text290\" name=\"datos_ext[]\" size='1' value=''>";
		echo "</td>";
		echo "</tr>";
		echo "</table></td>";
		echo "</tr>";
		echo "</table>\n";

		}
	}

	
}
?>

<tr align="center"><td colspan="3"><hr>


<center><input class="boton" type="submit" name="envia_datos" value="Agregar registro">
<input class="boton" type="reset" name="reset" value="Resetear registro"></center>

<hr></td></tr>
</form>
<?php
include ("pie.php");
?>
Return current item: Simpledoc