Commit 1398ffa3 by jackalone

优化打印模块,UI。

parent cac4f6a3
......@@ -27,6 +27,16 @@ void ProductObject::setupc(const QString &v)
upc = v;
}
QString ProductObject::getbsknum() const
{
return bsknum;
}
void ProductObject::setbsknum(const QString& v)
{
bsknum = v;
}
int ProductObject::getprice() const
{
return price;
......
......@@ -13,15 +13,18 @@ public:
Q_PROPERTY (QString pid READ getPid WRITE setPid)
Q_PROPERTY (QString name READ getName WRITE setName)
Q_PROPERTY (QString upc READ getupc WRITE setupc)
Q_PROPERTY (QString bsknum READ getbsknum WRITE setbsknum)
Q_PROPERTY (int price READ getprice WRITE setprice)
Q_PROPERTY (int productAmount READ getProductAmount WRITE setProductAmount)
QString pid;
QString name;
QString upc;
QString bsknum; //所属菜篮子的编号
int price;
int productAmount;
protected:
QString getPid() const ;
void setPid(const QString& v);
......@@ -32,6 +35,10 @@ protected:
QString getupc() const ;
void setupc(const QString& v);
QString getbsknum() const ;
void setbsknum(const QString& v);
int getprice() const ;
void setprice(const int& v);
......
......@@ -264,9 +264,13 @@ bool flowControll::_PullOrder()
QLOG_INFO() << QString("new order[%1:%2].[data:%3]")
.arg(orderObject->order_id, orderObject->status_desc)
.arg(_GetJsonStr(jsonObject));
WriteData(orderObject->order_id);
emit changeOrderStatus(orderObject);
// DetailForm::GetInstance().printData();
if(!ReadData(orderObject->order_id))
{
WriteData(orderObject->order_id);
emit sgnNewIdPrint(orderObject);
}
}
else
{
......@@ -325,6 +329,25 @@ bool flowControll::_PullOrder()
#endif
}
bool flowControll::ReadData(QString strdata)
{
QFile file(QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath()));
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<"Can't open the file!"<<endl;
}
while(!file.atEnd())
{
QByteArray line = file.readLine();
QString str(line);
if(str.trimmed() == strdata)
{
return 1;
}
}
return 0;
}
void flowControll::WriteData(QString strdata)
{
QString str = QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath());
......@@ -463,10 +486,7 @@ void flowControll::onProcessOrder(const QString &operation, const QString &order
if(!operation.compare(OPERATION_GETDELIVERS))
{
// 放在这检测收银员的合法性因为接单前会获取配送员
// if(_CheckCashiers())
// {
_GetDelivers(orderId);
//}
_ConfirmOrder(orderId, deliverObj);
}
else if(!operation.compare(OPERATION_CONFRIM))
{
......
......@@ -30,6 +30,7 @@ public:
QString getHostMacAddress();
bool GetCashObject(QList<CashierObject>& cashiersList);
void WriteData(QString strdata);
bool ReadData(QString strdata);
//自定义网络
HttpSocket *m_loginSocket;
......@@ -66,6 +67,7 @@ signals:
void updateCashier(QString str);
void sgnThreadFollow();
void sgnKillThread();
void sgnNewIdPrint(OrderObject* orderObject); //新订单来了打印
public slots:
void onStartFlow(); //线程的初始化工作
......
......@@ -405,7 +405,7 @@ void InitClass::InitDialog()
// connect(m_mainWidget,&MainWindow::sgnSound,m_floatWidget,&FloatWidget::onStartRemind);
connect(m_mainWidget,&MainWindow::sgnMainHome,this,&InitClass::sgnHome);
connect(this, &InitClass::sgnMainUi,m_mainWidget,&MainWindow::OnshowMainUi);
connect(this, &InitClass::sgnMainUi, m_mainWidget, &MainWindow::show);
connect(this, &InitClass::sgnMainUi, m_mainWidget, &MainWindow::showMain);
connect(m_mainWidget, &MainWindow::sgnStopRemind, this, &InitClass::sgnStopRemind);
// 退出线程
......
......@@ -17,8 +17,7 @@ ChooseForm::ChooseForm(QWidget *parent) :
{
QPushButton* btn = findChild<QPushButton*>(QString("btn_%1").arg(i));
m_numBtnList.append(btn);
bool jj=connect(btn,SIGNAL(toggled(bool)),this,SLOT(onNumBtnToggled(bool)));
// qDebug()<<"jj is" << jj;
connect(btn,SIGNAL(toggled(bool)),this,SLOT(onNumBtnToggled(bool)));
}
connect(ui->btn_ok,SIGNAL(clicked(bool)),this,SLOT(onBtnOkcliked()));
connect(ui->btn_cencel,SIGNAL(clicked(bool)),this,SLOT(onBtnconcel()));
......
......@@ -19,7 +19,7 @@ DetailForm::DetailForm(QWidget *parent) :
m_orderObject(0),
printsize(0),
total(0),
printType(-1),
printType(1),
storename(""),
m_printName(""),
getVar(0),
......@@ -71,6 +71,7 @@ void DetailForm::initUi(void)
ui->merchandisedetails->setColumnWidth(2, tableWidth*2/9);
ui->merchandisedetails->horizontalHeader()->setFixedHeight(25);
ui->merchandisedetails->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
Readconfig();
}
void DetailForm::WriteData(/*char data[]*/)
......@@ -89,35 +90,33 @@ QString DetailForm::_Penny2Dollar(int penny)
double dollar = (double)penny/100;
return QString::number(dollar,'f',2);
}
QString DetailForm::GetPrintData(OrderObject *pData/*,int printtype*/)
QString DetailForm::GetPrintData(OrderObject *pData,int printtype)
{
return PrintdataNormal(pData);
#if 0
switch (printtype)
{
case 1:
{
Printdata(pData);
return PrintdataNormal(pData);
break;
}
case 2:
{
PrintdataNormal(pData);
return PrintdataHZL(pData);
break;
}
default:
return PrintdataNormal(pData);
break;
}
return "";
#endif
}
void DetailForm::Readconfig()
{
QString apppath=QCoreApplication::applicationDirPath();
QSettings *settings = new QSettings(QString("%1/storeinfo.ini").arg(apppath), QSettings::IniFormat);
printsize=settings->value("STOREINFO/printsize").toInt();
printType=settings->value("STOREINFO/printsize").toInt();
QSettings *settings = new QSettings(QString("%1/FreemudPOS.ini").arg(apppath), QSettings::IniFormat);
printsize=settings->value("Printer/printsize").toInt();
printType=settings->value("Printer/printType").toInt();
delete settings;
}
void DetailForm::Writeconfig()
......@@ -166,14 +165,14 @@ void DetailForm::printData(/*char data[]*/)
{
emit DetailshowAlert(alertForm::ERROR,InitClass::GetInstance().GB2312ToUnicode("请选择合适的打印机打印"));
}
QString m_str = GetPrintData(m_orderObject/*,printType*/);
QString m_str = GetPrintData(m_orderObject,printType);
QLOG_INFO() << QString("[---order NetreEntry begin---]");
QLOG_INFO() <<QString(m_str);
// QByteArray tmpData = m_str.toLocal8Bit();
// // QByteArray tmpData = m_str.toLocal8Bit();
// char temchar[2048]={0x0};
// strcpy(temchar,tmpData.data());
// QLOG_INFO()<<"printData is"<<temchar;
#if 0
QByteArray tmpData = m_str.toLocal8Bit();
char temchar[2048]={0x0};
strcpy(temchar,tmpData.data());
#endif
emit sgnToPrint(m_str);
if(!getVar)
{
......@@ -182,6 +181,23 @@ void DetailForm::printData(/*char data[]*/)
//otherThreadctr::GetInstance().Printoperation(temchar);
}
void DetailForm::printDataNew(OrderObject* orderObject)
{
emit sgnToPrintNmae();
if(m_printName =="")
{
emit DetailshowAlert(alertForm::ERROR,InitClass::GetInstance().GB2312ToUnicode("请选择合适的打印机打印"));
}
QString m_str = GetPrintData(orderObject,printType);
QLOG_INFO() << QString("[---order NetreEntry begin---]");
QLOG_INFO() <<QString(m_str);
emit sgnToPrint(m_str);
if(!getVar)
{
emit DetailshowAlert(alertForm::ERROR,InitClass::GetInstance().GB2312ToUnicode("打印机打印失败或者打开设备失败"));
}
}
void DetailForm::sltGetPrintName(QString strnmae)
{
m_printName = strnmae;
......@@ -383,31 +399,23 @@ QString DetailForm::Printdata(OrderObject *pData)
}
QString DetailForm::PrintdataNormal(OrderObject *pData) //传入一般模式的打印机的数据
QString DetailForm::PrintdataNormal(OrderObject *pData) //传入一般模式的打印机的数据 根据饿了吗的标准
{
QString str_list;
QString str_print;
QString str_comd_list;
QString str_list ="";
QString str_print="";
QString str_comd_list="";
total=pData->proList.count()*2;
QString filePath = QString("%1/Printer.template").arg(QCoreApplication::applicationDirPath());
QFile file(filePath);
if( !file.open( QFile::ReadOnly)){
return InitClass::GetInstance().GB2312ToUnicode("无法打开Printer.template");
}
QLOG_INFO()<<"GetPrintData Normal is star";
QLOG_INFO()<<"proList.count() Normal is"<<pData->proList.count();
for(int i =0;i<pData->proList.count();i++)
{
QString name="", price="";
name = pData->proList[i]->name;
price = QString("\r\n x%1 %2 %4\r\n").arg(pData->proList[i]->productAmount).arg(_Penny2Dollar(pData->proList[i]->price))
price = QString("%1 x%2 %4").arg(pData->proList[i]->productAmount).arg(_Penny2Dollar(pData->proList[i]->price))
.arg(_Penny2Dollar(pData->proList[i]->price*pData->proList[i]->productAmount));
str_comd_list.append(QString(name+price));
str_comd_list.append(QString(name+"$"+price+"$"));
}
QByteArray array = file.readAll();
str_print = QString::fromUtf8(array);
QString print="";
#if 0
QStringList cfgList;
cfgList = pData->printcfg.split('|');
QString print="";QString fee="";
......@@ -440,13 +448,62 @@ QString DetailForm::PrintdataNormal(OrderObject *pData) //传入一般模式的
fee=InitClass::GetInstance().GB2312ToUnicode("应收金额:¥ 0");
}
}
print = str_print.append(v).append("|").append(pData->channelName).append("|").append(pData->order_id).append("|").append(pData->pay_type).append("|")
#endif
if(pData->courier_name == "")
pData->courier_name = InitClass::GetInstance().GB2312ToUnicode("无");
else{
pData->courier_name = pData->courier_name;
}
if(pData->courier_phone == "")
{
pData->courier_phone = InitClass::GetInstance().GB2312ToUnicode("无");
}
else
{
pData->courier_phone =pData->courier_phone;
}
print = str_print.append(InitClass::GetInstance().GB2312ToUnicode("顾客留存")).append("|").append(pData->channelName).append("|").append(pData->order_id).append("|").append(pData->pay_type).append("|")
.append(pData->customer).append("|").append(pData->phone).append("|").append(pData->address).append("|").append(str_comd_list).append("|")
.append(Penny2Dollar(pData->total_fee-pData->send_fee)).append("|").append(_Penny2Dollar(pData->discount_fee)).append("|").append(_Penny2Dollar(pData->send_fee)).append("|")
.append(QString::number(pData->total_amount)).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm")).append("|")
.append(QString::number(pData->total_amount)).append("|").append(Penny2Dollar(pData->user_fee)).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm")).append("|")
.append(QString(InitClass::GetInstance().GB2312ToUnicode("备注:"))+pData->remark).append("|").append(pData->courier_name).append("|").append(pData->courier_phone).append("|")
.append(pData->delivery_time);
.append(pData->delivery_time).append("|");
str_list.append(print);
return str_list;
}
QString DetailForm::PrintdataHZL(OrderObject *pData) //传入一般模式的打印机的数据 根据饿了吗的标准
{
QString str_list;
QString str_print;
QString str_comd_list;QString str_bsknum = InitClass::GetInstance().GB2312ToUnicode("1");
total=pData->proList.count()*2;
for(int i=0; i<pData->proList.count(); i++)
{
QString name= "";QString price="";
name = pData->proList[i]->name;
qDebug()<<pData->proList[i]->bsknum;
if("" == pData->proList[i]->bsknum)
{
str_bsknum = InitClass::GetInstance().GB2312ToUnicode("1");
}
else
{
str_bsknum = pData->proList[i]->bsknum;
}
price = QString("%1 x%2 %4").arg(_Penny2Dollar(pData->proList[i]->price)).arg(pData->proList[i]->productAmount)
.arg(_Penny2Dollar(pData->proList[i]->price*pData->proList[i]->productAmount));
str_comd_list.append(QString(name+"$"+price+"$"));
}
QString print = "";
qDebug()<<"~~~~~~~~~~~~~~~"<<pData->package_fee;
print = str_print.append("#"+QString::number(pData->order_index)).append("|").append(pData->channelName).append("|").append(storename).append("|").append(pData->pay_type).append("|").append(QDateTime::fromTime_t(pData->create_time).toString("yy-MM-dd hh:mm"))
.append("|").append(InitClass::GetInstance().GB2312ToUnicode("备注:")+pData->remark).append("|").append(str_bsknum).append("|").append(str_comd_list).append("|").append(QString::number(pData->package_fee)).append("|").append(_Penny2Dollar(pData->discount_fee))
.append("|").append(_Penny2Dollar(pData->send_fee)).append("|").append(_Penny2Dollar(pData->total_fee)).append("|").append(pData->address).append("|").append(pData->customer).append("|")
.append(pData->phone).append("|").append(pData->order_id);
str_list.append(print);
return str_list;
}
......@@ -21,7 +21,7 @@ public:
static DetailForm& GetInstance();
void initUi();
void showUi(OrderObject *orderObject);//展示详单界面
QString GetPrintData(OrderObject *orderObject/*,int printtype*/);
QString GetPrintData(OrderObject *orderObject,int printtype);
void initconfig();
void Readconfig();
void Writeconfig();
......@@ -31,6 +31,7 @@ public:
int printsize;
QString Printdata(OrderObject *pData);
QString PrintdataNormal(OrderObject *pData);
QString PrintdataHZL(OrderObject *pData);
int printType;//打印类型的设定
QString m_printName;
bool getVar;
......@@ -51,8 +52,9 @@ public:
Q_SIGNAL void DetailshowAlert(alertForm::Type type, const QString& msg);//显示通知窗口
Q_SLOT void sgnReceiveStatusMain(bool var);
Q_SLOT void sltGetPrintName(QString strnmae);
Q_SLOT void printData(/*char data[]*/);//打印机打印数据
Q_SLOT void WriteData(/*char data[]*/);//重新录单
Q_SLOT void printData();//打印机打印数据
Q_SLOT void WriteData();//重新录单
Q_SLOT void printDataNew(OrderObject* orderObject);
Q_SLOT void onOthersOperate();//拒单+完成等
Q_SLOT void onGetStrData(const QString& str);
Q_SLOT void SettingPrintData(QString data);
......
......@@ -34,6 +34,7 @@ MainWindow::MainWindow(QWidget *parent) :
m_searchform(0),
rccPath(""),
m_reset(0),
m_date(""),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
......@@ -119,6 +120,7 @@ MainWindow::MainWindow(QWidget *parent) :
connect(this,SIGNAL(sgnSendPrintNameInit(QString)),m_detailForm,SLOT(sltGetPrintName(QString)));
connect(m_detailForm,&DetailForm::DetailshowAlert,this,&MainWindow::onShowAlert);
connect(this,SIGNAL(sgnReceiveStatusInit(bool)),m_detailForm,SLOT(sgnReceiveStatusMain(bool)));
connect(&flowControll::GetInstance(),&flowControll::sgnNewIdPrint,m_detailForm,&DetailForm::printDataNew);
......@@ -140,18 +142,8 @@ MainWindow::MainWindow(QWidget *parent) :
MainWindow::~MainWindow()
{
// g_threadCtl->terminateFlowcontrollThread();
// g_threadCtl->terminateRefusecontrollThread();
// g_threadCtl->terminateOthercontrollThread();
delete g_threadCtl;
g_threadCtl = 0;
//FM_Destroy();
// delete m_dbsetWidget;
// delete m_floatWidget;
// FM_deletpr();
// delete ui;
}
void MainWindow::InitstyleMain()
......@@ -177,13 +169,57 @@ void MainWindow::InitstyleMain()
void MainWindow::RemoveFile()
{
int time=changeTime(); bool ok=1; int n=1;
QFile file(QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath()));
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<"Can't open the file!"<<endl;
}
while(!file.atEnd())
{
QByteArray line = file.readLine();
if(1 == n)
{
QString str(line);
m_date =str.trimmed();
}
n++;
}
file.close();
qDebug()<<m_date;
qDebug()<<m_date.trimmed().toInt(&ok,10);
if(m_date.trimmed().toInt(&ok,10) < time && m_date !="")
{
QString str = QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath());
QFile file(str);
if (file.exists()){
if (file.exists())
{
file.remove();
}
QString m_var= QString::number(changeTime());
WriteData(m_var);
}
if(n<2)
{
QString m_var= QString::number(changeTime());
WriteData(m_var);
}
}
int MainWindow::changeTime()
{
bool ok=1;
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("|yyyy|MM|dd|");
int m_year = current_date.section('|',1,1).toInt(&ok,10);
int m_month = current_date.section('|',2,2).toInt(&ok,10);
int m_day = current_date.section('|',3,3).toInt(&ok,10);
return m_year+m_month*10+m_day*100;
}
void MainWindow::unRegisterInitstyle()
{
QString strpath= QCoreApplication::applicationDirPath();
......@@ -260,13 +296,13 @@ void MainWindow::styleshow()
{
// #ifndef RELEASE_MODE
// this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::Tool);
// this->show();
// this->hide();
// this->setCursor(Qt::ArrowCursor);
// QLOG_INFO() << QString("debug mode");
// #else
this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::Tool);
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
this->showFullScreen();
this->hide();
this->setCursor(Qt::ArrowCursor);
// QLOG_INFO() << QString("release mode");
// #endif
......@@ -303,7 +339,18 @@ void MainWindow::OnBtnHide()
this->hide();
emit sgnResetHide(1);
}
void MainWindow::showMain()
{
if(this->isVisible())
{
this->hide();
}
else
{
this->showFullScreen();
}
}
void MainWindow::OnshowMainUi()
{
m_reset = 0;
......@@ -479,6 +526,18 @@ void MainWindow::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
_SetTablesSortEnable(true);
}
void MainWindow::WriteData(QString strdata)
{
QString str = QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath());
QFile file(str);
QTextStream out(&file);
if(file.open( QIODevice::Text | QIODevice::ReadWrite |QIODevice::Append))
{
out<<strdata<<"\n";
file.close();
}
}
bool MainWindow::ReadData(QString strId)
{
QFile file(QString("%1/fmptakeout.txt").arg(QApplication::applicationDirPath()));
......
......@@ -38,6 +38,8 @@ public:
void unRegisterInitstyle();
bool ReadData(QString strId);
void RemoveFile();
void WriteData(QString strdata);
int changeTime();
// void onMainTableitem(QTableWidgetItem *item,int i);
private:
......@@ -59,6 +61,7 @@ private:
QList<QTableWidget*> m_tableList;
QTableWidget *m_currentTable; // 当前选中的表
bool m_reset;
QString m_date;
//SysTray *m_tray; // 系统托盘
public:
......@@ -108,6 +111,7 @@ public:
Q_SLOT void onMainClose();
Q_SLOT void OnResetHide(bool var);
Q_SLOT void OnshowMainUi();
Q_SLOT void showMain();
};
......
......@@ -71,7 +71,7 @@ void PrintSetting::InitUi()
void PrintSetting::onBtnPrint()
{
// otherThreadctr::GetInstance().PrintoperationTest();
emit sgnprint(InitClass::GetInstance().GB2312ToUnicode("这是一个测试页看到此页说明打印正常!\r\n\r\n\r\n"));
emit sgnprint(InitClass::GetInstance().GB2312ToUnicode("这是一个测试页看到此页说明打印正常!\r\n\r\n\r\n"));
}
void PrintSetting::onBtnSound()
......
......@@ -28,9 +28,9 @@ int FMPTakeoutPrivate::Init()
{
if(0 == q->_inited)
{
qDebug()<<"---------11111---------------";
_Home = q->GetService<FMPHomeInterface>(q->_ctx);
_Printer= q->GetService<FMPPrinterInterface>(q->_ctx);
_Printer->StartService();
connect(&InitClass::GetInstance(),&InitClass::sgnHome,this,&FMPTakeoutPrivate::sltHome);
connect(&InitClass::GetInstance(),&InitClass::sgnStopRemind,this,&FMPTakeoutPrivate::sltStopBlink);
connect(this,&FMPTakeoutPrivate::sgnGetFromHome,&InitClass::GetInstance(),&InitClass::sgnMainUi);
......@@ -48,7 +48,6 @@ int FMPTakeoutPrivate::Init()
return FMP_SUCCESS;
}
else{
//InitClass::GetInstance().inItGloal();
emit sgnGetFromHome();
return 1;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment