From 5fb54b36d89ba3443b0df6b1c722e35fa3686da9 Mon Sep 17 00:00:00 2001 From: chenlin Date: Fri, 27 Sep 2024 10:36:08 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=9B=B6=E5=94=AE=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E6=95=B0=E6=8D=AE=E5=9B=9B=E8=88=8D=E4=BA=94?= =?UTF-8?q?=E5=85=A5=E4=BF=9D=E7=95=992=E4=BD=8D=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=EF=BC=9B=202=E3=80=81=E9=9B=B6=E5=94=AE=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E9=80=80=E8=B4=A7=E8=AE=A2=E5=8D=95=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E8=BD=AC=E4=B8=BA=E8=B4=9F=E5=80=BC=EF=BC=9B?= =?UTF-8?q?=203=E3=80=81=E9=9B=B6=E5=94=AE=E6=98=8E=E7=BB=86=E4=B8=AD?= =?UTF-8?q?=E9=9D=9E=E4=B8=B2=E7=A0=81=E5=95=86=E5=93=81=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4=EF=BC=88=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E3=80=81=E4=BD=BF=E7=94=A8=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E7=9B=B8=E5=90=8C=EF=BC=8C=E9=87=91=E9=A2=9D=E7=9B=B8?= =?UTF-8?q?=E5=90=8C=E7=9A=84=E6=89=8D=E5=90=88=E5=B9=B6=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/erp_order.go | 46 ++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index f9fdf44..67e0a3b 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -1408,6 +1408,7 @@ func (m *ErpOrder) SetRetailDetailCommodity() { item.StaffProfit = -item.StaffProfit item.StaffCostPrice = -item.StaffCostPrice item.WholesalePrice = -item.WholesalePrice + item.CouponDiscount = -item.CouponDiscount } item.StaffPrice = item.StaffCostPrice + item.WholesalePrice @@ -1500,12 +1501,20 @@ func mergeOrderCommodities(orderCommodities []ErpOrderCommodity) []ErpOrderCommo ErpOrderId uint32 ErpCommodityId uint32 IMEI string + CouponID uint32 + SalePrice float64 } commodityMap := make(map[key]*ErpOrderCommodity) // 遍历orderCommodities,将相同ErpCommodityId的数量累加 for _, commodity := range orderCommodities { - comboKey := key{ErpOrderId: commodity.ErpOrderId, ErpCommodityId: commodity.ErpCommodityId, IMEI: commodity.IMEI} + comboKey := key{ + ErpOrderId: commodity.ErpOrderId, + ErpCommodityId: commodity.ErpCommodityId, + IMEI: commodity.IMEI, + CouponID: commodity.CouponID, + SalePrice: commodity.SalePrice, + } if existingCommodity, exists := commodityMap[comboKey]; exists { existingCommodity.Count += commodity.Count existingCommodity.SalesProfit += commodity.SalesProfit @@ -4393,6 +4402,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp sumData.PosAmount = 0 sumData.StoreVmAmount = 0 sumData.OtherAmount = 0 + RoundRetailDetailTotalData(&sumData) var result []RetailDetailByJoin @@ -4773,6 +4783,7 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp sumData.PosAmount = cashier.PosAmount sumData.StoreVmAmount = cashier.StoreVmAmount sumData.OtherAmount = cashier.OtherAmount + RoundRetailDetailTotalData(&sumData) if req.IsExport == 1 { // 导出excel var orders []ErpOrder @@ -4844,6 +4855,39 @@ func roundValues(data *RetailDetailTotalData, totalPerData *TotalPerData, cashie } } +// RoundRetailDetailTotalData 将 RetailDetailTotalData 中所有 float64 字段保留两位小数 +func RoundRetailDetailTotalData(data *RetailDetailTotalData) { + data.RetailPrice = tools.RoundToTwoDecimalPlaces(data.RetailPrice) + data.SalePrice = tools.RoundToTwoDecimalPlaces(data.SalePrice) + data.SaleDiscount = tools.RoundToTwoDecimalPlaces(data.SaleDiscount) + data.MemberDiscount = tools.RoundToTwoDecimalPlaces(data.MemberDiscount) + data.VmDiscount = tools.RoundToTwoDecimalPlaces(data.VmDiscount) + data.CouponDiscount = tools.RoundToTwoDecimalPlaces(data.CouponDiscount) + data.Amount = tools.RoundToTwoDecimalPlaces(data.Amount) + data.WholesalePrice = tools.RoundToTwoDecimalPlaces(data.WholesalePrice) + data.StaffPrice = tools.RoundToTwoDecimalPlaces(data.StaffPrice) + data.SalesProfit = tools.RoundToTwoDecimalPlaces(data.SalesProfit) + data.StaffProfit = tools.RoundToTwoDecimalPlaces(data.StaffProfit) + data.TotalRetailPrice = tools.RoundToTwoDecimalPlaces(data.TotalRetailPrice) + data.TotalDiscount = tools.RoundToTwoDecimalPlaces(data.TotalDiscount) + data.TotalAmount = tools.RoundToTwoDecimalPlaces(data.TotalAmount) + data.TotalSalesProfit = tools.RoundToTwoDecimalPlaces(data.TotalSalesProfit) + data.TotalStaffProfit = tools.RoundToTwoDecimalPlaces(data.TotalStaffProfit) + data.StorePer = tools.RoundToTwoDecimalPlaces(data.StorePer) + + // 处理TotalCashierData中的float64 + data.ScanAmount = tools.RoundToTwoDecimalPlaces(data.ScanAmount) + data.CashAmount = tools.RoundToTwoDecimalPlaces(data.CashAmount) + data.PosAmount = tools.RoundToTwoDecimalPlaces(data.PosAmount) + data.StoreVmAmount = tools.RoundToTwoDecimalPlaces(data.StoreVmAmount) + data.OtherAmount = tools.RoundToTwoDecimalPlaces(data.OtherAmount) + + // 处理TotalPerData中的float64 + data.TotalSalesProfitPer = tools.RoundToTwoDecimalPlaces(data.TotalSalesProfitPer) + data.TotalStaffProfitPer = tools.RoundToTwoDecimalPlaces(data.TotalStaffProfitPer) + data.SalesmanPer = tools.RoundToTwoDecimalPlaces(data.SalesmanPer) +} + // 查询零售订单的汇总数据 func getRetailDetailTotalDataSale(qs *gorm.DB, retailType string) (RetailDetailTotalData, error) { var sumData RetailDetailTotalData