Commit f64982da by guanghui.cui

1、增加发票抬头字段

2、小票增加pos单号字段
parent 4bb20744
...@@ -21,8 +21,10 @@ Database::Database() ...@@ -21,8 +21,10 @@ Database::Database()
"fm_id VARCHAR (40) PRIMARY KEY," "fm_id VARCHAR (40) PRIMARY KEY,"
"paid_trans_id VARCHAR (40) DEFAULT ('')," "paid_trans_id VARCHAR (40) DEFAULT (''),"
"pay_ebcode VARCHAR (40) DEFAULT ('')," "pay_ebcode VARCHAR (40) DEFAULT (''),"
"pos_order_id VARCHAR (40) DEFAULT (''),"
"products_fee INTEGER DEFAULT (0)," "products_fee INTEGER DEFAULT (0),"
"shop_fee INTEGER DEFAULT (0)," "service_fee INTEGER DEFAULT (0),"
"dis_shop_fee INTEGER DEFAULT (0),"
"isprint BOOLEAN DEFAULT (0)," "isprint BOOLEAN DEFAULT (0),"
"isPosOK BOOLEAN DEFAULT (0)," "isPosOK BOOLEAN DEFAULT (0),"
"isPosRefundOK BOOLEAN DEFAULT (0)," "isPosRefundOK BOOLEAN DEFAULT (0),"
...@@ -116,6 +118,22 @@ bool Database::isPosWriteOK(const QString &orderId) ...@@ -116,6 +118,22 @@ bool Database::isPosWriteOK(const QString &orderId)
return false; return false;
} }
QString Database::GetPOSOrderId(const QString &orderId)
{
QString posOrderId;
QSqlQuery query(_db);
query.prepare(QString("select pos_order_id from OrderInfo where paid_trans_id=%1").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text();
}
while(query.next())
{
posOrderId = query.value(0).toString();
}
return posOrderId;
}
QString Database::GetInfoTableName() QString Database::GetInfoTableName()
{ {
return _nameInfo; return _nameInfo;
......
...@@ -17,6 +17,7 @@ public: ...@@ -17,6 +17,7 @@ public:
bool isPosWriteOK(const QString &orderId); bool isPosWriteOK(const QString &orderId);
QString GetInfoTableName(); QString GetInfoTableName();
QString GetProductTableName(); QString GetProductTableName();
QString GetPOSOrderId(const QString &orderId);
private: private:
void delOldData(); //删除超过六个月的数据 void delOldData(); //删除超过六个月的数据
private: private:
......
...@@ -482,6 +482,16 @@ void OrderObject::setBillFile(const QString &v) ...@@ -482,6 +482,16 @@ void OrderObject::setBillFile(const QString &v)
bill_file = v; bill_file = v;
} }
QString OrderObject::getInvoiceTitle() const
{
return invoice_title;
}
void OrderObject::setInvoiceTitle(const QString &v)
{
invoice_title = v;
}
QList<ComdObject *> OrderObject::_ReadObjectMates(const QString &mates_str) QList<ComdObject *> OrderObject::_ReadObjectMates(const QString &mates_str)
{ {
QList<ComdObject*> mate_list, primitive_mates, dup_list; QList<ComdObject*> mate_list, primitive_mates, dup_list;
......
...@@ -66,6 +66,8 @@ public: ...@@ -66,6 +66,8 @@ public:
Q_PROPERTY (int package_fee READ getpackage_fee WRITE setpackage_fee) Q_PROPERTY (int package_fee READ getpackage_fee WRITE setpackage_fee)
Q_PROPERTY (QString invoice_title READ getInvoiceTitle WRITE setInvoiceTitle)
Q_PROPERTY (QStringList dis_desc READ getdis_desc WRITE setdis_desc) Q_PROPERTY (QStringList dis_desc READ getdis_desc WRITE setdis_desc)
protected: protected:
...@@ -186,6 +188,9 @@ protected: ...@@ -186,6 +188,9 @@ protected:
QString getBillFile() const; QString getBillFile() const;
void setBillFile(const QString &v); void setBillFile(const QString &v);
QString getInvoiceTitle() const ;
void setInvoiceTitle(const QString& v);
QList<ComdObject*> _ReadObjectMates(const QString &mates_str); QList<ComdObject*> _ReadObjectMates(const QString &mates_str);
public: public:
...@@ -238,6 +243,7 @@ public: ...@@ -238,6 +243,7 @@ public:
int delivery_type; //Delivery type int delivery_type; //Delivery type
int delivery_time; //Delivery time int delivery_time; //Delivery time
QString bill_file; //Bill file QString bill_file; //Bill file
QString invoice_title; //发票抬头
int paid_fee; //已付金额 int paid_fee; //已付金额
int rest_fee; //未付 int rest_fee; //未付
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <QFileInfo> #include <QFileInfo>
#include <QPointer> #include <QPointer>
#include "XCBOperate.h" #include "XCBOperate.h"
#include "DClasses/Database.h"
DetailsForm::DetailsForm(OrderObject *orderObj, QWidget *parent) : DetailsForm::DetailsForm(OrderObject *orderObj, QWidget *parent) :
QDialog(parent), QDialog(parent),
...@@ -40,7 +41,7 @@ DetailsForm::DetailsForm(OrderObject *orderObj, QWidget *parent) : ...@@ -40,7 +41,7 @@ DetailsForm::DetailsForm(OrderObject *orderObj, QWidget *parent) :
connect(ui->detailsTable, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SLOT(onItemClicked(QTreeWidgetItem*,int))); connect(ui->detailsTable, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SLOT(onItemClicked(QTreeWidgetItem*,int)));
connect(this, SIGNAL(reprintLable(const OrderObject*)), &WBillControl::GetInstance(), SLOT(PrintLable(const OrderObject*))); connect(this, SIGNAL(reprintLable(const OrderObject*,const QString)), &WBillControl::GetInstance(), SLOT(PrintLable(const OrderObject*,const QString)));
} }
DetailsForm::~DetailsForm() DetailsForm::~DetailsForm()
...@@ -788,6 +789,7 @@ void DetailsForm::onSucessful(const QString &msg, const QString &extra) ...@@ -788,6 +789,7 @@ void DetailsForm::onSucessful(const QString &msg, const QString &extra)
void DetailsForm::on_detailsBtn3_clicked() void DetailsForm::on_detailsBtn3_clicked()
{ {
QLOG_TRACE() << __FUNCTION__ << "reprinter"; QLOG_TRACE() << __FUNCTION__ << "reprinter";
emit reprintLable(m_orderObj); QString posOrderId=Database::getInstance().GetPOSOrderId(m_orderObj->order_id);
emit reprintLable(m_orderObj,posOrderId);
//WBillControl::GetInstance().PrintLable(m_orderObj); //WBillControl::GetInstance().PrintLable(m_orderObj);
} }
...@@ -55,7 +55,7 @@ private slots: ...@@ -55,7 +55,7 @@ private slots:
signals: signals:
void ntFormClose(); void ntFormClose();
void orderMateChanged(const QString &order_id); void orderMateChanged(const QString &order_id);
void reprintLable(const OrderObject *orderObj); void reprintLable(const OrderObject *orderObj,const QString posOrderId);
}; };
#endif // DETAILSFORM_H #endif // DETAILSFORM_H
...@@ -357,7 +357,11 @@ void MainForm::onFloatMoved(QPoint pos) ...@@ -357,7 +357,11 @@ void MainForm::onFloatMoved(QPoint pos)
void MainForm::_InitUI() void MainForm::_InitUI()
{ {
#ifdef Q_OS_LINUX
this->setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint |Qt::FramelessWindowHint); this->setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint |Qt::FramelessWindowHint);
#else
this->setWindowFlags(windowFlags() /*| Qt::WindowStaysOnTopHint |Qt::FramelessWindowHint*/);
#endif
//this->showFullScreen(); //this->showFullScreen();
m_size = this->size(); m_size = this->size();
......
...@@ -365,6 +365,11 @@ void BillsManger::ProcOrders(const QString &operaName, const QString &orderId, i ...@@ -365,6 +365,11 @@ void BillsManger::ProcOrders(const QString &operaName, const QString &orderId, i
} }
else if (!operaName.compare(OPERABTN_NAME_MAKE)) { else if (!operaName.compare(OPERABTN_NAME_MAKE)) {
bool res = WriteBill(orderId); bool res = WriteBill(orderId);
if (m_ordersMap.contains(orderId)) {
OrderObject *order = m_ordersMap[orderId];
emit sWriteBill(order);
}
QLOG_INFO() << QString("manually making order[%1] sucessful.").arg(orderId); QLOG_INFO() << QString("manually making order[%1] sucessful.").arg(orderId);
_CheckReservations(); _CheckReservations();
// emit sucessful(OPERABTN_NAME_MAKE + QString("成功")); // emit sucessful(OPERABTN_NAME_MAKE + QString("成功"));
......
...@@ -106,6 +106,7 @@ void WBillControl::SetStoreInfo(const QString &partner_id, const QString &storeI ...@@ -106,6 +106,7 @@ void WBillControl::SetStoreInfo(const QString &partner_id, const QString &storeI
void WBillControl::DoOrderEntry(const OrderObject *orderObject) void WBillControl::DoOrderEntry(const OrderObject *orderObject)
{ {
int iPosOrderStatus=0; int iPosOrderStatus=0;
QString orderId;
QTcpSocket *socket = new QTcpSocket(this); QTcpSocket *socket = new QTcpSocket(this);
// 连接 // 连接
QByteArray byteSlip=GetOrderEntryData(orderObject, false); QByteArray byteSlip=GetOrderEntryData(orderObject, false);
...@@ -121,15 +122,16 @@ void WBillControl::DoOrderEntry(const OrderObject *orderObject) ...@@ -121,15 +122,16 @@ void WBillControl::DoOrderEntry(const OrderObject *orderObject)
QJsonObject recvJson = QJsonDocument::fromJson(socket->readAll()).object(); QJsonObject recvJson = QJsonDocument::fromJson(socket->readAll()).object();
QLOG_INFO() <<"write order back:"<< recvJson; QLOG_INFO() <<"write order back:"<< recvJson;
bool res=1; bool res=1;
orderId=recvJson["orderid"].toString();
iPosOrderStatus=recvJson["statusCode"].toInt(); iPosOrderStatus=recvJson["statusCode"].toInt();
if(101==iPosOrderStatus) if(101==iPosOrderStatus)
{ {
res=0; res=0;
QLOG_INFO() << "write order failed:" << recvJson["msg"].toString(); QLOG_INFO() << "write order failed:" << recvJson["msg"].toString();
} }
QString sql = QString("update %1 set products_fee=%2,shop_fee=%3,isPosOK=%4 where fm_id='%5';") QString sql = QString("update %1 set products_fee=%2,service_fee=%3,dis_shop_fee=%4,pos_order_id='%5',isPosOK=%6 where fm_id='%7';")
.arg(Database::getInstance().GetInfoTableName()) .arg(Database::getInstance().GetInfoTableName())
.arg(orderObject->product_fee).arg(orderObject->shop_fee).arg(res).arg(orderObject->fm_id); .arg(orderObject->product_fee).arg(orderObject->service_fee).arg(orderObject->dis_shop_fee).arg(orderId).arg(res).arg(orderObject->fm_id);
if(Database::getInstance().execSql(sql)){ if(Database::getInstance().execSql(sql)){
emit sUpdatePosRes(orderObject); emit sUpdatePosRes(orderObject);
} }
...@@ -142,7 +144,7 @@ void WBillControl::DoOrderEntry(const OrderObject *orderObject) ...@@ -142,7 +144,7 @@ void WBillControl::DoOrderEntry(const OrderObject *orderObject)
if(102!=iPosOrderStatus){ if(102!=iPosOrderStatus){
QLOG_INFO() << "开始打印小票"; QLOG_INFO() << "开始打印小票";
//打印小票 //打印小票
PrintLable(orderObject); PrintLable(orderObject,orderId);
} }
} }
...@@ -358,14 +360,14 @@ void WBillControl::setMenu(const QByteArray &JsonMenu) ...@@ -358,14 +360,14 @@ void WBillControl::setMenu(const QByteArray &JsonMenu)
} }
} }
void WBillControl::PrintLable(const OrderObject *obj) void WBillControl::PrintLable(const OrderObject *obj,const QString posOrderId)
{ {
//外卖单打印 //外卖单打印
printTakeout(obj); printTakeout(obj,posOrderId);
//上菜单打印 //上菜单打印
printMenu(obj); printMenu(obj,posOrderId);
//收银单打印 //收银单打印
printBill(obj); printBill(obj,posOrderId);
//厨房单打印 //厨房单打印
for(int i=0; i < obj->proList.size(); i++) for(int i=0; i < obj->proList.size(); i++)
{ {
...@@ -378,19 +380,19 @@ void WBillControl::PrintLable(const OrderObject *obj) ...@@ -378,19 +380,19 @@ void WBillControl::PrintLable(const OrderObject *obj)
QVector<SetMenuItem> vecItem = it.value(); QVector<SetMenuItem> vecItem = it.value();
for(SetMenuItem item:vecItem){ for(SetMenuItem item:vecItem){
QLOG_INFO() << "------ child menu id:"<<item.strMenuId; QLOG_INFO() << "------ child menu id:"<<item.strMenuId;
printCook(obj,item.strMenuId,item.num); printCook(obj,item.strMenuId,item.num,posOrderId);
} }
} }
else{ else{
QLOG_INFO() << "------ menu pid:"<<pid; QLOG_INFO() << "------ menu pid:"<<pid;
printCook(obj,pid,num); printCook(obj,pid,num,posOrderId);
} }
} }
} }
//厨房单打印 //厨房单打印
void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int num,bool bJump) void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int num,const QString &posOrderId,bool bJump)
{ {
for(PrinterMenu menu:vecMenu){ for(PrinterMenu menu:vecMenu){
if(menu.strMenuId==menuId){ if(menu.strMenuId==menuId){
...@@ -435,25 +437,27 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu ...@@ -435,25 +437,27 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu
tObj.insert("type", 2); tObj.insert("type", 2);
tAry.insert(2, tObj); tAry.insert(2, tObj);
QString posOrder="POS单号:";
posOrder+=posOrderId;
tObj.insert("text", posOrder);
tObj.insert("type", 2);
tAry.insert(3, tObj);
QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm"); QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm");
tObj.insert("text", datetime); tObj.insert("text", datetime);
tObj.insert("type", 2); tObj.insert("type", 2);
tAry.insert(3, tObj); tAry.insert(4, tObj);
std::string stdSep="----------------------------------------"; std::string stdSep="----------------------------------------";
tObj.insert("text", stdSep.data()); tObj.insert("text", stdSep.data());
tObj.insert("type", 1); tObj.insert("type", 1);
tAry.insert(4, tObj); tAry.insert(5, tObj);
QByteArray menuName=QString::number(num).toLatin1(); QByteArray menuName=QString::number(num).toLatin1();
menuName.append(" "); menuName.append(" ");
menuName.append(QTextCodec::codecForName("GBK")->toUnicode(menu.strMenuName.toLatin1())); menuName.append(QTextCodec::codecForName("GBK")->toUnicode(menu.strMenuName.toLatin1()));
tObj.insert("text", menuName.data()); tObj.insert("text", menuName.data());
tObj.insert("type", 3); tObj.insert("type", 3);
tAry.insert(5, tObj);
tObj.insert("text", "");
tObj.insert("type", 1);
tAry.insert(6, tObj); tAry.insert(6, tObj);
tObj.insert("text", ""); tObj.insert("text", "");
...@@ -468,6 +472,10 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu ...@@ -468,6 +472,10 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu
tObj.insert("type", 1); tObj.insert("type", 1);
tAry.insert(9, tObj); tAry.insert(9, tObj);
tObj.insert("text", "");
tObj.insert("type", 1);
tAry.insert(10, tObj);
rObj.insert("print", tAry); rObj.insert("print", tAry);
qDebug() << rObj; qDebug() << rObj;
...@@ -532,7 +540,7 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu ...@@ -532,7 +540,7 @@ void WBillControl::printCook(const OrderObject *obj,const QString& menuId,int nu
QByteArray strArrayNew = docNew.toJson( QJsonDocument::Compact); QByteArray strArrayNew = docNew.toJson( QJsonDocument::Compact);
QLOG_INFO() << "------jump json string:"<<strArrayNew; QLOG_INFO() << "------jump json string:"<<strArrayNew;
if(sendToPrintServer(strArrayNew)){ if(sendToPrintServer(strArrayNew)){
printCook(obj,menuId,num,true); printCook(obj,menuId,num,posOrderId,true);
} }
else else
{ {
...@@ -577,8 +585,8 @@ bool WBillControl::sendToPrintServer(QByteArray &JsonPrint) ...@@ -577,8 +585,8 @@ bool WBillControl::sendToPrintServer(QByteArray &JsonPrint)
} }
//外卖单打印 //外卖单打印
void WBillControl::printTakeout(const OrderObject *obj) void WBillControl::printTakeout(const OrderObject *obj,const QString &posOrderId)
{ {
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
int fd=-1; int fd=-1;
for(int i=0; i < obj->proList.size(); i++) for(int i=0; i < obj->proList.size(); i++)
...@@ -674,6 +682,18 @@ void WBillControl::printTakeout(const OrderObject *obj) ...@@ -674,6 +682,18 @@ void WBillControl::printTakeout(const OrderObject *obj)
std::string stdId=strId.toStdString(); std::string stdId=strId.toStdString();
print(charset_u2g(stdId).data(),3); print(charset_u2g(stdId).data(),3);
QString strPosId="POS单号:";
strPosId+=posOrderId;
std::string stdPosId=strPosId.toStdString();
print(charset_u2g(stdPosId).data(),3);
if(!obj->invoice_title.isEmpty()){
QString strInvoiceTitle="发票抬头:";
strInvoiceTitle+=obj->invoice_title;
std::string stdInvoiceTitle=strInvoiceTitle.toStdString();
print(charset_u2g(stdInvoiceTitle).data(),3);
}
QString strRemark="备注:"; QString strRemark="备注:";
strRemark+=obj->remark; strRemark+=obj->remark;
std::string stdRemark=strRemark.toStdString(); std::string stdRemark=strRemark.toStdString();
...@@ -698,7 +718,7 @@ void WBillControl::printTakeout(const OrderObject *obj) ...@@ -698,7 +718,7 @@ void WBillControl::printTakeout(const OrderObject *obj)
} }
//上菜单打印 //上菜单打印
void WBillControl::printMenu(const OrderObject *obj) void WBillControl::printMenu(const OrderObject *obj,const QString &posOrderId)
{ {
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
int fd=-1; int fd=-1;
...@@ -734,6 +754,11 @@ void WBillControl::printMenu(const OrderObject *obj) ...@@ -734,6 +754,11 @@ void WBillControl::printMenu(const OrderObject *obj)
std::string stdOrder=order.toStdString(); std::string stdOrder=order.toStdString();
print(charset_u2g(stdOrder).data(),1); print(charset_u2g(stdOrder).data(),1);
QString posOrder="POS单号:";
posOrder+=posOrderId;
std::string stdPosOrder=posOrder.toStdString();
print(charset_u2g(stdPosOrder).data(),1);
QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm"); QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm");
std::string stdDatetime=datetime.toStdString(); std::string stdDatetime=datetime.toStdString();
print(charset_u2g(stdDatetime).data(),1); print(charset_u2g(stdDatetime).data(),1);
...@@ -786,7 +811,7 @@ void WBillControl::printMenu(const OrderObject *obj) ...@@ -786,7 +811,7 @@ void WBillControl::printMenu(const OrderObject *obj)
} }
//收银单打印 //收银单打印
void WBillControl::printBill(const OrderObject *obj) void WBillControl::printBill(const OrderObject *obj,const QString &posOrderId)
{ {
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
int fd=-1; int fd=-1;
...@@ -834,6 +859,11 @@ void WBillControl::printBill(const OrderObject *obj) ...@@ -834,6 +859,11 @@ void WBillControl::printBill(const OrderObject *obj)
std::string stdOrder=order.toStdString(); std::string stdOrder=order.toStdString();
print(charset_u2g(stdOrder).data(),1); print(charset_u2g(stdOrder).data(),1);
QString posOrder="POS单号:";
posOrder+=posOrderId;
std::string stdPosOrder=posOrder.toStdString();
print(charset_u2g(stdPosOrder).data(),1);
QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm"); QString datetime =QDateTime::currentDateTime().toString("日期:yyyy-MM-dd 时间:hh:mm");
std::string stdDatetime=datetime.toStdString(); std::string stdDatetime=datetime.toStdString();
print(charset_u2g(stdDatetime).data(),1); print(charset_u2g(stdDatetime).data(),1);
......
...@@ -64,7 +64,7 @@ public slots: ...@@ -64,7 +64,7 @@ public slots:
void RefundOrder(const QString& orderId); void RefundOrder(const QString& orderId);
//打印小票 //打印小票
void PrintLable(const OrderObject *obj); void PrintLable(const OrderObject *obj,const QString posOrderId);
private: private:
/* 功能:获取写入销售单数据 /* 功能:获取写入销售单数据
...@@ -104,16 +104,16 @@ private: ...@@ -104,16 +104,16 @@ private:
* 参数:[4]打印跳转 * 参数:[4]打印跳转
* 返回: * 返回:
* */ * */
void printCook(const OrderObject *obj,const QString& menuId,int num,bool bJump=false); void printCook(const OrderObject *obj,const QString& menuId,int num,const QString &posOrderId,bool bJump=false);
//外卖单打印 //外卖单打印
void printTakeout(const OrderObject *obj); void printTakeout(const OrderObject *obj,const QString &posOrderId);
//上菜单打印 //上菜单打印
void printMenu(const OrderObject *obj); void printMenu(const OrderObject *obj,const QString &posOrderId);
//收银账单打印 //收银账单打印
void printBill(const OrderObject *obj); void printBill(const OrderObject *obj,const QString &posOrderId);
//厨房小票信息发送到monitor //厨房小票信息发送到monitor
bool sendToPrintServer(QByteArray &JsonPrint); bool sendToPrintServer(QByteArray &JsonPrint);
......
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