public static function actualizarRegistros($tabla) { $estructura = ExtraParamsEstructuraDAO::search(new ExtraParamsEstructura(array("tabla" => $tabla))); $usuarios = UsuarioDAO::getAll(); for ($i = 0; $i < sizeof($usuarios); $i++) { $valores = self::getVals($tabla, $usuarios[$i]->getIdUsuario()); for ($e = 0; $e < sizeof($estructura); $e++) { $found = false; for ($v = 0; $v < sizeof($valores); $v++) { if ($valores[$v]["campo"] == $estructura[$e]->getCampo()) { $found = true; } } if (!$found) { $toInsert = new ExtraParamsValores(); $toInsert->setIdExtraParamsEstructura($estructura[$e]->getIdExtraParamsEstructura()); $toInsert->setIdPkTabla($usuarios[$i]->getIdUsuario()); $toInsert->setVal(null); ExtraParamsValoresDAO::save($toInsert); } } } }
$tabla->addColRender("id_extra_params_estructura", "smenu"); $page->addComponent($tabla); $page->addComponent(new TitleComponent("Nueva columna", 3)); $nceObj = new ExtraParamsEstructura(); $nceObj->setTabla("\"clientes\""); $nuevaColumnaForm = new DAOFormComponent($nceObj); $nuevaColumnaForm->addApiCall("api/pos/bd/columna/nueva", "POST"); $nuevaColumnaForm->makeObligatory(array("campo", "tipo", "longitud", "olbigatorio", "obligatorio", "caption")); $nuevaColumnaForm->hideField(array("id_extra_params_estructura", "tabla")); $nuevaColumnaForm->sendHidden("tabla"); $nuevaColumnaForm->setType("descripcion", "textarea"); $nuevaColumnaForm->createComboBoxJoin("tipo", null, array("string", "int", "float", "date", "bool")); $nuevaColumnaForm->createComboBoxJoin("obligatorio", null, array("Si", "No")); $page->addComponent($nuevaColumnaForm); $q = new ExtraParamsEstructura(array("tabla" => "clientes")); $qr = ExtraParamsEstructuraDAO::search($q); for ($i = 0; $i < sizeof($qr); $i++) { unset($qr[$i]->id_extra_params_estructura); } $export_json = json_encode($qr); $page->addComponent(' <script> function exportar(){ var form = Ext.widget(\'form\', { layout: { type: \'vbox\', align: \'stretch\' }, border: false, bodyPadding: 10,
/** * *El documento base es de donde se crean instancias de documentos. * * @param json_impresion json El json que se utilizara para imprimir este documento. * @param nombre string Nombre del documento base * @param activo bool Si esta activo o si no se puede realizar documentos de este tipo. * @param foliado json El json que describe como sera el foliado de este documento. Incluye en que folio va. * @param foliado json * @param id_empresa int Si pertence a una empresa en especifico, o puede realizarse en cualquier empresa. * @param id_sucursal int Si pertenece a una sucursal en especifico o puede realizarse en cualquier sucursal. * @return id_documento_base int Id del nuevo documento **/ static function NuevoBase($json_impresion, $nombre, $activo = 1, $extra_params = null, $foliado = "", $foliado = "", $id_empresa = null, $id_sucursal = null, $nombre_plantilla = null) { if (is_null($json_impresion)) { throw new InvalidDataException("El json de impresion no es valido."); } $q = DocumentoBaseDAO::search(new DocumentoBase(array("nombre" => $nombre))); if (sizeof($q) > 0) { throw new InvalidDataException("Ya existe un documento con este nombre."); } $nDoc = new DocumentoBase(); $nDoc->setJsonImpresion(json_encode($json_impresion)); $nDoc->setNombre($nombre); $nDoc->setActivo($activo); $nDoc->setIdEmpresa($id_empresa); $nDoc->setIdSucursal($id_sucursal); $nDoc->setUltimaModificacion(time()); $nDoc->setNombrePlantilla($nombre_plantilla); //Es aconsejable agregar un token al nombre de la plantilla y modificar el nombre del archivo con este nuevo token para evitar sobreescribirlo try { DocumentoBaseDAO::save($nDoc); } catch (Exception $e) { throw new InvalidDatabaseOperationException($e); } if (!is_null($extra_params)) { for ($i = 0; $i < sizeof($extra_params); $i++) { if (!isset($extra_params[$i]->obligatory)) { $extra_params[$i]->obligatory = FALSE; } $paramStruct = new ExtraParamsEstructura(); // // Si el tipo de parametro extra es enum, // se debio enviar tambien 'enum', validar // que sea un json if ($extra_params[$i]->type == "enum") { if (!isset($extra_params[$i]->enum)) { throw new InvalidDataException("Falta enum"); } $paramStruct->setEnum($extra_params[$i]->enum); } $paramStruct->setTabla("documento_base-" . $nDoc->getIdDocumentoBase()); $paramStruct->setCampo(str_replace(" ", "_", $extra_params[$i]->desc)); $paramStruct->setTipo($extra_params[$i]->type); $paramStruct->setLongitud(256); $paramStruct->setObligatorio($extra_params[$i]->obligatory); $paramStruct->setCaption($extra_params[$i]->desc); $paramStruct->setDescripcion($extra_params[$i]->desc); try { ExtraParamsEstructuraDAO::save($paramStruct); } catch (Exception $e) { Logger::error($e); throw new InvalidDatabaseOperationException($e); } } } Logger::log("Se ha creado el documento base id=" . $nDoc->getIdDocumentoBase()); return array("id_documento_base" => $nDoc->getIdDocumentoBase()); }
require_once "../../../server/bootstrap.php"; $page = new GerenciaComponentPage(); // Validar parametro de base $DocumentoBase = DocumentoBaseDAO::getByPK($_GET["base"]); if (is_null($DocumentoBase)) { $page->render(); exit; } else { if ($DocumentoBase->GetActivo() == false) { $page->render(); exit; } } $page->addComponent(new TitleComponent("Nuevo " . $DocumentoBase->getNombre(), 1)); //Buscar sus parametros extra $ExtraParamsStructs = ExtraParamsEstructuraDAO::search(new ExtraParamsEstructura(array("tabla" => "documento_base-" . $DocumentoBase->getIdDocumentoBase()))); $f = new FormComponent(); $f->addApiCall("api/documento/nuevo"); for ($i = 0; $i < sizeof($ExtraParamsStructs); $i++) { // function addField($id, $caption, $type, $value = "", $name = null) { if ($ExtraParamsStructs[$i]->tipo == "enum") { $enum_string = explode(",", $ExtraParamsStructs[$i]->enum); $enum_array = array(); for ($k = 0; $k < count($enum_string); $k++) { array_push($enum_array, array("caption" => $enum_string[$k], "id" => $enum_string[$k], "selected" => 0)); } $f->addField($ExtraParamsStructs[$i]->campo, $ExtraParamsStructs[$i]->caption, $ExtraParamsStructs[$i]->tipo, $enum_array); } else { $f->addField($ExtraParamsStructs[$i]->campo, $ExtraParamsStructs[$i]->caption, $ExtraParamsStructs[$i]->tipo); } }
public function testCredenciales_Sapuraiya() { $res = ExtraParamsEstructuraDAO::search(new ExtraParamsEstructura(array("tabla" => "usuarios", "campo" => "Agenda"))); if (count($res) <= 0) { return; } $u = UsuarioDAO::getAll(); $o = "Empresa | Credenciales restantes | Numero de credenciales\n"; foreach ($u as $user) { $out = ExtraParamsValoresDAO::getVals("usuarios", $user->getIdUsuario()); $cr = $out[4]["val"]; $nc = $out[8]["val"]; if (strlen($nc > 1)) { $tipo_creden = substr($nc, 1, 1); switch ($tipo_creden) { case 'a': $nc = str_replace('a', " Proveedor", $nc); break; case 'b': $nc = str_replace('b', " Expositor", $nc); break; case 'c': $nc = str_replace('c', " Expositor/Proveedor", $nc); break; case 'd': $nc = str_replace('d', " Empresa Tractora", $nc); break; } } Logger::log("Credenciales restantes: " . $cr); Logger::log("Num credenciales: " . $nc); $o .= $user->getNombre() . " | " . $cr . " | " . $nc . "\n"; } $fp = fopen('credenciales.txt', 'w'); fwrite($fp, $o); fclose($fp); }
public static function NuevaColumnaBd($campo, $caption, $obligatorio, $tabla, $tipo, $descripcion = "", $longitud = "") { //busquemos que exista la tabla switch ($tabla) { case "clientes": break; default: throw new InvalidDataException("No puede crear una nueva columna para la tabla {$tabla}"); } //veamos que no exista la combinacion de tabla-campo //validar tipo y longitud //crear objeto $ncbd = new ExtraParamsEstructura(); $ncbd->setTabla($tabla); $ncbd->setCampo($campo); $ncbd->setTipo($tipo); $ncbd->setLongitud($longitud); $ncbd->setObligatorio($obligatorio); $ncbd->setCaption($caption); $ncbd->setDescripcion($descripcion); //insertar try { ExtraParamsEstructuraDAO::save($ncbd); } catch (Exception $e) { throw new InvalidDataException("El campo `" . $campo . "` ya existe en esta tabla."); } return array("id_columna" => $ncbd->getIdExtraParamsEstructura()); }