FichaBf Class Reference

#include <fichabf.h>

Inheritance diagram for FichaBf:

Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase AlbaranClienteView AlbaranProveedorView AlmacenView ArticuloView BancoView ClienteView CobroView ComercialClienteView Contrato Cuadrante1View CuadranteView EFactura EFacturaRecepcion FacturaProveedorView FacturaView FamiliasView FPagoView IncidenciaComercial Inventario ListAlmacenView ListConfiguracionView ListSerieFacturaView ListTasaIVAView ListTipoIVAView ListTiposTrabajoView ListZonaComercialView MovimientosView PagoView PedidoClienteView PedidoProveedorView PresupuestoView ProveedorView RutaComercial RutaComercialIncView TarifaListView TarifaView TrabajadorView VehiculoView ZView

Public Member Functions

CompanyempresaBase ()
 FichaBf (Company *comp, QWidget *parent=0, Qt::WFlags f=0, edmode modo=EditMode)
virtual ~FichaBf ()
void setListaLineas (SubForm2Bf *form)
void setListaDescuentos (SubForm2Bf *form)
SubForm2Bfgetlistalineas ()
SubForm2Bfgetlistadescuentos ()
virtual void imprimir ()
virtual void generaRML ()
virtual void generaRML (const QString &arch)
virtual void calculaypintatotales ()
virtual void pintatotales (Fixed, Fixed, Fixed, Fixed, Fixed, Fixed)
virtual void trataTags (QString &buff)
virtual QString trataLineasDetalle (const QString &det)
 Trata las lineas de detalle encontradas dentro de los tags.
virtual QString trataLineasDescuento (const QString &det)
 Trata las lineas de descuento encontradas dentro de los tags.
virtual QString trataTotales (const QString &det)

Data Fields

SubForm2Bfm_listalineas
SubForm2Bfm_listadescuentos

Detailed Description

Definition at line 34 of file fichabf.h.


Constructor & Destructor Documentation

FichaBf::FichaBf ( Company comp,
QWidget parent = 0,
Qt::WFlags  f = 0,
edmode  modo = EditMode 
)

Parameters:
comp 
parent 
f 
modo 

Definition at line 38 of file fichabf.cpp.

References _depura(), m_listadescuentos, and m_listalineas.

00039         : Ficha(comp, parent, f, modo) {
00040     _depura("FichaBf::FichaBf", 0);
00041     m_listalineas = NULL;
00042     m_listadescuentos = NULL;
00043     _depura("END FichaBf::FichaBf", 0);
00044 }

FichaBf::~FichaBf (  )  [virtual]

Returns:

Definition at line 51 of file fichabf.cpp.

References _depura(), empresaBase(), and EmpresaBase::sacaWindow().

00051                   {
00052     _depura("FichaBf::~FichaBf", 0, this->windowTitle());
00053     empresaBase()->sacaWindow(this);
00054     _depura("END FichaBf::~FichaBf", 0);
00055 }


Member Function Documentation

Company * FichaBf::empresaBase (  )  [virtual]

Returns:

Reimplemented from PEmpresaBase.

Definition at line 62 of file fichabf.cpp.

References _depura(), and PEmpresaBase::empresaBase().

Referenced by Contrato::_company(), AlbaranClienteView::agregarFactura(), AlmacenView_AlmacenView(), ArticuloView_ArticuloView(), Contrato::borrar(), calculaypintatotales(), VehiculoView::cargar(), Contrato::cargar(), RutaComercial::cargar(), IncidenciaComercial::cargar(), TicketQToolButton::click(), ClienteView::ClienteView(), ClienteView_ClienteView(), ClienteView_ClienteView_Post(), TarifaView::companyact(), PresupuestoView::detalleArticulos(), TarifaListView::editar(), EFQToolButton::EFQToolButton(), PedidoProveedorView::generarAlbaran(), PedidoClienteView::generarAlbaran(), AlbaranClienteView::generarFactura(), AlbaranProveedorView::generarFacturaProveedor(), generaRML(), PresupuestoView::generarPedidoCliente(), BancoView::guardar(), Contrato::guardar(), FPagoView::guardar(), ArticuloView::guardarPost(), PedidoProveedorView::imprimir(), FacturaProveedorView::imprimirFacturaProveedor(), CuadranteView::inicializaCuadrante(), CuadranteView::inicializaTrabajadores(), ListConfiguracionView::ListConfiguracionView(), MovimientosView::MovimientosView(), FacturaView::on_mui_agregaralbaran_clicked(), TrabajadorView::on_mui_borrar_clicked(), BancoView::on_mui_borrar_clicked(), TarifaView::on_mui_borrar_clicked(), TarifaListView::on_mui_borrar_clicked(), FPagoView::on_mui_borrar_clicked(), CuadranteView::on_mui_calendario_customContextMenuRequested(), PedidoClienteView::on_mui_cobrar_clicked(), FacturaView::on_mui_cobrar_clicked(), AlbaranClienteView::on_mui_cobrar_clicked(), ArticuloView::on_mui_codigocompletoarticulo_editingFinished(), MovimientosView::on_mui_crear_clicked(), TarifaListView::on_mui_crear_clicked(), FPagoView::on_mui_crear_clicked(), CuadranteView::on_mui_duplicar_clicked(), CuadranteView::on_mui_editar_clicked(), ContratoView::on_mui_facturar_clicked(), TrabajadorView::on_mui_guardar_clicked(), EFactura::on_mui_guardar_clicked(), CobroView::on_mui_imprimir_clicked(), CuadranteView::on_mui_imprimir_clicked(), ClienteView::on_mui_informe_clicked(), CuadranteView::on_mui_limpiar_clicked(), TrabajadorView::on_mui_nuevo_clicked(), BancoView::on_mui_nuevo_clicked(), PedidoProveedorView::on_mui_pagar_clicked(), AlbaranProveedorView::on_mui_pagar_clicked(), EFacturaRecepcion::on_mui_recibir_clicked(), FacturaView::on_mui_veralbaranes_clicked(), FacturaProveedorView::on_mui_veralbaranes_clicked(), AlbaranClienteView::on_mui_verpedidocliente_clicked(), AlbaranProveedorView::on_mui_verpedidosproveedor_clicked(), PedidoClienteView::on_mui_verpresupuesto_clicked(), ContratoView::on_subform2_itemDoubleClicked(), TrabajadorView::pintar(), BancoView::pintar(), FPagoView::pintar(), ProveedorView::ProveedorView(), FacturaProveedorView::s_nuevoPago(), AlbaranClienteView::s_verpresupuesto(), TarifaListView::TarifaListView(), TrabajadorView_on_mui_guardar_clicked(), TrabajadorView_on_mui_lista_currentItemChanged_Post(), TrabajadorView_TrabajadorView(), TrabajadorView_TrabajadorView_Post(), trataTotales(), VehiculoView::VehiculoView(), AlbaranClienteView::~AlbaranClienteView(), AlbaranProveedorView::~AlbaranProveedorView(), ClienteView::~ClienteView(), FacturaProveedorView::~FacturaProveedorView(), FacturaView::~FacturaView(), ~FichaBf(), ListZonaComercialView::~ListZonaComercialView(), MovimientosView::~MovimientosView(), PedidoClienteView::~PedidoClienteView(), PedidoProveedorView::~PedidoProveedorView(), PresupuestoView::~PresupuestoView(), RutaComercialIncView::~RutaComercialIncView(), TarifaListView::~TarifaListView(), TarifaView::~TarifaView(), and VehiculoView::~VehiculoView().

00062                                {
00063     _depura("FichaBf::getcompany", 0);
00064     _depura("END FichaBf::getcompany", 0);
00065     return (Company *) Ficha::empresaBase();
00066 }

void FichaBf::setListaLineas ( SubForm2Bf form  ) 

Parameters:
form 

Definition at line 798 of file fichabf.cpp.

References _depura(), and m_listalineas.

Referenced by AlbaranClienteView::AlbaranClienteView(), AlbaranProveedorView::AlbaranProveedorView(), ContratoView::ContratoView(), FacturaProveedorView::FacturaProveedorView(), FacturaView::FacturaView(), PedidoClienteView::PedidoClienteView(), PedidoProveedorView::PedidoProveedorView(), and PresupuestoView::PresupuestoView().

00798                                              {
00799     _depura("FichaBf::setListaLineas", 0);
00800     m_listalineas = form;
00801     _depura("END FichaBf::setListaLineas", 0);
00802 }

void FichaBf::setListaDescuentos ( SubForm2Bf form  ) 

Parameters:
form 

Definition at line 808 of file fichabf.cpp.

References _depura(), and m_listadescuentos.

Referenced by AlbaranClienteView::AlbaranClienteView(), AlbaranProveedorView::AlbaranProveedorView(), FacturaProveedorView::FacturaProveedorView(), FacturaView::FacturaView(), PedidoClienteView::PedidoClienteView(), PedidoProveedorView::PedidoProveedorView(), and PresupuestoView::PresupuestoView().

00808                                                  {
00809     _depura("FichaBf::setListaDescuentos", 0);
00810     m_listadescuentos = form;
00811     _depura("END FichaBf::setListaDescuentos", 0);
00812 }

SubForm2Bf * FichaBf::getlistalineas (  ) 

Returns:

Reimplemented in Inventario.

Definition at line 819 of file fichabf.cpp.

References _depura(), and m_listalineas.

Referenced by AlbaranClienteView::agregarFactura(), TicketQToolButton::click(), PedidoProveedorView::generarAlbaran(), PedidoClienteView::generarAlbaran(), AlbaranClienteView::generarFactura(), AlbaranProveedorView::generarFacturaProveedor(), PresupuestoView::generarPedidoCliente(), EFQToolButtonImportar::importa_factura_ubl(), FacturaView::on_mui_agregaralbaran_clicked(), and ContratoView::on_mui_facturar_clicked().

00819                                     {
00820     _depura("FichaBf::getlistalineas", 0);
00821     _depura("END FichaBf::getlistalineas", 0);
00822     return m_listalineas;
00823 }

SubForm2Bf * FichaBf::getlistadescuentos (  ) 

Returns:

Definition at line 830 of file fichabf.cpp.

References _depura(), and m_listadescuentos.

Referenced by PedidoProveedorView::generarAlbaran(), PedidoClienteView::generarAlbaran(), AlbaranClienteView::generarFactura(), PresupuestoView::generarPedidoCliente(), and EFQToolButtonImportar::importa_factura_ubl().

00830                                         {
00831     _depura("FichaBf::getlistadescuentos", 0);
00832     _depura("END FichaBf::getlistadescuentos", 0);
00833     return m_listadescuentos;
00834 }

void FichaBf::imprimir (  )  [virtual]

Returns:

Disparamos los plugins

Reimplemented from DBRecord.

Reimplemented in BancoView, PedidoProveedorView, and TrabajadorView.

Definition at line 777 of file fichabf.cpp.

References _depura(), g_plugins, generaRML(), invocaPDF(), Plugins::lanza(), DBRecord::m_tablename, and mensajeInfo().

00777                        {
00778     _depura("FichaBf::imprimir", 0);
00779     try {
00781         int res = g_plugins->lanza("FichaBf_imprimir", this);
00782         if (res != 0) {
00783             return;
00784         } // end if
00785         generaRML();
00786         invocaPDF(m_tablename);
00787         _depura("END FichaBf::imprimir", 0);
00788     } catch (...) {
00789         mensajeInfo(tr("Error inesperado en la impresion"));
00790     } // end try
00791 }

void FichaBf::generaRML (  )  [virtual]

Definition at line 518 of file fichabf.cpp.

References _depura(), and DBRecord::m_tablename.

Referenced by EmailQToolButton::click(), ImpQToolButton::click(), and imprimir().

00518                         {
00519     _depura("FichaBf::generaRML", 0);
00520     generaRML(m_tablename + ".rml");
00521     _depura("END FichaBf::generaRML", 0);
00522 
00523 }

void FichaBf::generaRML ( const QString &  arch  )  [virtual]

Parameters:
arch archivo a generar

Disparamos los plugins

Copiamos el archivo.

Copiamos el logo

Hacemos el tratamiento avanzado de TAGS

Impresion del cliente

Impresion de la tabla de contenidos.

Contador que sirve para poner lineas de mas en caso de que sea preciso.

Impresion de las lineas

Impresion de los descuentos.

Impresion de las bases imponibles.

Rellena el primer tr de titulares.

Rellena el segundo tr de cantidades.

Impresion de los IVAS.

Impresion de los Recargos de Equivalencia.

En la version para windows hay problemas con las imagenes, por eso de momento lo dejamos asi.

Reimplemented from Ficha.

Definition at line 529 of file fichabf.cpp.

References _depura(), postgresiface2::cargacursor(), CONF_DIR_OPENREPORTS, CONF_DIR_USER, confpr, DBRecord::DBvalue(), empresaBase(), cursor2::eof(), DBRecord::exists(), Fixed::Fixed(), g_plugins, Plugins::lanza(), SubForm3::lineaat(), m_listadescuentos, m_listalineas, DBRecord::m_tablename, SubForm3::rowCount(), SubForm3::tableName(), Fixed::toQString(), trataTags(), cursor2::valor(), configuracion::valor(), Fixed::value, and XMLProtect().

00529                                            {
00530     _depura("FichaBf::generaRML", 0, arch);
00531     cursor2 *cur = NULL;
00532     try {
00534         int res = g_plugins->lanza("FichaBf_generaRML", this);
00535         if (res != 0) {
00536             return;
00537         } // end if
00538         base basesimp;
00539         base basesimpreqeq;
00540         QString archivo = confpr->valor(CONF_DIR_OPENREPORTS) + arch;
00541         QString archivod = confpr->valor(CONF_DIR_USER) + arch;
00542         QString archivologo = confpr->valor(CONF_DIR_OPENREPORTS) + "logo.jpg";
00543 
00544         Fixed irpf("0");
00545 
00546         cur = empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre = 'IRPF'");
00547         if (cur) {
00548             if (!cur->eof()) {
00549                 irpf = Fixed(cur->valor("valor"));
00550             } // end if
00551             delete cur;
00552         } // end if
00553 
00555 #ifdef WINDOWS
00556 
00557         archivo = "copy " + archivo + " " + archivod;
00558 #else
00559 
00560         archivo = "cp " + archivo + " " + archivod;
00561 #endif
00562 
00563         system (archivo.toAscii().constData());
00565 #ifdef WINDOWS
00566 
00567         archivologo = "copy " + archivologo + " " + confpr->valor(CONF_DIR_USER) + "logo.jpg";
00568 #else
00569 
00570         archivologo = "cp " + archivologo + " " + confpr->valor(CONF_DIR_USER) + "logo.jpg";
00571 #endif
00572 
00573         system(archivologo.toAscii().constData());
00574         QFile file;
00575         file.setFileName(archivod);
00576         file.open(QIODevice::ReadOnly);
00577         QTextStream stream(&file);
00578         QString buff = stream.readAll();
00579         file.close();
00580 
00582         trataTags(buff);
00583 
00584         QString fitxersortidatxt = "";
00585 
00586 
00587 
00589         QString SQLQuery = "SELECT * FROM cliente WHERE idcliente = " + DBvalue("idcliente");
00590         cur = empresaBase()->cargacursor(SQLQuery);
00591         if (!cur) throw -1;
00592         if (!cur->eof()) {
00593             buff.replace("[dircliente]", cur->valor("dircliente"));
00594             buff.replace("[poblcliente]", cur->valor("poblcliente"));
00595             buff.replace("[telcliente]", cur->valor("telcliente"));
00596             buff.replace("[nomcliente]", cur->valor("nomcliente"));
00597             buff.replace("[cifcliente]", cur->valor("cifcliente"));
00598             buff.replace("[idcliente]", cur->valor("idcliente"));
00599             buff.replace("[cpcliente]", cur->valor("cpcliente"));
00600             buff.replace("[codcliente]", cur->valor("codcliente"));
00601         } // end if
00602         delete cur;
00603 
00604         if (exists("id" + m_tablename))
00605             buff.replace("[id" + m_tablename + "]", DBvalue("id" + m_tablename));
00606         if (exists("num" + m_tablename))
00607             buff.replace("[num" + m_tablename + "]", DBvalue("num" + m_tablename));
00608         if (exists("f" + m_tablename))
00609             buff.replace("[f" + m_tablename + "]", DBvalue("f" + m_tablename));
00610         if (exists("venc" + m_tablename))
00611             buff.replace("[venc" + m_tablename + "]", DBvalue("venc" + m_tablename));
00612         if (exists("contact" + m_tablename))
00613             buff.replace("[contact" + m_tablename + "]", DBvalue("contact" + m_tablename));
00614         if (exists("tel" + m_tablename))
00615             buff.replace("[tel" + m_tablename+"]", DBvalue("tel" + m_tablename));
00616         if (exists("coment" + m_tablename))
00617             buff.replace("[coment" + m_tablename+"]", DBvalue("coment" + m_tablename));
00618         if (exists("desc" + m_tablename))
00619             buff.replace("[desc" + m_tablename + "]", DBvalue("desc" + m_tablename));
00620         if (exists("ref" + m_tablename))
00621             buff.replace("[ref" + m_tablename + "]", DBvalue("ref" + m_tablename));
00622         if (exists("codigoserie_" + m_tablename) )
00623             buff.replace("[codigoserie_" + m_tablename+"]", DBvalue("codigoserie_" + m_tablename));
00624         if (exists("fecha" + m_tablename) )
00625             buff.replace("[fecha" + m_tablename + "]", DBvalue("fecha" + m_tablename));
00627         QString l;
00628 
00630         SDBRecord *linea;
00632         for (int i = 0; i < (m_listalineas->rowCount() - 1); ++i) {
00633             linea = m_listalineas->lineaat(i);
00634             Fixed base = Fixed(linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData()) * Fixed(linea->DBvalue("pvp"+m_listalineas->tableName()).toAscii().constData());
00635             basesimp[linea->DBvalue("iva"+m_listalineas->tableName())] = basesimp[linea->DBvalue("iva"+m_listalineas->tableName())] + base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData()) / 100;
00636             basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] = basesimpreqeq[linea->DBvalue("reqeq"+m_listalineas->tableName())] + base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData()) / 100;
00637 
00638             fitxersortidatxt += "<tr>\n";
00639             fitxersortidatxt += "    <td>" + XMLProtect(linea->DBvalue("codigocompletoarticulo")) + "</td>\n";
00640             fitxersortidatxt += "    <td><para>" + XMLProtect(linea->DBvalue("desc" + m_listalineas->tableName())).replace(QChar('\n'), "</para><para>") + "</para></td>\n";
00641             fitxersortidatxt += "    <td>" + linea->DBvalue("cant" + m_listalineas->tableName()) + "</td>\n";
00642             fitxersortidatxt += "    <td>" + l.sprintf("%s", XMLProtect(linea->DBvalue("pvp" + m_listalineas->tableName())).toAscii().constData()) + "</td>\n";
00643             fitxersortidatxt += "    <td>" + l.sprintf("%s", XMLProtect(linea->DBvalue("descuento" + m_listalineas->tableName())).toAscii().constData()) + " %</td>\n";
00644             fitxersortidatxt += "    <td>" + l.sprintf("%s", (base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName())) / 100).toQString().toAscii().constData()) + "</td>\n";
00645             fitxersortidatxt += "</tr>";
00646         } // end for
00647 
00648         buff.replace("[story]", fitxersortidatxt);
00649 
00650         Fixed basei("0.00");
00651         base::Iterator it;
00652         for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00653             basei = basei + it.value();
00654         } // end for
00655 
00657         fitxersortidatxt = "";
00658         Fixed porcentt("0.00");
00659         SDBRecord *linea1;
00660         if (m_listadescuentos->rowCount() - 1) {
00661             fitxersortidatxt += "<blockTable style=\"tabladescuento\">\n";
00662             fitxersortidatxt += "<tr>\n";
00663             fitxersortidatxt += "    <td>" + QApplication::translate("Presupuesto", "Descuento") + "</td>\n";
00664             fitxersortidatxt += "    <td>" + QApplication::translate("Presupuesto", "Porcentaje") + "</td>\n";
00665             fitxersortidatxt += "    <td>" + QApplication::translate("Presupuesto", "Total Desc.") + "</td>\n";
00666             fitxersortidatxt += "</tr>\n";
00667             for (int i = 0; i < (m_listadescuentos->rowCount() - 1); ++i) {
00668                 linea1 = m_listadescuentos->lineaat(i);
00669                 porcentt = porcentt + Fixed(linea1->DBvalue("proporcion" + m_listadescuentos->tableName()).toAscii().constData());
00670                 fitxersortidatxt += "<tr>\n";
00671                 fitxersortidatxt += "    <td>" + XMLProtect(linea1->DBvalue("concept" + m_listadescuentos->tableName())) + "</td>\n";
00672                 fitxersortidatxt += "    <td>" + l.sprintf("%s", linea1->DBvalue("proporcion" + m_listadescuentos->tableName()).toAscii().constData()) + " %</td>\n";
00673                 fitxersortidatxt += "    <td>" + l.sprintf("-%s", (Fixed(linea1->DBvalue("proporcion" + m_listadescuentos->tableName())) * basei / 100).toQString().toAscii().constData()) + "</td>\n";
00674                 fitxersortidatxt += "</tr>";
00675             } // end for
00676             fitxersortidatxt += "</blockTable>\n";
00677         } // end if
00678         buff.replace("[descuentos]", fitxersortidatxt);
00679 
00681         fitxersortidatxt = "";
00682         QString tr1 = ""; 
00683         QString tr2 = ""; 
00684         fitxersortidatxt += "<blockTable style=\"tabladescuento\" >\n";
00685         Fixed totbaseimp("0.00");
00686         Fixed parbaseimp("0.00");
00687         Fixed totdesc("0.00");
00688         for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00689             if (porcentt > 0) {
00690                 parbaseimp = it.value() - it.value() * porcentt / 100;
00691                 totdesc = totdesc + it.value() * porcentt / 100;
00692             } else {
00693                 parbaseimp = it.value();
00694             } // end if
00695             totbaseimp = totbaseimp + parbaseimp;
00696             tr1 += "    <td>" + QApplication::translate("Presupuesto", "Base Imponible") + " " + XMLProtect(it.key()) + " %</td>\n";
00697             tr2 += "    <td>" + l.sprintf(" %s ", parbaseimp.toQString().toAscii().constData()) + "</td>\n";
00698         } // end for
00699 
00701         Fixed totiva("0.0");
00702         Fixed pariva("0.0");
00703         for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00704             if (porcentt > 0) {
00705                 pariva = (it.value() - it.value() * porcentt / 100) * Fixed(it.key()) / 100;
00706             } else {
00707                 pariva = it.value() * Fixed(it.key()) / 100;
00708             } // end if
00709             totiva = totiva + pariva;
00710             tr1 += "    <td>" + QApplication::translate("Presupuesto", "I.V.A.") + " " + XMLProtect(it.key()) + " %</td>\n";
00711             tr2 += "    <td>" + l.sprintf(" %s ", pariva.toQString().toAscii().constData()) + "</td>\n";
00712         } // end for
00713 
00715         Fixed totreqeq("0.0");
00716         Fixed parreqeq("0.0");
00717         for (it = basesimpreqeq.begin(); it != basesimpreqeq.end(); ++it) {
00718             if (porcentt > 0) {
00719                 parreqeq = (it.value() - it.value() * porcentt / 100) * Fixed(it.key()) / 100;
00720             } else {
00721                 parreqeq = it.value() * Fixed(it.key()) / 100;
00722             } // end if
00723             totreqeq = totreqeq + parreqeq;
00724             if (parreqeq > 0) {
00725                 tr1 += "    <td>" + QApplication::translate("Presupuesto", "R.E.") + " " + XMLProtect(it.key()) + " %</td>\n";
00726                 tr2 += "    <td>" + l.sprintf(" %s ", parreqeq.toQString().toAscii().constData()) + "</td>\n";
00727             } // end if
00728         } // end for
00729 
00730         Fixed totirpf = totbaseimp * irpf / 100;
00731         if (totirpf > 0) {
00732             tr1 += "    <td>" + QApplication::translate("Presupuesto", "I.R.P.F (-") + " " + XMLProtect(irpf.toQString()) + ") %</td>\n";
00733             tr2 += "    <td>" + l.sprintf(" %s ", totirpf.toQString().toAscii().constData()) + "</td>\n";
00734         } // end if
00735 
00736         tr1 += "    <td>" + QApplication::translate("Presupuesto", "Total") + "</td>\n";
00737         tr2 += "    <td>" + l.sprintf(" %s ", (totiva + totbaseimp + totreqeq - totirpf).toQString().toAscii().constData()) + "</td>\n";
00738         fitxersortidatxt += "<tr>" + tr1 + "</tr><tr>" + tr2 + "</tr></blockTable>\n";
00739         buff.replace("[totales]", fitxersortidatxt);
00740 
00741 
00742 
00743         buff.replace("[irpf]", totirpf.toQString());
00744         buff.replace("[tirpf]", irpf.toQString());
00745         buff.replace("[totalre]", totreqeq.toQString());
00746         buff.replace("[teoricbimp]", basei.toQString());
00747         buff.replace("[totalbimp]", totbaseimp.toQString());
00748         buff.replace("[totaldesc]", totdesc.toQString());
00749         buff.replace("[totaliva]", totiva.toQString());
00750         buff.replace("[total]", (totiva + totbaseimp + totreqeq - totirpf).toQString().toAscii().constData());
00751 
00752 
00755 #ifndef WINDOWS
00756         //   buff.replace("[detallearticulos]", detalleArticulos());
00757 #endif
00758 
00759         if (file.open(QIODevice::WriteOnly)) {
00760             QTextStream stream(&file);
00761             stream << buff;
00762             file.close();
00763         } // end if
00764 
00765         _depura("END FichaBf::generaRML", 0);
00766     } catch (...) {
00767         if (cur) delete cur;
00768         throw -1;
00769     } // end try
00770 }

void FichaBf::calculaypintatotales (  )  [virtual]

Returns:

Impresion de los contenidos.

Calculamos el total de los descuentos.

Calculamos el total de base imponible.

Calculamos el total de IVA.

Calculamos el total de recargo de equivalencia.

Definition at line 75 of file fichabf.cpp.

References _depura(), postgresiface2::cargacursor(), DBRecord::DBvalue(), empresaBase(), cursor2::eof(), DBRecord::exists(), Fixed::Fixed(), SubForm3::lineaat(), m_listadescuentos, m_listalineas, pintatotales(), SubForm3::rowCount(), SubForm3::tableName(), cursor2::valor(), and Fixed::value.

Referenced by AlbaranClienteView::agregarFactura(), PresupuestoView::cargarPost(), PedidoProveedorView::cargarPost(), PedidoClienteView::cargarPost(), FacturaView::cargarPost(), FacturaProveedorView::cargarPost(), AlbaranProveedorView::cargarPost(), AlbaranClienteView::cargarPost(), AlbaranClienteView::generarFactura(), AlbaranProveedorView::generarFacturaProveedor(), EFQToolButtonImportar::importa_factura_ubl(), PresupuestoView::on_m_descuentos_editFinish(), PedidoClienteView::on_m_descuentos_editFinish(), FacturaView::on_m_descuentos_editFinish(), FacturaProveedorView::on_m_descuentos_editFinish(), AlbaranProveedorView::on_m_descuentos_editFinish(), AlbaranClienteView::on_m_descuentos_editFinish(), FacturaView::on_mui_agregaralbaran_clicked(), PedidoProveedorView::on_mui_descuentos_editFinish(), ContratoView::on_mui_facturar_clicked(), PedidoProveedorView::on_mui_lineasDetalle_editFinish(), PresupuestoView::on_subform2_editFinish(), FacturaView::on_subform2_editFinish(), FacturaProveedorView::on_subform2_editFinish(), AlbaranProveedorView::on_subform2_editFinish(), AlbaranClienteView::on_subform2_editFinish(), PedidoClienteView::on_subform3_editFinish(), PresupuestoView::s_pintaTotales(), PedidoClienteView::s_pintaTotales(), and AlbaranClienteView::s_pintaTotales().

00075                                    {
00076     _depura("FichaBf::calculaypintatotales", 0);
00077     base basesimp;
00078     base basesimpreqeq;
00079     SDBRecord *linea;
00081     QString l;
00082     Fixed irpf("0");
00083 
00084     cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre = 'IRPF'");
00085     if (cur) {
00086         if (!cur->eof()) {
00087             irpf = Fixed(cur->valor("valor"));
00088         } // end if
00089         delete cur;
00090     } // end if
00091 
00092     if (exists("idproveedor") && DBvalue("idproveedor") != "") {
00093         cur = empresaBase()->cargacursor("SELECT irpfproveedor FROM proveedor WHERE idproveedor = " + DBvalue("idproveedor"));
00094         if (cur) {
00095             if (!cur->eof()) {
00096                 irpf = Fixed(cur->valor("irpfproveedor"));
00097             } // end if
00098             delete cur;
00099         } // end if
00100     } // end if
00101 
00102     Fixed descuentolinea("0.00");
00103     for (int i = 0; i < m_listalineas->rowCount(); ++i) {
00104         linea = m_listalineas->lineaat(i);
00105         Fixed cant(linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData());
00106         Fixed pvpund(linea->DBvalue("pvp" + m_listalineas->tableName()).toAscii().constData());
00107         Fixed desc1(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData());
00108         Fixed cantpvp = cant * pvpund;
00109         Fixed base = cantpvp - cantpvp * desc1 / 100;
00110         descuentolinea = descuentolinea + (cantpvp * desc1 / 100);
00111         basesimp[linea->DBvalue("iva" + m_listalineas->tableName())] = basesimp[linea->DBvalue("iva" + m_listalineas->tableName())] + base;
00112         basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] = basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] + base;
00113     } // end for
00114 
00115     Fixed basei("0.00");
00116     base::Iterator it;
00117     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00118         basei = basei + it.value();
00119     } // end for
00120 
00122     Fixed porcentt("0.00");
00123     SDBRecord *linea1;
00124     if (m_listadescuentos->rowCount()) {
00125         for (int i = 0; i < m_listadescuentos->rowCount(); ++i) {
00126             linea1 = m_listadescuentos->lineaat(i);
00127             Fixed propor(linea1->DBvalue("proporcion" + m_listadescuentos->tableName()).toAscii().constData());
00128             porcentt = porcentt + propor;
00129         } // end for
00130     } // end if
00131 
00133     Fixed totbaseimp("0.00");
00134     Fixed parbaseimp("0.00");
00135     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00136         if (porcentt > Fixed("0.00")) {
00137             parbaseimp = it.value() - it.value() * porcentt / 100;
00138         } else {
00139             parbaseimp = it.value();
00140         } // end if
00141         totbaseimp = totbaseimp + parbaseimp;
00142     } // end for
00143 
00145     Fixed totiva("0.00");
00146     Fixed pariva("0.00");
00147     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00148         Fixed piva(it.key().toAscii().constData());
00149         if (porcentt > Fixed("0.00")) {
00150             pariva = (it.value() - it.value() * porcentt / 100) * piva / 100;
00151         } else {
00152             pariva = it.value() * piva / 100;
00153         } // end if
00154         totiva = totiva + pariva;
00155     } // end for
00156 
00158     Fixed totreqeq("0.00");
00159     Fixed parreqeq("0.00");
00160     for (it = basesimpreqeq.begin(); it != basesimpreqeq.end(); ++it) {
00161         Fixed preqeq(it.key().toAscii().constData());
00162         if (porcentt > Fixed("0.00")) {
00163             parreqeq = (it.value() - it.value() * porcentt / 100) * preqeq / 100;
00164         } else {
00165             parreqeq = it.value() * preqeq / 100;
00166         } // end if
00167         totreqeq = totreqeq + parreqeq;
00168     } // end for
00169 
00170     Fixed totirpf = totbaseimp * irpf / 100;
00171     pintatotales(totiva, totbaseimp, totiva + totbaseimp + totreqeq - totirpf, (basei * porcentt / 100) + descuentolinea, totirpf, totreqeq);
00172     _depura("FichaBf::calculaypintatotales", 0);
00173 }

virtual void FichaBf::pintatotales ( Fixed  ,
Fixed  ,
Fixed  ,
Fixed  ,
Fixed  ,
Fixed   
) [inline, virtual]

Reimplemented in AlbaranClienteView, AlbaranProveedorView, FacturaProveedorView, FacturaView, PedidoClienteView, PedidoProveedorView, and PresupuestoView.

Definition at line 53 of file fichabf.h.

Referenced by calculaypintatotales().

00053 {};

void FichaBf::trataTags ( QString &  buff  )  [virtual]

Parameters:
buff El texto entero sobre el que se hace el reemplazo de sentencias.

Buscamos algo de lineas de detalle

Buscamos Si hay descuentos en condicional

Buscamos lineas de descuento

Buscamos lineas de totales

Reimplemented from Ficha.

Definition at line 181 of file fichabf.cpp.

References _depura(), m_listadescuentos, SubForm3::rowCount(), trataLineasDescuento(), trataLineasDetalle(), Ficha::trataTags(), trataTotales(), and TRUE.

Referenced by generaRML().

00181                                      {
00182     _depura("FichaBf::trataTags", 0);
00183     int pos =  0;
00184 
00186     QRegExp rx("<!--\\s*LINEAS\\s*DETALLE\\s*-->(.*)<!--\\s*END\\s*LINEAS\\s*DETALLE\\s*-->");
00187     rx.setMinimal(TRUE);
00188     while ((pos = rx.indexIn(buff, pos)) != -1) {
00189         QString ldetalle = trataLineasDetalle(rx.cap(1));
00190         buff.replace(pos, rx.matchedLength(), ldetalle);
00191         pos = 0;
00192     } // end while
00193 
00195     pos = 0;
00196     QRegExp rx3("<!--\\s*IF\\s*DESCUENTOS\\s*-->(.*)<!--\\s*END\\s*IF\\s*DESCUENTOS\\s*-->");
00197     rx3.setMinimal(TRUE);
00198     while ((pos = rx3.indexIn(buff, pos)) != -1) {
00199         if (m_listadescuentos->rowCount() -1 <= 0) {
00200             buff.replace(pos, rx3.matchedLength(), "");
00201             pos = 0;
00202         } else {
00203             pos += rx3.matchedLength();
00204         } // end if
00205     } // end while
00206 
00208     pos = 0;
00209     QRegExp rx2("<!--\\s*LINEAS\\s*DESCUENTO\\s*-->(.*)<!--\\s*END\\s*LINEAS\\s*DESCUENTO\\s*-->");
00210     rx2.setMinimal(TRUE);
00211     while ((pos = rx2.indexIn(buff, pos)) != -1) {
00212         QString ldetalle = trataLineasDescuento(rx2.cap(1));
00213         buff.replace(pos, rx2.matchedLength(), ldetalle);
00214         pos = 0;
00215     } // end while
00216 
00218     pos = 0;
00219     QRegExp rx5("<!--\\s*TOTALES\\s*-->(.*)<!--\\s*END\\s*TOTALES\\s*-->");
00220     rx5.setMinimal(TRUE);
00221     while ((pos = rx5.indexIn(buff, pos)) != -1) {
00222         QString ldetalle = trataTotales(rx5.cap(1));
00223         buff.replace(pos, rx5.matchedLength(), ldetalle);
00224         pos = 0;
00225     } // end while
00226 
00227     Ficha::trataTags(buff);
00228 
00229     _depura("END FichaBf::trataTags", 0);
00230 }

QString FichaBf::trataLineasDetalle ( const QString &  det  )  [virtual]

Trata las lineas de detalle encontradas dentro de los tags.

Parameters:
det Texto de entrada para ser tratado por iteracion.
Returns:

Contador que sirve para poner lineas de mas en caso de que sea preciso.

Impresion de las lineas

Los saltos de carro se deben tratar de modo especial ya que RML no los contempla bien.

Buscamos cadenas perdidas adicionales que puedan quedar por poner.

Definition at line 241 of file fichabf.cpp.

References _depura(), DBRecord::DBvalue(), DBRecord::exists(), Fixed::Fixed(), SubForm3::lineaat(), m_listalineas, SubForm3::rowCount(), SubForm3::tableName(), Fixed::toQString(), and XMLProtect().

Referenced by trataTags().

00241                                                       {
00242     _depura("FichaBf::trataLineasDetalle", 0);
00243     QString result = "";
00244 
00246     SDBRecord *linea;
00248     for (int i = 0; i < (m_listalineas->rowCount() - 1); ++i) {
00249         QString salidatemp = det;
00250         linea = m_listalineas->lineaat(i);
00251         Fixed base = Fixed(linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData()) * Fixed(linea->DBvalue("pvp"+m_listalineas->tableName()).toAscii().constData());
00252         QString l;
00253 
00255         QString desc = linea->DBvalue("desc" + m_listalineas->tableName());
00256         QStringList descp = desc.split("\n");
00257         QString desc1 = "";
00258         for (int i = 0; i < descp.size(); ++i) {
00259             if (descp[i] != "") {
00260                 if (descp[i].startsWith(" ")) {
00261                     desc1 += "<pre>" + XMLProtect(descp[i]) + "</pre>\n";
00262                 } else {
00263                    desc1 += "<para>" + XMLProtect(descp[i]) + "</para>\n";
00264                 } // end if
00265             } else {
00266                desc1 += "<spacer length=\"0.1cm\"/>\n";
00267             } // end if
00268         } // end for
00269 
00270 
00271         salidatemp.replace("[desc"+m_listalineas->tableName()+"]", desc1);
00272 
00273         salidatemp.replace("[cant" + m_listalineas->tableName()+"]", l.sprintf("%s", linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData()));
00274         salidatemp.replace("[pvp" + m_listalineas->tableName()+"]", l.sprintf("%s", XMLProtect(linea->DBvalue("pvp" + m_listalineas->tableName())).toAscii().constData()));
00275         salidatemp.replace("[descuento" + m_listalineas->tableName()+"]" , l.sprintf("%s", XMLProtect(linea->DBvalue("descuento" + m_listalineas->tableName())).toAscii().constData()));
00276         salidatemp.replace("[total" + m_listalineas->tableName()+"]" , l.sprintf("%s", (base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName())) / 100).toQString().toAscii().constData()));
00277 
00279         QRegExp rx("\\[(\\w*)\\]");
00280         int pos =  0;
00281         while ((pos = rx.indexIn(salidatemp, pos)) != -1) {
00282             if (linea->exists(rx.cap(1))) {
00283                 salidatemp.replace(pos, rx.matchedLength(), linea->DBvalue(rx.cap(1)));
00284                 pos = 0;
00285             } else {
00286                 pos += rx.matchedLength();
00287             }
00288         } // end while
00289 
00290         result += salidatemp;
00291     } // end for
00292     _depura("END FichaBf::trataLineasDetalle", 0);
00293     return result;
00294 }

QString FichaBf::trataLineasDescuento ( const QString &  det  )  [virtual]

Trata las lineas de descuento encontradas dentro de los tags.

Parameters:
det Texto de entrada para ser tratado por iteracion.
Returns:

Calculamos la base imponible

Impresion de las lineas

Contador que sirve para poner lineas de mas en caso de que sea preciso.

Impresion de las lineas

Buscamos cadenas perdidas adicionales que puedan quedar por poner.

Definition at line 302 of file fichabf.cpp.

References _depura(), DBRecord::DBvalue(), DBRecord::exists(), Fixed::Fixed(), SubForm3::lineaat(), m_listadescuentos, m_listalineas, SubForm3::rowCount(), SubForm3::tableName(), Fixed::toQString(), and XMLProtect().

Referenced by trataTags().

00302                                                         {
00303     _depura("FichaBf::trataLineasDescuento", 0);
00304     QString result = "";
00305 
00306     base basesimp;
00307     base basesimpreqeq;
00308 
00310     SDBRecord *linea;
00312     for (int i = 0; i < (m_listalineas->rowCount() - 1); ++i) {
00313         linea = m_listalineas->lineaat(i);
00314         Fixed base = Fixed(linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData()) * Fixed(linea->DBvalue("pvp"+m_listalineas->tableName()).toAscii().constData());
00315         basesimp[linea->DBvalue("iva"+m_listalineas->tableName())] = basesimp[linea->DBvalue("iva"+m_listalineas->tableName())] + base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData()) / 100;
00316         basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] = basesimpreqeq[linea->DBvalue("reqeq"+m_listalineas->tableName())] + base - base * Fixed(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData()) / 100;
00317 
00318     } // end for
00319 
00320     Fixed basei("0.00");
00321     base::Iterator it;
00322     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00323         basei = basei + it.value();
00324     } // end for
00325 
00327     SDBRecord *linea1;
00329     for (int i = 0; i < (m_listadescuentos->rowCount() - 1); ++i) {
00330         QString salidatemp = det;
00331         linea1 = m_listadescuentos->lineaat(i);
00332         QString l;
00333         salidatemp.replace("[concept"+ m_listadescuentos->tableName()+"]", XMLProtect(linea1->DBvalue("concept" + m_listadescuentos->tableName())));
00334         salidatemp.replace("[proporciondesc" + m_listadescuentos->tableName()+"]", l.sprintf("%s", linea1->DBvalue("proporcion" + m_listadescuentos->tableName()).toAscii().constData()));
00335         salidatemp.replace("[totaldesc" + m_listadescuentos->tableName()+"]", l.sprintf("-%s", (Fixed(linea1->DBvalue("proporcion" + m_listadescuentos->tableName())) * basei / 100).toQString().toAscii().constData()));
00336 
00338         QRegExp rx("\\[(\\w*)\\]");
00339         int pos =  0;
00340         while ((pos = rx.indexIn(salidatemp, pos)) != -1) {
00341             if (linea1->exists(rx.cap(1))) {
00342                 salidatemp.replace(pos, rx.matchedLength(), linea1->DBvalue(rx.cap(1)));
00343                 pos = 0;
00344             } else {
00345                 pos += rx.matchedLength();
00346             }
00347         } // end while
00348 
00349         result += salidatemp;
00350     } // end for
00351     _depura("END FichaBf::trataLineasDescuento", 0);
00352     return result;
00353 }

QString FichaBf::trataTotales ( const QString &  det  )  [virtual]

Returns:

Impresion de los contenidos.

Calculamos el total de los descuentos.

Calculamos el total de base imponible.

Calculamos el total de IVA.

Calculamos el total de recargo de equivalencia.

Definition at line 362 of file fichabf.cpp.

References _depura(), postgresiface2::cargacursor(), DBRecord::DBvalue(), empresaBase(), cursor2::eof(), DBRecord::exists(), Fixed::Fixed(), SubForm3::lineaat(), m_listadescuentos, m_listalineas, SubForm3::rowCount(), SubForm3::tableName(), Fixed::toQString(), cursor2::valor(), and Fixed::value.

Referenced by trataTags().

00362                                                 {
00363     _depura("FichaBf::trataTotales", 0);
00364     QString result = "";
00365     QString salidatemp = "";
00366     base basesimp;
00367     base basesimpreqeq;
00368     SDBRecord *linea;
00370     QString l;
00371     Fixed irpf("0");
00372 
00373     cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre = 'IRPF'");
00374     if (cur) {
00375         if (!cur->eof()) {
00376             irpf = Fixed(cur->valor("valor"));
00377         } // end if
00378         delete cur;
00379     } // end if
00380 
00381     if (exists("idproveedor") && DBvalue("idproveedor") != "") {
00382         cur = empresaBase()->cargacursor("SELECT irpfproveedor FROM proveedor WHERE idproveedor = " + DBvalue("idproveedor"));
00383         if (cur) {
00384             if (!cur->eof()) {
00385                 irpf = Fixed(cur->valor("irpfproveedor"));
00386             } // end if
00387             delete cur;
00388         } // end if
00389     } // end if
00390 
00391     Fixed descuentolinea("0.00");
00392     for (int i = 0; i < m_listalineas->rowCount() -1; ++i) {
00393         linea = m_listalineas->lineaat(i);
00394         Fixed cant(linea->DBvalue("cant" + m_listalineas->tableName()).toAscii().constData());
00395         Fixed pvpund(linea->DBvalue("pvp" + m_listalineas->tableName()).toAscii().constData());
00396         Fixed desc1(linea->DBvalue("descuento" + m_listalineas->tableName()).toAscii().constData());
00397         Fixed cantpvp = cant * pvpund;
00398         Fixed base = cantpvp - cantpvp * desc1 / 100;
00399         descuentolinea = descuentolinea + (cantpvp * desc1 / 100);
00400         basesimp[linea->DBvalue("iva" + m_listalineas->tableName())] = basesimp[linea->DBvalue("iva" + m_listalineas->tableName())] + base;
00401         basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] = basesimpreqeq[linea->DBvalue("reqeq" + m_listalineas->tableName())] + base;
00402     } // end for
00403 
00404     Fixed basei("0.00");
00405     base::Iterator it;
00406     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00407         basei = basei + it.value();
00408     } // end for
00409 
00411     Fixed porcentt("0.00");
00412     SDBRecord *linea1;
00413     if (m_listadescuentos->rowCount()) {
00414         for (int i = 0; i < m_listadescuentos->rowCount(); ++i) {
00415             linea1 = m_listadescuentos->lineaat(i);
00416             Fixed propor(linea1->DBvalue("proporcion" + m_listadescuentos->tableName()).toAscii().constData());
00417             porcentt = porcentt + propor;
00418         } // end for
00419     } // end if
00420 
00422     Fixed totbaseimp("0.00");
00423     Fixed parbaseimp("0.00");
00424     Fixed totdesc("0.00");
00425     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00426         if (porcentt > Fixed("0.00")) {
00427             parbaseimp = it.value() - it.value() * porcentt / 100;
00428             totdesc = totdesc + it.value() * porcentt / 100;
00429         } else {
00430             parbaseimp = it.value();
00431         } // end if
00432         totbaseimp = totbaseimp + parbaseimp;
00433     } // end for
00434 
00436     Fixed totiva("0.00");
00437     Fixed pariva("0.00");
00438     for (it = basesimp.begin(); it != basesimp.end(); ++it) {
00439         Fixed piva(it.key().toAscii().constData());
00440         if (porcentt > Fixed("0.00")) {
00441             pariva = (it.value() - it.value() * porcentt / 100) * piva / 100;
00442         } else {
00443             pariva = it.value() * piva / 100;
00444         } // end if
00445         totiva = totiva + pariva;
00446     } // end for
00447 
00449     Fixed totreqeq("0.00");
00450     Fixed parreqeq("0.00");
00451     for (it = basesimpreqeq.begin(); it != basesimpreqeq.end(); ++it) {
00452         Fixed preqeq(it.key().toAscii().constData());
00453         if (porcentt > Fixed("0.00")) {
00454             parreqeq = (it.value() - it.value() * porcentt / 100) * preqeq / 100;
00455         } else {
00456             parreqeq = it.value() * preqeq / 100;
00457         } // end if
00458         totreqeq = totreqeq + parreqeq;
00459     } // end for
00460 
00461     Fixed totirpf = totbaseimp * irpf / 100;
00462 
00463     base::Iterator ot;
00464     base::Iterator at;
00465     at = basesimpreqeq.begin();
00466     for (ot = basesimp.begin(); ot != basesimp.end(); ++ot) {
00467         salidatemp = det;
00468         if (porcentt > Fixed("0.00")) {
00469             parbaseimp = ot.value() - ot.value() * porcentt / 100;
00470         } else {
00471             parbaseimp = ot.value();
00472         } // end if
00473         salidatemp.replace("[bimp]", parbaseimp.toQString());
00474         salidatemp.replace("[tbimp]", ot.key());
00475 
00476         Fixed piva(ot.key().toAscii().constData());
00477         if (porcentt > Fixed("0.00")) {
00478             pariva = (ot.value() - ot.value() * porcentt / 100) * piva / 100;
00479         } else {
00480             pariva = ot.value() * piva / 100;
00481         } // end if
00482         salidatemp.replace("[iva]", pariva.toQString());
00483         salidatemp.replace("[tiva]", ot.key());
00484 
00485         // Recargos de equivalencia
00486         Fixed preqeq(at.key().toAscii().constData());
00487         if (porcentt > Fixed("0.00")) {
00488             parreqeq = (at.value() - at.value() * porcentt / 100) * preqeq / 100;
00489         } else {
00490             parreqeq = at.value() * preqeq / 100;
00491         } // end if
00492         salidatemp.replace("[re]", parreqeq.toQString());
00493         salidatemp.replace("[tre]", at.key());
00494 
00495         salidatemp.replace("[irpf]", totirpf.toQString());
00496         salidatemp.replace("[tirpf]", irpf.toQString());
00497 
00498         salidatemp.replace("[totalre]", totreqeq.toQString());
00499         salidatemp.replace("[teoricbimp]", basei.toQString());
00500         salidatemp.replace("[totalbimp]", totbaseimp.toQString());
00501         salidatemp.replace("[totaldesc]", totdesc.toQString());
00502         salidatemp.replace("[totaliva]", totiva.toQString());
00503         salidatemp.replace("[total]", (totiva + totbaseimp + totreqeq - totirpf).toQString().toAscii().constData());
00504 
00505         result += salidatemp;
00506         ++at;
00507     } // end for
00508 
00509     _depura("END FichaBf::trataTotales", 0);
00510     return result;
00511 }


Field Documentation

SubForm2Bf* FichaBf::m_listalineas

Definition at line 38 of file fichabf.h.

Referenced by AlbaranClienteView::agregarFactura(), Contrato::borrar(), PresupuestoView::borrarPre(), PedidoProveedorView::borrarPre(), PedidoClienteView::borrarPre(), FacturaView::borrarPre(), FacturaProveedorView::borrarPre(), AlbaranProveedorView::borrarPre(), AlbaranClienteView::borrarPre(), calculaypintatotales(), Contrato::cargar(), PresupuestoView::cargarPost(), PedidoProveedorView::cargarPost(), PedidoClienteView::cargarPost(), FacturaView::cargarPost(), FacturaProveedorView::cargarPost(), AlbaranProveedorView::cargarPost(), AlbaranClienteView::cargarPost(), FichaBf(), PedidoProveedorView::generarAlbaran(), PedidoClienteView::generarAlbaran(), AlbaranClienteView::generarFactura(), AlbaranProveedorView::generarFacturaProveedor(), generaRML(), PresupuestoView::generarPedidoCliente(), getlistalineas(), Contrato::guardar(), PresupuestoView::guardarPost(), PedidoProveedorView::guardarPost(), PedidoClienteView::guardarPost(), FacturaView::guardarPost(), FacturaProveedorView::guardarPost(), AlbaranProveedorView::guardarPost(), AlbaranClienteView::guardarPost(), PedidoProveedorView::imprimir(), FacturaProveedorView::imprimirFacturaProveedor(), ContratoView::on_mui_facturar_clicked(), Contrato::pintar(), setListaLineas(), trataLineasDescuento(), trataLineasDetalle(), and trataTotales().

SubForm2Bf* FichaBf::m_listadescuentos

Definition at line 39 of file fichabf.h.

Referenced by PresupuestoView::borrarPre(), PedidoProveedorView::borrarPre(), PedidoClienteView::borrarPre(), FacturaView::borrarPre(), FacturaProveedorView::borrarPre(), AlbaranProveedorView::borrarPre(), AlbaranClienteView::borrarPre(), calculaypintatotales(), PresupuestoView::cargarPost(), PedidoProveedorView::cargarPost(), PedidoClienteView::cargarPost(), FacturaView::cargarPost(), FacturaProveedorView::cargarPost(), AlbaranProveedorView::cargarPost(), AlbaranClienteView::cargarPost(), FichaBf(), PedidoProveedorView::generarAlbaran(), PedidoClienteView::generarAlbaran(), AlbaranClienteView::generarFactura(), generaRML(), PresupuestoView::generarPedidoCliente(), getlistadescuentos(), PresupuestoView::guardarPost(), PedidoProveedorView::guardarPost(), PedidoClienteView::guardarPost(), FacturaView::guardarPost(), FacturaProveedorView::guardarPost(), AlbaranProveedorView::guardarPost(), AlbaranClienteView::guardarPost(), PedidoProveedorView::imprimir(), FacturaProveedorView::imprimirFacturaProveedor(), setListaDescuentos(), trataLineasDescuento(), trataTags(), and trataTotales().


The documentation for this class was generated from the following files:
Generated on Sat Dec 15 00:01:54 2007 for BulmaGes by  doxygen 1.5.1