function geraDados($s, $s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10, $s11, $s12, $s13, $s14, $s15, $s16, $s17)
 {
     $s = strtoupper($s);
     $s4 = strtoupper($s4);
     if (strlen($s) != $this->TAM_COD_EMP) {
         return "Erro: tamanho do codigo da empresa diferente de 26 posições.";
     }
     if (strlen($s4) != $this->TAM_CHAVE) {
         return "Erro: tamanho da chave da chave diferente de 16 posições.";
     }
     if (strlen($s1) < 1 || strlen($s1) > 8) {
         return "Erro: número do pedido inválido.";
     }
     if (is_numeric($s1)) {
         $s1 = str_pad($s1, 8, '0', STR_PAD_LEFT);
     } else {
         return "Erro: numero do pedido não é numérico.";
     }
     if (strlen($s2) < 1 || strlen($s2) > 11) {
         return "Erro: valor da compra inválido.";
     }
     if (strstr($s2, ',')) {
         $s20 = substr($s2, -2);
         if (!is_numeric($s20)) {
             return "Erro: valor decimal não é numérico.";
         }
         if (strlen($s20) != 2) {
             return "Erro: valor decimal da compra deve possuir 2 posições após a virgula.";
         }
         $s2 = substr($s2, 0, strlen($s2) - 3) . $s20;
     } else {
         if (!is_numeric($s2)) {
             return "Erro: valor da compra não é numérico.";
         }
         if (strlen($s2) > 8) {
             return "Erro: valor da compra deve possuir no máximo 8 posições antes da virgula.";
         }
         $s2 = $s2 . "00";
     }
     $s2 = str_pad($s2, 10, '0', STR_PAD_LEFT);
     $s6 = trim($s6);
     if ($s6 == "02" && $s6 == "01" && $s6 == "") {
         return "Erro: código de inscrição inválido.";
     }
     if ($s7 == "" && !is_numeric($s7) && strlen($s7) > 14) {
         return "Erro: número de inscrição inválido.";
     }
     if ($s10 == "" && (!is_numeric($s10) || strlen($s10) != 8)) {
         return "Erro: cep inválido.";
     }
     if ($s13 == "" && (!is_numeric($s13) || strlen($s13) != 8)) {
         return "Erro: data de vencimento inválida.";
     }
     if (strlen($s15) > 60) {
         return "Erro: observação adicional 1 inválida.";
     }
     if (strlen($s16) > 60) {
         return "Erro: observação adicional 2 inválida.";
     }
     if (strlen($s17) > 60) {
         return "Erro: observação adicional 3 inválida.";
     } else {
         function corta($str, $n)
         {
             return str_pad(substr($str, 0, $n), $n, ' ', STR_PAD_RIGHT);
         }
         $s3 = corta($s3, 40);
         $s5 = corta($s5, 30);
         $s6 = corta($s6, 2);
         $s7 = corta($s7, 14);
         $s8 = corta($s8, 40);
         $s9 = corta($s9, 15);
         $s10 = corta($s10, 8);
         $s11 = corta($s11, 15);
         $s12 = corta($s12, 2);
         $s13 = corta($s13, 29);
         $s14 = corta($s14, 60);
         $s15 = corta($s15, 60);
         $s16 = corta($s16, 60);
         $s17 = corta($s17, 60);
         $s18 = $this->Algoritmo($s1 . $s2 . $s3 . $s5 . $s6 . $s7 . $s8 . $s9 . $s10 . $s11 . $s12 . $s13 . $s14 . $s15 . $s16 . $s17, $s4);
         $s19 = $this->Algoritmo($s . $s18, $this->CHAVE_ITAU);
         $s19 = $this->Converte($s19);
         return $s19;
     }
 }
/**
 * Tabla para editar/añdir  un registro completo 
*/
function tablaEdicion($cTitulo, $aDatos, $cSQL = "", $aHidden = "", $cEnviar = "", $aItzuli = "")
{
    $aAfter = array();
    $cResul = $cTitulo ? "<h2><span>{$cTitulo}</span></h2>\n" : "";
    $cResul .= "\n<form name='editar' method='post' action='" . mScript() . "'  enctype='multipart/form-data'  >\n<div>";
    // Buscamos el primero campo obligatorio.
    foreach ($aDatos as $fila) {
        if ($fila["acceso"] !== false and isset($fila["verifica"]) and $fila["verifica"] == "no_vacio") {
            $cResul .= "<div class='obligatorio'>*" . t("beherrezkoa") . "</div>";
            break;
        }
    }
    $cHidden = "";
    if (is_array($aHidden)) {
        foreach ($aHidden as $name => $value) {
            $cHidden .= "<input type='hidden' name='{$name}' value='{$value}' />\n";
        }
    }
    $cTabla = "<table class='edicion'>\n";
    if ($cSQL != "") {
        /* en un modificación los valores se obtienen por una consulta SQL */
        $lerroa = mysql_query_registro($cSQL);
    } else {
        /* en una adición de obtienen con los valores por defecto */
        $lerroa = array();
        foreach ($aDatos as $fila) {
            $lerroa[$fila["campo"]] = isset($fila["defecto"]) ? $fila["defecto"] : "";
        }
    }
    $nCont = 1;
    if ($lerroa) {
        foreach ($aDatos as $fila) {
            if ($fila["acceso"] === false) {
                continue;
            }
            $aParametros = explode(" ", $fila["tipo"]);
            $cTipo = strtolower($aParametros[0]);
            if ($cTipo != "hidden" and $cTipo != "separador" and $cTipo != "codigodirecto" and $cTipo != "fijo") {
                $cTabla .= "\n<tr>\n";
                if (isset($fila["verifica"]) and $fila["verifica"] == "no_vacio") {
                    $cTabla .= "<th><label for='campo_{$nCont}' class='obligatorio'>" . $fila["cabecera"] . "*</label></th>\n";
                } else {
                    $cTabla .= "<th><label for='campo_{$nCont}'>" . $fila["cabecera"] . "</label></th>\n";
                }
                $cTabla .= "<td>";
            }
            $generaTDTR = true;
            switch ($cTipo) {
                /* @TODO Traducir literales */
                case "fijo":
                    break;
                case "adjunto":
                    if ($lerroa[$fila["campo"]]) {
                        $cTabla .= "<a href='" . $aParametros[1] . "/" . $lerroa[$fila["campo"]];
                        $cTabla .= "' > " . corta($lerroa[$fila["campo"]], 50) . "</a><br>";
                        $cTabla .= t("Cambiar fichero adjunto: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />";
                    } else {
                        $cTabla .= t("Adjuntar nuevo archivo: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />";
                    }
                    $fila["adicional"] .= ($fila["adicional"] ? "<br/>" : "") . "(MAX: " . ini_get("upload_max_filesize") . "bytes)";
                    break;
                case "imagen":
                case "irudia":
                    if ($lerroa[$fila["campo"]]) {
                        $cTabla .= "<img src='./" . $aParametros[1] . "/" . $lerroa[$fila["campo"]] . "' class='irudia' />";
                        $cTabla .= t("Cambiar  imagen: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />\n";
                        if ($fila["adicional"]) {
                            $cTabla .= "<span class='adicional'>" . $fila["adicional"] . "</span>";
                        }
                        $cTabla .= "<br/>" . t("Borrar imagen: ") . "<input type='checkbox' name='{$fila[campo]}_EZABATU' value='1' />";
                    } else {
                        $cTabla .= t("Sin imagen") . "<br/>";
                        $cTabla .= t("Nueva  imagen: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />";
                    }
                    break;
                case "separador":
                    $cTabla .= "\n<tr>\n";
                    $cTabla .= "<th colspan='2' class='separador'>" . $fila["cabecera"] . "</th></tr>\n";
                    $generaTDTR = false;
                    break;
                case "codigodirecto":
                    $aAfter[] = $fila["funcion"];
                    break;
                case "hidden":
                    $cHidden .= "<input type='hidden' value='" . (isset($fila["value"]) ? $fila["value"] : $lerroa[$fila["campo"]]) . "' name='" . $fila["cabecera"] . "' />";
                    $generaTDTR = false;
                    break;
                case "listavalores":
                case "lista":
                    $cTabla .= "<select name='" . $fila["campo"] . "'  id='campo_{$nCont}' >\n";
                    if (isset($fila["valoresAdicionales"])) {
                        foreach ($fila["valoresAdicionales"] as $adicionalID => $adicionalValor) {
                            $cTabla .= "<option value='" . $adicionalID . "'" . ($adicionalID == $lerroa[$fila["campo"]] ? " SELECTED " : "") . ">";
                            $cTabla .= $adicionalValor . "</option>\n";
                        }
                    }
                    $aLista = explode("|", substr($fila["tipo"], $cTipo == "lista" ? 6 : 13));
                    $nParametros = 0;
                    while ($aLista[$nParametros]) {
                        if ($cTipo == "lista") {
                            $cTabla .= "<option value='{$nParametros}'" . ($lerroa[$fila["campo"]] == $nParametros ? " SELECTED " : "") . " >";
                        } else {
                            $cTabla .= "<option value='" . $aLista[$nParametros] . "'";
                            $cTabla .= ($lerroa[$fila["campo"]] == $aLista[$nParametros] ? " SELECTED " : "") . " >";
                        }
                        $cTabla .= $aLista[$nParametros] . "</option>\n";
                        $nParametros++;
                    }
                    $cTabla .= "</select>\n";
                    break;
                case "listafuncion":
                case "listafuncioncadena":
                case "listasql":
                    $cTabla .= "<select name='" . $fila["campo"] . "' id='campo_{$nCont}'  " . (isset($fila["clase"]) ? " class='" . $fila["clase"] . "'" : "") . ">\n";
                    if (isset($fila["valoresAdicionales"])) {
                        foreach ($fila["valoresAdicionales"] as $adicionalID => $adicionalValor) {
                            $cTabla .= "<option value='" . $adicionalID . "'";
                            if (substr($adicionalValor, 0, 3) == "---") {
                                $cTabla .= " disabled='disabled' ";
                            }
                            if ($adicionalID == $lerroa[$fila["campo"]]) {
                                $cTabla .= " selected='selected' ";
                            }
                            $cTabla .= ">" . $adicionalValor . "</option>\n";
                        }
                    }
                    if ($cTipo == "listasql") {
                        $rsTemporal = mysql_query(substr($fila["tipo"], 8));
                        while ($lerroaTemp = mysql_fetch_array($rsTemporal)) {
                            $cTabla .= "<option value='" . $lerroaTemp[0] . "'" . ($lerroaTemp[0] == $lerroa[$fila["campo"]] ? " SELECTED " : "");
                            $cTabla .= " >" . $lerroaTemp[1] . "</option>\n";
                        }
                        mysql_free_result($rsTemporal);
                    } else {
                        $aTemporal = call_user_func($aParametros[1]);
                        foreach ($aTemporal as $clave => $valor) {
                            $cTabla .= "<option value='" . $clave . "'" . ($clave == $lerroa[$fila["campo"]] ? " SELECTED " : "");
                            $cTabla .= " >" . $valor . "</option>\n";
                        }
                    }
                    $cTabla .= "</select>\n";
                    break;
                case "checkbox":
                    $cTabla .= "<input type='checkbox'  id='campo_{$nCont}' name='" . $fila["campo"] . "'";
                    $cTabla .= ($lerroa[$fila["campo"]] == 1 ? " checked " : "") . " value='1' />";
                    break;
                case "info":
                    $cTabla .= "<input type='text'  name='" . $fila["campo"] . "' value='" . $lerroa[$fila["campo"]] . "'";
                    $cTabla .= " disabled='disabled' class='campoInformativo'  id='campo_{$nCont}' />";
                    break;
                case "html":
                    if (isset($aParametros[2])) {
                        $cTabla .= call_user_func($aParametros[1], $lerroa[$aParametros[2]]);
                    } else {
                        $cTabla .= call_user_func($aParametros[1], $lerroa);
                    }
                    break;
                case "infofuncion":
                    $cTabla .= "<input type='text' ";
                    if (isset($fila['campo'])) {
                        $cTabla .= " name='" . $fila["campo"] . "'";
                    }
                    if (isset($aParametros[2])) {
                        $cTabla .= " value='" . call_user_func($aParametros[1], $lerroa[$aParametros[2]]) . "'";
                    } else {
                        $cTabla .= "  value='" . call_user_func($aParametros[1], $lerroa) . "'";
                    }
                    $cTabla .= " disabled='disabled' class='campoInformativo'  id='campo_{$nCont}'  />";
                    break;
                case "nuevopassword":
                case "verificapassword":
                    $cTabla .= "<input type='password' id='campo_{$nCont}'  value='' name='" . $fila["campo"] . "'";
                    if (count($aParametros) == 1) {
                        $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[1] . "'/>";
                    } elseif (count($aParametros) == 2) {
                        $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[2] . "'/>";
                    } else {
                        $cTabla .= " >";
                    }
                    break;
                case "texto":
                    if (defined("FCKEDITOR") and $aParametros[1] > 4) {
                        $oFCKeditor = new FCKeditor($fila["campo"]);
                        $oFCKeditor->BasePath = FCKEDITOR;
                        $oFCKeditor->Value = $lerroa[$fila["campo"]];
                        $oFCKeditor->Height = $aParametros[1] * 16;
                        $oFCKeditor->Width = $aParametros[2] * 6;
                        $cTabla .= $oFCKeditor->Create();
                        $generaTDTR = false;
                    } else {
                        $cTabla .= "<textarea id='campo_{$nCont}' {$fila[WYSIWYG]} rows='" . $aParametros[1] . "' cols='" . $aParametros[2] . "' name='" . $fila["campo"] . "'>";
                        $cTabla .= $lerroa[$fila["campo"]] . "</textarea>";
                    }
                    break;
                case "readonly":
                    $cTabla .= ddlib_etiqueta_html("input", array("type" => "text", "id" => "campo_{$nCont}", "value" => $lerroa[$fila["campo"]], "name" => $fila["campo"], "readonly" => 'readonly', "size" => $aParametros[1]));
                    break;
                case "cadena":
                    $cTabla .= "<input type='text' id='campo_{$nCont}'  value='" . $lerroa[$fila["campo"]] . "' name='" . $fila["campo"] . "'";
                    switch (count($aParametros)) {
                        case 2:
                            $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[1] . "'/>";
                            break;
                        case 3:
                            $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[2] . "'/>";
                            break;
                        default:
                            $cTabla .= "  />";
                            break;
                    }
                    break;
                case "fecha":
                    $cTabla .= sprintf("<input type='text' id='campo_{$nCont}'  value='%s' name='%s' size='8'  onclick=\"mostrarCalendario('campo_{$nCont}','1','2010')\">", $lerroa[$fila["campo"]], $fila["campo"]) . "<div  id='calendario'  style='visibility:hidden;position:relative;'  class='arrastrable' ></div>";
                    break;
                default:
                    $cTabla .= "<input type='text' id='campo_{$nCont}'  value='" . $lerroa[$fila["campo"]] . "' name='" . $fila["campo"] . "'/>";
                    break;
            }
            if ($generaTDTR) {
                // dibujar la información adicional si procede
                if ($fila["adicional"] and $cTipo != "imagen" and $cTipo != "irudia") {
                    $cTabla .= "<span class='adicional'>" . $fila["adicional"] . "</span>";
                }
                $cTabla .= "</td></tr>\n";
            }
            $nCont++;
        }
        // del foreach
        // botones de Enviar y Volver.
        $cTabla .= "<tr><td class='botoiak' colspan='2'><input type='submit' value='{$cEnviar}' class='botoiak' />";
        if ($aItzuli) {
            $cTabla .= "<input type='reset' value ='" . t("Volver") . "' onclick=\"location.href='?c={$aItzuli[c]}&amp;a={$aItzuli[a]}'\" class='botoiak' />";
        }
        $cTabla .= "</td></tr>\n";
        $cResul .= $cHidden . "\n" . $cTabla;
    }
    $cResul .= "</table>\n";
    $cResul .= "</div></form>\n";
    foreach ($aAfter as $i => $c) {
        $cResul .= call_user_func($c, $lerroa);
    }
    return $cResul;
}
Esempio n. 3
0
function ddlib_editarCampo(&$dd, &$aDatos, $id)
{
    $aParametros = explode(" ", $dd["tipo"]);
    $tipo = strtolower($aParametros[0]);
    $campo = ddlib_obtenerCampo(&$dd, $aDatos);
    // atributos por defecto
    $defectos = array("adjunto" => array("clase" => "boton"), "infofuncion" => array("clase" => "campo-informativo"), "readonly" => array("clase" => "campo-informativo"), "info" => array("clase" => "campo-informativo"));
    $atributos = _ddlib_atributos($dd, $id, $defectos[$tipo]);
    switch ($tipo) {
        case "hidden":
        case "fijo":
        case "htmldespues":
        case "separadortabla":
        case "separador":
            return "";
        case "adjunto":
            if ($dd["maximo"]) {
                $maximo = min($dd["maximo"], ini_get("upload_max_filesize"));
            } else {
                $maximo = ini_get("upload_max_filesize");
            }
            $adicional = "<span class='tamanno-max'>(MAX: {$maximo} bytes)</span>";
            if ($campo) {
                $visualizar = "<a href='{$aParametros[1]}/{$campo}'>";
                $visualizar .= corta($campo, 50) . "</a><br>";
                $visualizar .= t("Cambiar fichero adjunto: ") . "<input type='file' {$atributos} file='{$maximo}'/>{$adicional}";
                $visualizar .= "<br>" . "Borrar adjunto: " . "<input type='checkbox' name='{$dd[campo]}_BORRAR' value='1' />";
            } else {
                $visualizar = t("Adjuntar nuevo archivo: ") . "<input type='file' {$atributos} />{$adicional}";
            }
            return $visualizar;
        case "imagen":
        case "irudia":
            if ($campo) {
                $visualizar = "<img src='./{$aParametros[1]}/{$campo}' class='irudia' /><br/>";
                $visualizar .= t("Cambiar  imagen: ") . "<input type='file' {$atributos} />\n</br/>";
                $visualizar .= t("Borrar imagen: ") . "<input type='checkbox' name='{$dd[campo]}_BORRAR' value='1' />";
            } else {
                $visualizar .= t("Sin imagen") . "<br/>";
                $visualizar .= t("Nueva  imagen: ") . "<input type='file' {$atributos} />";
            }
            return $visualizar;
            // listas
        // listas
        case "lista":
        case "listavalores":
        case "listasql":
        case "listafuncion":
            $visualizar = "<select {$atributos}>\n";
            //@TODO $visualizar .= _ddlib_option_adicionales ( $dd, $campo );
            switch ($tipo) {
                case "listasql":
                    $lista = mysql_mlistaClavesSQL(substr($dd["tipo"], 8));
                    break;
                case "lista":
                    $lista = $dd["lista"];
                    break;
                case "listavalores":
                    foreach ($dd["lista"] as $valor) {
                        $lista[$valor] = $valor;
                    }
                    break;
                case "listafuncion":
                    $lista = call_user_func($aParametros[1]);
            }
            switch ($dd["formatolista"]) {
                case "checkbox":
                    // @TODO no funciona CHECKBOX
                    foreach ($lista as $value => $opcion) {
                        $selected = $value == $campo ? " checked='checked' " : "";
                        $visualizar .= "<input {$atributos} type='checkbox' value='{$value}'{$selected}/>{$opcion}\n";
                    }
                case "radio":
                    // @TODO no funciona RADIO
                    foreach ($lista as $value => $opcion) {
                        $selected = $value == $campo ? " checked='checked' " : "";
                        $visualizar .= "<input {$atributo} type='radio' value='{$value}'{$selected}/>{$opcion}\n";
                    }
                default:
                    $visualizar = "<select {$atributos}>\n" . _ddlib_option_adicionales($dd, $campo);
                    foreach ($lista as $value => $opcion) {
                        $selected = $value == $campo ? " selected='selected' " : "";
                        $visualizar .= "<option value='{$value}'{$selected}>{$opcion}</option>\n";
                    }
                    $visualizar .= "</select>\n";
            }
            return $visualizar;
        case "checkbox":
            $checked = $campo ? " checked='checked' " : "";
            return "<input type='checkbox' {$atributos} {$checked} value='1' />";
        case "checkboxes":
            if (isset($dd["campos"]) && isset($dd["etiquetas"])) {
                $nCont = 1;
                foreach ($dd["campos"] as $tcampo => $tipo) {
                    $atributos = $aDatos[$tcampo] ? " checked='checked' " : "";
                    $atributos .= " name='{$tcampo}' id='{$id}-{$nCont}' {$dd[atributos]} value='1'";
                    $cRet .= "<input type='checkbox' {$atributos}> ";
                    $cRet .= "<label for='{$id}-{$nCont}'>" . $dd["etiquetas"][$tcampo] . "</label> \n";
                    $nCont++;
                }
                return $cRet;
            }
            return "";
            // funciones informativas
        // funciones informativas
        case "infofijo":
        case "infofuncion":
            $campo = $tipo == "infofijo" ? substr($dd["tipo"], 9) : call_user_func($aParametros[1], $aDatos);
        case "readonly":
        case "info":
            return "<input type='text' {$atributos} value='{$campo}' disabled='disabled' >";
            break;
        case "htmlfijo":
            return substr($dd["tipo"], 9);
        case "html":
        case "htmlfuncion":
            return call_user_func($aParametros[1], $aDatos);
            // contraseña
        // contraseña
        case "nuevopassword":
        case "verificapassword":
            $size = $aParametros[1] or $size = 40;
            $max = $aParametros[2] or $max = $size;
            return "<input type='password' value='' {$atributos} size='{$size}' maxlength='{$max}'>";
            // textos y cadenas
        // textos y cadenas
        case "texto":
            $rows = $aParametros[2] or $rows = 8;
            $cols = $aParametros[1] or $cols = 40;
            return "<textarea {$atributos} rows='{$rows}' cols='{$cols}'>{$campo}</textarea>";
        case "cadena":
            $size = $aParametros[1] or $size = 40;
            $max = $aParametros[2] or $max = $size;
            return "<input type='text' {$atributos} value='{$campo}' size='{$size}' maxlenght='{$max}' />";
            // los campos fecha se generan mediante el atributo.
        // los campos fecha se generan mediante el atributo.
        default:
            return "<input type='text' {$atributos} value='{$campo}'/>";
    }
    return $visualizar;
}