telsale-management/代码/telsale_aux_kit/source/QTelSalePolicyInfoInputWidg...

411 lines
12 KiB
C++
Raw Normal View History

#include <QtWidgets/QtWidgets>
#include "QTelSalePolicyInfoInputWidget.h"
#include "QRapidInputWidget.h"
#include "SystemDataQuery.h"
#include "SystemData.h"
QTelSalePolicyInfoInputWidget::QTelSalePolicyInfoInputWidget(QWidget *parent)
: QWidget(parent)
{
setupUi(this);
init();
initWidget();
initSignal();
initData();
}
QTelSalePolicyInfoInputWidget::~QTelSalePolicyInfoInputWidget()
{
}
void QTelSalePolicyInfoInputWidget::init()
{
}
void QTelSalePolicyInfoInputWidget::initWidget()
{
setLayout( pLayoutMain );
//<2F><><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EBB4B0>
pTabWidget->widget( 0 )->setLayout( pLayoutInputMain );
pScrollAreaInput->setWidget( pWidgetInput );
pWidgetInput->setLayout( pLayoutInfoDetail );
pWidgetInput->setMaximumWidth( 820 );
pWidgetInput->setMinimumWidth( 820 );
//<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
QRapidInputWidget * pWidgetRapid = new QRapidInputWidget;
pScrollAreaRapid->setWidget( pWidgetRapid );
pTabWidget->widget( 1 )->setLayout( pLayoutRapid );
}
void QTelSalePolicyInfoInputWidget::initSignal()
{
connect( pEditSalerCode, SIGNAL(editingFinished()), this, SLOT(onQuerySalerName()));
connect( pEditSalerCode, SIGNAL(textChanged(const QString &)), this, SLOT(onSalerCodeChanged()) );
connect( pEditAutoTraderCode, SIGNAL(editingFinished()), this, SLOT(onQueryAutoTraderName()));
connect( pEditAutoTraderCode, SIGNAL(textChanged(const QString &)), this, SLOT(onAutoTraderCodeChanged()) );
connect( pButtonSave, SIGNAL(clicked()), this, SLOT(onSavePolicy()) );
connect( pButtonResetGift, SIGNAL(clicked()), this, SLOT(onResetGiftsTable()) );
connect( pButtonReset, SIGNAL(clicked()), this, SLOT(onReset()) );
connect( pTableGifts, SIGNAL(cellChanged(int,int)), this, SLOT(onGiftTableItemChanged(int, int)) );
}
void QTelSalePolicyInfoInputWidget::initData()
{
//Ĭ<>ϵij<CFB5><C4B3>̴<EFBFBD><CCB4><EFBFBD>
pEditAutoTraderCode->setText( QString::fromLocal8Bit(parameters.getParameter("Ĭ<EFBFBD>ϳ<EFBFBD><EFBFBD>̴<EFBFBD><EFBFBD><EFBFBD>").c_str() ));
emit pEditAutoTraderCode->editingFinished();
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ʒ<EFBFBD>б<EFBFBD>
InitGiftTable();
pEditQjxPolicySerial->clear();
pEditBizPolicySerial->clear();
pEditSalerCode->clear();
pEditSalerName->clear();
pEditDeptCode->clear();
pEditDeptName->clear();
pEditOfficeCode->clear();
pEditOfficeName->clear();
pComboBoxAutotraderCall->setCurrentIndex( 0 );
}
void QTelSalePolicyInfoInputWidget::InitGiftTable()
{
//<2F><><EFBFBD>ñ<EFBFBD>־λ
m_initing = true;
m_giftsList.clear();
try
{
queryTelsalePolicyGifts( m_giftsList );
}
catch ( runtime_error &error )
{
QMessageBox::critical( this, "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ʒ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", error.what() );
return;
}
pTableGifts->clearContents();
pTableGifts->setColumnWidth( 0, 200 );
pTableGifts->setRowCount( m_giftsList.size() + 2 );
vector<TelSalePolicyGift>::iterator iter = m_giftsList.begin();
for ( unsigned int rowIndex = 0; iter != m_giftsList.end(); rowIndex++ )
{
QTableWidgetItem *pItem = new QTableWidgetItem();
pItem->setCheckState( Qt::Unchecked );
pItem->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
pItem->setText( QString::fromLocal8Bit(iter->GiftName().c_str()) );
pItem->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );
pTableGifts->setItem( rowIndex, 0, pItem );
pItem = new QTableWidgetItem();
pItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
pItem->setText( QString::fromLocal8Bit(iter->GiftDefaultPrice().c_str()) );
pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pTableGifts->setItem( rowIndex, 1, pItem );
++iter;
}
//<2F><><EFBFBD><EFBFBD>
QTableWidgetItem * pItemOther = new QTableWidgetItem();
QTableWidgetItem * pItemOtherPrice = new QTableWidgetItem();
pItemOther->setText( QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
pItemOther->setCheckState( Qt::Unchecked );
pItemOther->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
pItemOther->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );
pItemOtherPrice->setText( "0" );
pItemOtherPrice->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
pItemOtherPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pTableGifts->setItem( m_giftsList.size(), 0, pItemOther );
pTableGifts->setItem( m_giftsList.size(), 1, pItemOtherPrice );
//<2F><>Ʒ<EFBFBD>ܼ<EFBFBD>ֵ
QTableWidgetItem * pItemTotalPrice = new QTableWidgetItem();
QTableWidgetItem * pItemTotalPriceAmount = new QTableWidgetItem();
pItemTotalPrice->setText( QString::fromLocal8Bit("<EFBFBD><EFBFBD>Ʒ<EFBFBD>ܼ<EFBFBD>ֵ") );
pItemTotalPrice->setTextColor( Qt::red );
pItemTotalPrice->setFlags( Qt::ItemIsEnabled );
pItemTotalPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pItemTotalPriceAmount->setText( QString::fromLocal8Bit("0 Ԫ") );
pItemTotalPriceAmount->setTextColor( Qt::red );
pItemTotalPriceAmount->setFlags( Qt::ItemIsEnabled );
pItemTotalPriceAmount->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pTableGifts->setItem( m_giftsList.size() + 1, 0, pItemTotalPrice );
pTableGifts->setItem( m_giftsList.size() + 1, 1, pItemTotalPriceAmount );
pTableGifts->resizeColumnsToContents();
m_initing = false;
}
void QTelSalePolicyInfoInputWidget::readGiftTable(vector<TelSalePolicyGift> & giftList)
{
int rowCount = pTableGifts->rowCount();
for ( int rowIndex = 0; rowIndex < rowCount; rowIndex++ )
{
QTableWidgetItem * pItemName = pTableGifts->item( rowIndex, 0 );
QTableWidgetItem * pItemPrice = pTableGifts->item( rowIndex, 1 );
if ( pItemName->checkState() == Qt::Unchecked )
{
continue;
}
TelSalePolicyGift gift( rowIndex, string(pItemName->text().toLocal8Bit().data()), string( pItemPrice->text().toLocal8Bit().data() ));
giftList.push_back( gift );
}
}
void QTelSalePolicyInfoInputWidget::onSalerCodeChanged()
{
pEditSalerName->clear();
pEditDeptName->clear();
pEditDeptCode->clear();
pEditOfficeName->clear();
pEditOfficeCode->clear();
m_strSalerCode.clear();
m_strSalerName.clear();
m_strSalerDeptCode.clear();
m_strSalerDeptName.clear();
}
void QTelSalePolicyInfoInputWidget::onQuerySalerName()
{
m_strSalerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data();
queryStaffInfo( m_strSalerCode, m_strSalerName, m_strSalerDeptCode, m_strSalerDeptName, m_strSalerOfficeCode, m_strSalerOfficeName );
pEditSalerName->setText( QString::fromLocal8Bit( m_strSalerName.c_str() ));
pEditOfficeCode->setText( QString::fromLocal8Bit( m_strSalerOfficeCode.c_str() ));
pEditOfficeName->setText( QString::fromLocal8Bit( m_strSalerOfficeName.c_str() ));
pEditDeptCode->setText( QString::fromLocal8Bit( m_strSalerDeptCode.c_str() ));
pEditDeptName->setText( QString::fromLocal8Bit( m_strSalerDeptName.c_str() ));
}
void QTelSalePolicyInfoInputWidget::onSavePolicy()
{
string strJqxPolicySerial = pEditQjxPolicySerial->text().trimmed().toLocal8Bit().data();
string strBizPolicySerial = pEditBizPolicySerial->text().trimmed().toLocal8Bit().data();
int iAutotraderCallIndex = pComboBoxAutotraderCall->currentIndex();
vector<TelSalePolicyGift> giftsList; //<2F>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
emit pEditSalerCode->editingFinished();
emit pEditAutoTraderCode->editingFinished();
if ( strJqxPolicySerial.empty() && strBizPolicySerial.empty() )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD>ǿ<EFBFBD>ա<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>"), QMessageBox::Yes );
return;
}
if ( m_strSalerName.empty() == true )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>"), QMessageBox::Yes );
return;
}
if ( iAutotraderCallIndex == 0 )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("δѡ<EFBFBD><EFBFBD><EFBFBD>Ƿ񳵵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QMessageBox::Yes );
return;
}
if ( pEditAutoTraderName->text().isEmpty() )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QMessageBox::Yes );
return;
}
if ( pGroupBoxGift->isChecked() == true )
{
readGiftTable( giftsList );
if ( giftsList.size() == 0 )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("δѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>"), QMessageBox::Yes );
return;
}
}
SPolicyRecord policy;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
policy.strSalerCode = m_strSalerCode;
policy.strSalerName = m_strSalerName;
policy.strSalerDeptCode = m_strSalerDeptCode;
policy.strSalerDeptName = m_strSalerDeptName;
policy.strSalerOfficeCode = m_strSalerOfficeCode;
policy.strSalerOfficeName = m_strSalerOfficeName;
policy.strOperatorCode = getUserCode();
policy.strCustomerName = pEditCustomerName->text().trimmed().toLocal8Bit().data();
policy.strPlateSerial = pEditPlateSerial->text().trimmed().toLocal8Bit().data();
policy.strFrameSerial = pEditFrameSerial->text().trimmed().toLocal8Bit().data();
policy.strEngineSerial = pEditEngineSerial->text().trimmed().toLocal8Bit().data();
policy.strOperatorDate = QDate::currentDate().toString( QString::fromLocal8Bit("MM/dd/yyyy")).toLocal8Bit().data();
if ( iAutotraderCallIndex == 2 )
{
policy.bIsAutotraderCall = true;
}
else
{
policy.bIsAutotraderCall = false;
}
//<2F><><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
if ( m_strAutoTraderName.empty() == false )
{
policy.strAutoTraderCode = m_strAutoTraderCode;
policy.strAutoTraderName = m_strAutoTraderName;
}
if ( strJqxPolicySerial.empty() == false )
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
policy.strPolicySerial = strJqxPolicySerial;
try
{
SaveTelSalePolicyInfo( policy, giftsList );
QMessageBox::information( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!"), QString::fromLocal8Bit("<EFBFBD><EFBFBD>ǿ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!"), QMessageBox::Yes );
}
catch ( runtime_error & error )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD>潻ǿ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>"), QString::fromLocal8Bit(error.what()), QMessageBox::Yes );
}
}
if ( strBizPolicySerial.empty() == false )
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
policy.strPolicySerial = strBizPolicySerial;
try
{
SaveTelSalePolicyInfo( policy, giftsList );
QMessageBox::information( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!"), QString::fromLocal8Bit("<EFBFBD><EFBFBD>ҵ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!"), QMessageBox::Yes );
}
catch ( runtime_error & error )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>"), QString::fromLocal8Bit(error.what()), QMessageBox::Yes );
}
}
}
void QTelSalePolicyInfoInputWidget::onResetGiftsTable()
{
InitGiftTable();
}
void QTelSalePolicyInfoInputWidget::onGiftTableItemChanged(int row, int column)
{
if ( m_initing == true )
{
return;
}
int rowCount = pTableGifts->rowCount() - 1;
QTableWidgetItem * pItem = NULL;
QTableWidgetItem * pItemPrice = NULL;
bool isSuccess = false;
double giftPrice = 0.0l;
if ( column == 1 && row != rowCount )
{
pItem = pTableGifts->item( row, 0 );
pItemPrice = pTableGifts->item( row, column );
pItemPrice->text().toDouble( &isSuccess );
if ( isSuccess == false )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), pItem->text() + QString::fromLocal8Bit("<EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
pItemPrice->setText( "0" );
}
}
for ( int rowIndex = 0; rowIndex < rowCount; rowIndex++ )
{
pItem = pTableGifts->item( rowIndex, 0 );
pItemPrice = pTableGifts->item( rowIndex, 1 );
if ( pItem->checkState() == Qt::Unchecked )
{
continue;
}
giftPrice += pItemPrice->text().toDouble( &isSuccess );
if ( isSuccess == false )
{
QMessageBox::critical( this, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), pItem->text() + QString::fromLocal8Bit("<EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
pItemPrice->setText( "0" );
}
}
pTableGifts->item( pTableGifts->rowCount() - 1, 1 )->setText( QString::fromLocal8Bit("%1 Ԫ").arg(giftPrice) );
pTableGifts->resizeColumnsToContents();
}
void QTelSalePolicyInfoInputWidget::onAutoTraderCodeChanged()
{
pEditAutoTraderName->clear();
m_strAutoTraderName.clear();
}
void QTelSalePolicyInfoInputWidget::onQueryAutoTraderName()
{
m_strAutoTraderCode = pEditAutoTraderCode->text().trimmed().toUpper().toLocal8Bit().data();
queryAutoTraderInfo( m_strAutoTraderCode, m_strAutoTraderName );
pEditAutoTraderName->setText( QString::fromLocal8Bit( m_strAutoTraderName.c_str() ));
}
void QTelSalePolicyInfoInputWidget::onReset()
{
initData();
}