1.修复缺陷,优化代码:
(1)解决权限判断时,门店只有1家时sql报错的问题; (2)解决零售明细筛选退货单金额为正,且汇总数据为空的问题;
This commit is contained in:
parent
4d18ca0416
commit
ee90ce6630
|
@ -1695,8 +1695,13 @@ func (m *ErpStockListReq) stockNoEmptyList(c *gin.Context) (*ErpStockListResp, e
|
|||
}
|
||||
} else {
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
es = es.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
es = es.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
es = es.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -1888,8 +1893,13 @@ func (m *ErpStockListReq) allCommodityList(c *gin.Context) (*ErpStockListResp, e
|
|||
}
|
||||
} else {
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
es = es.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
es = es.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
es = es.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -2069,7 +2079,11 @@ func (m *ErpStockCommodityListReq) GetDetailList(c *gin.Context) (*ErpStockCommo
|
|||
}
|
||||
} else {
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
|
|
@ -509,7 +509,11 @@ func (m *ErpOrderListReq) List(c *gin.Context) (*ErpOrderListResp, error) {
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -730,7 +734,11 @@ func QueryListByCommodityName(req *ErpOrderListReq, showConfig string, c *gin.Co
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("erp_order.store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("erp_order.store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("erp_order.store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -1899,7 +1907,11 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq, c *gin.Context) (*Erp
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -2231,7 +2243,7 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR
|
|||
if req.StartTime != "" {
|
||||
startTime, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
if err == nil {
|
||||
qs = qs.Where("erp_order.created_at>?", startTime)
|
||||
qs = qs.Where("erp_order.audit_time>?", startTime)
|
||||
} else {
|
||||
logger.Errorf("QueryRetailMargin time start parse err:", err.Error())
|
||||
}
|
||||
|
@ -2239,7 +2251,7 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR
|
|||
if req.EndTime != "" {
|
||||
endTime, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
if err == nil {
|
||||
qs = qs.Where("erp_order.created_at<?", endTime)
|
||||
qs = qs.Where("erp_order.audit_time<?", endTime)
|
||||
} else {
|
||||
logger.Errorf("QueryRetailMargin time end parse err:", err.Error())
|
||||
}
|
||||
|
@ -2347,13 +2359,6 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR
|
|||
} else {
|
||||
existingData.GrossMargins = float64ToPercentage(existingData.SalesMargin / existingData.SalesAmount)
|
||||
}
|
||||
|
||||
// 如果是拒绝的销售,进行相应的处理
|
||||
if existingData.RetailType == RetailTypeRejected {
|
||||
existingData.SalesAmount = -existingData.SalesAmount
|
||||
existingData.SalesCost = -existingData.SalesCost
|
||||
existingData.SalesMargin = -existingData.SalesMargin
|
||||
}
|
||||
} else {
|
||||
// 如果不存在,说明是新数据,直接添加到列表中
|
||||
data := &RetailMarginData{
|
||||
|
@ -2750,40 +2755,50 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
orderSumQs := orm.Eloquent.Table("erp_order_commodity AS oc").Select("oc.*, eo.*").
|
||||
Joins("JOIN erp_order AS eo ON oc.erp_order_id = eo.id")
|
||||
|
||||
rejectedOrderSumQs := orm.Eloquent.Table("erp_order_commodity AS oc").Select("oc.*, eo.*").
|
||||
Joins("JOIN erp_order AS eo ON oc.erp_order_id = eo.id")
|
||||
|
||||
if req.ErpCategoryId != 0 { // 商品分类
|
||||
qs = qs.Where("erp_order_commodity.erp_category_id=?", req.ErpCategoryId)
|
||||
es = es.Where("erp_order_commodity.erp_category_id=?", req.ErpCategoryId)
|
||||
orderSumQs = orderSumQs.Where("oc.erp_category_id=?", req.ErpCategoryId)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("oc.erp_category_id=?", req.ErpCategoryId)
|
||||
}
|
||||
if req.ErpCommodityName != "" { // 商品名称
|
||||
qs = qs.Where("erp_order_commodity.erp_commodity_name = ?", req.ErpCommodityName)
|
||||
es = es.Where("erp_order_commodity.erp_commodity_name = ?", req.ErpCommodityName)
|
||||
orderSumQs = orderSumQs.Where("oc.erp_commodity_name = ?", req.ErpCommodityName)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("oc.erp_commodity_name = ?", req.ErpCommodityName)
|
||||
}
|
||||
if req.RetailType != "" { // 销售类型
|
||||
qs = qs.Where("erp_order.retail_type=?", req.RetailType)
|
||||
qs = qs.Where("erp_order.retail_type=?", req.RetailType)
|
||||
es = es.Where("erp_order.retail_type=?", req.RetailType)
|
||||
orderSumQs = orderSumQs.Where("eo.retail_type=?", req.RetailType)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.retail_type=?", req.RetailType)
|
||||
}
|
||||
if req.Uid != 0 { // 用户ID
|
||||
qs = qs.Where("erp_order.uid=?", req.Uid)
|
||||
es = es.Where("erp_order.uid=?", req.Uid)
|
||||
orderSumQs = orderSumQs.Where("eo.uid=?", req.Uid)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.uid=?", req.Uid)
|
||||
}
|
||||
if req.Tel != "" { // 用户手机号
|
||||
qs = qs.Where("erp_order.tel=?", req.Tel)
|
||||
qs = qs.Where("erp_order.tel=?", req.Tel)
|
||||
es = es.Where("erp_order.tel=?", req.Tel)
|
||||
orderSumQs = orderSumQs.Where("eo.tel=?", req.Tel)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.tel=?", req.Tel)
|
||||
}
|
||||
if req.StoreId != 0 { // 门店ID
|
||||
qs = qs.Where("erp_order.store_id=?", req.StoreId)
|
||||
es = es.Where("erp_order.store_id=?", req.StoreId)
|
||||
orderSumQs = orderSumQs.Where("eo.store_id=?", req.StoreId)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.store_id=?", req.StoreId)
|
||||
}
|
||||
if req.IMEI != "" { // 串码
|
||||
qs = qs.Where("erp_order_commodity.imei=?", req.IMEI)
|
||||
es = es.Where("erp_order_commodity.imei=?", req.IMEI)
|
||||
orderSumQs = orderSumQs.Where("oc.imei=?", req.IMEI)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("oc.imei=?", req.IMEI)
|
||||
}
|
||||
// 非管理员才判断所属门店
|
||||
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
||||
|
@ -2795,9 +2810,17 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("erp_order.store_id IN (?)", storeList)
|
||||
es = es.Where("erp_order.store_id IN (?)", storeList)
|
||||
orderSumQs = orderSumQs.Where("erp_order.store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("erp_order.store_id = ?", storeList[0])
|
||||
es = es.Where("erp_order.store_id = ?", storeList[0])
|
||||
orderSumQs = orderSumQs.Where("eo.store_id = ?", storeList[0])
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("erp_order.store_id IN (?)", storeList)
|
||||
es = es.Where("erp_order.store_id IN (?)", storeList)
|
||||
orderSumQs = orderSumQs.Where("eo.store_id IN (?)", storeList)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
@ -2806,6 +2829,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
qs = qs.Where("JSON_CONTAINS(erp_order.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
|
||||
es = es.Where("JSON_CONTAINS(erp_order.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
|
||||
orderSumQs = orderSumQs.Where("JSON_CONTAINS(eo.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("JSON_CONTAINS(eo.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman))
|
||||
}
|
||||
if req.StartTime != "" { // 审核开始时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
|
@ -2815,6 +2839,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
qs = qs.Where("erp_order.audit_time > ?", parse)
|
||||
es = es.Where("erp_order.audit_time > ?", parse)
|
||||
orderSumQs = orderSumQs.Where("eo.audit_time > ?", parse)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.audit_time > ?", parse)
|
||||
}
|
||||
if req.EndTime != "" { // 审核结束时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
|
@ -2825,11 +2850,13 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
qs = qs.Where("erp_order.audit_time < ?", parse)
|
||||
es = es.Where("erp_order.audit_time < ?", parse)
|
||||
orderSumQs = orderSumQs.Where("eo.audit_time < ?", parse)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.audit_time < ?", parse)
|
||||
}
|
||||
if showConfig.ShowAll == "OFF" {
|
||||
qs = qs.Where("erp_order.is_print = ? or erp_order.retail_type = ?", HavePrinted, RetailTypeRejected)
|
||||
es = es.Where("erp_order.is_print = ? or erp_order.retail_type = ?", HavePrinted, RetailTypeRejected)
|
||||
orderSumQs = orderSumQs.Where("eo.is_print = ? or eo.retail_type = ?", HavePrinted, RetailTypeRejected)
|
||||
rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.is_print = ? or eo.retail_type = ?", HavePrinted, RetailTypeRejected)
|
||||
}
|
||||
qs.Where("erp_order.pay_status = ? or (erp_order.retail_type = ? and erp_order.state != ?)",
|
||||
HavePaid, RetailTypeRejected, ErpOrderStateUnAudit)
|
||||
|
@ -2837,6 +2864,8 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
HavePaid, RetailTypeRejected, ErpOrderStateUnAudit)
|
||||
orderSumQs.Where("eo.pay_status = ? or (eo.retail_type = ? and eo.state != ?)",
|
||||
HavePaid, RetailTypeRejected, ErpOrderStateUnAudit)
|
||||
rejectedOrderSumQs.Where("eo.pay_status = ? or (eo.retail_type = ? and eo.state != ?)",
|
||||
HavePaid, RetailTypeRejected, ErpOrderStateUnAudit)
|
||||
|
||||
// 销售订单的汇总数据
|
||||
var sumData RetailDetailTotalData
|
||||
|
@ -2847,7 +2876,6 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
}
|
||||
// 退货订单的汇总数据
|
||||
var rejectedSumData RetailDetailTotalData
|
||||
rejectedOrderSumQs := orderSumQs
|
||||
rejectedSumData, err = getRetailDetailTotalDataJoinErpOrder(rejectedOrderSumQs, RetailTypeRejected)
|
||||
if err != nil {
|
||||
logger.Error("query sum data err:", logger.Field("err", err))
|
||||
|
@ -3026,8 +3054,34 @@ func packData(result []RetailDetailByJoin) []ErpOrder {
|
|||
order.InvoiceNumber = item.InvoiceNumber
|
||||
order.RejectedTotalAmount = item.RejectedTotalAmount
|
||||
order.RejectedTotalCount = item.RejectedTotalCount
|
||||
|
||||
if order.RetailType == RetailTypeRejected { // 退货订单,金额需要转换为负值
|
||||
order.TotalRetailPrice = -math.Abs(order.TotalRetailPrice)
|
||||
order.TotalAmount = -math.Abs(order.TotalAmount)
|
||||
order.TotalCount = -int32(math.Abs(float64(order.TotalCount)))
|
||||
order.TotalSalesProfit = -math.Abs(order.TotalSalesProfit)
|
||||
order.TotalStaffProfit = -math.Abs(order.TotalStaffProfit)
|
||||
order.TotalDiscount = -math.Abs(order.TotalDiscount)
|
||||
order.VmCount = -uint32(math.Abs(float64(order.VmCount)))
|
||||
order.StorePer = -math.Abs(order.StorePer)
|
||||
}
|
||||
}
|
||||
|
||||
if order.RetailType == RetailTypeRejected { // 退货订单,金额需要转换为负值
|
||||
item.Count = -item.Count
|
||||
item.RetailPrice = -item.RetailPrice
|
||||
item.SalePrice = -item.SalePrice
|
||||
item.Amount = -item.Amount
|
||||
item.SaleDiscount = -item.SaleDiscount
|
||||
item.MemberDiscount = -item.MemberDiscount
|
||||
item.VmDiscount = -item.VmDiscount
|
||||
item.ReceivedAmount = -item.ReceivedAmount
|
||||
item.RejectedAmount = -item.RejectedAmount
|
||||
item.SalesProfit = -item.SalesProfit
|
||||
item.StaffProfit = -item.StaffProfit
|
||||
item.StaffCostPrice = -item.StaffCostPrice
|
||||
item.WholesalePrice = -item.WholesalePrice
|
||||
}
|
||||
// 订单商品数据
|
||||
commodity.CreatedAt = item.ErpOrderCommodity.CreatedAt
|
||||
commodity.ErpOrderId = item.ErpOrderId
|
||||
|
@ -3119,7 +3173,11 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
|
|
@ -579,7 +579,11 @@ func (m *ErpPurchaseOrderListReq) List(c *gin.Context) (*ErpPurchaseOrderListRes
|
|||
// 返回sysUser未过期的门店id列表
|
||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
|
|
@ -108,7 +108,11 @@ func (m *RecycleCardOrderListReq) List(c *gin.Context) (RecycleCardOrderListRsp,
|
|||
}
|
||||
} else {
|
||||
if len(storeList) > 0 {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
if len(storeList) == 1 {
|
||||
qs = qs.Where("store_id = ?", storeList[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeList)
|
||||
}
|
||||
} else {
|
||||
return RecycleCardOrderListRsp{}, errors.New("用户未绑定门店")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user