1、零售明细汇总数据四舍五入保留2位小数;
2、零售明细退货订单优惠券金额转为负值; 3、零售明细中非串码商品合并规则调整(名称相同、使用优惠券相同,金额相同的才合并);
This commit is contained in:
parent
80a7835fd4
commit
5fb54b36d8
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user