添加退款订单打印以及退单打印

This commit is contained in:
邹宗楠
2022-06-14 15:23:02 +08:00
parent caa0b76302
commit 140d07bb92
14 changed files with 285 additions and 47 deletions

View File

@@ -83,7 +83,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
商品明细: <BR>
品名 数量 单价 小计<BR>
--------------------------------<BR>`
// <BOLD>实际支付:</BOLD>%s<BR>
// <BOLD>实际支付:</BOLD>%s<BR>
orderParams = append(orderParams,
utils.Time2Str(order.OrderCreatedAt),
utils.Time2Str(expectedDeliveryTime),
@@ -174,7 +174,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
<B>商品明细: <BR></B>
<B>品名数量单价小计<BR></B>
--------------------------------<BR>`
// <B><BOLD>实际支付:</BOLD></B><B>%s<BR></B>
// <B><BOLD>实际支付:</BOLD></B><B>%s<BR></B>
orderParams = append(orderParams,
utils.Time2Str(order.OrderCreatedAt),
utils.Time2Str(expectedDeliveryTime),
@@ -265,6 +265,10 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, printerSN, printerKey, printerName string) (notUsed1, notUsed2 string, err error) {
var no map[string]string
if globals.EnableStoreWrite {

View File

@@ -255,6 +255,10 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, utils.Int2Str(order.OrderSeq), order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
func (c *PrinterHandler) EmptyPrintList(ctx *jxcontext.Context, id1, id2 string) (err error) {
if globals.EnableStoreWrite {
err = api.JxPrintAPI.DelPrinterSeq(id1)

View File

@@ -65,7 +65,7 @@ func (c *PrinterHandler) getOrderContent(order *model.GoodsOrder, storeTel strin
品名 数量 单价 小计
--------------------------------*
`
// <S011>实际支付: %s*
// <S011>实际支付: %s*
orderParams := []interface{}{
globals.StoreName,
utils.Time2Str(order.OrderCreatedAt),
@@ -140,7 +140,7 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
<big>品名数量单价小计*
--------------------------------*
`
// <big>实际支付: %s*
// <big>实际支付: %s*
orderParams := []interface{}{
globals.StoreName,
utils.Time2Str(order.OrderCreatedAt),
@@ -307,6 +307,10 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
func isV500(printerNo string) bool {
printerNoNum := utils.Str2Int64WithDefault("1"+printerNo, 0)
return printerNoNum > 1000000000

View File

@@ -210,6 +210,170 @@ func (c *PrinterHandler) getOrderContentBig(order *model.GoodsOrder, storeTel st
return strings.Replace(fmt.Sprintf(strings.Replace(orderFmt, "\n", "", -1), orderParams...), "\\n", "\r\n", -1)
}
// 打印取消或者退款订单
func (c *PrinterHandler) getCancelOrRefundOrderContent(order *model.GoodsOrder, printType int, storeDetail *dao.StoreDetail) (content string) {
expectedDeliveryTime := order.ExpectedDeliveredTime
if utils.IsTimeZero(expectedDeliveryTime) {
expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
}
orderParams := []interface{}{}
orderFmt := ``
if storeDetail != nil {
if storeDetail.BrandIsPrint == model.NO {
orderFmt += `
<FS2><CA>%s</CA></FS2>\n\n
`
if order.VendorOrgCode == "34665" {
orderParams = append(orderParams, globals.StoreNameEbai2)
} else {
orderParams = append(orderParams, storeDetail.BrandName)
}
}
}
title := ``
if printType == model.YES { // 退单
title = `<CA>取消订单详情</CA>\n`
} else {
title = `<CA>退款订单详情</CA>\n`
}
orderFmt += `
<CA>手机买菜上京西</CA>\n
` + title + `
--------------------------------
下单时间: %s\n
预计送达: %s\n
订单编号: %s\n
`
orderFmt += `
\n
<FS>%s#%d</FS>\n\n
客户: %s\n
电话: %s\n
地址: %s\n
\n
客户备注: \n
<FS>%s</FS>\n
\n
\n
商品明细: \n
品名 数量 小计\n
--------------------------------\n`
orderParams = append(orderParams,
utils.Time2Str(order.OrderCreatedAt),
utils.Time2Str(expectedDeliveryTime),
order.VendorOrderID,
jxutils.GetVendorName(order.VendorID),
//order.OrderSeq,
order.VendorOrderID,
order.ConsigneeName,
order.ConsigneeMobile,
order.ConsigneeAddress,
order.BuyerComment,
)
for _, sku := range order.Skus {
orderFmt += `<FH>%s</FH>\n`
orderFmt += `<FH>%20s%8s</FH>\n`
orderParams = append(orderParams, sku.SkuName, "X"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
//标品需要打印条形码
if sku.Upc != "" {
orderFmt += `upc码 %s\n`
orderParams = append(orderParams, sku.Upc)
}
}
orderFmt += `\n
<FB>共%d种%d件商品</FB>
\n
--------------------------------\n
--------------------------------\n
`
// <QR>http://weixin.qq.com/r/tkkDGzTERmk5rXB49xyk</QR>
orderParams = append(orderParams, order.SkuCount, order.GoodsCount)
return strings.Replace(fmt.Sprintf(strings.Replace(orderFmt, "\n", "", -1), orderParams...), "\\n", "\r\n", -1)
}
// 打印取消或者退款订单,大字体
func (c *PrinterHandler) getCancelOrRefundOrderContentBig(order *model.GoodsOrder, printType int, storeDetail *dao.StoreDetail) (content string) {
expectedDeliveryTime := order.ExpectedDeliveredTime
if utils.IsTimeZero(expectedDeliveryTime) {
expectedDeliveryTime = order.OrderCreatedAt.Add(1 * time.Hour)
}
orderParams := []interface{}{}
orderFmt := ``
if storeDetail != nil {
if storeDetail.BrandIsPrint == model.NO {
orderFmt += `
<FS2><CA>%s</CA></FS2>\n\n
`
if order.VendorOrgCode == "34665" {
orderParams = append(orderParams, globals.StoreNameEbai2)
} else {
orderParams = append(orderParams, storeDetail.BrandName)
}
}
}
title := ``
if printType == model.YES { // 退单
title = `<CA>退单申请</CA>\n`
} else {
title = `<CA>退款申请</CA>\n`
}
orderFmt += `
<CA>手机买菜上京西</CA>\n
` + title + `
--------------------------------
<FS>下单时间: %s\n\n</FS>
<FS>预计送达: %s\n\n</FS>
<FS>订单编号: %s\n</FS>
\n
<FS>%s#%d</FS>\n\n
<FS>客户: %s\n</FS>
<FS>电话: %s\n</FS>
<FS>地址: %s\n</FS>
\n
<FS>客户备注: \n</FS>
<FS>%s</FS>\n
\n
\n
<FS>商品明细: \n</FS>
品名 数量 小计\n
--------------------------------\n`
orderParams = append(orderParams,
utils.Time2Str(order.OrderCreatedAt),
utils.Time2Str(expectedDeliveryTime),
order.VendorOrderID,
jxutils.GetVendorName(order.VendorID),
//order.OrderSeq,
order.VendorOrderID,
order.ConsigneeName,
order.ConsigneeMobile,
order.ConsigneeAddress,
order.BuyerComment,
)
for _, sku := range order.Skus {
orderFmt += `<FH2>%s\n</FH2>`
orderFmt += `<FS><FB>%15s%8s</FB>\n</FS>`
orderParams = append(orderParams, sku.SkuName, "X"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)))
//标品需要打印条形码
if sku.Upc != "" {
orderFmt += `<FS>upc码 %s\n</FS>`
orderParams = append(orderParams, sku.Upc)
}
}
orderFmt += `\n
<FS><FB>共%d种%d件商品</FB></FS>
\n
--------------------------------\n
--------------------------------\n
`
// <QR>http://weixin.qq.com/r/tkkDGzTERmk5rXB49xyk</QR>
orderParams = append(orderParams, order.SkuCount, order.GoodsCount)
return strings.Replace(fmt.Sprintf(strings.Replace(orderFmt, "\n", "", -1), orderParams...), "\\n", "\r\n", -1)
}
func (c *PrinterHandler) GetVendorID() int {
return model.VendorIDYiLianYun
}
@@ -272,6 +436,21 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
}
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
globals.SugarLogger.Debugf("yilianyun PrintCancelOrRefundOrder orderID:%s, storeID:%d", order.VendorOrderID, store.ID)
if len(order.Skus) == 0 {
return
}
content := ""
if store.PrinterFontSize == partner.PrinterFontSizeBig || store.PrinterFontSize == partner.PrinterFontSizeBig2 {
content = c.getCancelOrRefundOrderContent(order, printType, storeDetail)
} else {
content = c.getCancelOrRefundOrderContentBig(order, printType, storeDetail)
}
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, machineCode, secret, printerName string) (notUsed1, notUsed2 string, err error) {
if globals.EnableStoreWrite {
err = api.YilianyunAPI.AddPrinter(machineCode, secret, printerName)

View File

@@ -230,6 +230,10 @@ func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store,
return c.PrintMsg(ctx, store.PrinterSN, store.PrinterKey, order.VendorOrderID, content)
}
func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printType int, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder) (printerStatus *partner.PrinterStatus, err error) {
return nil, err
}
func (c *PrinterHandler) RegisterPrinter(ctx *jxcontext.Context, deviceID, deviceSecret, printerName string) (notUsed1, notUsed2 string, err error) {
if deviceID == "" || deviceSecret == "" {
err = fmt.Errorf("打印机ID与打印机密钥都不能为空")