Beispiel #1
0
 /**
  * Add formularios
  *
  * @param \MINSAL\CostosBundle\Entity\Formulario $formularios
  * @return Campo
  */
 public function addFormulario(\MINSAL\CostosBundle\Entity\Formulario $formularios)
 {
     $this->formularios[] = $formularios;
     $formularios->addCampo($this);
     return $this;
 }
 public function setDatos(Formulario $Frm, PeriodoIngresoDatosFormulario $periodoIngreso, Request $request)
 {
     $em = $this->getEntityManager();
     $parametros = $request->get('datos_frm');
     $params_string = $this->getParameterString($parametros, $periodoIngreso);
     $area = $Frm->getAreaCosteo();
     if ($area != 'ga_variables' and $area != 'ga_compromisosFinancieros' and $area != 'ga_distribucion' and $area != 'almacen_datos') {
         $origenes = $this->getOrigenes($Frm->getOrigenDatos());
         $campo = 'id_origen_dato';
     } else {
         $origenes = array($Frm->getId());
         $campo = 'id_formulario';
         $area_aux = 'ga';
         $tabla = $area == 'almacen_datos' ? 'almacen_datos.repositorio' : 'costos.fila_origen_dato_' . strtolower($area_aux);
     }
     $datosObj = json_decode($request->get('fila'));
     $datos = str_replace(array('{', '}', ':', 'null'), array('', '', '=>', '""'), $request->get('fila'));
     // eliminar mensajes de ayuda que vienen separados por ||
     //$datos = preg_replace('/\|\|[\s\S]*j?"/', '"', $datos);
     //Cambiar formato de fecha
     $datos = preg_replace('/([0-9]{4})-([0-9]{2})-([0-9]{2})T[0-9]{2}=>[0-9]{2}=>[0-9]{2}.[0-9]{3}Z/', '${3}/${2}/${1}', $datos);
     $params_string .= "AND datos->'" . $request->get('pk') . "' = '" . $datosObj->{$request->get('pk')} . "'";
     $sql = "\n            UPDATE {$tabla}\n            SET datos = datos || '" . $datos . "'::hstore\n            WHERE {$campo} IN (" . implode(',', $origenes) . ")\n                {$params_string}\n            ;";
     try {
         $em->getConnection()->executeQuery($sql);
         // Mandar los datos actualizados, para que muestre en el grid
         // los campos calculados por el procedimiento de la base de datos
         $sql = "\n            SELECT datos \n            FROM {$tabla}\n            WHERE {$campo} IN (" . implode(',', $origenes) . ")\n                {$params_string}                \n            ;";
         return $em->getConnection()->executeQuery($sql)->fetchAll();
         //return true;
     } catch (\PDOException $e) {
         return false;
     }
 }