| | |
| | | func CreateMoreUnit(amount decimal.Decimal, units []models.UnitItems) []models.UnitItems { |
| | | moreValueArr := make([]models.UnitItems, 0, len(units)) |
| | | for _, unitItem := range units { |
| | | if unitItem.Amount.IsZero() { |
| | | continue |
| | | } |
| | | moreValueArr = append(moreValueArr, models.UnitItems{ |
| | | Amount: amount.Div(unitItem.Amount), |
| | | Unit: unitItem.Unit, |
| | | Floating: unitItem.Floating, |
| | | }) |
| | | } |
| | | return moreValueArr |
| | | } |
| | | |
| | | func AddMoreUnit(units []models.UnitItems, units2 []models.UnitItems) []models.UnitItems { |
| | | moreValueArr := make([]models.UnitItems, 0, len(units)) |
| | | for _, unitItem1 := range units { |
| | | for _, unitItem2 := range units2 { |
| | | if unitItem1.Unit == unitItem2.Unit { |
| | | moreValueArr = append(moreValueArr, models.UnitItems{ |
| | | Amount: unitItem1.Amount.Add(unitItem2.Amount), |
| | | Unit: unitItem1.Unit, |
| | | Floating: unitItem1.Floating, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | return moreValueArr |
| | | } |
| | | |
| | | // MoreUnitIsEnough 多单位库存是否足够 |
| | | func MoreUnitIsEnough(units []models.UnitItems, units2 []models.UnitItems) bool { |
| | | for _, unitItem1 := range units { |
| | | for _, unitItem2 := range units2 { |
| | | if unitItem1.Amount.LessThan(unitItem2.Amount) { |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | return true |
| | | } |
| | | |
| | | func SubMoreUnit(units []models.UnitItems, units2 []models.UnitItems) []models.UnitItems { |
| | | moreValueArr := make([]models.UnitItems, 0, len(units)) |
| | | for _, unitItem1 := range units { |
| | | for _, unitItem2 := range units2 { |
| | | if unitItem1.Unit == unitItem2.Unit { |
| | | moreValueArr = append(moreValueArr, models.UnitItems{ |
| | | Amount: unitItem1.Amount.Sub(unitItem2.Amount), |
| | | Unit: unitItem1.Unit, |
| | | Floating: unitItem1.Floating, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | return moreValueArr |
| | | } |
| | |
| | | } |
| | | return f.NewStyle(style) |
| | | } |
| | | |
| | | func GetAllUnits() (allUnits []string, unitIndexMap map[string]int) { |
| | | units, err := models.NewUnitDictSearch().FindNotTotal() |
| | | allUnits = make([]string, 0, len(units)) |
| | | unitIndexMap = make(map[string]int) |
| | | if err != nil { |
| | | return |
| | | } |
| | | |
| | | for k, v := range units { |
| | | allUnits = append(allUnits, v.Name) |
| | | unitIndexMap[v.Name] = k |
| | | } |
| | | return |
| | | } |