PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/apps/formulacion/modules/forsegpoa/actions/actions.class.php

https://github.com/cidesa/roraima
PHP | 281 lines | 208 code | 27 blank | 46 comment | 23 complexity | b89cfdea4c68cf7863be853bec564e51 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. /**
  3. * forsegpoa actions.
  4. *
  5. * @package Roraima
  6. * @subpackage forsegpoa
  7. * @author $Author:lhernandez $ <desarrollo@cidesa.com.ve>
  8. * @version SVN: $Id:actions.class.php 32379 2009-09-01 16:59:06Z lhernandez $
  9. *
  10. * @copyright Copyright 2007, Cide S.A.
  11. * @license http://opensource.org/licenses/gpl-2.0.php GPLv2
  12. */
  13. class forsegpoaActions extends autoforsegpoaActions
  14. {
  15. /**
  16. * Función principal para el manejo de la accion list
  17. * del formulario.
  18. *
  19. */
  20. public function executeList()
  21. {
  22. $this->processSort();
  23. $this->processFilters();
  24. $this->setVars();
  25. $this->filters = $this->getUser()->getAttributeHolder()->getAll('sf_admin/fordismetperpryaccmet/filters');
  26. // pager
  27. $this->pager = new sfPropelPager('Forencpryaccespmet', 5);
  28. $c = new Criteria();
  29. $c->addJoin(FordismetperpryaccmetPeer::CODPRO,ForencpryaccespmetPeer::CODPRO);
  30. $c->addJoin(FordismetperpryaccmetPeer::CODACCESP,ForencpryaccespmetPeer::CODACCESP);
  31. $c->addJoin(FordismetperpryaccmetPeer::CODMET,ForencpryaccespmetPeer::CODMET);
  32. $c->Setdistinct();
  33. $this->addSortCriteria($c);
  34. $this->addFiltersCriteria($c);
  35. $this->pager->setCriteria($c);
  36. $this->pager->setPage($this->getRequestParameter('page', 1));
  37. $this->pager->init();
  38. }
  39. protected function getFordismetperpryaccmetOrCreate($id = 'id', $codpro= 'codpro', $accion= 'accion', $meta= 'meta')
  40. {
  41. if (!($this->getRequestParameter($codpro)) && !($this->getRequestParameter($accion)) && !($this->getRequestParameter($meta)) && !$this->getRequestParameter($id) )
  42. {
  43. //exit('1');
  44. $fordismetperpryaccmet = new Fordismetperpryaccmet();
  45. }
  46. else
  47. {
  48. $fordismetperpryaccmet = FordismetperpryaccmetPeer::retrieveByPk($this->getRequestParameter($id));
  49. $c = new Criteria();
  50. if ($this->getRequestParameter($codpro))
  51. {
  52. $c->add(FordismetperpryaccmetPeer::CODPRO,$this->getRequestParameter($codpro));
  53. $c->add(FordismetperpryaccmetPeer::CODACCESP,$this->getRequestParameter($accion));
  54. $c->add(FordismetperpryaccmetPeer::CODMET,$this->getRequestParameter($meta));
  55. }else{
  56. $c->add(FordismetperpryaccmetPeer::CODPRO,$fordismetperpryaccmet->getCodpro());
  57. $c->add(FordismetperpryaccmetPeer::CODACCESP,$fordismetperpryaccmet->getCodaccesp());
  58. $c->add(FordismetperpryaccmetPeer::CODMET,$fordismetperpryaccmet->getCodmet());
  59. }
  60. $fordismetperpryaccmet = FordismetperpryaccmetPeer::doSelectOne($c);
  61. $this->forward404Unless($fordismetperpryaccmet);
  62. }
  63. return $fordismetperpryaccmet;
  64. }
  65. /**
  66. * Función principal para el manejo de las acciones create y edit
  67. * del formulario.
  68. *
  69. */
  70. public function executeEdit()
  71. {
  72. $this->fordismetperpryaccmet = $this->getFordismetperpryaccmetOrCreate();
  73. $this->setVars();
  74. $this->configGrid();
  75. if ($this->getRequest()->getMethod() == sfRequest::POST)
  76. {
  77. $this->updateFordismetperpryaccmetFromRequest();
  78. $this->saveFordismetperpryaccmet($this->fordismetperpryaccmet);
  79. $this->setFlash('notice', 'Your modifications have been saved');
  80. $this->Bitacora('Guardo');
  81. if ($this->getRequestParameter('save_and_add'))
  82. {
  83. return $this->redirect('forsegpoa/create');
  84. }
  85. else if ($this->getRequestParameter('save_and_list'))
  86. {
  87. return $this->redirect('forsegpoa/list');
  88. }
  89. else
  90. {
  91. return $this->redirect('forsegpoa/edit?id='.$this->fordismetperpryaccmet->getId());
  92. }
  93. }
  94. else
  95. {
  96. $this->labels = $this->getLabels();
  97. }
  98. }
  99. /**
  100. * Función para manejar el salvado del formulario.
  101. * cabe destacar que en las versiones nuevas del formulario (cidesaPropel)
  102. * llama internamente a la función $this->saving
  103. * Esta función saving siempre debe retornar un valor >=-1.
  104. * En esta funcción se debe realizar el proceso de guardado de informacion
  105. * del negocio en la base de datos. Este proceso debe ser realizado llamado
  106. * a funciones de las clases del negocio que se encuentran en lib/bussines
  107. * todos los procesos de guardado deben estar en la clases del negocio (lib/bussines/"modulo")
  108. *
  109. */
  110. protected function saveFordismetperpryaccmet($fordismetperpryaccmet)
  111. {
  112. $grid=Herramientas::CargarDatosGrid($this,$this->obj);
  113. Formulacion::salvarFordismetperpryaccmet($fordismetperpryaccmet,$grid);
  114. }
  115. /**
  116. * Actualiza la informacion que viene de la vista
  117. * luego de un get/post en el objeto principal del modelo base del formulario.
  118. *
  119. */
  120. protected function updateFordismetperpryaccmetFromRequest()
  121. {
  122. $fordismetperpryaccmet = $this->getRequestParameter('fordismetperpryaccmet');
  123. $this->setVars();
  124. $this->configGrid();
  125. if (isset($fordismetperpryaccmet['codpro']))
  126. {
  127. $this->fordismetperpryaccmet->setCodpro($fordismetperpryaccmet['codpro']);
  128. }
  129. if (isset($fordismetperpryaccmet['nompro']))
  130. {
  131. $this->fordismetperpryaccmet->setNompro($fordismetperpryaccmet['nompro']);
  132. }
  133. if (isset($fordismetperpryaccmet['codaccesp']))
  134. {
  135. $this->fordismetperpryaccmet->setCodaccesp($fordismetperpryaccmet['codaccesp']);
  136. }
  137. if (isset($fordismetperpryaccmet['desaccesp']))
  138. {
  139. $this->fordismetperpryaccmet->setDesaccesp($fordismetperpryaccmet['desaccesp']);
  140. }
  141. if (isset($fordismetperpryaccmet['codmet']))
  142. {
  143. $this->fordismetperpryaccmet->setCodmet($fordismetperpryaccmet['codmet']);
  144. }
  145. if (isset($fordismetperpryaccmet['desmet']))
  146. {
  147. $this->fordismetperpryaccmet->setDesmet($fordismetperpryaccmet['desmet']);
  148. }
  149. if (isset($fordismetperpryaccmet['canmet2']))
  150. {
  151. $this->fordismetperpryaccmet->setCanmet2($fordismetperpryaccmet['canmet2']);
  152. }
  153. if (isset($fordismetperpryaccmet['cananual']))
  154. {
  155. $this->fordismetperpryaccmet->setCananual($fordismetperpryaccmet['cananual']);
  156. }
  157. if (isset($fordismetperpryaccmet['perpre']))
  158. {
  159. $this->fordismetperpryaccmet->setPerpre($fordismetperpryaccmet['perpre']);
  160. }
  161. if (isset($fordismetperpryaccmet['canmet']))
  162. {
  163. $this->fordismetperpryaccmet->setCanmet($fordismetperpryaccmet['canmet']);
  164. }
  165. if (isset($fordismetperpryaccmet['progacum']))
  166. {
  167. $this->fordismetperpryaccmet->setProgacum($fordismetperpryaccmet['progacum']);
  168. }
  169. if (isset($fordismetperpryaccmet['canmeteje']))
  170. {
  171. $this->fordismetperpryaccmet->setCanmeteje($fordismetperpryaccmet['canmeteje']);
  172. }
  173. if (isset($fordismetperpryaccmet['acum']))
  174. {
  175. $this->fordismetperpryaccmet->setAcum($fordismetperpryaccmet['acum']);
  176. }
  177. }
  178. /**
  179. * Esta función permite definir la configuración del grid de datos
  180. * que contiene el formulario. Esta función debe ser llamada
  181. * en las acciones, create, edit y handleError para recargar en todo momento
  182. * los datos del grid.
  183. *
  184. */
  185. public function configGrid()
  186. {
  187. $c = new Criteria();
  188. $c->add(FordismetperpryaccmetPeer::CODPRO,$this->fordismetperpryaccmet->getCodPro());
  189. $c->add(FordismetperpryaccmetPeer::CODACCESP,$this->fordismetperpryaccmet->getCodaccesp());
  190. $c->add(FordismetperpryaccmetPeer::CODMET,$this->fordismetperpryaccmet->getCodmet());
  191. $c->addAscendingOrderByColumn(FordismetperpryaccmetPeer::PERPRE);
  192. $per = FordismetperpryaccmetPeer::doSelect($c);
  193. $opciones = new OpcionesGrid();
  194. $opciones->setEliminar(false);
  195. $opciones->setTabla('fordismetperpryaccmet');
  196. $opciones->setAncho(600);
  197. $opciones->setAnchoGrid(100);
  198. $opciones->setFilas(0);
  199. $opciones->setName('a');
  200. $opciones->setTitulo('Detalle Ejecución de Metas Físicas');
  201. $opciones->setHTMLTotalFilas(' ');
  202. $col1 = new Columna('Mes');
  203. $col1->setTipo(Columna::TEXTO);
  204. $col1->setAlineacionObjeto(Columna::CENTRO);
  205. $col1->setAlineacionContenido(Columna::CENTRO);
  206. $col1->setNombreCampo('perpre');
  207. $col1->setHTML('type="text" size="3" readonly=true');
  208. $col2 = new Columna('Programado del Mes');
  209. $col2->setTipo(Columna::MONTO);
  210. $col2->setAlineacionContenido(Columna::DERECHA);
  211. $col2->setAlineacionObjeto(Columna::DERECHA);
  212. $col2->setNombreCampo('canmet');
  213. $col2->setEsNumerico(true);
  214. $col2->setHTML('type="text" size="10" readonly=true');
  215. $col3 = new Columna('Programado Acumulado');
  216. $col3->setTipo(Columna::MONTO);
  217. $col3->setAlineacionContenido(Columna::DERECHA);
  218. $col3->setAlineacionObjeto(Columna::DERECHA);
  219. $col3->setNombreCampo('progacum');
  220. $col3->setEsNumerico(true);
  221. $col3->setHTML('type="text" size="10" readonly=true');
  222. $col4 = new Columna('Ejecutado');
  223. $col4->setTipo(Columna::MONTO);
  224. $col4->setEsGrabable(true);
  225. $col4->setAlineacionContenido(Columna::DERECHA);
  226. $col4->setAlineacionObjeto(Columna::DERECHA);
  227. $col4->setNombreCampo('canmeteje');
  228. $col4->setEsNumerico(true);
  229. $col4->setEsGrabable(true);
  230. $col4->setHTML('type="text" size="10"');
  231. $col4->setEsTotal(true,'fordismetperpryaccmet_cananual');
  232. $col4->setJScript('onKeypress="calculos(event,this.id)"');
  233. $col5 = new Columna('Variación');
  234. $col5->setTipo(Columna::MONTO);
  235. $col5->setAlineacionContenido(Columna::DERECHA);
  236. $col5->setAlineacionObjeto(Columna::DERECHA);
  237. $col5->setNombreCampo('acum');
  238. $col5->setEsNumerico(true);
  239. $col5->setHTML('type="text" size="10" readonly=true');
  240. $opciones->addColumna($col1);
  241. $opciones->addColumna($col2);
  242. $opciones->addColumna($col3);
  243. $opciones->addColumna($col4);
  244. $opciones->addColumna($col5);
  245. $this->obj = $opciones->getConfig($per);
  246. }
  247. public function setVars()
  248. {
  249. $this->mascaraproyecto = Herramientas::ObtenerFormato('Fordefegrgen','Forproacc');
  250. $this->longpry=strlen($this->mascaraproyecto);
  251. $this->mascaraaccion = Herramientas::ObtenerFormato('Fordefegrgen','Foraccesp');
  252. $this->longacc=strlen($this->mascaraaccion);
  253. }
  254. }