/** * 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; } }