diff --git a/app/admin/models/commodity.go b/app/admin/models/commodity.go index 386a008..05b2d3e 100644 --- a/app/admin/models/commodity.go +++ b/app/admin/models/commodity.go @@ -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("用户未绑定门店") } diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 802d150..2e93c24 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -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 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("用户未绑定门店") } diff --git a/app/admin/models/purchase.go b/app/admin/models/purchase.go index 27e1601..6411ba6 100644 --- a/app/admin/models/purchase.go +++ b/app/admin/models/purchase.go @@ -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("用户未绑定门店") } diff --git a/app/admin/models/recycle_card.go b/app/admin/models/recycle_card.go index 28a1ce1..ccff180 100644 --- a/app/admin/models/recycle_card.go +++ b/app/admin/models/recycle_card.go @@ -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("用户未绑定门店") }