00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00026
00027 #include "QTextStream"
00028 #include <QDir>
00029
00030 #include <sys/types.h>
00031 #include <sys/stat.h>
00032 #include <fcntl.h>
00033 #ifndef WIN32
00034 #include <unistd.h>
00035 #endif
00036
00037 #include "configuracion.h"
00038 #include "funcaux.h"
00039
00040
00041 #include "abreempresaview.h"
00042
00043
00046 configuracion *confpr;
00047
00066
00067
00069
00072 configuracion::configuracion(QString nombreprograma) {
00073
00074
00076 #ifdef WIN32
00077 m_dirGlobalConf = "C:/bulmages/";
00078 #else
00079 m_dirGlobalConf = "/etc/bulmages/";
00080 #endif
00081 QString mensaje;
00082 QFile genericGlobalConfFile;
00083 QFile programGlobalConfFile;
00084 QFile genericLocalConfFile;
00085 QFile programLocalConfFile;
00086 QDir dirGlobalConf(m_dirGlobalConf);
00087 QString dirusuario = getenv("HOME");
00088 m_dirLocalConf = dirusuario + "/.bulmages/";
00089 m_genericGlobalConfFile = "bulmages.conf";
00090 m_programGlobalConfFile = nombreprograma + ".conf";
00091 m_genericLocalConfFile = m_genericGlobalConfFile;
00092 m_programLocalConfFile = m_programGlobalConfFile;
00093
00096 if (!dirGlobalConf.exists()) {
00097 mensaje = "--> ERROR: El directorio '" + m_dirGlobalConf + "' no existe. Debe crearlo. <--\n";
00098 fprintf(stderr, mensaje.toAscii().constData());
00099 exit(-1);
00100 } else {
00101 if (!genericGlobalConfFile.exists(m_dirGlobalConf + m_genericGlobalConfFile)) {
00102 mensaje = "--> ERROR: El archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "' no existe. Debe crearlo. <--\n";
00103 fprintf(stderr, mensaje.toAscii().constData());
00104 exit(-1);
00105 } else {
00107 mensaje = "--> El archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "' existe. Se va a leer.<--\n";
00108 fprintf(stderr, mensaje.toAscii().constData());
00109 leeconfig(m_dirGlobalConf + m_genericGlobalConfFile);
00110 }
00111 }
00112
00114 if (!programGlobalConfFile.exists(m_dirGlobalConf + m_programGlobalConfFile)) {
00115 mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' no existe. <--\n";
00116 fprintf(stderr, mensaje.toAscii().constData());
00117 } else {
00119 mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' existe. Se va a leer.<--\n";
00120 fprintf(stderr, mensaje.toAscii().constData());
00121 leeconfig(m_dirGlobalConf + m_programGlobalConfFile);
00122 }
00123
00126 if (!dirGlobalConf.exists(m_dirLocalConf)) {
00127 if (dirGlobalConf.mkdir(m_dirLocalConf) == TRUE) {
00128 mensaje = "--> Se ha creado el directorio '" + m_dirLocalConf + "'. <--\n";
00129 fprintf(stderr, mensaje.toAscii().constData());
00130 } else {
00131 mensaje = "--> ERROR: No se ha podido crear el directorio '" + m_dirLocalConf + "'. <--\n";
00132 fprintf(stderr, mensaje.toAscii().constData());
00133 exit(-1);
00134 }
00135 }
00136
00137 if (!genericLocalConfFile.exists(m_dirLocalConf + m_genericLocalConfFile)) {
00138 mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' no existe. <--\n";
00139 fprintf(stderr, mensaje.toAscii().constData());
00140 } else {
00142 mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' existe. Se va a leer.<--\n";
00143 fprintf(stderr, mensaje.toAscii().constData());
00144 leeconfig(m_dirLocalConf + m_genericLocalConfFile);
00145 }
00146
00147 if (!programLocalConfFile.exists(m_dirLocalConf + m_programLocalConfFile)) {
00148 mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' no existe. <--\n";
00149 fprintf(stderr, mensaje.toAscii().constData());
00150 } else {
00152 mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' existe. Se va a leer.<--\n";
00153 fprintf(stderr, mensaje.toAscii().constData());
00154 leeconfig(m_dirLocalConf + m_programLocalConfFile);
00155 }
00156
00157 setValor(CONF_DIR_USER, m_dirLocalConf);
00158 setValor(CONF_PRIVILEGIOS_USUARIO, "1");
00159 setValor(CONF_LOGIN_USER, "");
00160 setValor(CONF_PASSWORD_USER, "");
00161
00162
00163 }
00164
00165
00167
00169 configuracion::~configuracion() {
00170
00171
00172 }
00173
00174
00179
00183 QString configuracion::nombre(int i) {
00184
00185 if (i == CONF_BG_APUNTES)
00186 return "CONF_BG_APUNTES";
00187 if (i == CONF_FG_APUNTES)
00188 return "CONF_FG_APUNTES";
00189 if (i == CONF_BG_APUNTESA)
00190 return "CONF_BG_APUNTESA";
00191 if (i == CONF_FG_APUNTESA)
00192 return "CONF_FG_APUNTESA";
00193 if (i == CONF_FONTSIZE_APUNTES)
00194 return "CONF_FONTSIZE_APUNTES";
00195 if (i == CONF_FONTFAMILY_APUNTES)
00196 return "CONF_FONTFAMILY_APUNTES";
00197 if (i == CONF_BG_DIARIO)
00198 return "CONF_BG_DIARIO";
00199 if (i == CONF_BG_ALT_DIARIO)
00200 return "CONF_BG_ALT_DIARIO";
00201 if (i == CONF_FG_DIARIO1)
00202 return "CONF_FG_DIARIO1";
00203 if (i == CONF_FG_DIARIO2)
00204 return "CONF_FG_DIARIO2";
00205 if (i == CONF_FONTFAMILY_DIARIO)
00206 return "CONF_FONTFAMILY_DIARIO";
00207 if (i == CONF_FONTSIZE_DIARIO)
00208 return "CONF_FONTSIZE_DIARIO";
00209 if (i == CONF_CONTRAPARTIDA_DIARIO)
00210 return "CONF_CONTRAPARTIDA_DIARIO";
00211 if (i == CONF_CANAL_DIARIO)
00212 return "CONF_CANAL_DIARIO";
00213 if (i == CONF_CCOSTE_DIARIO)
00214 return "CONF_CCOSTE_DIARIO";
00215 if (i == CONF_BG_EXTRACTO)
00216 return "CONF_BG_EXTRACTO";
00217 if (i == CONF_BG_BALANCE)
00218 return "CONF_BG_BALANCE";
00219 if (i == CONF_BG_BALANCETREE)
00220 return "CONF_BG_BALANCETREE";
00221 if (i == CONF_CONTRAPARTIDA_EXTRACTO)
00222 return "CONF_CONTRAPARTIDA_EXTRACTO";
00223 if (i == CONF_CANAL_EXTRACTO)
00224 return "CONF_CANAL_EXTRACTO";
00225 if (i == CONF_CCOSTE_EXTRACTO)
00226 return "CONF_CCOSTE_EXTRACTO";
00227 if (i == CONF_CONTRAPARTIDA_APUNTES)
00228 return "CONF_CONTRAPARTIDA_APUNTES";
00229 if (i == CONF_CANAL_APUNTES)
00230 return "CONF_CANAL_APUNTES";
00231 if (i == CONF_CCOSTE_APUNTES)
00232 return "CONF_CCOSTE_APUNTES";
00233 if (i == CONF_METABASE)
00234 return "CONF_METABASE";
00235 if (i == CONF_SERVIDOR)
00236 return "CONF_SERVIDOR";
00237 if (i == CONF_PUERTO)
00238 return "CONF_PUERTO";
00239 if (i == CONF_FLIP)
00240 return "CONF_FLIP";
00241 if (i == CONF_PYTHON)
00242 return "CONF_PYTHON";
00243 if (i == CONF_DIR_TMP)
00244 return "CONF_DIR_TMP";
00245 if (i == CONF_PDF)
00246 return "CONF_PDF";
00247 if (i == CONF_NAVEGADOR)
00248 return "CONF_NAVEGADOR";
00249 if (i == CONF_EDITOR)
00250 return "CONF_EDITOR";
00251 if (i == CONF_SPLASH)
00252 return "CONF_SPLASH";
00253 if (i == CONF_SPLASH_BULMACONT)
00254 return "CONF_SPLASH_BULMACONT";
00255 if (i == CONF_SPLASH_BULMAFACT)
00256 return "CONF_SPLASH_BULMAFACT";
00257 if (i == CONF_SPLASH_BULMATPV)
00258 return "CONF_SPLASH_BULMATPV";
00259 if (i == CONF_BACKGROUND)
00260 return "CONF_BACKGROUND";
00261 if (i == CONF_EJECUTABLES)
00262 return "CONF_EJECUTABLES";
00263 if (i == CONF_PLANTILLA)
00264 return "CONF_PLANTILLA";
00265 if (i == CONF_TRADUCCION)
00266 return "CONF_TRADUCCION";
00267 if (i == CONF_DIR_TRADUCCION)
00268 return "CONF_DIR_TRADUCCION";
00269 if (i == CONF_ARCHIVO_LOG)
00270 return "CONF_ARCHIVO_LOG";
00271 if (i == CONF_DIR_REPORTS)
00272 return "CONF_DIR_REPORTS";
00273 if (i == CONF_DIR_KUGAR)
00274 return "CONF_DIR_KUGAR";
00275 if (i == CONF_DIR_OPENREPORTS)
00276 return "CONF_DIR_OPENREPORTS";
00277 if (i == CONF_PLUGINS_BULMACONT)
00278 return "CONF_PLUGINS_BULMACONT";
00279 if (i == CONF_PLUGINS_BULMAFACT)
00280 return "CONF_PLUGINS_BULMAFACT";
00281 if (i == CONF_PLUGINS_BULMAGES)
00282 return "CONF_PLUGINS_BULMAGES";
00283 if (i == CONF_PLUGINS_BULMATPV)
00284 return "CONF_PLUGINS_BULMATPV";
00285 if (i == CONF_DIR_IMG_ARTICLES)
00286 return "CONF_DIR_IMG_ARTICLES";
00287 if (i == CONF_DIR_THUMB_ARTICLES)
00288 return "CONF_DIR_THUMB_ARTICLES";
00289 if (i == CONF_DIR_IMG_PERSONAL)
00290 return "CONF_DIR_IMG_PERSONAL";
00291 if (i == CONF_FONTFAMILY_BULMAGES)
00292 return "CONF_FONTFAMILY_BULMAGES";
00293 if (i == CONF_FONTSIZE_BULMAGES)
00294 return "CONF_FONTSIZE_BULMAGES";
00295 if (i == CONF_PROGDATA)
00296 return "CONF_PROGDATA";
00297 if (i == CONF_NUM_AUT_PRESUP)
00298 return "CONF_NUM_AUT_PRESUP";
00299 if (i == CONF_NUM_AUT_FACTURA)
00300 return "CONF_NUM_AUT_FACTURA";
00301 if (i == CONF_NUM_AUT_ALBARAN)
00302 return "CONF_NUM_AUT_ALBARAN";
00303 if (i == CONF_MOSTRAR_ALMACEN)
00304 return "CONF_MOSTRAR_ALMACEN";
00305 if (i == CONF_BG_LISTPRESUPUESTOS)
00306 return "CONF_BG_LISTPRESUPUESTOS";
00307 if (i == CONF_BG_LINPRESUPUESTOS)
00308 return "CONF_BG_LINPRESUPUESTOS";
00309 if (i == CONF_BG_DESCPRESUPUESTOS)
00310 return "CONF_BG_DESCPRESUPUESTOS";
00311 if (i == CONF_BG_LISTPEDIDOSCLIENTE)
00312 return "CONF_BG_LISTPEDIDOSCLIENTE";
00313 if (i == CONF_BG_LINPEDIDOSCLIENTE)
00314 return "CONF_BG_LINPEDIDOSCLIENTE";
00315 if (i == CONF_BG_DESCPEDIDOSCLIENTE)
00316 return "CONF_BG_DESCPEDIDOSCLIENTE";
00317 if (i == CONF_BG_LISTALBARANESCLIENTE)
00318 return "CONF_BG_LISTALBARANESCLIENTE";
00319 if (i == CONF_BG_LINALBARANESCLIENTE)
00320 return "CONF_BG_LINALBARANESCLIENTE";
00321 if (i == CONF_BG_DESCALBARANESCLIENTE)
00322 return "CONF_BG_DESCALBARANESCLIENTE";
00323 if (i == CONF_BG_LISTFACTURASCLIENTE)
00324 return "CONF_BG_LISTFACTURASCLIENTE";
00325 if (i == CONF_BG_LINFACTURASCLIENTE)
00326 return "CONF_BG_LINFACTURASCLIENTE";
00327 if (i == CONF_BG_DESCFACTURASCLIENTE )
00328 return "CONF_BG_DESCFACTURASCLIENTE";
00329 if (i == CONF_BG_LISTARTICULOS)
00330 return "CONF_BG_LISTARTICULOS";
00331 if (i == CONF_DIR_CANUALES)
00332 return "CONF_DIR_CANUALES";
00333 if (i == CONF_TICKET_PRINTER_FILE)
00334 return "CONF_TICKET_PRINTER_FILE";
00335 if (i == CONF_DEBUG)
00336 return "CONF_DEBUG";
00337 if (i == CONF_ALERTAS_DB)
00338 return "CONF_ALERTAS_DB";
00339 if (i == CONF_IDCLIENTE_DEFECTO)
00340 return "CONF_IDCLIENTE_DEFECTO";
00341 if (i == CONF_IDALMACEN_DEFECTO)
00342 return "CONF_IDALMACEN_DEFECTO";
00343 if (i == CONF_IDARTICULO_DEFECTO)
00344 return "CONF_IDARTICULO_DEFECTO";
00345 return "";
00346
00347 }
00348
00349
00353
00355 void configuracion::saveconfig() {
00356
00357 QString dir1 = getenv("HOME");
00358 dir1 = dir1 + "/.bulmages/" + m_dirLocalConf;
00359
00360 QFile file(dir1);
00361 if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
00362 return;
00363
00364 QTextStream filestr(&file);
00365 for (int i = 0; i < 1000; i++) {
00366 if (nombre(i) != "") {
00367 filestr << nombre(i).toAscii().data();
00368 filestr << " ";
00369 filestr << valor(i).toAscii().data();
00370 filestr << endl;
00371 }
00372 }
00373 file.close();
00374
00375 }
00376
00377
00381
00385 bool configuracion::leeconfig(QString fich) {
00386
00387 QFile arch(fich);
00388 if (arch.open(QIODevice::ReadOnly)) {
00389 fprintf(stderr, "Leyendo configuracion\n");
00390 QTextStream in(&arch);
00391 while (!in.atEnd()) {
00392 QString cad = in.readLine();
00394 while (cad.endsWith("\\")) {
00395 cad = cad.left(cad.length() - 2) + in.readLine().trimmed();
00396 }
00397
00398 for (int i = 0; i < 1000; i++) {
00399 if (cad.startsWith(nombre(i)) && nombre(i) != "") {
00400 _depura("[" + nombre(i) + "]" + "--->" + cad, 0);
00401 cad = cad.right(cad.length() - nombre(i).length());
00402 cad = cad.trimmed();
00403 m_valores[i] = cad;
00404 }
00405 }
00406 }
00407 arch.close();
00408 fprintf(stderr, "FIN Leyendo configuracion\n");
00409 return TRUE;
00410 }
00411
00412 return FALSE;
00413 }
00414
00415
00417
00421 QString configuracion::valor(int i) {
00422
00423 if (m_valores.contains(i)) {
00424 return (m_valores[i]);
00425 }
00426 return "";
00427
00428 }
00429
00430
00432
00436 void configuracion::setValor(int i, QString valor) {
00437
00438 m_valores[i] = valor;
00439
00440 }
00441