PageRenderTime 23ms CodeModel.GetById 32ms RepoModel.GetById 1ms app.codeStats 0ms

/PHP/-empleado.amigable.agregar.php

https://github.com/vlad88sv/BCA
PHP | 155 lines | 121 code | 23 blank | 11 comment | 22 complexity | 431a8cda78bb5962b89d91df0dbf016a MD5 | raw file
  1. <?php
  2. $buffer = $texto_busqueda = '';
  3. $comprobacion_fallos = array();
  4. if ( isset($_POST['cancelar']) ) {
  5. header('Location: '.PROY_URL.'~empleado');
  6. exit;
  7. }
  8. if ( isset($_POST['enviar']) && (isset($_POST['DUI']) && isset($_POST['NIT']) && isset($_POST['nombres']) && isset($_POST['apellidos'])) )
  9. {
  10. // Saneamiento
  11. $_POST['DUI'] = preg_replace('/[^\d|-]/','',$_POST['DUI']);
  12. $_POST['NIT'] = preg_replace('/[^\d|-]/','',$_POST['NIT']);
  13. $comprobacion_fallos = array();
  14. // Esta bien el Nº de DUI?
  15. if (!preg_match('/\d{8}-\d/',$_POST['DUI']))
  16. $comprobacion_fallos[] = 'Numero de DUI invalido, asegurese de ingresar los nueve digitos, incluyendo el guion. Ej. <strong>12345678-9</strong>';
  17. // Esta bien el Nº de NIT?
  18. if (!preg_match('/\d{4}-\d{6}-\d{3}-\d/',$_POST['NIT']))
  19. $comprobacion_fallos[] = 'Numero de NIT invalido, asegurese de ingresar los catorce digitos, incluyendo guiones. Ej. <strong>1234-567890-1234-4</strong>';
  20. // Esta bien el nombre?
  21. if (!preg_match('/\w{3,25}/',$_POST['nombres']))
  22. $comprobacion_fallos[] = 'El nombre no parece valido, asegurese de ingresar solamente letras (a-z, A-Z) y usar entre 3 y 25 letras.';
  23. // Esta bien el apellido?
  24. if (!preg_match('/\w{3,25}/',$_POST['apellidos']))
  25. $comprobacion_fallos[] = 'El apellido no parece valido, asegurese de ingresar solamente letras (a-z, A-Z) y usar entre 3 y 25 letras.';
  26. // Esta bien el cargo?
  27. if (!preg_match('/\w{2,50}/',$_POST['cargo']))
  28. $comprobacion_fallos[] = 'El cargo no parece valido, asegurese de ingresar solamente letras (a-z, A-Z) y usar entre 2 y 50 letras para describirlo.';
  29. // Esta bien el salario?
  30. if (!is_numeric($_POST['salario']))
  31. $comprobacion_fallos[] = 'El salario no parece un número válido, no incluya simbolos (como $) ni letras.';
  32. // ¿Ya existe ese empleado?
  33. list($texto_busqueda, $numero_resultados) = empleado_buscar(array('estricto' => 1, 'no_resultados_no_error', 'ID_empresa' => usuario_cache('ID_empresa'), 'modo' => 'no_descontar_creditos', 'funcion' => 'empleado_buscar__vista_agregar', 'DUI' => $_POST['DUI'],'NIT' => $_POST['NIT']));
  34. if ($numero_resultados)
  35. $comprobacion_fallos[] = 'Se encontró un empleado registrado en su empresa con los mismos datos de DUI y NIT.</p>'.$texto_busqueda.'<p>Recomendamos <a href="'.PROY_URL.'~empleado" alt="Empleados de su empresa">revisar sus registros de empleado</a>';
  36. // Si no hubo errores agreguemos el empleado
  37. if (!count($comprobacion_fallos))
  38. {
  39. // Datos del empleado
  40. unset($datos);
  41. if(isset($_FILES['fotografia']) && $_FILES['fotografia']['error'] == UPLOAD_ERR_OK)
  42. {
  43. $datos['fotografia'] = sha1(microtime());
  44. Imagen__Convertir_JPEG($_FILES['fotografia']['tmp_name'],'IMG/fotografias/'.$datos['fotografia'].'.jpg');
  45. }
  46. $datos['ID_empresa'] = usuario_cache('ID_empresa');
  47. $datos['ID_usuario'] = usuario_cache('ID_usuario');
  48. $datos['fecha_ingreso'] = mysql_date();
  49. $datos = array_merge($datos, array_intersect_key( $_POST, array_flip( array('DUI', 'NIT', 'nombres', 'apellidos', 'conocido_por', 'op_fecha_nacimiento', 'op_lugar_nacimiento', 'op_direccion', 'op_correo', 'op_estado_civil', 'op_idioma', 'op_informatica', 'op_interes', 'op_referencias' , 'op_telefono1', 'op_telefono2', 'op_movil1', 'op_movil2'))));
  50. $ID_empleado = db_agregar_datos(db_prefijo.'empleado',$datos);
  51. // Su primer cargo laboral - aww :)
  52. unset($datos);
  53. $datos['ID_empresa'] = usuario_cache('ID_empresa');
  54. $datos['ID_usuario'] = usuario_cache('ID_usuario');
  55. $datos['ID_empleado'] = $ID_empleado;
  56. $datos['fecha_ingreso'] = mysql_date();
  57. $datos = array_merge($datos, array_intersect_key( $_POST,array_flip(array('fecha_inicio','cargo','salario')) ) );
  58. $ID_historial = db_agregar_datos(db_prefijo.'historial',$datos);
  59. echo '<h1>Resultado de solicitud de ingreso de nuevo registro de empleado</h1>';
  60. if ($ID_empleado && $ID_historial)
  61. {
  62. $mensaje['mensaje'] = 'El usuario <strong>'.usuario_cache('nombre').'</strong>, añadió un nuevo empleado [<strong>'. $_POST['apellidos'] .','. $_POST['nombres'].'</strong>] a su empresa.';
  63. $mensaje['tipo'] = 'info';
  64. mensaje(array(usuario_cache('ID_empresa')),array($mensaje));
  65. empleado_difundir_actualizaciones($_POST['DUI'],$_POST['NIT'],'ha sido registrado en la empresa <strong>'.usuario_cache('razon_social').'</strong>. Registrado con nombre <strong>'. $_POST['apellidos'] .','. $_POST['nombres'].'</strong>.');
  66. echo '<p>Gracias, su solicitud de ingreso de datos a sido recibida y aceptada. El nuevo registro de empleado ya se encuentra disponible.</p>';
  67. echo '<p>Si desea añadir mas cargos laborales a su empleado dirijase a <a href="'.PROY_URL.'~empleado?cargo='.$ID_empleado.'">cargos laborales para '.$_POST['apellidos'].', '.$_POST['nombres'].'</a></p>';
  68. echo '<p>Tambien puede <a href="'.PROY_URL.'~empleado" alt="Empleados de su empresa">revisar sus registros de empleado</a>, <a href="'.PROY_URL.'~empleado?agregar" alt="Agregar empleado a su empresa">agregar otro empleado</a> o <a href="'.PROY_URL.'" title="Pagina de inicio de BCA">regresar a la pagina de inicio de BCA</a></p>';
  69. return;
  70. }
  71. else
  72. {
  73. $buffer = '<p class="error">Lo sentimos, sucedio un error desconocido y su solicitud no pudo ser procesada, puede intentarlo nuevamene si lo desea</p>';
  74. }
  75. }
  76. }
  77. $arrCSS[] = 'overcast/jquery-ui-1.8rc3.custom';
  78. $arrJS[] = 'jquery-ui-1.8rc3.min';
  79. $arrJS[] = 'jquery.ui.datepicker-es';
  80. $arrHEAD[] = JS_onload('$(".datepicker").datepicker({inline: true, maxDate: "+0", dateFormat: "yy-mm-dd", changeMonth: true, changeYear: true});');
  81. ?>
  82. <h1>Agregar empleado a <?php echo usuario_cache('razon_social'); ?></h1>
  83. <p>En esta seccion puede agregar nuevos empleados de su empresa al sistema de <?php echo PROY_NOMBRE ?>.</p>
  84. <p>Por favor llene los nombres y apellidos segun aparece en el DUI de su empleado sin utilizar abreviaturas, sobrenombres o diminutivos.</p>
  85. <p class="importante">Ud. no podra editar esta informacion una vez ingresada y aceptada en el sistema, si deseara realizar un cambio a esta informacion en el futuro podrá realizarla sin ningún costo a travez de su ejecutivo de cuenta de <?php echo PROY_NOMBRE; ?>.</p>
  86. <form autocomplete="off" enctype="multipart/form-data" action ="<?php echo PROY_URL_ACTUAL_DINAMICA; ?>" method="post">
  87. <h2>Datos personales</h2>
  88. <table class="t100 tfija">
  89. <tr><th><acronym title="Documento Único de Identidad">DUI</acronym></th><td><input id="DUI" name="DUI" type="text" value="<?php echo @$_POST['DUI']; ?>" /></td></tr>
  90. <tr><th><acronym title="Número de Identificación Triburataria">NIT</acronym></th><td><input id="NIT" name="NIT" type="text" value="<?php echo @$_POST['NIT']; ?>" /></td></tr>
  91. <tr><th>Nombres</th><td><input name="nombres" type="text" value="<?php echo @$_POST['nombres']; ?>" /></td></tr>
  92. <tr><th>Apellidos</th><td><input name="apellidos" type="text" value="<?php echo @$_POST['apellidos']; ?>" /></td></tr>
  93. <tr><th>Conocido por</th><td><input name="conocido_por" type="text" value="<?php echo @$_POST['conocido_por']; ?>" /></td></tr>
  94. <tr><th>Fotografía</th><td><input name="fotografia" type="file" /></td></tr>
  95. </table>
  96. <h2>Datos del primer cargo laboral que tuvo en su empresa</h2>
  97. <table class="t100 tfija">
  98. <tr><th>Primer cargo laboral</th><td><input name="cargo" type="text" value="<?php echo @$_POST['cargo']; ?>" /></td></tr>
  99. <tr><th>Fecha de inicio de contratación</th><td><input class="datepicker" name="fecha_inicio" type="text" value="<?php echo @$_POST['fecha_inicio']; ?>" /></td></tr>
  100. <tr><th>Salario para este cargo</th><td><input name="salario" type="text" value="<?php echo @$_POST['salario']; ?>" /></td></tr>
  101. </table>
  102. <?php if( usuario_cache('ui_rrhh_extendido') == 'si' ) { ?>
  103. <h2>Datos opcionales para su uso interno</h2>
  104. <table class="t100 tfija">
  105. <tr><th>Fecha de nacimiento</th><td><input name="op_fecha_nacimiento" class="datepicker" type="text" value="<?php echo @$_POST['op_fecha_nacimiento']; ?>" /></td></tr>
  106. <tr><th>Lugar de nacimiento</th><td><input name="op_lugar_nacimiento" type="text" value="<?php echo @$_POST['op_lugar_nacimiento']; ?>" /></td></tr>
  107. <tr><th>Dirección</th><td><input name="op_direccion" type="text" value="<?php echo @$_POST['op_direccion']; ?>" /></td></tr>
  108. <tr><th>Correo electrónico</th><td><input name="op_correo" type="text" value="<?php echo @$_POST['op_correo']; ?>" /></td></tr>
  109. <tr><th>Estado civíl</th><td><?php echo ui_combobox('op_estado_civil', ui_array_a_opciones(array('soltero' => 'Solter@', 'casado' => 'Casad@', 'divorciado' => 'Divorciad@', 'viudo' => 'Viud@', 'concubino' => 'Concubin@')), @$_POST['op_estado_civil']); ?></td></tr>
  110. <tr><th>Idiomas</th><td><input name="op_idioma" type="text" value="<?php echo @$_POST['op_idioma']; ?>" /></td></tr>
  111. <tr><th>Informática</th><td><input name="op_informatica" type="text" value="<?php echo @$_POST['op_informatica']; ?>" /></td></tr>
  112. <tr><th>Otros datos de interés</th><td><input name="op_interes" type="text" value="<?php echo @$_POST['op_interes']; ?>" /></td></tr>
  113. <tr><th>Referencias</th><td><input name="op_referencias" type="text" value="<?php echo @$_POST['op_referencias']; ?>" /></td></tr>
  114. <tr><th>Teléfono 1</th><td><input name="op_idioma" type="text" value="<?php echo @$_POST['op_telefono1']; ?>" /></td></tr>
  115. <tr><th>Teléfono 2</th><td><input name="op_idioma" type="text" value="<?php echo @$_POST['op_telefono2']; ?>" /></td></tr>
  116. <tr><th>Móvil 1</th><td><input name="op_idioma" type="text" value="<?php echo @$_POST['op_movil1']; ?>" /></td></tr>
  117. <tr><th>Móvil 2</th><td><input name="op_idioma" type="text" value="<?php echo @$_POST['op_movil2']; ?>" /></td></tr>
  118. </table>
  119. <?php } ?>
  120. <center>
  121. <input type="submit" name="enviar" value="Enviar datos" />
  122. <input type="submit" name="cancelar" value="Cancelar" />
  123. </center>
  124. </form>
  125. <?php
  126. if (count($comprobacion_fallos))
  127. echo '<h2>Errores encontrados en la comprobación</h2><p class="error">'.join('</p><p class="error">',$comprobacion_fallos).'</p>';
  128. else
  129. echo $buffer;
  130. ?>
  131. <hr />
  132. <?php echo $enlaces_rapidos ?>