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.StaffProfit = -item.StaffProfit
|
||||||
item.StaffCostPrice = -item.StaffCostPrice
|
item.StaffCostPrice = -item.StaffCostPrice
|
||||||
item.WholesalePrice = -item.WholesalePrice
|
item.WholesalePrice = -item.WholesalePrice
|
||||||
|
item.CouponDiscount = -item.CouponDiscount
|
||||||
}
|
}
|
||||||
item.StaffPrice = item.StaffCostPrice + item.WholesalePrice
|
item.StaffPrice = item.StaffCostPrice + item.WholesalePrice
|
||||||
|
|
||||||
|
@ -1500,12 +1501,20 @@ func mergeOrderCommodities(orderCommodities []ErpOrderCommodity) []ErpOrderCommo
|
||||||
ErpOrderId uint32
|
ErpOrderId uint32
|
||||||
ErpCommodityId uint32
|
ErpCommodityId uint32
|
||||||
IMEI string
|
IMEI string
|
||||||
|
CouponID uint32
|
||||||
|
SalePrice float64
|
||||||
}
|
}
|
||||||
commodityMap := make(map[key]*ErpOrderCommodity)
|
commodityMap := make(map[key]*ErpOrderCommodity)
|
||||||
|
|
||||||
// 遍历orderCommodities,将相同ErpCommodityId的数量累加
|
// 遍历orderCommodities,将相同ErpCommodityId的数量累加
|
||||||
for _, commodity := range orderCommodities {
|
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 {
|
if existingCommodity, exists := commodityMap[comboKey]; exists {
|
||||||
existingCommodity.Count += commodity.Count
|
existingCommodity.Count += commodity.Count
|
||||||
existingCommodity.SalesProfit += commodity.SalesProfit
|
existingCommodity.SalesProfit += commodity.SalesProfit
|
||||||
|
@ -4393,6 +4402,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
sumData.PosAmount = 0
|
sumData.PosAmount = 0
|
||||||
sumData.StoreVmAmount = 0
|
sumData.StoreVmAmount = 0
|
||||||
sumData.OtherAmount = 0
|
sumData.OtherAmount = 0
|
||||||
|
RoundRetailDetailTotalData(&sumData)
|
||||||
|
|
||||||
var result []RetailDetailByJoin
|
var result []RetailDetailByJoin
|
||||||
|
|
||||||
|
@ -4773,6 +4783,7 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
||||||
sumData.PosAmount = cashier.PosAmount
|
sumData.PosAmount = cashier.PosAmount
|
||||||
sumData.StoreVmAmount = cashier.StoreVmAmount
|
sumData.StoreVmAmount = cashier.StoreVmAmount
|
||||||
sumData.OtherAmount = cashier.OtherAmount
|
sumData.OtherAmount = cashier.OtherAmount
|
||||||
|
RoundRetailDetailTotalData(&sumData)
|
||||||
|
|
||||||
if req.IsExport == 1 { // 导出excel
|
if req.IsExport == 1 { // 导出excel
|
||||||
var orders []ErpOrder
|
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) {
|
func getRetailDetailTotalDataSale(qs *gorm.DB, retailType string) (RetailDetailTotalData, error) {
|
||||||
var sumData RetailDetailTotalData
|
var sumData RetailDetailTotalData
|
||||||
|
|
Loading…
Reference in New Issue
Block a user