00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 void CustDialog::init()
00011 {
00012 inInit = TRUE ;
00013 mode = 0 ;
00014 active_qa = "" ;
00015 activeCust = 0 ;
00016 custs = new QSqlCursor( "Contacts", TRUE ) ;
00017 setROMode( TRUE ) ;
00018 message->setText( "" ) ;
00019 canValidate() ;
00020 inInit = FALSE ;
00021
00022 }
00023
00024 void CustDialog::showInfo()
00025 {
00026 if ( !inInit ) {
00027 mode = 0 ;
00028 setROMode( TRUE ) ;
00029 int custid = customerSelector->getId( customerSelector->currentText() ) ;
00030 custs->setFilter( QString( "recid='%1'" ).arg( custid ) ) ;
00031 custs->select() ;
00032 if ( custs->next() ) {
00033 activeCust = custid ;
00034 message->setText( "" ) ;
00035 contact_qa->setText( custs->value( "contact_qa").toString() ) ;
00036 active_qa = contact_qa->text() ;
00037 contact_name->setText( custs->value( "contact_name" ).toString() ) ;
00038 address1->setText( custs->value( "address1" ).toString() ) ;
00039 address2->setText( custs->value( "address2" ).toString() ) ;
00040 address3->setText( custs->value( "address3" ).toString() ) ;
00041 zip->setText( custs->value( "zip" ).toString() ) ;
00042 city->setText( custs->value( "city" ).toString() ) ;
00043 phone->setText( custs->value( "phone" ).toString() ) ;
00044 fax->setText( custs->value( "fax" ).toString() ) ;
00045 email->setText( custs->value( "email" ).toString() ) ;
00046 } else {
00047 activeCust = 0 ;
00048 active_qa = "" ;
00049 message->setText( tr( "Database Error. Unable to get customer!" ) ) ;
00050 }
00051 custs->setFilter( "" ) ;
00052 canValidate() ;
00053 }
00054 }
00055
00056
00057 void CustDialog::custNew()
00058 {
00059 custNewButton->setEnabled( FALSE ) ;
00060 custUpdateButton->setEnabled( FALSE ) ;
00061 activeCust = 0 ;
00062 mode = 1 ;
00063 active_qa = "" ;
00064 canValidate() ;
00065 contact_qa->setText( custs->value( "contact_qa").toString() ) ;
00066 active_qa = contact_qa->text() ;
00067 contact_name->setText( custs->value( "contact_name" ).toString() ) ;
00068 address1->setText( custs->value( "address1" ).toString() ) ;
00069 address2->setText( custs->value( "address2" ).toString() ) ;
00070 address3->setText( custs->value( "address3" ).toString() ) ;
00071 zip->setText( custs->value( "zip" ).toString() ) ;
00072 city->setText( custs->value( "city" ).toString() ) ;
00073 phone->setText( custs->value( "phone" ).toString() ) ;
00074 fax->setText( custs->value( "fax" ).toString() ) ;
00075 email->setText( custs->value( "email" ).toString() ) ;
00076 setROMode( FALSE ) ;
00077 }
00078
00079
00080 void CustDialog::custUpdate()
00081 {
00082 custNewButton->setEnabled( FALSE ) ;
00083 custUpdateButton->setEnabled( FALSE ) ;
00084 mode = 2 ;
00085 setROMode( FALSE ) ;
00086 }
00087
00088
00089 void CustDialog::validate()
00090 {
00091 QSqlRecord * buffer = 0 ;
00092 if ( mode == 1 ) {
00093
00094 buffer = custs->primeInsert() ;
00095 buffer->setValue( "recid", SequenceGetNextValue( "Contacts" ) ) ;
00096 activeCust = buffer->value( "recid" ).toInt() ;
00097 buffer->setValue( "contact_xtype", "Customer" ) ;
00098 buffer->setValue( "created", QDateTime::currentDateTime() ) ;
00099 buffer->setValue( "active", 1 ) ;
00100 buffer->setValue( "lastchangedreason", "Creation" ) ;
00101 } else if ( mode == 2 ) {
00102
00103 buffer = custs->primeUpdate() ;
00104 buffer->setValue( "lastchangedreason", "Update" ) ;
00105 }
00106 if ( mode != 0 ) {
00107 buffer->setValue( "contact_qa", contact_qa->text().upper() ) ;
00108
00109 buffer->setValue( "contact_name", contact_name->text() ) ;
00110 buffer->setValue( "address1", address1->text() ) ;
00111 buffer->setValue( "address2", address2->text() ) ;
00112 buffer->setValue( "address3", address3->text() ) ;
00113 buffer->setValue( "zip", zip->text() ) ;
00114 buffer->setValue( "city", city->text() ) ;
00115 buffer->setValue( "phone", phone->text() ) ;
00116 buffer->setValue( "fax", fax->text() ) ;
00117 buffer->setValue( "email", email->text() ) ;
00118 if ( mode == 1 ) {
00119 custs->insert() ;
00120 } else {
00121 custs->update() ;
00122 }
00123 }
00124 accept() ;
00125 }
00126
00127
00128 void CustDialog::checkAbridged()
00129 {
00130 QSqlCursor * srch = new QSqlCursor( "Contacts", TRUE ) ;
00131 if ( mode == 1 ) {
00132 QString want = contact_qa->text().upper().stripWhiteSpace() ;
00133 srch->setFilter( QString( "contact_qa='%1' AND contact_xtype='Customer'" ) ) ;
00134 srch->select() ;
00135 if ( srch->next() ) {
00136 message->setText( tr( "Invalid Abridged Code. Already present in database." ) ) ;
00137 active_qa = "" ;
00138 } else {
00139 message->setText( "" ) ;
00140 active_qa = want ;
00141 contact_qa->setText( want ) ;
00142 }
00143 canValidate() ;
00144 }
00145 }
00146
00147
00148 void CustDialog::checkNotEmpty()
00149 {
00150 if ( contact_name->text().stripWhiteSpace().isEmpty() ) {
00151 message->setText( tr( "Customer Name MUST be filled." ) ) ;
00152 }
00153 canValidate() ;
00154 }
00155
00156
00157 void CustDialog::setROMode( bool ed )
00158 {
00159 if ( mode == 2 ) {
00160 contact_qa->setReadOnly( TRUE ) ;
00161 } else {
00162 contact_qa->setReadOnly( ed ) ;
00163 }
00164 contact_name->setReadOnly( ed ) ;
00165 address1->setReadOnly( ed ) ;
00166 address2->setReadOnly( ed ) ;
00167 address3->setReadOnly( ed ) ;
00168 zip->setReadOnly( ed ) ;
00169 city->setReadOnly( ed ) ;
00170 phone->setReadOnly( ed ) ;
00171 fax->setReadOnly( ed ) ;
00172 email->setReadOnly( ed ) ;
00173 }
00174
00175
00176 int CustDialog::selected()
00177 {
00178 return activeCust ;
00179 }
00180
00181
00182 void CustDialog::canValidate()
00183 {
00184 if ( active_qa.isEmpty()
00185 || contact_name->text().stripWhiteSpace().isEmpty() ) {
00186 okButton->setEnabled( FALSE ) ;
00187 } else {
00188 okButton->setEnabled( TRUE ) ;
00189 }
00190 }