PageRenderTime 31ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/application/models/ObjetivoModel.php

https://gitlab.com/leonelsoriano3/sigepro
PHP | 266 lines | 202 code | 58 blank | 6 comment | 16 complexity | 5edacb5151b3286adef25ce7e7ad5d90 MD5 | raw file
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: leonel
  5. * Date: 24/05/16
  6. * Time: 2:02
  7. */
  8. class ObjetivoModel extends CI_Model
  9. {
  10. public function __construct()
  11. {
  12. parent::__construct();
  13. $this->load->database();
  14. }
  15. public function insertObjetive(
  16. $descripcion,
  17. $alias,
  18. $select_responsable,
  19. $select_observador,
  20. $fecha_entrega,
  21. $hoursend,
  22. $inputStados,
  23. $userId,
  24. $ip,
  25. $idAsociado
  26. )
  27. {
  28. $hora_actual = date('H:i');
  29. $fecha_actual = date('Y-m-d');
  30. $dataProject = array(
  31. 'nombre' => $descripcion,
  32. 'alias' => $alias,
  33. 'fecha_entrega' => $fecha_entrega,
  34. 'hora_entrega' => $hoursend,
  35. 'usuario_creador' => $userId,
  36. 'direccion_ip' => $ip,
  37. 'estado' => $inputStados,
  38. 'codigo_proyecto' => $idAsociado
  39. );
  40. if($inputStados === 1){
  41. $dataProject['fecha_inicio'] = $fecha_actual;
  42. $dataProject['hora_inicio'] = $hora_actual;
  43. }else if($inputStados === 2){
  44. $dataProject['fecha_inicio'] = $fecha_actual;
  45. $dataProject['hora_inicio'] = $hora_actual;
  46. }else if($inputStados === 3){
  47. $dataProject['fecha_pausa'] = $fecha_actual;
  48. $dataProject['hora_pausa'] = $hora_actual;
  49. }else if($inputStados === 4){
  50. $dataProject['fecha_final'] = $fecha_actual;
  51. $dataProject['hora_final'] = $hora_actual;
  52. }
  53. $this->db->trans_start();
  54. $this->db->insert('objetivos', $dataProject);
  55. $insert_id = $this->db->insert_id();
  56. $dataObservador = array();
  57. for ($i = 0; $i < count($select_responsable); $i++) {
  58. array_push($dataObservador, array(
  59. 'codigo_objetivo' => $insert_id,
  60. 'codigo_usuario' => $select_responsable[$i]
  61. ));
  62. }
  63. if(count($select_responsable)>0){
  64. $this->db->insert_batch('observadores_objetivos', $dataObservador);
  65. }
  66. $dataResponsable = array();
  67. for ($i = 0; $i < count($select_observador); $i++) {
  68. array_push($dataResponsable, array(
  69. 'codigo_objetivo' => $insert_id,
  70. 'codigo_usuario' => $select_observador[$i]
  71. ));
  72. }
  73. if(count($select_observador)>0) {
  74. $this->db->insert_batch('responsables_objetivos', $dataResponsable);
  75. }
  76. $this->db->trans_complete();
  77. }
  78. function findForList($id)
  79. {
  80. $query = $this->db->query('SELECT codigo,nombre,alias,fecha_inicio,fecha_entrega FROM objetivos
  81. WHERE objetivos.codigo_proyecto = ' . $id." AND fecha_eliminado ='0002-11-30'");
  82. return $query->result();
  83. }
  84. public function findByid($id){
  85. $this->db->select('nombre,alias,fecha_entrega,hora_entrega');
  86. $this->db->from('objetivos');
  87. $this->db->where('codigo', $id);
  88. $query = $this->db->get();
  89. $result = $query->result();
  90. return $result[0];
  91. }
  92. public function estadoForCombo($id){
  93. $query = $this->db->query('
  94. SELECT estados.codigo as id,
  95. estados.nombre as name,
  96. IF(estados.codigo =
  97. (SELECT objetivos.codigo FROM objetivos WHERE objetivos.codigo='.$id.'), 1, 0) as active
  98. FROM estados;
  99. ');
  100. return $query->result();
  101. }
  102. public function getMultiResposanble($id){
  103. $query = $this->db->query("SELECT
  104. usuarios.codigo as id,
  105. CONCAT(usuarios.nombre ,' ', usuarios.apellido) as name,
  106. 0 as active
  107. FROM responsables_objetivos
  108. INNER JOIN usuarios ON
  109. responsables_objetivos.codigo_usuario = usuarios.codigo
  110. WHERE responsables_objetivos.codigo_objetivo = $id");
  111. return $query->result();
  112. }
  113. public function getMultiObservador($id){
  114. $query = $this->db->query("SELECT
  115. usuarios.codigo as id,
  116. CONCAT(usuarios.nombre ,' ', usuarios.apellido) as name,
  117. 0 as active
  118. FROM observadores_objetivos
  119. INNER JOIN usuarios ON
  120. observadores_objetivos.codigo_usuario = usuarios.codigo
  121. WHERE observadores_objetivos.codigo_objetivo = $id ");
  122. return $query->result();
  123. }
  124. public function updateObjetivos(
  125. $descripcion,
  126. $alias,
  127. $select_responsable,
  128. $select_observador,
  129. $fecha_entrega,
  130. $hoursend,
  131. $inputStados,
  132. $userId,
  133. $ip,
  134. $idAsociado,
  135. $id
  136. ){
  137. $hora_actual = date('H:i');
  138. $fecha_actual = date('Y-m-d');
  139. $dataProject = array(
  140. 'nombre' => $descripcion,
  141. 'alias' => $alias,
  142. 'fecha_entrega' => $fecha_entrega,
  143. 'hora_entrega' => $hoursend,
  144. 'usuario_creador' => $userId,
  145. 'direccion_ip' => $ip,
  146. 'estado' => $inputStados,
  147. 'codigo_proyecto' => $idAsociado
  148. );
  149. if($inputStados === 1){
  150. $dataProject['fecha_inicio'] = $fecha_actual;
  151. $dataProject['hora_inicio'] = $hora_actual;
  152. }else if($inputStados === 2){
  153. $dataProject['fecha_inicio'] = $fecha_actual;
  154. $dataProject['hora_inicio'] = $hora_actual;
  155. }else if($inputStados === 3){
  156. $dataProject['fecha_pausa'] = $fecha_actual;
  157. $dataProject['hora_pausa'] = $hora_actual;
  158. }else if($inputStados === 4){
  159. $dataProject['fecha_final'] = $fecha_actual;
  160. $dataProject['hora_final'] = $hora_actual;
  161. }
  162. $this->db->trans_start();
  163. $this->db->where('codigo', $id);
  164. $this->db->update('objetivos', $dataProject);
  165. $this->db->delete('observadores_objetivos', array('codigo_objetivo' => $id));
  166. $this->db->delete('responsables_objetivos', array('codigo_objetivo' => $id));
  167. $dataObservador = array();
  168. for($i = 0;$i < count($select_responsable);$i++){
  169. array_push($dataObservador, array(
  170. 'codigo_objetivo' => $id,
  171. 'codigo_usuario' => $select_responsable[$i]
  172. ));
  173. }
  174. if(count($select_responsable) > 0){
  175. $this->db->insert_batch('responsables_objetivos', $dataObservador);
  176. }
  177. $dataResponsable = array();
  178. for($i = 0;$i < count($select_observador);$i++){
  179. array_push($dataResponsable, array(
  180. 'codigo_objetivo' => $id,
  181. 'codigo_usuario' => $select_observador[$i]
  182. ));
  183. }
  184. if(count($select_observador) > 0){
  185. $this->db->insert_batch('observadores_objetivos', $dataResponsable);
  186. }
  187. $this->db->trans_complete();
  188. }
  189. public function deleteObjetive($id){
  190. $fecha_actual = date('Y-m-d');
  191. $dataProject = array(
  192. 'fecha_eliminado' => $fecha_actual
  193. );
  194. $this->db->where('codigo', $id);
  195. $this->db->update('objetivos', $dataProject);
  196. }
  197. public function getPrject($id){
  198. $query = $this->db->query('
  199. SELECT
  200. proyectos.nombre as nombreProjectoHeader,
  201. proyectos.fecha_entrega as fechaEntregaHeader
  202. FROM objetivos
  203. inner join proyectos ON objetivos.codigo_proyecto = proyectos.codigo
  204. WHERE objetivos.codigo=$id;
  205. ');
  206. return $query->result()[0];
  207. }
  208. }//END CLASS