Commit 4448d716 by xiaoqing.gu

1、根据商户号定制不同的杯贴打印样式 2、匹配书亦两种系统的数据库 3、修改订单详情界面的自动换行问题 4、退单界面新增退单中状态

parent c52b1661
......@@ -14,6 +14,7 @@
#include "model/posorderpool.h"
#include <QJsonDocument>
#include <QJsonArray>
#include <QSettings>
NewPrintLib::NewPrintLib()
{
......@@ -550,9 +551,22 @@ bool NewPrintLib::PrintLabel(const QString &config, OrderObject *order)
qDebug() << "input9:" << prodname;
f_labprtline(0, 10, 0, tmptitle.toLocal8Bit().data());
f_labprtline(0, 0, 0, "-----------------------------------");
f_labprtline(10, 0, 1, prodname.append(QString("\x20\xC2\xA5")).append(QString::number(dish->price/100.0, 'f', 2)).toLocal8Bit().data());
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
QString partnerid = QSettings(configfile, QSettings::IniFormat).value(INI_BASE_PARNETID).toString();
if(partnerid == SHUYI) {
f_labprtlinewithsizeandratio(0, 50, 24, 0.0266665, 0, tmptitle.toLocal8Bit().data());
f_labprtlinewithsizeandratio(0, 0, 24, 0.0266665, 0, "-----------------------------------");
f_labprtlinewithsizeandratio(0, 0, 24, 0.0266665, 1, prodname.append(QString("\x20\xC2\xA5")).append(QString::number(dish->price/100.0, 'f', 2)).toLocal8Bit().data());
} else if(partnerid == YIHETANG) {
f_labprtlinewithsizeandstyle(10, 50, 24, 0, 0, tmptitle.toLocal8Bit().data());
f_labprtlinewithsizeandstyle(10, 0, 24 ,0 ,0, "-----------------------------------");
f_labprtlinewithsizeandstyle(10, 0, 32, 2, 1, prodname/*.append(QString("\x20\xC2\xA5")).append(QString::number(dish->price/100.0, 'f', 2))*/.toLocal8Bit().data());
} else {
f_labprtline(0, 10, 0, tmptitle.toLocal8Bit().data());
f_labprtline(0, 0, 0, "-----------------------------------");
f_labprtline(10, 0, 1, prodname.append(QString("\x20\xC2\xA5")).append(QString::number(dish->price/100.0, 'f', 2)).toLocal8Bit().data());
}
QString property_tags;
if(!dish->property_tags.isEmpty())
{
......@@ -568,17 +582,37 @@ bool NewPrintLib::PrintLabel(const QString &config, OrderObject *order)
}
}
property_tags.remove(property_tags.length()-1,1);
f_labprtline(10,0,1,property_tags.toLocal8Bit().data());
if(partnerid == SHUYI) {
f_labprtlinewithsizeandratio(0,0,24, 0.0266665, 1,property_tags.toLocal8Bit().data());
} else if(partnerid == YIHETANG) {
f_labprtlinewithsizeandstyle(10,0,32,2,1,property_tags.toLocal8Bit().data());
} else {
f_labprtline(10,0,1,property_tags.toLocal8Bit().data());
}
QString sendtimes = QString("");
if(tmpdelitime != 0 /*&& (order->order_type == 1 || order->order_type == 2)*/)
{
sendtimes.append(QDateTime::fromTime_t(order->delivery_time).toString("yyyy-MM-dd hh:mm:ss"));
f_labprtline(10,140,1,sendtimes.toLocal8Bit().data());
sendtimes.append(QDateTime::fromTime_t(order->delivery_time).toString("yyyy-MM-dd hh:mm"));
if(partnerid == SHUYI) {
f_labprtlinewithsizeandratio(0,140,24, 0.0266665, 1,sendtimes.toLocal8Bit().data());
} else if(partnerid == YIHETANG) {
f_labprtlinewithsizeandstyle(10,140,24,0,1,sendtimes.toLocal8Bit().data());
}else {
f_labprtline(10,140,1,sendtimes.toLocal8Bit().data());
}
}
if(partnerid == SHUYI) {
f_labprtlinewithsizeandratio(0,170,24, 0.0266665, 1,order->store_name.toLocal8Bit().data());
} else if(partnerid == YIHETANG) {
f_labprtlinewithsizeandstyle(10,180,24,0,1,order->store_name.toLocal8Bit().data());
} else {
f_labprtline(10,180,1,order->store_name.toLocal8Bit().data());
f_labprtline(10,180,1,order->store_name.toLocal8Bit().data());
}
f_labprtclose();
......@@ -819,8 +853,6 @@ bool NewPrintLib::DoLabelModelPrint(const QString &config, const QString &contex
CONSTCHARTOCHAR(prtconfigdata, prtconfig);
char *xml = NULL;
QByteArray xmldata = context.toLocal8Bit();
......@@ -1066,6 +1098,8 @@ bool NewPrintLib::LoadFunction()
f_loadaddress = (LoadAddress)lib.resolve("LoadAddress");
f_labprtiopen = (LabPrtOpen)lib.resolve("LabPrtOpen");
f_labprtline = (LabPrtLine)lib.resolve("LabPrtLine");
f_labprtlinewithsizeandratio = (LabPrtLineWithSizeAndRatio)lib.resolve("LabPrtLineWithSizeAndRatio");
f_labprtlinewithsizeandstyle = (LabPrtLineWithSizeAndStyle)lib.resolve("LabPrtLineWithSizeAndStyle");
f_labprtclose = (LabPrtClose)lib.resolve("LabPrtClose");
f_prtopen = (PrtOpen)lib.resolve("PrtOpen");
f_prtclose = (PrtClose)lib.resolve("PrtClose");
......@@ -1076,7 +1110,7 @@ bool NewPrintLib::LoadFunction()
f_DoPrintWithXml = (DoPrintWithXml)lib.resolve("DoPrintWithXml");
f_DoLabPrintWithXml = (DoLabPrintWithXml)lib.resolve("DoLabPrintWithXml");
if(!(f_unloaddll && f_loadaddress && f_labprtiopen && f_labprtline
if(!(f_unloaddll && f_loadaddress && f_labprtiopen && f_labprtline && f_labprtlinewithsizeandratio && f_labprtlinewithsizeandstyle
&& f_labprtclose && f_prtopen && f_prtclose && f_freeline
&& f_printdataline && f_printBarcode && f_printqrcode && f_DoPrintWithXml))
{
......
......@@ -13,6 +13,10 @@ typedef int (*LabPrtOpen)(char data[]);
typedef int (*LabPrtLine)(int x, int y, int line, const char *data);
typedef int (*LabPrtLineWithSizeAndRatio)(int x, int y, int size, double ratio, int line, const char *data);
typedef int (*LabPrtLineWithSizeAndStyle)(int x, int y, int size, int style, int line, const char *data);
typedef int (*LabPrtClose)();
typedef int (*PrtOpen)(char data[]);
......@@ -106,6 +110,10 @@ private:
LabPrtLine f_labprtline;
LabPrtLineWithSizeAndRatio f_labprtlinewithsizeandratio;
LabPrtLineWithSizeAndStyle f_labprtlinewithsizeandstyle;
LabPrtClose f_labprtclose;
PrtOpen f_prtopen;
......
......@@ -159,10 +159,10 @@ void OrderEntryWork::orderInput(QString orderid)
"UID=%3;" //登录名
"PWD=%4;" //密码
)
.arg("SH-FM")
.arg("127.0.0.1")
.arg("GSCYDB")
.arg("sa")
.arg("Sy0592")
.arg("dream0592way")
);
// QString dsn = QString::fromLocal8Bit("GSCYDB");
// m_db.setHostName("SH-FM");
......@@ -172,8 +172,23 @@ void OrderEntryWork::orderInput(QString orderid)
if (!m_db.open())
{
QLOG_ERROR()<<"connect sql server failed!" << m_db.lastError().databaseText();
return;
//重试密码,两次都不正确退出,并报错
m_db = QSqlDatabase::addDatabase("QODBC");
m_db.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;" //服务器名称
"DATABASE=%2;" //数据库名
"UID=%3;" //登录名
"PWD=%4;" //密码
)
.arg("127.0.0.1")
.arg("GSCYDB")
.arg("sa")
.arg("peggy032")
);
if (!m_db.open()) {
QLOG_ERROR()<<"connect sql server failed!" << m_db.lastError().databaseText();
return;
}
}
//插入新增平台,如果存在,数据库报错不会重新插入
......@@ -181,9 +196,9 @@ void OrderEntryWork::orderInput(QString orderid)
insertYHJBQKtable(QString("JDDJ"), QString::fromLocal8Bit(XSJBXX_DDYBH_JDDJ));
insertYHJBQKtable(QString("SAAS"), QString::fromLocal8Bit(XSJBXX_DDYBH_SAAS));
if(isInserted(order.fm_id))
if(isInserted(order.order_id))
{
QLOG_DEBUG() << order.fm_id << "is inserted!";
QLOG_DEBUG() << order.order_id << "is inserted!";
return;
}
m_db.transaction();
......@@ -297,10 +312,10 @@ QString OrderEntryWork::getDW(QString XMBH)
}
}
bool OrderEntryWork::isInserted(QString fm_id)
bool OrderEntryWork::isInserted(QString order_id)
{
QSqlQuery query;
QString str = QString("SELECT * FROM XSJBXX WHERE XSDH = '%1'").arg(fm_id);
QString str = QString("SELECT * FROM XSJBXX WHERE XSDH = '%1'").arg(order_id);
QLOG_DEBUG() << "OrderEntryWork::isInserted sql str:" << str;
bool res = query.exec(str);
QLOG_DEBUG() << res;
......@@ -343,7 +358,7 @@ bool OrderEntryWork::insertYHJBQKtable(QString pl,QString platform)
bool OrderEntryWork::insertXSJBXXtable(OrderObject order, QString &error)
{
QString BZ = "POS";
QString XSDH = order.fm_id;
QString XSDH = order.order_id;
QString channel = order.channel;
QString XH;
QString DDYBH;
......@@ -411,8 +426,8 @@ bool OrderEntryWork::insertXSMXXXtable(OrderObject order,QString &error)
ProductObject * product = products.at(i);
QLOG_DEBUG() << "OrderEntryWork::insertXSMXXXtable" << product->pid;
QString XH = order.fm_id + QString("_") + QString::number(m_index);
QString XSDH = order.fm_id;
QString XH = order.order_id + QString("_") + QString::number(m_index);
QString XSDH = order.order_id;
QString XMBH = product->stock_barcode;
QString XMMC = product->name;
QString TM = product->stock_barcode;
......@@ -462,8 +477,8 @@ bool OrderEntryWork::insertXSMXXXtable(OrderObject order,QString &error)
//餐盒费以单品入机
if(order.package_fee != 0) {
QString XH = order.fm_id + QString("_") + QString::number(m_index);
QString XSDH = order.fm_id;
QString XH = order.order_id + QString("_") + QString::number(m_index);
QString XSDH = order.order_id;
QString XMBH = "JH002";
QString XMMC = QString::fromLocal8Bit(XSMXXX_JH002);
QString TM = "JH002";
......@@ -512,8 +527,8 @@ bool OrderEntryWork::insertXSMXXXtable(OrderObject order,QString &error)
//如果配送费不为空,则将配送费入机
if(order.send_fee != 0) {
QString XH = order.fm_id + QString("_") + QString::number(m_index);
QString XSDH = order.fm_id;
QString XH = order.order_id + QString("_") + QString::number(m_index);
QString XSDH = order.order_id;
QString XMBH = "JH001";
QString XMMC = QString::fromLocal8Bit(XSMXXX_JH001);
QString TM = "JH001";
......@@ -565,7 +580,7 @@ bool OrderEntryWork::insertXSMXXXtable(OrderObject order,QString &error)
bool OrderEntryWork::insertXSFKFStable(OrderObject order,QString &error)
{
QString XSDH = order.fm_id;
QString XSDH = order.order_id;
QString BM;
QString NR;
QString channel = order.channel;
......
......@@ -125,7 +125,7 @@ typedef enum
ApplicationRefundOrder = 20,
//申请部分退款
ApplicationPartialRefundOrder = 22,
//同意退款
//同意退款(!!!现在是退款中状态)
ApprovalRefundOrder = 30,
//不同意退款
RefusingRefundOrder = 40,
......
......@@ -10,6 +10,10 @@
#define MAX_JSON_KEY_LEN 128
#define MAX_SIGN_LEN 256
#define SHUYI "2055"
#define TEST "1864"
#define YIHETANG "2095"
#define DEFAULT_CONNECTNAME "posinfo"
#define DEFAULT_DBNAME "order.db"
#define DEFAULT_PRTDBNAME "prt.db"
......
......@@ -82,10 +82,13 @@ void NewDetailForm::InitData(OrderObject *orderObject, bool flag)
if(type == AppointmentTakeout || type == AppointmentDining || type == AppointmentInvite)
{
if(type == AppointmentTakeout)
if(type == AppointmentTakeout) {
ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【外卖】【<font color=red>预约</font>】【%1】").arg(timeStr));
else
ui->deliveryInfoLb_dec->setWordWrap(true);
} else {
ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【自提】【<font color=red>预约</font>】【%1】").arg(timeStr));
ui->deliveryInfoLb_dec->setWordWrap(true);
}
}
else
{
......@@ -101,14 +104,18 @@ void NewDetailForm::InitData(OrderObject *orderObject, bool flag)
if(type == AppointmentTakeout || type == AppointmentDining || type == AppointmentInvite)
{
if(type == AppointmentTakeout)
if(type == AppointmentTakeout) {
ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【%1】【<font color=red>预约</font>】【%2】").arg(orderObject->delivery_party,timeStr));
else
ui->deliveryInfoLb_dec->setWordWrap(true);
} else {
ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【%1】【<font color=red>预约</font>】【%2】").arg(orderObject->delivery_party,timeStr));
ui->deliveryInfoLb_dec->setWordWrap(true);
}
}
else
{
ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【%1】【%2】").arg(orderObject->delivery_party,timeStr));
ui->deliveryInfoLb_dec->setWordWrap(true);
}
}
//ui->deliveryInfoLb_dec->setText(QString::fromLocal8Bit("【%1】【%2】").arg(orderObject->delivery_party,timeStr));
......@@ -137,6 +144,7 @@ void NewDetailForm::InitData(OrderObject *orderObject, bool flag)
}
ui->promotionInfoLb_dec->setText(QString(disStr));
ui->promotionInfoLb_dec->setWordWrap(true);
QString checkStr;
if(orderObject->has_invoiced) {
......@@ -146,6 +154,7 @@ void NewDetailForm::InitData(OrderObject *orderObject, bool flag)
}
ui->checkInfoLb_dec->setText(QString(checkStr));
ui->checkInfoLb_dec->setWordWrap(true);
/*
ui->orderInfoLb_dec->setText(QString::fromLocal8Bit("[%1][%2][%3]").arg(orderObject->channel_name,
......
......@@ -1021,6 +1021,8 @@ void NewMainForm::InsertTableWidget(OrderObject &orderObject)
ClassifyOrder(_curr_check_btn->property("type").toString());
ui->newmaintablewidget_order->setSortingEnabled(true);
//自动触发点击序号表头排序的动作
ui->newmaintablewidget_order->sortItems(0, Qt::DescendingOrder);
table->setRowHeight(0, 36);
}
......@@ -1772,7 +1774,7 @@ void NewMainForm::on_newmainbtn_prttest_clicked()
ProductObject *prod = new ProductObject(&order);
prod->pid = "00001";
prod->name = QString::fromUtf8("\xE6\x96\xB9\xE4\xBE\xBF\xE9\x9D\xA2");
prod->name = QString::fromUtf8("\xE6\x96\xB9\xE4\xBE\xBF\xE9\x9D\xA2\xE6\x96\xB9\xE4\xBE\xBF\xE9\x9D\xA2\xE6\x96\xB9\xE4\xBE\xBF\xE9\x9D\xA2");
prod->price = 3000;
prod->product_amount = 2;
prod->property_tags = QString::fromUtf8("\xE5\x8A\xA0\xE7\x81\xAB\xE8\x85\xBF");
......
......@@ -103,10 +103,13 @@ void OrderTypeForm::SetNameStyle(int status)
break;
case CancelOrder:
case CompleteRefundOrder:
case ApprovalRefundOrder:
ui->ordertypelabel_name->setText(QString::fromUtf8("\xE5\xB7\xB2\xE9\x80\x80\xE5\x8D\x95"));
ui->ordertypelabel_name->setStyleSheet("#ordertypelabel_name{border:1px solid rgba(170,170,170,1);border-radius:4px;color:rgba(170,170,170,1);}");
break;
case ApprovalRefundOrder:
ui->ordertypelabel_name->setText(QString::fromUtf8("\xE9\x80\x80\xE6\xAC\xBE\xE4\xB8\xAD"));
ui->ordertypelabel_name->setStyleSheet("#ordertypelabel_name{border:1px solid rgba(25,108,166,1);border-radius:4px;color:rgba(25,108,166,1);}");
break;
case DispatchingOrder:
ui->ordertypelabel_name->setText(QString::fromUtf8("\xE9\x85\x8D\xE9\x80\x81\xE4\xB8\xAD"));
ui->ordertypelabel_name->setStyleSheet("#ordertypelabel_name{border:1px solid rgba(25,108,166,1);border-radius:4px;color:rgba(25,108,166,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