codex/fix: recheck and fix purchase receive failed and farm stock not shown on recording

This commit is contained in:
Adnan Zahir
2026-04-01 11:46:44 +07:00
parent 030284a9b5
commit c4add1501d
7 changed files with 363 additions and 8 deletions
+64 -4
View File
@@ -1,6 +1,7 @@
package utils
import (
"slices"
"strings"
approvalutils "gitlab.com/mbugroup/lti-api.git/internal/utils/approvals"
@@ -129,10 +130,23 @@ var productSubFlagToFlag = func() map[FlagType]FlagType {
}()
var productAllowWithoutSubFlagByFlag = map[FlagType]bool{
FlagAyam: true,
FlagPakan: false,
FlagOVK: false,
FlagTelur: false,
FlagAyam: true,
FlagPakan: false,
FlagOVK: false,
FlagTelur: false,
}
var legacyProductCategoryFlagsByCode = map[string][]FlagType{
"DOC": {FlagAyam, FlagDOC},
"PLT": {FlagAyam, FlagPullet},
"EGG": {FlagTelur},
"RAW": {FlagPakan},
"PST": {FlagPakan, FlagPreStarter},
"STR": {FlagPakan, FlagStarter},
"FSR": {FlagPakan, FlagFinisher},
"OBT": {FlagOVK, FlagObat},
"VTM": {FlagOVK, FlagVitamin},
"KMA": {FlagOVK, FlagKimia},
}
var legacyFlagTypeAliases = map[FlagType]FlagType{
@@ -228,6 +242,52 @@ func ProductFlagAllowWithoutSubFlag(flag FlagType) bool {
return allow
}
func LegacyProductCategoryCodesForFlags(flags []string) []string {
if len(flags) == 0 {
return nil
}
requested := make(map[FlagType]struct{}, len(flags))
for _, flag := range flags {
canonical := CanonicalFlagType(flag)
if canonical == "" {
continue
}
requested[canonical] = struct{}{}
}
if len(requested) == 0 {
return nil
}
codes := make([]string, 0, len(legacyProductCategoryFlagsByCode))
for code, supportedFlags := range legacyProductCategoryFlagsByCode {
for _, supportedFlag := range supportedFlags {
if _, ok := requested[canonicalizeFlagType(supportedFlag)]; ok {
codes = append(codes, code)
break
}
}
}
slices.Sort(codes)
return codes
}
func LegacyFlagGroupCodeByProductCategoryCode(code string) string {
switch strings.ToUpper(strings.TrimSpace(code)) {
case "DOC", "PLT":
return "AYAM"
case "EGG":
return "TELUR"
case "RAW", "PST", "STR", "FSR":
return "PAKAN"
case "OBT", "VTM", "KMA":
return "OVK"
default:
return ""
}
}
func IsProductMainFlag(flag FlagType) bool {
canonical := canonicalizeFlagType(flag)
for _, f := range productMainFlags {