void PluginBc_CuentasAnuales2ODS::balanceSituacionODS ( CAnuales tipus ) { BL_FUNC_DEBUG /// Se genera el Balance de Situacion en formato ODS (Hoja de calculo OpenOffice.org). /// BUG: Se necesita usar .toQString('.') porque sino los decimales no /// aparecen bien en OpenOffice. Creo que es un bug del script de conversion de .py a .ods QString archivosalida; bool error = false; switch ( tipus ) { case CAAASL: archivosalida = cuentaAnualAsociancionSinLucro (); break; case CAPGC07: archivosalida = cuentaAnualCAPGC07(); break; case CAPYMES08: archivosalida = cuentaAnualCAPYMES08(); break; case CAAPGC08: archivosalida = cuentaAnualCAAPGC08(); break; case CAPGC08: archivosalida = cuentaAnualCAPGC08(); break; default: blMsgError ( _ ( "ERROR: Funcion no implementada todavia." ) ); break; } QString archivod = g_confpr->value( CONF_DIR_USER ) + "canualesods.py"; QString cadena = "rm " + g_confpr->value( CONF_DIR_USER ) + "canualesods.ods"; system ( cadena.toLatin1() ); cadena = "rm " + archivod; system ( cadena.toLatin1() ); QFile file ( archivod ); if ( file.open ( QIODevice::WriteOnly ) ) { QTextStream stream ( &file ); stream.setCodec ( "UTF-8" ); stream << archivosalida.toLatin1(); file.close(); } else blMsgError ( _ ( "ERROR: No se ha podido crear el archivo" ) ); cadena = " cd " + g_confpr->value( CONF_DIR_USER ) + "; python " + archivod; system ( cadena.toLatin1() ); cadena = g_confpr->value( CONF_ODS ) + " " + g_confpr->value( CONF_DIR_USER ) + "canualesods.ods &"; system ( cadena.toLatin1() ); }
/** \param valor \return **/ QString BcPlanContableArbol::hojaActual ( QString valor ) { BL_FUNC_DEBUG QString resultado; if ( valor == "saldoant" ) resultado = hoja->saldoant.toQString ( '.' ); else if ( valor == "debe" ) resultado = hoja->debe.toQString ( '.' ); else if ( valor == "haber" ) resultado = hoja->haber.toQString ( '.' ); else if ( valor == "saldo" ) resultado = hoja->saldo.toQString ( '.' ); else if ( valor == "debeej" ) resultado = hoja->debeej.toQString ( '.' ); else if ( valor == "haberej" ) resultado = hoja->haberej.toQString ( '.' ); else if ( valor == "saldoej" ) resultado = hoja->saldoej.toQString ( '.' ); else if ( valor == "codigo" ) resultado = hoja->codigo; else if ( valor == "descripcion" ) resultado = hoja->descripcion; else if ( valor == "idcuenta" ) resultado.setNum ( hoja->idcuenta ); else { blMsgError(QString(_("No se ha encontrado el campo '$1' en la hoja del arbol.")).arg(valor)); BlDebug::blDebug ( Q_FUNC_INFO, 0, QString(_("No se ha encontrado el campo '%1' en la hoja del arbol.")).arg(valor) ); } // end if return resultado; }
/** \return **/ bool PluginBc_CuentasAnuales2ODS::formDatosBalance ( CAnuales tipus ) { BL_FUNC_DEBUG int resultado; datosView *dv = new datosView ( 0 ); dv->exec(); resultado = dv->result(); /// Accepted = 1 /// Rejected = 0 if ( resultado != 0 ) { /// Asigna valores ejercicioActual_fechaBalance = dv->mui_ejercicioActual_fechaBalance->text(); ejercicioAnterior_fechaBalance = dv->mui_ejercicioAnterior_fechaBalance->text(); } // end if delete dv; if ( ejercicioActual_fechaBalance.isEmpty() ) { blMsgError ( _ ( "ERROR: Debe introducir una fecha en el balance actual." ) ); resultado = 0; } else { if ( ejercicioAnterior_fechaBalance.isEmpty() ) { blMsgError ( _ ( "ERROR: Debe introducir una fecha en el balance anterior." ) ); resultado = 0; } } // end if /// Se pulso el boton 'cancelar' // if ( resultado == 0 ) { // return; // } // end if return resultado; }
void PluginBl_Report::elslot2( ) { BL_FUNC_DEBUG BlForm *ficha = new BlForm ( g_pluginbl_report_emp, 0 ); if ( !ficha->generateRML ( sender()->objectName() ) ) return; if (!g_confpr->value( CONF_TICKET_PRINTER_FILE).isEmpty() && g_confpr->value( CONF_TICKET_PRINTER_FILE) != "/dev/null") { QString comando = "cat " + g_confpr->value(CONF_DIR_USER) + sender()->objectName() + " > " + g_confpr->value( CONF_TICKET_PRINTER_FILE ); system ( comando.toLatin1().data() ); } else if (!g_confpr->value( CONF_CASHBOX_FILE).isEmpty() && g_confpr->value( CONF_CASHBOX_FILE) != "/dev/null") { QString comando = "cat " + g_confpr->value(CONF_DIR_USER) + sender()->objectName() + " > " + g_confpr->value( CONF_CASHBOX_FILE ); system ( comando.toLatin1().data() ); } else if (!g_confpr->value(CONF_CUPS_TICKET_PRINTER).isEmpty() && g_confpr->value(CONF_CUPS_TICKET_PRINTER).toLower() != "none") { blRawPrint( sender()->objectName(), true, g_confpr->value( CONF_TICKET_PRINTER_FILE)); } else if (g_confpr->value(CONF_CUPS_DEFAULT_PRINTER).isEmpty() || g_confpr->value(CONF_CUPS_DEFAULT_PRINTER).toLower() == "none") { blMsgError(_("Debe establecer el parametro 'CONF_CUPS_DEFAULT_PRINTER' o 'CONF_CASHBOX_FILE' para abrir el cajon.")); } else { blRawPrint( sender()->objectName()); } // end if }
void PluginBc_CuentasAnuales2ODS::mensajeAdvertenciaPGC ( CAnuales tipus ) { //Cuentas Anuales Abreviadas Asociacion Sin Lucro CAAASL //Cuentas Anuales Plan General Contable hasta 2007 CAPGC07 //Cuentas Anuales PYMES 2008 CAPYMES08 //Cuentas Anuales Plan General Contable 2008 CAPGC08 //Cuentas Anuales Abreviadas Plan General Contable 2008 CAAPGC08 QString pgc; switch ( tipus ) { case CAAASL: pgc = _ ( "Cuentas Anuales Abreviadas para Asociacion Sin Lucro. " ); break; case CAPGC07: pgc = _ ( "Cuentas Anuales del Plan General Contable hasta 2007. " ); break; case CAPYMES08: pgc = _ ( "Cuentas Anuales para PYMES 2008. " ) ; break; case CAAPGC08: pgc = _ ( "Cuentas Anuales Abreviadas del Plan General Contable 2008. " ); break; case CAPGC08: pgc = _ ( "Cuentas Anuales del Plan General Contable 2008. " ); break; default: blMsgError ( _ ( "ERROR: Funcion no implementada todavia." ) ); break; } blMsgWarning ( _ ( "Advertencia: ha escojido las " ) + pgc + _ ( "El resultado solo sera correcto si coincide con el plan contable de su empresa." ) ); }
/** \param nombreprograma **/ BlConfiguration::BlConfiguration ( QString nombreprograma ) { /// Definimos los directorios donde buscar primero. m_dirGlobalConf = CONFIG_DIR_CONFIG; QString mensaje; QFile genericGlobalConfFile; QFile programGlobalConfFile; QFile genericLocalConfFile; QFile programLocalConfFile; QDir dirGlobalConf ( m_dirGlobalConf ); #ifndef Q_OS_WIN32 QString userdir = getenv ( "HOME" ); #else QString userdir = getenv ( "UserProfile" ); userdir.replace('\\', '/'); // Para no tener barras de los dos tipos mezclados en la misma ruta, usaremos las normales siempre #endif m_dirLocalConf = userdir + "/.bulmages/"; m_genericGlobalConfFile = "bulmages.conf"; m_programGlobalConfFile = nombreprograma + ".conf"; m_genericLocalConfFile = m_genericGlobalConfFile; m_programLocalConfFile = m_programGlobalConfFile; /// Establecemos los valores por defecto, que luego la propia configuracion puede sobreescribir. setValue ( CONF_DIR_USER, m_dirLocalConf ); setValue ( CONF_PRIVILEGIOS_USUARIO, "1" ); setValue ( CONF_LOGIN_USER, "" ); setValue ( CONF_PASSWORD_USER, "" ); /// Comprobamos la existencia de los directorios y archivos de configuracion. /// Directorios y archivos obligatorios (sale si no existe): if ( !dirGlobalConf.exists() ) { blMsgError("El directorio '" + m_dirGlobalConf + "' no existe. Debe crearlo"); exit ( -1 ); } else { if ( !genericGlobalConfFile.exists ( m_dirGlobalConf + m_genericGlobalConfFile ) ) { blMsgError("El archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "' no existe. Debe crearlo."); exit ( -1 ); } else { /// 1) Leemos la configuracion del archivo generico global. #ifdef CONFIG_DEBUG mensaje = "--> Leyendo el archivo '" + m_dirGlobalConf + m_genericGlobalConfFile + "'<--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif readConfig ( m_dirGlobalConf + m_genericGlobalConfFile ); }// end if } // end if /// Directorios y archivos opcionales: if ( !programGlobalConfFile.exists ( m_dirGlobalConf + m_programGlobalConfFile ) ) { #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' no existe. <--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif } else { /// 2) Leemos la configuracion del archivo especifico global. #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirGlobalConf + m_programGlobalConfFile + "' existe. Se va a leer.<--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif readConfig ( m_dirGlobalConf + m_programGlobalConfFile ); }// end if /// Comprobamos si el usuario tiene creado el directorio de configuracion en su carpeta de usuario directorio /// de configuracion. if ( !dirGlobalConf.exists ( m_dirLocalConf ) ) { if ( dirGlobalConf.mkdir ( m_dirLocalConf ) == true ) { #ifdef CONFIG_DEBUG mensaje = "--> Se ha creado el directorio '" + m_dirLocalConf + "'. <--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif } else { blMsgError( "No se ha podido crear el directorio '" + m_dirLocalConf + "'."); exit ( -1 ); }// end if } // end if if ( !genericLocalConfFile.exists ( m_dirLocalConf + m_genericLocalConfFile ) ) { #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' no existe. <--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif } else { /// 3) Leemos la configuracion del archivo generico local. #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirLocalConf + m_genericLocalConfFile + "' existe. Se va a leer.<--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif readConfig ( m_dirLocalConf + m_genericLocalConfFile ); }// end if if ( !programLocalConfFile.exists ( m_dirLocalConf + m_programLocalConfFile ) ) { #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' no existe. <--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif } else { /// 4) Leemos la configuracion del archivo especifico local. #ifdef CONFIG_DEBUG mensaje = "--> El archivo '" + m_dirLocalConf + m_programLocalConfFile + "' existe. Se va a leer.<--\n"; fprintf ( stderr, "%s", mensaje.toLatin1().constData() ); #endif readConfig ( m_dirLocalConf + m_programLocalConfFile ); }// end if }