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

labphysicalinventory.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 LabPhysicalInventory::init()
00011 {
00012     productsTable->setLeftMargin( 0 ) ;
00013     productsTable->setFilter( "recid='-1'" ) ;
00014     productsTable->setColumnStretchable( 0, TRUE ) ;
00015     productsTable->setColumnStretchable( 1, TRUE ) ;
00016     productsTable->setColumnStretchable( 2, TRUE ) ;
00017     productsTable->setColumnStretchable( 3, TRUE ) ;
00018     productsTable->setColumnWidth( 0, 150 ) ;
00019     productsTable->setColumnWidth( 1, 350 ) ;
00020     productsTable->setColumnWidth( 2, 150 ) ;
00021     productsTable->setColumnWidth( 3, 150 ) ;
00022     productsTable->refresh( QDataTable::RefreshAll ) ;
00023     partsTable->setLeftMargin( 0 ) ;
00024     partsTable->setFilter( "recid='-1'" ) ;   
00025     partsTable->setColumnStretchable( 0, TRUE ) ;
00026     partsTable->setColumnStretchable( 1, TRUE ) ;
00027     partsTable->setColumnStretchable( 2, TRUE ) ;
00028     partsTable->setColumnStretchable( 3, TRUE ) ;
00029     partsTable->setColumnStretchable( 4, TRUE ) ;
00030     partsTable->setColumnStretchable( 5, TRUE ) ;
00031     partsTable->setColumnWidth( 0, 150 ) ;
00032     partsTable->setColumnWidth( 1, 70 ) ;
00033     partsTable->setColumnWidth( 2, 150 ) ;
00034     partsTable->setColumnWidth( 3, 150 ) ;
00035     partsTable->setColumnWidth( 4, 150 ) ;
00036     partsTable->setColumnWidth( 5, 100 ) ;
00037     
00038     partsTable->refresh( QDataTable::RefreshAll ) ;
00039 }
00040 
00041 void LabPhysicalInventory::showHelp()
00042 {
00043    
00044 }
00045 
00046 
00047 void LabPhysicalInventory::findProduct()
00048 {
00049     QString want = refBarcodeEdit->text().stripWhiteSpace() ;
00050     if ( !want.isEmpty() ) {
00051         QSqlCursor * t = new QSqlCursor( "Inv_parts", TRUE ) ;
00052         if ( want.left( 3 ) == "378" ) {
00053             // press...
00054             t->setFilter( QString( "serial LIKE '%1%'" ).arg( want.left( 8 ) ) ) ;
00055         } else {
00056             t->setFilter( QString( "serial='%1'" ).arg( want ) ) ;
00057         }
00058         t->select() ;
00059         if ( t->next() ) {
00060             QSqlCursor * u = new QSqlCursor( "Inv_products", TRUE ) ;
00061             u->setFilter( QString( "recid='%1'" ).arg( t->value( "prodid" ).toString() ) ) ;
00062             u->select() ;
00063             if ( u->next() ) {
00064                 want = u->value( "prod_ref" ).toString() ;
00065             }
00066         }
00067         productsTable->setFilter( QString( "prod_ref LIKE '%1%'" ).arg( want ) ) ;
00068         productsTable->refresh() ;
00069         if ( productsTable->numRows() > 0 ) {
00070             productsTable->selectRow( 0 ) ;
00071         } else {
00072             // Unknown product. Must Create
00073             
00074         }
00075     }
00076 }
00077 
00078 
00079 void LabPhysicalInventory::productChanged( QSqlRecord * buffer )
00080 {
00081     partsTable->setFilter( QString( "prodid='%1'" ).arg( buffer->value( "recid" ).toString() ) ) ;
00082     partsTable->refresh() ;
00083     partsTable->selectRow( 0 ) ;
00084 }
00085 
00086 
00087 void LabPhysicalInventory::beforeUpdatePart( QSqlRecord * buffer )
00088 {
00089     QSqlCursor * t = new QSqlCursor( "Inv_products", TRUE ) ;
00090     t->setFilter( QString( "recid='%1'" ).arg( buffer->value( "prodid" ).toString() ) ) ;
00091     t->select() ;
00092     if ( t->next() ) {
00093         int qty = buffer->value( "stock" ).toInt() * buffer->value( "qty_unit" ).toInt() ;
00094         for ( int i = 0; i < partsTable->numRows(); i++ ) {
00095             if ( partsTable->text( i, 0 ) != buffer->value( "serial" ).toString() ) {
00096                 qty += partsTable->text( i, 1 ).toInt() * partsTable->text( i, 5 ).toInt() ;
00097             }
00098         }
00099         QSqlQuery q( QString( "UPDATE Inv_products SET available='%1' WHERE recid='%2' ;" ).arg( qty ).arg( t->value( "recid" ).toString() ) ) ;
00100         productsTable->update() ;
00101         productsTable->refresh() ;
00102     }
00103 }

 

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