Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

cashboxcount.ui.h

00001 /****************************************************************************
00002 ** ui.h extension file, included from the uic-generated form implementation.
00003 **
00004 ** If you wish to add, delete or rename functions or slots use
00005 ** Qt Designer which will update this file, preserving your code. Create an
00006 ** init() function in place of a constructor, and a destroy() function in
00007 ** place of a destructor.
00008 *****************************************************************************/
00009 
00010 void CashboxCount::init()
00011 {
00012     // Preparing coinTable
00013     coinTable->setLeftMargin(0) ;
00014     coinTable->setColumnReadOnly( 0, TRUE ) ;
00015     coinTable->setColumnReadOnly( 2, TRUE ) ;
00016     coinTable->setColumnWidth( 1, 60 ) ;
00017     coinTable->setColumnWidth( 2, 80 ) ;
00018     coinTable->setColumnStretchable( 0, TRUE ) ;
00019 
00020     coinTable->setNumRows( 8 ) ;
00021     coinTable->setText( 0, 0, "2 Euro" ) ;
00022     coinTable->setText( 1, 0, "1 Euro" ) ;
00023     coinTable->setText( 2, 0, "50 cts" ) ;
00024     coinTable->setText( 3, 0, "20 cts" ) ;
00025     coinTable->setText( 4, 0, "10 cts" ) ;
00026     coinTable->setText( 5, 0, "5 cts" ) ;
00027     coinTable->setText( 6, 0, "2 cts" ) ;
00028     coinTable->setText( 7, 0, "1 ct" ) ;
00029     
00030     // Preparing notesTable
00031     notesTable->setLeftMargin(0) ;
00032     notesTable->setColumnReadOnly( 0, TRUE ) ;
00033     notesTable->setColumnReadOnly( 2, TRUE ) ;
00034     notesTable->setColumnWidth( 1, 60 ) ;
00035     notesTable->setColumnWidth( 2, 80 ) ;
00036     notesTable->setColumnStretchable( 0, TRUE ) ;
00037     
00038     notesTable->setNumRows( 8 ) ;
00039     notesTable->setText( 0, 0, "5 Euro" ) ;
00040     notesTable->setText( 1, 0, "10 Euro" ) ;
00041     notesTable->setText( 2, 0, "20 Euro" ) ;
00042     notesTable->setText( 3, 0, "50 Euro" ) ;
00043     notesTable->setText( 4, 0, "100 Euro" ) ;
00044     notesTable->setText( 5, 0, "200 Euro" ) ;
00045     notesTable->setText( 6, 0, "500 Euro" ) ;
00046     
00047     // Preparing otherTable
00048     otherTable->setLeftMargin(0) ;
00049     otherTable->setColumnReadOnly( 0, TRUE ) ;
00050     otherTable->setColumnWidth( 1, 60 ) ;
00051     otherTable->setColumnStretchable( 0, TRUE ) ;
00052     
00053     otherTable->setNumRows( 6 ) ;
00054     otherTable->setText( 0, 0, "Cheques" ) ;
00055     otherTable->setText( 1, 0, "C.C. receipts" ) ;
00056     otherTable->setText( 2, 0, "Internal Coupons" ) ;
00057     otherTable->setText( 3, 0, "External Coupons" ) ;
00058     otherTable->setText( 4, 0, "Special Coupons" ) ;
00059     otherTable->setText( 5, 0, "Liability Coupons" ) ;
00060     
00061     // Misc values
00062     coinTotalLabel->setText( QString( "%1").arg( 0.0, 0, 'f', 2 ) )  ;
00063     notesTotalLabel->setText( QString( "%1").arg( 0.0, 0, 'f', 2 ) )  ;
00064     moneyTotalLabel->setText( QString( "%1").arg( 0.0, 0, 'f', 2 ) )  ;
00065 }
00066 
00067 void CashboxCount::coinQtyChanged( int r, int col )
00068 {
00069     if ( col == 1 ) {
00070         int coinVal =coinTable->text( r, 0 ).section( " ", 0, 0 ).toInt() ;
00071         bool coinType = ( coinTable->text( r, 0 ).section( " ", 1, 1 ) == "Euro" ) ;
00072         int qty = coinTable->text( r, 1 ).toInt() ;
00073         double value = (double)coinVal * (double)qty ;
00074         if ( !coinType ) value = value / 100 ;
00075         coinTable->setText( r, 2, QString( "%1").arg( value, 0, 'f', 2 ) ) ;
00076         double total =0 ;
00077         for ( int i = 0; i < coinTable->numRows(); i++ ) {
00078             total += coinTable->text( i, 2 ).toDouble() ;
00079         }
00080         coinTotalLabel->setText( QString( "%1").arg( total, 0, 'f', 2 ) )  ;
00081         double mt = notesTotalLabel->text().toDouble() ;
00082         moneyTotalLabel->setText( QString( "%1" ).arg( total + mt, 0, 'f', 2 ) ) ;
00083     }
00084 }
00085 
00086 
00087 void CashboxCount::notesQtyChanged( int r, int col )
00088 {
00089     if ( col == 1 ) {
00090         int noteVal = notesTable->text( r, 0 ).section( " ", 0, 0 ).toInt() ;
00091         int qty = notesTable->text( r, 1 ).toInt() ;
00092         double value = (double)noteVal * (double)qty ;
00093         notesTable->setText( r, 2, QString( "%1").arg( value, 0, 'f', 2 ) ) ;
00094         double total =0 ;
00095         for ( int i = 0; i < notesTable->numRows(); i++ ) {
00096             total += notesTable->text( i, 2 ).toDouble() ;
00097         }
00098         notesTotalLabel->setText( QString( "%1").arg( total, 0, 'f', 2 ) )  ;
00099         double mt = coinTotalLabel->text().toDouble() ;
00100         moneyTotalLabel->setText( QString( "%1" ).arg( total + mt, 0, 'f', 2 ) ) ;
00101     }
00102 }
00103 
00104 
00105 void CashboxCount::validateCount()
00106 {
00107     QString ticket ="<HTML><BODY>" ;
00108     ticket.append( "<center>LAB Project</center>"
00109                    "<center>Linux Advanced Business Tools</center>" ) ;
00110     ticket.append( "<center>********************</center>" ) ;
00111     ticket.append( QString( "<center><b>%1</b></center>" ).arg( tr( "Cash Count" ) )  ) ;
00112     ticket.append( "<center>********************</center>" ) ;
00113     QString line = QString( "Element" ).leftJustify( 20, ' ', TRUE ) ;
00114     line.append( "       Qty     Value<br>" ) ;
00115     ticket.append( line ) ; 
00116     ticket.append( tr( "Coins" ) + "<br>" ) ;
00117     for ( int i = 0; i < coinTable->numRows(); i++ ) {
00118         line = coinTable->text( i, 0 ).leftJustify( 27, '.', TRUE ) ;
00119         line.append( coinTable->text( i,1 ).rightJustify( 3, ' ', FALSE )  );
00120         line.append( coinTable->text( i, 2).rightJustify( 10, ' ', TRUE ) ) ;
00121         line.append( "<br>" ) ;
00122         ticket.append( line ) ;
00123     }
00124     ticket.append( "<br>" ) ;
00125     ticket.append( QString( tr( "Coins Total" ) ).leftJustify( 30, ' ', FALSE ) ) ;
00126     ticket.append( coinTotalLabel->text().rightJustify( 10, ' ', TRUE ) ) ;
00127     ticket.append( "<br>" ) ;
00128     ticket.append( tr( "Bank Notes" ) + "<br>" ) ;
00129     for ( int i = 0; i < notesTable->numRows(); i++ ) {
00130         line = notesTable->text( i, 0 ).leftJustify( 27, '.', TRUE ) ;
00131         line.append( notesTable->text( i,1 ).rightJustify( 3, ' ', FALSE ) ) ;
00132         line.append( notesTable->text( i, 2).rightJustify( 10, ' ', TRUE )  );
00133         line.append( "<br>" ) ;
00134         ticket.append( line ) ;
00135     }
00136     ticket.append( "<br>" ) ;
00137     
00138     ticket.append( tr( "Other" ) + "<br>" ) ;
00139     for ( int i = 0; i < otherTable->numRows(); i++ ) {
00140         line = otherTable->text( i, 0 ).leftJustify( 27, '.', TRUE ) ;
00141         line.append( otherTable->text( i,1 ).rightJustify( 3, ' ', FALSE ) ) ;
00142         line.append( otherTable->text( i, 2).rightJustify( 10, ' ', TRUE )  );
00143         line.append( "<br>" ) ;
00144         ticket.append( line ) ;
00145     }
00146     ticket.append( "<br>" ) ;
00147     
00148     ticket.append( QString( tr( "Notes Total" ) ).leftJustify( 30, ' ', FALSE ) ) ;
00149     ticket.append( notesTotalLabel->text().rightJustify( 10, ' ', TRUE ) ) ;
00150     ticket.append( "<br><br>" ) ;
00151     ticket.append( QString( tr( "Grand Total" ) ).leftJustify( 30, ' ', FALSE ) ) ;
00152     ticket.append( moneyTotalLabel->text().rightJustify( 10, ' ', TRUE ) ) ;
00153     
00154     ticket.append( QString( "<p>Cashbox : %1<br>Cashier: %2" )
00155             .arg( 1 ).arg( "anubis" ) ) ;
00156     ticket.append( "</BODY></HTML>" ) ;
00157     ticket.replace( " ", "&nbsp;" )  ;
00158     qDebug( ticket ) ;
00159 accept() ;
00160 /*    
00161     QPrinter printer( QPrinter::ScreenResolution ) ;
00162    printer.setFullPage( TRUE );
00163     if ( printer.setup(this) ) {                // printer dialog
00164         // statusBar()->message( tr( "Printing..." ) );
00165         QPainter p;
00166         if ( !p.begin( printer ) ) {               // paint on printer
00167             // statusBar()->message( "Printing aborted", 2000 );
00168             return;
00169         }
00170 
00171         QPaintDeviceMetrics metrics( p.device() );
00172         int dpiy = metrics.logicalDpiY();
00173         int margin = (int) ( (2/2.54)*dpiy ); // 2 cm margins
00174         QRect body( margin, margin, metrics.width() - 2*margin, metrics.height() - 2*margin );
00175         QSimpleRichText richText( QStyleSheet::convertFromPlainText(ticket()),
00176                                   QFont(),
00177                                   ticket.context(),
00178                                   ticket.styleSheet(),
00179                                   ticket->mimeSourceFactory(),
00180                                   body.height() );
00181         richText.setWidth( &p, body.width() );
00182         QRect view( body );
00183         int page = 1;
00184         do {
00185             richText.draw( &p, body.left(), body.top(), view, colorGroup() );
00186             view.moveBy( 0, body.height() );
00187             p.translate( 0 , -body.height() );
00188             p.drawText( view.right() - p.fontMetrics().width( QString::number( page ) ),
00189                         view.bottom() + p.fontMetrics().ascent() + 5, QString::number( page ) );
00190             if ( view.top()  >= richText.height() )
00191                 break;
00192             printer->newPage();
00193             page++;
00194         } while (TRUE);
00195 
00196     
00197     
00198     
00199     
00200     printer.setFullPage( TRUE ) ;
00201     
00202     printer.setup() ;
00203     */
00204 }
00205 
00206 
00207 void CashboxCount::setMode( const QString & mode )
00208 {
00209 
00210 }

 

L.A.B. Project © 2001-2004 LAB Project & DJ Anubis