本文整理汇总了C++中BlFixed类的典型用法代码示例。如果您正苦于以下问题:C++ BlFixed类的具体用法?C++ BlFixed怎么用?C++ BlFixed使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BlFixed类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BlFixed
/**
\param formula
\param return
\return
**/
bool BcCuentasAnualesImprimirView::procesaFormula ( const QDomNode &formula )
{
BL_FUNC_DEBUG
QDomElement valor = formula.firstChildElement ( "VALORACT" );
//
QString valors = valor.toElement().text();
QString codigo = formula.parentNode().firstChildElement ( "CONCEPTO" ).toElement().text();
//
if ( !valor.isNull() ) {
return true;
} // end if
BlFixed tvaloract = BlFixed ( "0.0" );
BlFixed tvalorant = BlFixed ( "0.0" );
QDomElement formula3 = formula.toElement();
QDomNodeList litems = formula3.elementsByTagName ( "OPERADOR" );
for ( int i = 0; i < litems.count(); i++ ) {
QDomNode item = litems.item ( i );
QDomElement e1 = item.toElement(); /// Try to convert the node to an element.
if ( !e1.isNull() ) { /// The node was really an element.
if ( !procesaOperador ( item ) )
return false;
QString valoract, valorant;
if ( valorItem ( item, valoract, valorant ) ) {
tvaloract = tvaloract + BlFixed ( valoract );
tvalorant = tvalorant + BlFixed ( valorant );
} else
return false;
} // end if
} // end for
QString tvaloracts = tvaloract.toQString();
QString tvalorants = tvalorant.toQString();
agregaValores ( formula, tvaloracts, tvalorants );
return true;
}
示例2: total
void Cambio::on_mui_pago_textChanged()
{
BlFixed total ( mui_total->text().replace ( ",", "." ) );
BlFixed pago ( mui_pago->text().replace ( ",", "." ) );
BlFixed cambio = pago - total;
mui_cambio->setText ( cambio.toQString() );
}
示例3: _
QString Q19Writer::import ( BlFixed f, int longitud )
{
f.setPrecision ( 2 );
QString res = QString::number ( f.value );
if ( f.value < 0 )
{
throw _ ( "Datos incorrectos" ) +"\n" + _ ( "Importe negativo (%1) ! " ).arg ( f.toQString() );
}
if ( res.length() >longitud )
{
throw _ ( "Datos incorrectos" ) +"\n" + _ ( "Importe excesivo (%1) !. El limite son %2 digitos, incluyendo los 2 decimales " ).arg ( f.toQString() ).arg ( abs ( longitud ) );
}
return res.rightJustified ( longitud,'0',true );
}
示例4: totalcobro
void cobropagoview::s_recalculaSaldo()
{
BL_FUNC_DEBUG
BlFixed totalcobro ( "0" );
BlFixed totalpago ( "0" );
for ( int i = 0; i < mui_listado->rowCount(); i++ ) {
BlDbSubFormRecord *rec = mui_listado->lineaat ( i );
if ( rec ) {
if ( rec->dbValue ( "tipoprevcobro" ) == "f" ) {
totalcobro = totalcobro + BlFixed ( rec->dbValue ( "cantidadprevcobro" ) );
} else {
totalpago = totalpago + BlFixed ( rec->dbValue ( "cantidadprevcobro" ) );
} // end if
} // end if
} // end for
m_totalCobros->setText ( totalcobro.toQString() );
m_totalPagos->setText ( totalpago.toQString() );
}
示例5: QString
void TicketClienteView::calculaypintatotales() {
if (!m_listalineas) return;
//blMsgInfo("Calculo y pinto los totales");
/*
* m_totalBases->setText ( base.toQString() );
m_totalTaxes->setText ( iva.toQString() );
m_totalalbaran->setText ( total.toQString() );
m_totalDiscounts->setText ( desc.toQString() );
m_totalIRPF->setText ( QString ( irpf.toQString() ) );
m_totalReqEq->setText ( QString ( reqeq.toQString() ) );
*/
BlFixed total("0.00");
BlFixed impuestos("0.00");
BlFixed bimp("0.00");
BlDbSubFormRecord *linea;
for ( int i = 0; i < m_listalineas->rowCount(); ++i ) {
linea = m_listalineas->lineaat ( i );
BlFixed cant ( linea->dbValue ( "cantlalbaran" ));
BlFixed pvpund ( linea->dbValue ( "pvpivainclalbaran"));
BlFixed ivalin ( linea->dbValue ( "ivalalbaran"));
BlFixed totallinea = cant * pvpund;
totallinea.setPrecision(2);
total = total + totallinea;
BlFixed ivalinea = totallinea - totallinea / (BlFixed("1.00") + (ivalin / BlFixed("100.00")));
ivalinea.setPrecision(2);
impuestos = impuestos + ivalinea;
} // end for
// Calculamos la base imponible
bimp = total - impuestos;
m_totalalbaran->setText( total.toQString());
m_totalTaxes-> setText( impuestos.toQString());
m_totalBases -> setText (bimp.toQString());
}
示例6: pintatotales
/**
\param iva
\param base
\param desc
\param irpf
\param reqeq
**/
void AlbaranProveedorView::pintatotales ( BlFixed iva, BlFixed base, BlFixed total, BlFixed desc, BlFixed irpf, BlFixed reqeq )
{
BL_FUNC_DEBUG
m_totalBases->setText ( QString ( base.toQString() ) );
m_totalTaxes->setText ( QString ( iva.toQString() ) );
m_totalDiscounts->setText ( QString ( desc.toQString() ) );
m_totalIRPF->setText ( QString ( irpf.toQString() ) );
m_totalReqEq->setText ( QString ( reqeq.toQString() ) );
m_totalalbaranp->setText ( QString ( total.toQString() ) );
}
示例7: pintatotales
/**
\param iva
\param base
\param total
\param desc
\param irpf
\param reqeq
**/
void PedidoProveedorView::pintatotales ( BlFixed iva, BlFixed base, BlFixed total, BlFixed desc, BlFixed irpf, BlFixed reqeq )
{
BL_FUNC_DEBUG
mui_totalBaseImponible->setText ( base.toQString() );
mui_totalImpuestos->setText ( iva.toQString() );
mui_totalPedido->setText ( total.toQString() );
mui_totalDescuentos->setText ( desc.toQString() );
mui_totalIRPF->setText ( QString ( irpf.toQString() ) );
mui_totalRecargo->setText ( QString ( reqeq.toQString() ) );
}
示例8: pintatotales
/**
\param iva
\param base
\param total
\param desc
\param irpf
\param reqeq
**/
void FacturaView::pintatotales ( BlFixed iva, BlFixed base, BlFixed total, BlFixed desc, BlFixed irpf, BlFixed reqeq )
{
BL_FUNC_DEBUG
m_totalBases->setText ( base.toQString() );
m_totalTaxes->setText ( iva.toQString() );
m_totalfactura->setText ( total.toQString() );
m_totalDiscounts->setText ( desc.toQString() );
m_totalIRPF->setText ( QString ( irpf.toQString() ) );
m_totalReqEq->setText ( QString ( reqeq.toQString() ) );
}
示例9: refActual
/**
\return
**/
void Q19Writer::genera ( BlDbRecordSet *curcobro, QString fileName , QStringList *idsGenerats)
{
BL_FUNC_DEBUG
QString refActual ( "cap rebut" );
if (fileName.length()==0) {
fileName = QFileDialog::getSaveFileName ( parentWidget(), _ ( "Fichero de remesa bancaria (Cuaderno 19)" ),
"",
_ ( "*.q19;;*" ) );
}
BlDebug::blDebug ( Q_FUNC_INFO, 0, QString(_("Nombre del fichero: '%1'")).arg(fileName) );
if (fileName.length()>0) { // else ha apretat cancel?lar
try
{
int cobraments=curcobro->numregistros();
BlDbRecordSet *curbanc;
/*
http://www.cam.es/1/empresas/servicios/pdf/c19.pdf
" Dentro de cada Cliente Ordenante, todos los registros individuales debera'n
figurar en el soporte clasificados ascendentemente por el nu'mero de Entidad-
Oficina de adeudo, Referencia y Co'digo de dato, terminando con un registro de
<<Total Ordenante>>. Al final llevara' un registro de <<Total General>>.
"
Per'o cada idbanco (de fet cada entitat, per'o no filem tan prim) requereix un
fitxer, perqu'e no portar'as a un banc els rebuts que vols cobrar per un altre.
I la data de c'arrec va a la capc,alera d'ordenant, per tant hem d'ordenar primer
per banc i data i despre's pel que demana als rebuts d'un ordenant. Farem tantes capc,aleres
d'ordenant com dates encara que sempre sigui el mateix ordenant.
*/
bool bancUnic = ( curcobro->value( "idbanco",0 ) == curcobro->value( "idbanco",curcobro->numregistros()-1 ) );
BlDebug::blDebug ( "bancUnic=",0,bancUnic?"si":"no" );
QString idbanc ( "" );
QFile file;
QTextStream out ( &file );
/*
http://www.cam.es/1/empresas/servicios/pdf/c19.pdf
- Codigo ASCII ( en mayusculas) (caracter 165= enye).
- Registros de longitud fija (162 bytes).
- Formato MS-DOS secuencial tipo texto.
En canvi un fitxer de mostra generat amb un programa que do'na el banc
te' 162 car'acters + \x0a , que no e's un salt de li'nia MSDOS. Ni se' si
un fitxer de registres de longitud fixa necessita salts de li'nia per a res.
*/
out.setCodec ( "Q19" );
QString sufijo;
QDate fechaCargo = ( curcobro->eof() ?
QDate()
: QDate::fromString ( curcobro->value( "fechavenccobro" ),"dd/MM/yyyy" ) ) ;
BlFixed impOrdenante ( 0,2 );
BlFixed impPresentador ( 0,2 );
QString resultats ( "" );
int registrosOrdenante=0;
int registrosPresentador=0;
int cobramentsOrdenante=0;
int cobramentsPresentador=0;
int ordenants=0;
int sensebanc=0;
int sensevenc=0;
while ( !curcobro->eof() )
{
if ( QDate::fromString ( curcobro->value( "fechavenccobro" ),"dd/MM/yyyy" ).isValid() )
{
if ( ( !curcobro->value( "idbanco" ).isNull() ) && ( curcobro->value( "idbanco" ).length() >0 ) )
{
if ( QDate::fromString ( curcobro->value( "fechavenccobro" ),"dd/MM/yyyy" ) != fechaCargo )
{
registrosPresentador++;
registrosOrdenante++;
totalOrdenante ( out, sufijo , curbanc, impOrdenante,
cobramentsOrdenante, registrosOrdenante );
ordenants++;
}
if ( curcobro->value( "idbanco" ) != idbanc )
{
// canvi de banc on cobrem els rebuts, canvi de fitxer
idbanc=curcobro->value( "idbanco" );
if ( file.handle() !=-1 )
{
registrosPresentador++;
totalPresentador ( out, sufijo, curbanc, impPresentador, cobramentsPresentador, registrosPresentador , ordenants );
resultats += _ ( "\n%3 : %1 recibos, %2 EUR. " ).arg ( cobramentsPresentador ).arg ( impPresentador.toQString() ).arg ( file.fileName() );
file.close();
delete curbanc;
}
curbanc = m_empresa->loadQuery ( "SELECT * FROM banco WHERE idbanco = $1",1,&idbanc );
sufijo = curbanc->value("sufijobanco");
if ( bancUnic )
{
file.setFileName ( fileName );
BlDebug::blDebug ( "creare' ",0,fileName );
}
else
//.........这里部分代码省略.........
示例10: mainCompany
void MTicketDesglose::pintar()
{
BL_FUNC_DEBUG
BtTicket *tick = ( ( BtCompany * ) mainCompany() ) ->ticketActual();
//QString html = "<font size=\"1\">";
QString html = "<p style=\"font-family:monospace; font-size: 12pt;\">";
QString html1 = "<font size=\"1\">";
html1 += "Ticket: " + tick->dbValue ( "nomticket" ) + "<BR>";
QString querytrab = "SELECT * FROM trabajador WHERE idtrabajador = " + tick->dbValue ( "idtrabajador" );
BlDbRecordSet *curtrab = mainCompany() ->loadQuery ( querytrab );
html1 += "Trabajador: " + tick->dbValue ( "idtrabajador" ) + " " + curtrab->value( "nomtrabajador" ) + "<BR>";
delete curtrab;
QString query = "SELECT * FROM cliente WHERE idcliente = " + tick->dbValue ( "idcliente" );
BlDbRecordSet *cur1 = mainCompany() ->loadQuery ( query );
html1 += "Cliente: " + tick->dbValue ( "idcliente" ) + " " + cur1->value( "nomcliente" ) + "<BR>";
delete cur1;
html += "<TABLE border=\"0\">";
BlDbRecord *item;
for ( int i = 0; i < tick->listaLineas() ->size(); ++i ) {
item = tick->listaLineas() ->at ( i );
QString bgcolor = "#FFFFFF";
if ( item == tick->lineaActBtTicket() ) bgcolor = "#CCCCFF";
html += "<TR>";
html += "<TD bgcolor=\"" + bgcolor + "\" align=\"right\" width=\"50\">" + item->dbValue ( "cantlalbaran" ) + "</TD>";
html += "<TD bgcolor=\"" + bgcolor + "\">" + item->dbValue ( "nomarticulo" ) + "</TD>";
BlFixed totalLinea ( "0.00" );
totalLinea = BlFixed ( item->dbValue ( "cantlalbaran" ) ) * BlFixed ( item->dbValue ( "pvplalbaran" ) );
html += "<TD bgcolor=\"" + bgcolor + "\" align=\"right\" width=\"50\">" + totalLinea.toQString() + "</TD>";
html += "</TR>";
}// end for
html += "</TABLE>";
// ======================================
html += "<BR><HR><BR>";
base basesimp;
base basesimpreqeq;
BlDbRecord *linea;
/// Impresion de los contenidos.
QString l;
BlFixed irpf ( "0" );
BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre = 'IRPF'" );
if ( cur ) {
if ( !cur->eof() ) {
irpf = BlFixed ( cur->value( "valor" ) );
} // end if
delete cur;
} // end if
BlFixed descuentolinea ( "0.00" );
for ( int i = 0; i < tick->listaLineas() ->size(); ++i ) {
linea = tick->listaLineas() ->at ( i );
BlFixed cant ( linea->dbValue ( "cantlalbaran" ) );
BlFixed pvpund ( linea->dbValue ( "pvplalbaran" ) );
BlFixed desc1 ( linea->dbValue ( "descuentolalbaran" ) );
BlFixed cantpvp = cant * pvpund;
BlFixed base = cantpvp - cantpvp * desc1 / 100;
descuentolinea = descuentolinea + ( cantpvp * desc1 / 100 );
basesimp[linea->dbValue ( "ivalalbaran" ) ] = basesimp[linea->dbValue ( "ivalalbaran" ) ] + base;
basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] = basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] + base;
} // end for
BlFixed basei ( "0.00" );
base::Iterator it;
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
basei = basei + it.value();
} // end for
/// Calculamos el total de los descuentos.
/// De momento aqui no se usan descuentos generales en venta.
BlFixed porcentt ( "0.00" );
/*
BlDbSubFormRecord *linea1;
if (m_listadescuentos->rowCount()) {
for (int i = 0; i < m_listadescuentos->rowCount(); ++i) {
linea1 = m_listadescuentos->lineaat(i);
BlFixed propor(linea1->dbValue("proporcion" + m_listadescuentos->tableName()).toAscii().constData());
porcentt = porcentt + propor;
} // end for
} // end if
*/
/// Calculamos el total de base imponible.
BlFixed totbaseimp ( "0.00" );
BlFixed parbaseimp ( "0.00" );
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
if ( porcentt > BlFixed ( "0.00" ) ) {
parbaseimp = it.value() - it.value() * porcentt / 100;
} else {
parbaseimp = it.value();
} // end if
html1 += "Base Imp " + it.key() + "% " + parbaseimp.toQString() + "<BR>";
totbaseimp = totbaseimp + parbaseimp;
} // end for
/// Calculamos el total de IVA.
//.........这里部分代码省略.........
示例11: saldototal
//.........这里部分代码省略.........
QString asiento;
/// Discernimos entre Balances y Cuenta de Resultados
if ( rx.exactMatch ( m_doc.elementsByTagName ( "TITULO" ).item ( 0 ).toElement().text() ) )
/// Hay que excluir el asiento de Regularizacion para el calculo de beneficios o perdidas si existe ya en el periodo
asiento = "%Asiento de Regularizaci%";
else
asiento = "%Asiento de Cierre%"; /// No hay que tener en cuenta el asiento de cierre para obtener los saldos
/// OJO!! Antes de nada, hay que calcular el asiento de REGULARIZACION que nos guarda el resultado en la 129
BcAsientoView *asientoReg;
int resur = g_plugins->run ( "SNewBcAsientoView", (BcCompany *) mainCompany() );
if ( ! resur) {
blMsgInfo("No se pudo crear instancia de asientos");
return;
} // end if
asientoReg = (BcAsientoView *) g_plugParams;
// ( ( BcCompany * ) mainCompany() ) ->regularizaempresa ( finicial, ffinal );
asientoReg ->asientoRegularizacion ( finicial, ffinal );
/// Ahora, recopilamos todos los apuntes agrupados por cuenta para poder
/// establecer así los valores de cada cuenta para el periodo 1.
mainCompany() ->begin();
query = "SELECT cuenta.idcuenta, numapuntes, cuenta.codigo, saldoant, debe, haber, saldo, debeej, haberej, saldoej FROM (SELECT idcuenta, codigo FROM cuenta) AS cuenta NATURAL JOIN (SELECT idcuenta, count(idcuenta) AS numapuntes,sum(debe) AS debeej, sum(haber) AS haberej, (sum(debe)-sum(haber)) AS saldoej FROM apunte WHERE EXTRACT(year FROM fecha) = EXTRACT(year FROM timestamp '" + finicial + "') GROUP BY idcuenta) AS ejercicio LEFT OUTER JOIN (SELECT idcuenta,sum(debe) AS debe, sum(haber) AS haber, (sum(debe)-sum(haber)) AS saldo FROM apunte WHERE fecha >= '" + finicial + "' AND fecha <= '" + ffinal + "' AND conceptocontable NOT SIMILAR TO '" + asiento + "' GROUP BY idcuenta) AS periodo ON periodo.idcuenta=ejercicio.idcuenta LEFT OUTER JOIN (SELECT idcuenta, (sum(debe)-sum(haber)) AS saldoant FROM apunte WHERE fecha < '" + finicial + "' GROUP BY idcuenta) AS anterior ON cuenta.idcuenta=anterior.idcuenta ORDER BY codigo";
BlDbRecordSet *hojas;
hojas = mainCompany() ->loadQuery ( query, "Periodo1" );
/// Para cada cuenta con sus saldos calculados hay que actualizar hojas del árbol.
while ( !hojas->eof() ) {
arbolP1->actualizaHojas ( hojas );
hojas->nextRecord();
} // end while
mainCompany() ->commit();
asientoReg->on_mui_borrar_clicked ( false ); /// borramos el asiento temporal creado indicando que no queremos confirmacion
/// Para el segundo periodo, calculamos el asiento de REGULARIZACION que nos guarda el resultado en la 129
// ( ( BcCompany * ) mainCompany() ) ->regularizaempresa ( finicial1, ffinal1 );
asientoReg ->asientoRegularizacion ( finicial1, ffinal1 );
// asientoReg = ( ( BcCompany * ) mainCompany() ) ->intapuntsempresa2();
/// Ahora, recopilamos todos los apuntes agrupados por cuenta para poder
/// establecer así los valores de cada cuenta para el periodo 2.
mainCompany() ->begin();
query = "SELECT cuenta.idcuenta, numapuntes, cuenta.codigo, saldoant, debe, haber, saldo, debeej, haberej, saldoej FROM (SELECT idcuenta, codigo FROM cuenta) AS cuenta NATURAL JOIN (SELECT idcuenta, count(idcuenta) AS numapuntes,sum(debe) AS debeej, sum(haber) AS haberej, (sum(debe)-sum(haber)) AS saldoej FROM apunte WHERE EXTRACT(year FROM fecha) = EXTRACT(year FROM timestamp '" + finicial1 + "') GROUP BY idcuenta) AS ejercicio LEFT OUTER JOIN (SELECT idcuenta,sum(debe) AS debe, sum(haber) AS haber, (sum(debe)-sum(haber)) AS saldo FROM apunte WHERE fecha >= '" + finicial1 + "' AND fecha <= '" + ffinal1 + "' AND conceptocontable NOT SIMILAR TO '" + asiento + "' GROUP BY idcuenta) AS periodo ON periodo.idcuenta=ejercicio.idcuenta LEFT OUTER JOIN (SELECT idcuenta, (sum(debe)-sum(haber)) AS saldoant FROM apunte WHERE fecha < '" + finicial1 + "' GROUP BY idcuenta) AS anterior ON cuenta.idcuenta=anterior.idcuenta ORDER BY codigo";
hojas = mainCompany() ->loadQuery ( query, "Periodo2" );
/// Para cada cuenta con sus saldos calculados hay que actualizar hojas del árbol.
while ( !hojas->eof() ) {
arbolP2->actualizaHojas ( hojas );
hojas->nextRecord();
} // end while
delete hojas;
mainCompany() ->commit();
asientoReg->on_mui_borrar_clicked ( false ); /// borramos indicando que no queremos confirmacion
QDomNodeList lcuentas = m_doc.elementsByTagName ( "CUENTA" );
for ( int i = 0; i < lcuentas.count(); i++ ) {
QDomNode cuenta = lcuentas.item ( i );
QDomElement e1 = cuenta.toElement();
QString valorP1, valorP2;
BlFixed valor = BlFixed ( "0.00" );
if ( !e1.isNull() ) {
if ( arbolP1->irHoja ( e1.text() ) )
valor = BlFixed ( arbolP1->hojaActual ( "saldo" ) );
else
valor = BlFixed ( "0.00" );
valorP1 = valor.toQString();
if ( arbolP2->irHoja ( e1.text() ) )
valor = BlFixed ( arbolP2->hojaActual ( "saldo" ) );
else
valor = BlFixed ( "0.00" );
valorP2 = valor.toQString();
QDomNode c = e1.parentNode();
agregaValores ( c, valorP1, valorP2 );
} // end if
} // end for
/// Eliminamos el árbol y cerramos la conexión con la BD.
delete arbolP1;
delete arbolP2;
/** Fin de la version con ARBOL **/
/// Hacemos el calculo recursivo del balance.
bool terminado = false;
while ( !terminado ) {
terminado = true;
/// Recogemos los valores de cuenta.
QDomNodeList litems = m_doc.elementsByTagName ( "FORMULA" );
for ( int i = 0; i < litems.count(); i++ ) {
QDomNode item = litems.item ( i );
QDomElement e1 = item.toElement(); /// Try to convert the node to an element.
if ( !e1.isNull() ) { /// The node was really an element.
terminado &= procesaFormula ( item );
} // end if
} // end for
} // end while
/// Una vez que tenemos el objeto bien generado y a punto pasamos a la generacion del PDF.
imprimir ( finicial, ffinal, finicial1, ffinal1 );
}
示例12: BlWidget
Cambio::Cambio ( BtCompany *emp, QWidget *parent ) : BlWidget ( emp, parent )
{
setupUi ( this );
m_value = 0;
base basesimp;
base basesimpreqeq;
BlDbRecord *linea;
BtTicket *tick = emp->ticketActual();
/// Disparamos los plugins.
int res = g_plugins->run ( "Cambio_ivainc_pre", this );
if ( res != 0 ) {
return;
} // end if
/// Impresion de los contenidos.
QString l;
BlFixed irpf ( "0" );
BlDbRecordSet *cur = emp->loadQuery ( "SELECT * FROM configuracion WHERE nombre = 'IRPF'" );
if ( cur ) {
if ( !cur->eof() ) {
irpf = BlFixed ( cur->value( "valor" ) );
} // end if
delete cur;
} // end if
BlFixed descuentolinea ( "0.00" );
for ( int i = 0; i < tick->listaLineas() ->size(); ++i ) {
linea = tick->listaLineas() ->at ( i );
BlFixed cant ( linea->dbValue ( "cantlalbaran" ) );
cant.setPrecision(emp->decimalesCantidad());
BlFixed pvpund ( linea->dbValue ( "pvpivainclalbaran" ) );
pvpund.setPrecision(emp->decimalesCantidad());
BlFixed desc1 ( linea->dbValue ( "descuentolalbaran" ) );
BlFixed cantpvp = cant * pvpund;
cantpvp.setPrecision(emp->decimalesCantidad());
BlFixed base = cantpvp - cantpvp * desc1 / 100;
descuentolinea = descuentolinea + ( cantpvp * desc1 / 100 );
basesimp[linea->dbValue ( "ivalalbaran" ) ] = basesimp[linea->dbValue ( "ivalalbaran" ) ] + base;
basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] = basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] + base;
} // end for
BlFixed basei ( "0.00" );
base::Iterator it;
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
basei = basei + it.value();
} // end for
/// Calculamos el total de los descuentos.
/// De momento aqui no se usan descuentos generales en venta.
BlFixed porcentt ( "0.00" );
/// Calculamos el total de base imponible.
BlFixed totbaseimp ( "0.00" );
BlFixed parbaseimp ( "0.00" );
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
if ( porcentt > BlFixed ( "0.00" ) ) {
parbaseimp = it.value() - it.value() * porcentt / 100;
} else {
parbaseimp = it.value();
} // end if
totbaseimp = totbaseimp + parbaseimp;
} // end for
/// Calculamos el total de IVA.
BlFixed totiva ( "0.00" );
BlFixed pariva ( "0.00" );
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
BlFixed piva ( it.key().toAscii().constData() );
if ( porcentt > BlFixed ( "0.00" ) ) {
pariva = ( it.value() - it.value() * porcentt / 100 ) * piva / 100;
} else {
pariva = it.value() * piva / 100;
} // end if
totiva = totiva + pariva;
} // end for
/// Calculamos el total de recargo de equivalencia.
BlFixed totreqeq ( "0.00" );
BlFixed parreqeq ( "0.00" );
for ( it = basesimpreqeq.begin(); it != basesimpreqeq.end(); ++it ) {
BlFixed preqeq ( it.key().toAscii().constData() );
if ( porcentt > BlFixed ( "0.00" ) ) {
parreqeq = ( it.value() - it.value() * porcentt / 100 ) * preqeq / 100;
} else {
parreqeq = it.value() * preqeq / 100;
} // end if
totreqeq = totreqeq + parreqeq;
} // end for
BlFixed totirpf = totbaseimp * irpf / 100;
BlFixed total = totbaseimp;
//.........这里部分代码省略.........
示例13: mainCompany
void Devolucion::pintar()
{
if ( !m_ticket ) return;
// ====================== PINTAMOS ========================
QString html = "<p style=\"font-family:monospace; font-size: 8pt;\">";
QString html1 = "<font size=\"1\">";
html1 += "Ticket: " + m_ticket->dbValue ( "nomticket" ) + "<BR>";
QString querytrab = "SELECT * FROM trabajador WHERE idtrabajador = " + m_ticket->dbValue ( "idtrabajador" );
BlDbRecordSet *curtrab = mainCompany() ->loadQuery ( querytrab );
html1 += "Trabajador: " + m_ticket->dbValue ( "idtrabajador" ) + " " + curtrab->value( "nomtrabajador" ) + "<BR>";
delete curtrab;
QString query = "SELECT * FROM cliente WHERE idcliente = " + m_ticket->dbValue ( "idcliente" );
BlDbRecordSet *cur1 = mainCompany() ->loadQuery ( query );
html1 += "Cliente: " + m_ticket->dbValue ( "idcliente" ) + " " + cur1->value( "nomcliente" ) + "<BR>";
delete cur1;
if ( m_ticket->listaLineas()->size() > 0 ) {
html += "<TABLE border=\"0\">";
html += "<TR bgcolor = \"#CCCCCC\">";
html += "<TD>SEL</TD>";
for ( int z = 0; z < m_ticket->listaLineas()->at ( 0 )->lista()->size(); ++z ) {
BlDbField *head = m_ticket->listaLineas()->at ( 0 )->lista()->at ( z );
if ( head->fieldName().left ( 2 ) != "id" && head->fieldName().left ( 3 ) != "num" )
html += "<TD>" + head->fieldName().left ( 4 ) + "</TD>";
} // end for
html += "</TR>";
BlDbRecord *item;
for ( int i = 0; i < m_ticket->listaLineas() ->size(); ++i ) {
item = m_ticket->listaLineas() ->at ( i );
html += "<TR>";
html += "<TD><A NAME=\"plus\" HREF=\"?op=plus&numlalbaran=" + item->dbValue ( "numlalbaran" ) + "\">+</A> <A HREF=\"?op=minus&numlalbaran=" + item->dbValue ( "numlalbaran" ) + "\">-</A></td>";
for ( int j = 0; j < item->lista()->size(); ++j ) {
BlDbField *camp = item->lista()->at ( j );
if ( camp->fieldName().left ( 2 ) != "id" && camp->fieldName().left ( 3 ) != "num" )
html += "<TD>" + camp->fieldValue() + "</TD>";
} // end for
html += "</TR>";
}// end for
html += "</TABLE>";
} // end if
// ======================================
html += "<BR><HR><BR>";
base basesimp;
base basesimpreqeq;
BlDbRecord *linea;
/// Impresion de los contenidos.
QString l;
BlFixed irpf ( "0" );
BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre = 'IRPF'" );
if ( cur ) {
if ( !cur->eof() ) {
irpf = BlFixed ( cur->value( "valor" ) );
} // end if
delete cur;
} // end if
BlFixed descuentolinea ( "0.00" );
for ( int i = 0; i < m_ticket->listaLineas() ->size(); ++i ) {
linea = m_ticket->listaLineas() ->at ( i );
BlFixed cant ( linea->dbValue ( "cantlalbaran" ) );
BlFixed pvpund ( linea->dbValue ( "pvplalbaran" ) );
BlFixed desc1 ( linea->dbValue ( "descuentolalbaran" ) );
BlFixed cantpvp = cant * pvpund;
BlFixed base = cantpvp - cantpvp * desc1 / 100;
descuentolinea = descuentolinea + ( cantpvp * desc1 / 100 );
basesimp[linea->dbValue ( "ivalalbaran" ) ] = basesimp[linea->dbValue ( "ivalalbaran" ) ] + base;
basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] = basesimpreqeq[linea->dbValue ( "reqeqlalbaran" ) ] + base;
} // end for
BlFixed basei ( "0.00" );
base::Iterator it;
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
basei = basei + it.value();
} // end for
/// Calculamos el total de los descuentos.
/// De momento aqui no se usan descuentos generales en venta.
BlFixed porcentt ( "0.00" );
/// Calculamos el total de base imponible.
BlFixed totbaseimp ( "0.00" );
BlFixed parbaseimp ( "0.00" );
for ( it = basesimp.begin(); it != basesimp.end(); ++it ) {
if ( porcentt > BlFixed ( "0.00" ) ) {
parbaseimp = it.value() - it.value() * porcentt / 100;
} else {
parbaseimp = it.value();
} // end if
html1 += "Base Imp " + it.key() + "% " + parbaseimp.toQString() + "<BR>";
//.........这里部分代码省略.........
示例14: BtTicket_imprimirIVAInc
int BtTicket_imprimirIVAInc(BtTicket *tick)
{
BL_FUNC_DEBUG
struct empresastr {
QString nombre;
QString direccionCompleta;
QString codigoPostal;
QString ciudad;
QString provincia;
QString telefono;
} empresa;
struct clientestr {
QString cif;
QString nombre;
} cliente;
struct trabajadorstr {
QString nombre;
QString id;
} trabajador;
struct almacenstr {
QString nombre;
} almacen;
struct fechastr {
QString dia;
QString hora;
} fecha;
struct totalstr {
BlFixed iva;
BlFixed baseImponible;
BlFixed totalIva;
} total;
BlDbRecordSet *cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='NombreEmpresa'" );
if ( !cur->eof() )
empresa.nombre = cur->value( "valor" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='CIF'" );
if ( !cur->eof() )
empresa.nombre += "\n" + cur->value( "valor" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='DireccionCompleta'" );
if ( !cur->eof() )
empresa.direccionCompleta = cur->value( "valor" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='CodPostal'" );
if ( !cur->eof() )
empresa.codigoPostal = cur->value( "valor" ).toLatin1();
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Ciudad'" );
if ( !cur->eof() )
empresa.ciudad = cur->value( "valor" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Telefono'" );
if ( !cur->eof() )
empresa.telefono = cur->value( "valor" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Provincia'" );
if ( !cur->eof() )
empresa.provincia = cur->value( "valor" );
delete cur;
fecha.dia = QDate::currentDate().toString ( "d-M-yyyy" );
fecha.hora = QTime::currentTime().toString ( "HH:mm" );
trabajador.id = tick->dbValue ( "idtrabajador" );
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM trabajador WHERE idtrabajador=" + tick->dbValue ( "idtrabajador" ) );
if ( !cur->eof() )
trabajador.nombre = cur->value( "nomtrabajador" );
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM cliente WHERE idcliente=" + tick->dbValue ( "idcliente" ) );
if ( !cur->eof() ) {
if (cur->value("idcliente") != g_confpr->value(CONF_IDCLIENTE_DEFECTO)) {
cliente.cif = cur->value( "cifcliente" ).toLatin1();
cliente.nombre = cur->value( "nomcliente" ).toLatin1();
} else {
cliente.cif = "";
cliente.nombre = "";
} // end if
} // end if
delete cur;
cur = tick->mainCompany() ->loadQuery ( "SELECT * FROM almacen WHERE idalmacen=" + tick->dbValue ( "idalmacen" ) );
if ( !cur->eof() )
almacen.nombre = cur->value( "nomalmacen" ).toLatin1() ;
delete cur;
BlDbRecord *linea;
//.........这里部分代码省略.........
示例15: BtTicket_imprimir
int BtTicket_imprimir(BtTicket *tick)
{
BlDebug::blDebug("pluginbt_aliastallasycolores::BtTicket_imprimir",0);
if ( tick->listaLineas()->size() ) {
if( tick->listaLineas()->at ( 0 )->exists ( "pvpivainclalbaran" ) ) {
BtTicket_imprimirIVAInc(tick);
BlDebug::blDebug("END pluginbt_aliastallasycolores::BtTicket_imprimir",0);
return -1;
} // end if
} else {
BlDebug::blDebug("END pluginbt_aliastallasycolores::BtTicket_imprimir",0);
return -1;
} // end if
struct empresastr {
QString nombre;
QString direccionCompleta;
QString codigoPostal;
QString ciudad;
QString provincia;
QString telefono;
} empresa;
struct clientestr {
QString cif;
QString nombre;
} cliente;
struct trabajadorstr {
QString nombre;
QString id;
} trabajador;
struct almacenstr {
QString nombre;
} almacen;
struct fechastr {
QString dia;
QString hora;
} fecha;
struct totalstr {
BlFixed iva;
BlFixed baseImponible;
BlFixed totalIva;
} total;
BlDbRecordSet *cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='NombreEmpresa'" );
if ( !cur->eof() )
empresa.nombre = cur->value( "valor" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='CIF'" );
if ( !cur->eof() )
empresa.nombre += "\n" + cur->value( "valor" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='DireccionCompleta'" );
if ( !cur->eof() )
empresa.direccionCompleta = cur->value( "valor" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='CodPostal'" );
if ( !cur->eof() )
empresa.codigoPostal = cur->value( "valor" ).toLatin1();
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Ciudad'" );
if ( !cur->eof() )
empresa.ciudad = cur->value( "valor" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Telefono'" );
if ( !cur->eof() )
empresa.telefono = cur->value( "valor" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM configuracion WHERE nombre='Provincia'" );
if ( !cur->eof() )
empresa.provincia = cur->value( "valor" );
delete cur;
fecha.dia = QDate::currentDate().toString ( "d-M-yyyy" );
fecha.hora = QTime::currentTime().toString ( "HH:mm" );
trabajador.id = tick->dbValue ( "idtrabajador" );
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM trabajador WHERE idtrabajador=" + tick->dbValue ( "idtrabajador" ) );
if ( !cur->eof() )
trabajador.nombre = cur->value( "nomtrabajador" );
delete cur;
cur = tick->mainCompany()->loadQuery ( "SELECT * FROM cliente WHERE idcliente=" + tick->dbValue ( "idcliente" ) );
if ( !cur->eof() ) {
cliente.cif = cur->value( "cifcliente" ).toLatin1();
cliente.nombre = cur->value( "nomcliente" ).toLatin1();
} // end if
delete cur;
//.........这里部分代码省略.........