int BtTicket_insertarArticuloCodigoNL_Post ( BtTicket *tick )
{
    BL_FUNC_DEBUG
    int valor = -1;
    static int semaforo = 0;
    if ( semaforo == 0 ) {
        valor = 0;
        semaforo = 1;
        QString query = "SELECT * FROM tc_articulo_alias LEFT JOIN tc_talla AS t1 ON tc_articulo_alias.idtc_talla = t1.idtc_talla LEFT JOIN tc_color AS t2 ON tc_articulo_alias.idtc_color = t2.idtc_color WHERE aliastc_articulo_tallacolor = '" + ( ( BtCompany * ) tick->mainCompany() )->valorBtInput() + "'";
        BlDbRecordSet *cur = tick->mainCompany() ->loadQuery ( query );
        if ( !cur->eof() ) {
            BlDbRecord * rec = tick->insertarArticulo ( cur->value( "idarticulo" ), BlFixed ( "1" ), true );
            rec->setDbValue ( "idtc_talla", cur->value( "idtc_talla" ) );
            rec->setDbValue ( "idtc_color", cur->value( "idtc_color" ) );
            rec->setDbValue ( "nomtc_talla", cur->value( "nomtc_talla" ) );
            rec->setDbValue ( "nomtc_color", cur->value( "nomtc_color" ) );
        } else {
	    valor = -1;
	} // end if
        delete cur;
        tick->pintar();
        semaforo = 0;
    } // end if
    
    return valor;
}
Trabajadores::Trabajadores ( BlMainCompany *emp, QWidget *parent, bool deleteOnClose ) : QDialog ( parent ), BlMainCompanyPointer ( emp )
{
    setupUi ( this );

    connect (this, SIGNAL(rejected()), this, SLOT(closeDialog()) );
    
    mui_password->setFocus(Qt::OtherFocusReason);
    installEventFilter(this);
    
    m_validUser = false;
    m_deleteOnClose = deleteOnClose;
    
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT * FROM trabajador" );
    while ( !cur->eof() ) {
        QPushButton * toolbutton = new QPushButton ( mui_frame );
        toolbutton->setText ( cur->value( "nomtrabajador" ) + " " + cur->value( "apellidostrabajador" ) );
        toolbutton->setMaximumHeight(200);

        QVBoxLayout *m_hboxLayout1 = mui_frame->findChild<QVBoxLayout *> ( "hboxLayout1" );
        if ( !m_hboxLayout1 ) {
            m_hboxLayout1 = new QVBoxLayout ( mui_frame );
            m_hboxLayout1->setSpacing ( 0 );
            m_hboxLayout1->setMargin ( 0 );
            m_hboxLayout1->setObjectName ( QString::fromUtf8 ( "hboxLayout1" ) );
        } // end if
        m_hboxLayout1->addWidget ( toolbutton );
        connect ( toolbutton, SIGNAL ( clicked() ), this, SLOT ( trabajadorClicked() ) );
        cur->nextRecord();
    } // end while
    
    delete cur;
}
Exemple #3
0
QString ServerLight::categoryArticleXML()
{
    QString textoXML = "";
    QString query;

    BlDbRecordSet *familias;
    BlDbRecordSet *articulos;
    
    query = "SELECT idfamilia, codigocompletofamilia, nombrefamilia FROM familia ORDER BY nombrefamilia";
    familias = mainCompany()->loadQuery(query);

    while (!familias->eof()) {
	textoXML += "<CATEGORIA>\\\n";

	  textoXML += "<CODCATEGORIA>";
	  textoXML += familias->value("codigocompletofamilia");
	  textoXML += "</CODCATEGORIA>\\\n";

	  textoXML += "<NOMCATEGORIA>";
	  textoXML += familias->value("nombrefamilia");
	  textoXML += "</NOMCATEGORIA>\\\n";

	      query = "SELECT idarticulo, nomarticulo, pvpivaincarticulo FROM articulo WHERE idfamilia = " + familias->value("idfamilia") + "ORDER BY nomarticulo";
	      articulos = mainCompany()->loadQuery(query);
	      
	      if (articulos->numregistros() > 0) {
		
		while (!articulos->eof()) {
		  
		      textoXML += "<ARTICULO>\\\n";

			  textoXML += "<IDARTICULO>";
			  textoXML += articulos->value("idarticulo");
			  textoXML += "</IDARTICULO>\\\n";

			  textoXML += "<NOMARTICULO>";
			  textoXML += articulos->value("nomarticulo");
			  textoXML += "</NOMARTICULO>\\\n";

			  textoXML += "<PVPARTICULO>";
			  textoXML += articulos->value("pvpivaincarticulo");
			  textoXML += "</PVPARTICULO>\\\n";
		      
		      textoXML += "</ARTICULO>\\\n";
		      
		      articulos->nextRecord();
		  
		} // end while
		
	      } // end if

	textoXML += "</CATEGORIA>\\\n\\\n\\\n";
	
	familias->nextRecord();

    } // end while
    
    return textoXML;
}
void BcBloqueaFechaView::on_mui_crear_clicked()
{
    BL_FUNC_DEBUG
    /// Tomamos el anyo pasado como referencia.
    int ejer = QDate::currentDate().year() - 1;

    /// Miramos si ya hay ejercicios introducidos y si es asi cogemos el siguiente como referencia.
    QString consultabd = "SELECT max(ejercicio) AS ej FROM ejercicios";
    BlDbRecordSet *cur = mainCompany()->loadQuery ( consultabd );
    if ( cur ) {
        if ( !cur->eof() ) {
            if ( cur->value( "ej" ).toInt() != 0 )
                ejer = cur->value( "ej" ).toInt();
        } // end if
        delete cur;
    } // end if
    ejer++;

    /// Presentamos el dialogo preguntado que ejercicio crear.
    bool ok = false;
    ejer = QInputDialog::getInt ( this, _ ( "Introduzca Ejercicio a Crear" ),
                                      _ ( "Ponga el anyo:" ), ejer, 0, 10000, 1, &ok );

    /// Comprobamos que el ejercicio introducido sea valido.
    if ( !ok ) return;
    if ( ejer < 1000 ) {
        blMsgInfo ( "Ejercicio invalido" );
        return;
    } // end if
    QString query = "SELECT * FROM ejercicios WHERE ejercicio = " + QString::number ( ejer );
    cur = mainCompany()->loadQuery ( query );
    if ( cur ) {
        if ( cur->numregistros() > 0 ) {
            delete cur;
            blMsgInfo ( _ ( "Ejercicios ya contemplado" ) );
            return;
        } // end if
    } // end if


    /// Creamos el ejercicio.
    for ( int x = 0; x <= 12; x++ ) {
        try {
            QString consultabd = "INSERT INTO ejercicios (ejercicio, periodo, bloqueado) VALUES('" + QString::number ( ejer ) + "', '" + QString::number ( x ) + "', 'f')";
            mainCompany()->begin();
            mainCompany() ->runQuery ( consultabd );
            mainCompany()->commit();
        } catch ( ... ) {
            blMsgInfo ( "Error con la base de datos" );
            mainCompany()->rollback();
        } // end try
    } // end for

    /// Presentamos
    inicializa();

    
}
void TicketQToolButton::click()
{
    BL_FUNC_DEBUG
    QString txt = "";

    /// Copiamos el archivo.
    QString archivo = g_confpr->value( CONF_DIR_OPENREPORTS ) + "etiquetas.rml";
    QString archivod = g_confpr->value( CONF_DIR_USER ) + "etiquetas.rml";
    blCopyFile(archivo,archivod);

    BlFile file;
    file.setFileName ( archivod );
    file.open ( QIODevice::ReadOnly );
    QTextStream stream ( &file );
    QString buff = stream.readAll();
    file.close();
    QString fitxersortidatxt = "";


    /// Hacemos el texto de las etiquetas.
    m_companyact = m_albaranProveedorView->mainCompany();

    QString query = "SELECT * , ceil(cantlalbaranp) AS cantidad FROM lalbaranp NATURAL LEFT JOIN articulo WHERE idalbaranp = " + m_albaranProveedorView->dbValue ( "idalbaranp" );
    BlDbRecordSet *cur = m_companyact->loadQuery ( query );
    while ( !cur->eof() ) {
        int i = 0;
        while ( i < cur->value( "cantidad" ).toInt() ) {
            fitxersortidatxt += "<blockTable><tr><td>";
            fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\">" + cur->value( "nomarticulo" ) + "</font></para>\n";
            fitxersortidatxt += "<barCode code=\"code128\" height=\"0.60cm\">" + cur->value( "codigocompletoarticulo" ) + "</barCode>\n";
            fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\">" + cur->value( "codigocompletoarticulo" ) + " - (" + m_albaranProveedorView->dbValue ( "fechaalbaranp" ).left ( 10 ) + ")</font></para>\n";
//     if (cur->numcampo("lotelalbaranp") != -1)
//             fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\"> Lote: " + cur->value("lotelalbaranp") + "</font></para>\n";
            fitxersortidatxt += "</td></tr></blockTable>";
            fitxersortidatxt += "<spacer length=\"0.5cm\"/>\n";
            i++;
        } // end while
        cur->nextRecord();
    } // end while
    delete cur;


    buff.replace ( "[story]", fitxersortidatxt );

    if ( file.open ( QIODevice::WriteOnly ) ) {
        QTextStream stream ( &file );
        stream << buff;
        file.close();
    } // end if
    blCreateAndLoadPDF ( "etiquetas" );



    
}
/**
\param val
**/
void BlSearchWidget::setFieldValue ( QString campo, QString val )
{
    BL_FUNC_DEBUG
    BlDebug::blDebug ( "BlSearchWidget::setcifprofesor", 0, val );

    QString SQLQuery("");
    SQLQuery = "SELECT * FROM " + m_tabla + " WHERE " + campo + " = $1";
    BlDbRecordSet *cur = mainCompany() ->load ( SQLQuery, val );

    if ( !cur->eof() ) {
        /// Inicializamos los valores de vuelta a ""
        QMapIterator<QString, QString> i ( m_valores );
        while ( i.hasNext() ) {
            i.next();
            m_valores.insert ( i.key(), cur->value( i.key() ) );
        } // end while
    } else {
        /// Inicializamos los valores de vuelta a ""
        QMapIterator<QString, QString> i ( m_valores );
        while ( i.hasNext() ) {
            i.next();
            m_valores.insert ( i.key(), "" );
        } // end while
    } // end if
    delete cur;
    pinta();
    
}
Exemple #7
0
void FacturaView::on_mui_veralbaranes_clicked()
{
    BL_FUNC_DEBUG
    AlbaranClienteView *bud = NULL;
    BlDbRecordSet *cur = NULL;
    try {
        QString SQLQuery = "SELECT * FROM albaran WHERE refalbaran = '" + dbValue ( "reffactura" ) + "'";
        cur = mainCompany() ->loadQuery ( SQLQuery );
        if ( !cur->eof() ) {
            while ( !cur->eof() ) {
	      
		/// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
		int resur = g_plugins->run ( "SNewAlbaranClienteView", mainCompany() );
		if ( !resur ) {
		    blMsgInfo ( _ ( "No se pudo crear instancia de albaran" ) );
		    return;
		} // end if
                bud = ( AlbaranClienteView * ) g_plugParams;
                mainCompany() ->m_pWorkspace->addSubWindow ( bud );
                bud->load ( cur->value( "idalbaran" ) );
                bud->show();
                cur->nextRecord();
            } // end while
        } else {
            blMsgInfo ( _ ( "No hay albaranes con esta referencia" ), this );
        } // end if
        delete cur;
    } catch ( ... ) {
        blMsgInfo ( _ ( "Error inesperado" ), this );
        if ( cur ) delete cur;
        if ( bud ) delete bud;
    } // end try
    
}
void BcAsientoInteligenteView::inicializaVariables()
{
    BL_FUNC_DEBUG
    QString subcadena;
    QString buffer;
    QDate fecha;
    fecha = QDate::currentDate();
    buffer.sprintf ( "%d/%d/%d", fecha.day(), fecha.month(), fecha.year() );
    subcadena = buffer;
    variablespredefinidas[VAR_PRED_FECHAACTUAL][0] = "$fechaactual$";
    variablespredefinidas[VAR_PRED_FECHAACTUAL][1] = subcadena;
    buffer.sprintf ( "SELECT * FROM asiento WHERE idasiento = %d", numasiento );
    mainCompany() ->begin();
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( buffer, "cargaasiento" );
    mainCompany() ->commit();
    if ( !cur->eof() ) {
        variablespredefinidas[VAR_PRED_FECHAASIENTO][0] = "$fechaasiento$";
        variablespredefinidas[VAR_PRED_FECHAASIENTO][1] = cur->value( "fecha" );
    } else {
        variablespredefinidas[VAR_PRED_FECHAASIENTO][0] = "$fechaasiento$";
        variablespredefinidas[VAR_PRED_FECHAASIENTO][1] = "";
    } // end if
    delete cur;
    indvariablespredefinidas = 2;
    
}
/**
\param l
\return
**/
int BfBuscarReferencia_on_mui_rferencia_returnPressed ( BfBuscarReferencia *l )
{
    BL_FUNC_DEBUG

    /// Buscamos la ficha que corresponde al widget.
    QList<BfForm *> lista = g_main->findChildren<BfForm *>();

    BfForm *ficha = ( BfForm * ) l->parentWidget();

    while ( ficha && !lista.contains ( ficha ) ) {
        ficha = ( BfForm * ) ficha->parentWidget();
    } // end while

    if ( ficha ) {
        QString query = "SELECT * FROM " + ficha->tableName() + " WHERE ref" + ficha->tableName() + " = '" + l->text() + "'";
        BlDebug::blDebug ( Q_FUNC_INFO, 0, QString(_("Consulta: '%1'.")).arg(query) );
        BlDbRecordSet *cur = l->mainCompany()->loadQuery ( query );
        if ( !cur->eof() ) {
            ficha->load ( cur->value( "id" + ficha->tableName() ) );
        } // end if
        delete cur;
    } // end if

    
    return 0;
}
Exemple #10
0
/**
\param emp
\param parent
**/
BalanceView::BalanceView ( BcCompany *emp, QWidget *parent, int )
    : BcForm ( emp, parent )
{
    BL_FUNC_DEBUG
    setupUi ( this );

    setAttribute(Qt::WA_DeleteOnClose);
    setTitleName ( _ ( "Balance" ) );
    /// Establezco cual es la tabla en la que basarse para el sistema de permisos.
    setDbTableName ( "asiento" );

    /// Para imprimir usaremos la plantilla balance
    setTemplateName("balance");

    mui_cuentaInicial->setMainCompany ( emp );
    /// Arreglamos la cuenta.
    mui_cuentaInicial->setLabel ( _ ( "Cuenta inicial:" ) );
    mui_cuentaInicial->setTableName ( "cuenta" );
    mui_cuentaInicial->setFieldId("idcuenta");
    mui_cuentaInicial->m_valores["descripcion"] = "";
    mui_cuentaInicial->m_valores["codigo"] = "";
    mui_cuentaInicial->hideLabel();

    mui_cuentaFinal->setMainCompany ( emp );
    /// Arreglamos la cuenta.
    mui_cuentaFinal->setLabel ( _ ( "Cuenta final:" ) );
    mui_cuentaFinal->setTableName ( "cuenta" );
    mui_cuentaFinal->setFieldId("idcuenta");
    mui_cuentaFinal->m_valores["descripcion"] = "";
    mui_cuentaFinal->m_valores["codigo"] = "";
    mui_cuentaFinal->hideLabel();

    QString query = "SELECT DISTINCT length(codigo) AS orden FROM cuenta ORDER BY orden DESC";
    BlDbRecordSet *niveles = NULL;
    /// Primero, averiguaremos la cantidad de ramas iniciales que nacen de la ra&iacute;z
    /// (tantas como n&uacute;mero de cuentas de nivel 2) y las vamos creando.
    niveles = mainCompany() ->loadQuery ( query );

    while ( !niveles->eof() ) {
        mui_nivel->insertItem ( 0, niveles->value("orden") );
        niveles->nextRecord();
    } // end while
    delete niveles;

    /// Iniciamos los componentes de la fecha para que al principio aparezcan
    /// como el a&ntilde;o inicial.
    QString cadena;
    cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 1, 1, QDate::currentDate().year() );
    mui_fechaInicial->setText ( cadena );
    cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 31, 12, QDate::currentDate().year() );
    mui_fechaFinal->setText ( cadena );

    mainCompany() ->insertWindow ( windowTitle(), this );
    /// Llamamos a los scripts
    blScript(this);
}
int BtTicket_insertarArticuloNL_Post ( BtTicket *tick )
{
    BL_FUNC_DEBUG
    QString query = "SELECT * FROM tc_articulo_alias WHERE aliastc_articulo_tallacolor = '" + ( ( BtCompany * ) tick->mainCompany() )->valorBtInput() + "'";
    BlDbRecordSet *cur = tick->mainCompany() ->loadQuery ( query );
    if ( !cur->eof() ) {
        tick->insertarArticulo ( cur->value( "idarticulo" ), BlFixed ( "1" ) );
    } // end if
    delete cur;
    
    return 0;
}
/**
\returns
**/
void PedidosProveedorList::presentar()
{
    BL_FUNC_DEBUG
    mui_list->load ( "SELECT *, totalpedidoproveedor AS total, bimppedidoproveedor AS base, imppedidoproveedor AS impuestos FROM pedidoproveedor LEFT JOIN proveedor ON pedidoproveedor.idproveedor=proveedor.idproveedor LEFT JOIN almacen ON pedidoproveedor.idalmacen=almacen.idalmacen WHERE 1=1 " + generarFiltro() );
    /// Hacemos el calculo del total.
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT SUM(totalpedidoproveedor) AS total FROM pedidoproveedor LEFT JOIN proveedor ON pedidoproveedor.idproveedor=proveedor.idproveedor LEFT JOIN almacen ON pedidoproveedor.idalmacen=almacen.idalmacen WHERE 1=1 " + generarFiltro() );
    /// En caso de que el query haya fallado (por problemas de permisos p.ej.) salimos.
    if ( !cur ) return;
    m_total->setText ( cur->value( "total" ) );
    delete cur;
    
}
/**
\param parent
**/
BcModelo300Imprimir2PS::BcModelo300Imprimir2PS ( QWidget *parent ) : QDialog ( parent )
{
    BL_FUNC_DEBUG
    setupUi ( this );
    QString query = "SELECT descripcion, bancoent_cuenta, codigo FROM cuenta WHERE codigo LIKE '572%%' AND codigo > 572";

    BlPostgreSqlClient *metabase = new BlPostgreSqlClient();

    metabase->inicializa ( "bulmages" ); ///[TODO] CAMBIAR!!!!

    metabase->begin();
    fprintf ( stderr, "%s\n", query.toAscii().constData() );
    BlDbRecordSet *cur = metabase->loadQuery ( query, "bancos" );

    int nTuples = cur->numregistros();
    nombresccc = new QString[nTuples];

    numerccc = new QString[nTuples];

    for ( int i = 0; i < nTuples; i++ ) {
        nombresccc[i] = cur->value( "descripcion" );
        nombresccc[i] += "  ";
        nombresccc[i] += cur->value( "codigo" );

        numerccc[i] = cur->value( "bancoent_cuenta" );
//        cout << nombresccc[i].toAscii().constData() << "\t" << numerccc[i].toAscii().constData() << "\n";
        combocuentas->addItem ( nombresccc[i] );
        cur->nextRecord();
    } // end for
    delete cur;
    delete metabase;

    if ( nTuples == 0 ) { /// Si no tenemos ninguna cuenta de banco...
        sincuentasbancarias = true;
        personalButton->setChecked ( true );
        personalButtonPressed();
        cuentaButton->setDisabled ( true );
    } // end if
    
}
void generarVencimientos (FacturaView *art) {
			BlDbRecordSet *cur1 = art->mainCompany()->loadQuery("SELECT totalfactura FROM factura WHERE idfactura = " + art->dbValue("idfactura"));
			blMsgInfo( _("El total de la factura es :") + cur1->value("totalfactura"));
			BlFixed contado("0.00");

			BlDbRecordSet *cur = art->mainCompany()->loadQuery("SELECT * FROM vencimientocliente WHERE idcliente = " + art->dbValue("idcliente"));
			while (!cur->eof())  {
				QString query = "SELECT ffactura + " + cur->value("diasvencimientocliente") + " AS fechav, totalfactura / 100 * "+cur->value("porcentajevencimientocliente")+" AS porcent FROM factura WHERE idfactura = " + art->dbValue("idfactura");
				if (cur->isLastRecord()) {
					query = "SELECT ffactura + " + cur->value("diasvencimientocliente") + " AS fechav, totalfactura - "+ contado.toQString('.') +" AS porcent FROM factura WHERE idfactura = " + art->dbValue("idfactura");
				} //end if
				BlDbRecordSet *cur2 = art->mainCompany()->loadQuery(query);
				/// REALIZAMOS EL QUERY
				query = "INSERT INTO vencimientoc (idfactura, fechavencimientoc, cantvencimientoc, idforma_pago, refvencimientoc, idcliente) VALUES ("+art->dbValue("idfactura")+",'"+cur2->value("fechav")+"',"+cur2->value("porcent")+","+cur->value("idforma_pago")+",'"+art->dbValue("reffactura")+"',"+art->dbValue("idcliente")+")";
				contado = contado + BlFixed(cur2->value("porcent"));
				art->mainCompany()->runQuery(query);
				delete cur2;
				cur->nextRecord();
			} // end while
			delete cur;
			delete cur1;
}
Exemple #15
0
/**
\return
**/
void FacturasProveedorList::presentar()
{
    BL_FUNC_DEBUG
    mui_list->load ( "SELECT *, totalfacturap AS total, bimpfacturap AS base, impfacturap AS impuestos  FROM facturap LEFT JOIN proveedor ON facturap.idproveedor=proveedor.idproveedor WHERE 1=1  " + generaFiltro() );

    /// Hacemos el calculo del total.
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT SUM(totalfacturap) AS total FROM facturap LEFT JOIN proveedor ON facturap.idproveedor=proveedor.idproveedor WHERE 1=1  " + generaFiltro() );
    /// Si ha habido un error con el query salimos
    if ( !cur ) return;
    m_total->setText ( cur->value( "total" ) );
    delete cur;

}
/**
\param val
**/
void BfBuscarArticulo::setcodigocompletoarticulo ( QString val )
{
    BL_FUNC_DEBUG
    QString SQLQuery = "SELECT * FROM articulo WHERE codigocompletoarticulo=$1";
    BlDbRecordSet *cur = mainCompany() ->load ( SQLQuery, val );
    if ( !cur->eof() ) {
        setId ( cur->value( "idarticulo" ) );
    } else {
        setId ( "" );
    } // end if
    delete cur;
    
}
Exemple #17
0
void ArtGraficos::cargaXML ( QString filename )
{
    QFile file ( filename );
    if ( !file.open ( QIODevice::ReadOnly ) )
        return;
    if ( !m_doc.setContent ( &file ) ) {
        file.close();
        return;
    }
    file.close();

    /// Cogemos parametros adicionales para que no haya que ir a buscarlos a la base de datos y asi mejore la velocidad.

    /// Itero sobre las pantallas para obtener los nombres de pantalla y crear los botones pretinentes.
    QDomElement docElem = m_doc.documentElement();
    QDomNodeList nodos = docElem.elementsByTagName ( "ITEM" );

    for ( int i = 0; i < nodos.count(); i++ ) {
        /// Cogemos el titulo de la pantalla
        QString codigo = nodos.item ( i ).firstChildElement ( "CODIGO" ).text();
        /// Buscamos los parametros en la base de datos.
        QString query = "SELECT * FROM articulo LEFT JOIN (SELECT idtipo_iva, porcentasa_iva, fechatasa_iva FROM tasa_iva ) AS t1 ON articulo.idtipo_iva = t1.idtipo_iva WHERE codigocompletoarticulo = '" + codigo + "' ORDER BY t1.fechatasa_iva LIMIT 1";
        BlDbRecordSet *cur = mainCompany() ->loadQuery ( query );
        if ( !cur->eof() ) {

		QDomElement tag = m_doc.createElement( "PVPIVAINCARTICULO" );
		tag.appendChild( m_doc.createTextNode( cur->value("pvpivaincarticulo") ) );
		nodos.item(i).appendChild( tag );

		QDomElement tag4 = m_doc.createElement( "PVPARTICULO" );
		tag4.appendChild( m_doc.createTextNode( cur->value("pvparticulo") ) );
		nodos.item(i).appendChild( tag4 );

		QDomElement tag1 = m_doc.createElement( "IDARTICULO" );
		tag1.appendChild( m_doc.createTextNode( cur->value("idarticulo") ) );
		nodos.item(i).appendChild( tag1 );

		QDomElement tag2 = m_doc.createElement( "NOMARTICULO" );
		tag2.appendChild( m_doc.createTextNode( cur->value("nomarticulo") ) );
		nodos.item(i).appendChild( tag2 );

		QDomElement tag3 = m_doc.createElement( "IVAARTICULO" );
		tag3.appendChild( m_doc.createTextNode( cur->value("porcentasa_iva") ) );
		nodos.item(i).appendChild( tag3 );

		/// Ponemos todos los campos del registro cargado para que esten cacheados.
		for (int j = 0; j < cur->numcampos(); j++) {
			QDomElement tag3 = m_doc.createElement(cur->fieldName(j) );
			tag3.appendChild( m_doc.createTextNode( cur->value(j) ) );
			nodos.item(i).appendChild( tag3 );
		} // end for

        } // end if
        delete cur;

    } // end for


}
void ListRegistroIvaView::inicializa()
{
    BL_FUNC_DEBUG

    QString query;
    QString sbaseimp, siva;
    QString cbaseimp, civa, ctotal;
    BlDbRecordSet *cur;

    QString SQLQuery = "SELECT * FROM cuenta, tipoiva LEFT JOIN (SELECT idtipoiva, SUM(baseiva) AS tbaseiva, sum(ivaiva) AS tivaiva FROM iva  WHERE iva.idregistroiva IN (SELECT idregistroiva FROM registroiva WHERE ffactura >='" + finicial->text() + "' AND ffactura <='" + ffinal->text() + "' AND factemitida) GROUP BY idtipoiva) AS dd ON dd.idtipoiva=tipoiva.idtipoiva WHERE tipoiva.idcuenta = cuenta.idcuenta";

    mui_totalRepercutido->load ( SQLQuery );


    SQLQuery = "SELECT * FROM cuenta, tipoiva  LEFT JOIN (SELECT idtipoiva, SUM(baseiva) AS tbaseiva, SUM(ivaiva) AS tivaiva FROM iva WHERE iva.idregistroiva IN (SELECT idregistroiva FROM registroiva WHERE ffactura >='" + finicial->text() + "' AND ffactura <='" + ffinal->text() + "' AND NOT factemitida) GROUP BY idtipoiva) AS dd ON dd.idtipoiva=tipoiva.idtipoiva WHERE tipoiva.idcuenta = cuenta.idcuenta";
    mui_totalSoportado->load ( SQLQuery );

    SQLQuery = "SELECT SUM(baseimp) AS tbaseimp, sum(iva) AS tbaseiva FROM registroiva WHERE factemitida AND ffactura >='" + finicial->text() + "' AND ffactura <='" + ffinal->text() + "'";
    cur = m_companyact->loadQuery ( SQLQuery );
    m_baseimps->setText ( cur->value( "tbaseimp" ) );
    m_ivas->setText ( cur->value( "tbaseiva" ) );
    delete cur;

    SQLQuery = "SELECT SUM(baseimp) AS tbaseimp, sum(iva) AS tbaseiva FROM registroiva WHERE NOT factemitida AND ffactura >='" + finicial->text() + "' AND ffactura <='" + ffinal->text() + "'";
    cur = m_companyact->loadQuery ( SQLQuery );
    m_baseimpr->setText ( cur->value( "tbaseimp" ) );
    m_ivar->setText ( cur->value( "tbaseiva" ) );
    delete cur;

    query.sprintf ( "SELECT *, (registroiva.baseimp + registroiva.iva) AS totalfactura FROM registroiva LEFT JOIN (SELECT  * FROM cuenta, borrador, asiento  WHERE cuenta.idcuenta = borrador.idcuenta AND asiento.idasiento = borrador.idasiento ) AS t1 ON t1.idborrador = registroiva.idborrador WHERE factemitida AND ffactura >= '%s' AND ffactura <= '%s' ", finicial->text().toAscii().constData(), ffinal->text().toAscii().constData() );
    mui_tablasoportado->load ( query );

    /// Hacemos el c&aacute;culo de los que no pertenecen a IVA soportado porque
    /// as&iacute; entran todos.
    query.sprintf ( "SELECT *, (registroiva.baseimp + registroiva.iva) AS totalfactura FROM registroiva LEFT JOIN (SELECT * FROM cuenta, borrador, asiento  WHERE cuenta.idcuenta = borrador.idcuenta AND asiento.idasiento = borrador.idasiento) AS t1 ON t1.idborrador = registroiva.idborrador WHERE NOT factemitida AND ffactura >= '%s' AND ffactura <= '%s'", finicial->text().toAscii().constData(), ffinal->text().toAscii().constData() );
    mui_tablarepercutido->load ( query );
    
}
/* Calcula el PVP IVA incluido a partir del precio sin IVA.
*/
void IVAincluidoView::on_mui_calcula_iva_inc_clicked()
{
    QString SQlQuery = "SELECT * FROM tasa_iva WHERE idtipo_iva = '" + m_trab->mui_idtipo_iva->id() + "' ORDER BY fechatasa_iva DESC LIMIT 1";
    BlDbRecordSet *cur = m_trab->mainCompany() ->loadQuery ( SQlQuery );

    if ( !cur->eof() ) {
        mui_pvpivaincarticulo->setValue( m_trab->mui_pvparticulo->value() * (1 + (cur->value( "porcentasa_iva" ).toDouble() / 100)) );
    } else {
        mui_pvpivaincarticulo->setValue( m_trab->mui_pvparticulo->value() );
    } // end if

    delete cur;

}
void DuplicarAsientoView::lostFocus()
{
    BL_FUNC_DEBUG
    QString ainicial = aoinicial->text();
    QString query = "SELECT * FROM asiento WHERE ordenasiento = " + ainicial;
    mainCompany() ->begin();
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( query, "hola" );
    mainCompany() ->commit();
    if ( !cur->eof() ) {
        foinicial->setText ( cur->value( "fecha" ).left ( 10 ) );
    } // end if
    delete cur;
    
}
int BfBuscarReferencia_on_mui_abrirtodo_clicked_Post ( BfBuscarReferencia *ref )
{
    QString SQLQuery = "SELECT * FROM facturap WHERE reffacturap = '" + ref->mui_referencia->text() + "'";
    BlDbRecordSet *cur = ref->mainCompany() ->loadQuery ( SQLQuery );
    while ( !cur->eof() ) {
        FacturaProveedorView * bud = new FacturaProveedorView ( ( BfCompany * ) ref->mainCompany(), NULL );
        ref->mainCompany() ->m_pWorkspace->addSubWindow ( bud );
        bud->load ( cur->value( "idfacturap" ) );
        bud->show();
        cur->nextRecord();
    } // end while
    delete cur;
    return 0;
}
Exemple #22
0
void Compra::on_mui_codigoarticulo_returnPressed()
{

    QString texto = "<TABLE width=\"100%\">";
    QString tventas = "0";
    QString tcompras = "0";
    QString bgcolor = "#FFFFFF";
    texto += "<TR bgcolor=\"#BBBBBB\">";
    texto += "<TD width=\"100\">Color</TD>";
    texto += "<TD width=\"100\">Talla</TD>";
    texto += "<TD width=\"100\">Comprados</TD>";
    texto += "<TD width=\"100\">Vendidos</TD>";
    texto += "<TD width=\"100\">Stock</TD>";
    texto += "</TR>";
    QString query = "SELECT * FROM articulo LEFT JOIN tc_articulo_alias AS t3 ON articulo.idarticulo = t3.idarticulo  LEFT JOIN tc_talla AS t1 ON t3.idtc_talla = t1.idtc_talla LEFT JOIN tc_color AS t2 ON t3.idtc_color = t2.idtc_color WHERE t3.aliastc_articulo_tallacolor = '" + mui_codigoarticulo->text() + "' OR articulo.codigocompletoarticulo = '" + mui_codigoarticulo->text() + "' ORDER BY nomtc_color, nomtc_talla";
    BlDbRecordSet *cur = mainCompany()->loadQuery ( query );
    while ( ! cur->eof() ) {
        QString query1 = "SELECT SUM(cantlalbaranp) AS suma FROM lalbaranp WHERE idarticulo=" + cur->value( "idarticulo" ) + "  AND idtc_talla=" + cur->value( "idtc_talla" ) + " AND idtc_color=" + cur->value( "idtc_color" );
        QString query2 = "SELECT SUM(cantlalbaran) AS suma FROM lalbaran WHERE idarticulo=" + cur->value( "idarticulo" ) + "  AND idtc_talla=" + cur->value( "idtc_talla" ) + " AND idtc_color=" + cur->value( "idtc_color" );
        BlDbRecordSet *cur1 = mainCompany()->loadQuery ( query1 );
        BlDbRecordSet *cur2 = mainCompany()->loadQuery ( query2 );
        if ( !cur2->eof() ) {
            tventas = cur2->value( "suma" );
        } // end if
        if ( !cur1->eof() ) {
            tcompras = cur1->value( "suma" );
        } // end if

        if ( !cur1->eof() ) {
            texto += "<TR bgcolor=\"" + bgcolor + "\">";
            texto += "<TD>" + cur->value( "nomtc_color" ) + "</TD>";
            texto += "<TD>" + cur->value( "nomtc_talla" ) + "</TD>";
            texto += "<TD align=\"right\">" + tcompras + "</TD>";
            texto += "<TD align=\"right\">" + tventas + "</TD>";
            texto += "<TD align=\"right\">" + QString::number ( tcompras.toFloat() - tventas.toFloat() ) + "</TD>";
            texto += "</TR>";
        } // end if
        delete cur1;
        delete cur2;
        cur->nextRecord();
        if ( bgcolor == "#FFFFFF" ) {
            bgcolor = "#CCCCFF";
        } else {
            bgcolor =  "#FFFFFF";
        } // end if
    } // end while
    delete cur;
    mui_subform->setText ( texto );
}
/**
\param as
\return
**/
int BcAsientoForm_guardaAsiento1_post ( BcAsientoForm *asientoForm )
{
    BL_FUNC_DEBUG
    
    
    BcCompany *companyact = asientoForm->company();
    QString cuentas = "";
    QString query = "SELECT valor FROM configuracion WHERE nombre = 'RegistroEmitida' OR nombre = 'RegistroSoportada'";
    BlDbRecordSet *curvalor = companyact->loadQuery ( query );
    while ( !curvalor->eof() ) {
        /// Preparamos una expresi&oacute;n regular para usar en la consulta.
        cuentas += curvalor->value( "valor" ) + "%|";
        curvalor->nextRecord();
    } // end while
    delete curvalor;
    /// Le quitamos el &uacute;ltimo '|' que nos sobra.
    cuentas.truncate ( cuentas.length() - 1 );

    /// Recorremos la tabla en busca de entradas de factura no introducidas y las
    /// preguntamos antes de cerrar nada.
    QString SQLQuery = "SELECT bcontrapartidaborr(idborrador) AS contra FROM borrador LEFT JOIN cuenta ON borrador.idcuenta = cuenta.idcuenta WHERE idasiento = " + asientoForm->dbValue ( "idasiento" ) + " AND codigo SIMILAR TO '" + companyact->sanearCadena ( cuentas.toAscii().constData() ) + "' GROUP BY contra";

    BlDbRecordSet *cursborr = companyact->loadQuery ( SQLQuery );
    while ( !cursborr->eof() ) {
        int idborrador = cursborr->value( "contra" ).toInt();
        RegistroIvaView *reg = new RegistroIvaView ( companyact, 0 );
        reg->inicializa1 ( idborrador );
        companyact->pWorkspace() ->addSubWindow ( reg );
        reg->show();
        cursborr->nextRecord();
    } // end while
    delete cursborr;
    
    
    return 0;
}
void SubForm_Proveedor::nuevoProveedor( )
{
    BL_FUNC_DEBUG
  
    BlSubForm * sub = ( BlSubForm * ) parent();

    QString idarticleold="0";
    BlDbRecordSet *cur = sub->mainCompany() ->loadQuery ( "SELECT max(idproveedor) as id FROM proveedor " );
    if ( !cur->eof() ) {
	idarticleold = cur->value("id");
    } // end if
    delete cur;
    
    ProveedorView *artlist = new ProveedorView ( ( BfCompany * ) sub->mainCompany(), 0 );
	/// Desabilitamos el borrado automatico de la clase y lo realizaremos manualmente para que no se llame al isHidden sobre un objeto eliminado.
    artlist->setAttribute ( Qt::WA_DeleteOnClose, false );
    /// Esto es convertir un QWidget en un sistema modal de dialogo.
    sub->setEnabled ( false );
    artlist->show();
    while ( !artlist->isHidden() )
        g_theApp->processEvents();
    sub->setEnabled ( true );
    delete artlist;
	
    cur = sub->mainCompany() ->loadQuery ( "SELECT * FROM proveedor ORDER BY idproveedor DESC LIMIT 1" );
    if ( !cur->eof() ) {
		if (cur->value("idproveedor") != idarticleold) {
		  sub->lineaact()->setDbValue ( "idproveedor", cur->value("idproveedor") );
		  sub->lineaact()->setDbValue ( "cifproveedor", cur->value( "cifproveedor" ) );
		  sub->m_registrolinea->setDbValue ( "nomproveedor", cur->value( "nomproveedor" ) );
		} // end if
    } // end if
    delete cur;

    
}
/**
\param cuentas
\param ramas
**/
void BcPlanContableArbol::SintetizarRamas ( BlDbRecordSet **cuentas, tiporama **ramas )
{
    BL_FUNC_DEBUG

    tiporama *guia, *rama;
    tipohoja *hoja;
    int nivel;
    BlDbRecordSet *ptrcuentas = *cuentas;
    nivel = atoi ( ptrcuentas->value( "nivel" ).toAscii().constData() );
    ptrcuentas->nextRecord();
    guia = NULL;
    while ( !ptrcuentas->eof() && ( atoi ( ptrcuentas->value( "nivel" ).toAscii().constData() ) > nivel ) ) {
        /// Reservamos un huequecito de memoria para almacenar los datos de la rama.
        rama = new tiporama;
        if ( !guia ) {
            *ramas = guia = rama;
        } else {
            guia->sgte = rama;
            guia = guia->sgte;
        } // end if
        hoja = new tipohoja; /// Idem para una hojita.
        hoja->idcuenta = atoi ( ptrcuentas->value( "idcuenta" ).toAscii().constData() );
        hoja->codigo = ptrcuentas->value( "codigo" );
        hoja->descripcion = ptrcuentas->value( "descripcion" );
        hoja->saldoant = hoja->debe = hoja->haber = hoja->saldo = hoja->debeej = hoja->haberej = hoja->saldoej = BlFixed ( "0.00" );
        hoja->numapuntes = 0;
        hoja->ramas = NULL;
        guia->hoja = hoja;
        guia->sgte = NULL;
        /// Pero a&uacute;n puede haber m&aacute;s ramas que crezcan, en tal caso habr&aacute;
        /// que sintetizarlas
        SintetizarRamas ( &ptrcuentas, & ( hoja->ramas ) );
    } // end while

    
}
Exemple #26
0
QString Q19Writer::nombreEmpresa ( void )
{
	if ( m_nombreOrdenante.isNull() )
	{
		BlDbRecordSet *cur = m_empresa ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='NombreEmpresa'" );
		m_nombreOrdenante = cur->value( "valor" );
		delete cur;
		if ( m_nombreOrdenante.isNull() )
		{
			throw _ ( "Falta el nombre de su empresa" ) +"\n"+tr ( "No podemos generar remesas bancarias hasta que entre el nombre de su empresa en Propiedades de Empresa" );
		}
		m_nombreOrdenante.replace ( "\x0a"," " );
	}
	return m_nombreOrdenante;
}
/**
\param idcuenta
**/
void BcAsientoInteligenteView::cifCuenta ( int idcuenta )
{
    BL_FUNC_DEBUG
    QString query;
    query.sprintf ( "SELECT * FROM cuenta WHERE idcuenta = %d", idcuenta );
    mainCompany() ->begin();
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( query, "cursor" );
    mainCompany() ->commit();
    if ( !cur->eof() ) {
        variablesapunte[VAR_APUNT_CIFCUENTA][1] = cur->value( "cifent_cuenta" );
    } else {
        variablesapunte[VAR_APUNT_CIFCUENTA][1] = "";
    } // end if
    delete cur;
    
}
/**
\param val
**/
void BfBuscarFamilia::setcodigocompletofamilia ( QString val )
{
    BL_FUNC_DEBUG

    QString SQLQuery = "SELECT * FROM familia WHERE codigocompletofamilia='" + val + "'";
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( SQLQuery );

    if ( !cur->eof() ) {
        setId ( cur->value( "idfamilia" ) );
    } else {
        setId ( "" );
    } // end if

    delete cur;
    
}
/**
\return
**/
int BcConfiguracionView::inicializa()
{
    BL_FUNC_DEBUG
    int num;

    QString query = "SELECT * FROM configuracion WHERE nombre = 'CodCuenta'";
    BlDbRecordSet *curs = mainCompany() ->loadQuery ( query );
    num = curs->numregistros();
    if ( num > 0 ) {
        modcodigo->setText ( curs->value( "valor" ) );
    } // end if
    delete curs;


    return 0;
}
Exemple #30
0
void Devolucion::on_mui_ref_returnPressed()
{
    if ( m_ticket )  {
        delete m_ticket;
        m_ticket = NULL;
    } // end if

    QString query1 = "SELECT * FROM albaran WHERE refalbaran = '" + mui_ref->text() + "'";

    BlDbRecordSet *curs = mainCompany()->loadQuery ( query1 );
    if ( !curs->eof() ) {
        m_ticket = new BtTicket ( mainCompany(), NULL );
        m_ticket->load ( curs->value( "idalbaran" ) );
    }
    delete curs;
    m_totalin = "";
    pintar();
}