feat(BE): finance (payment, initial_balance, injection). fix(BE): kandang capacity

This commit is contained in:
Hafizh A. Y
2025-12-27 14:30:03 +07:00
parent e33b23a2aa
commit 1c875a916b
46 changed files with 3068 additions and 23 deletions
+108
View File
@@ -146,6 +146,45 @@ const (
ExpenseCategoryNonBOP ExpenseCategory = "NON-BOP"
)
// -------------------------------------------------------------------
// Payment Method
// -------------------------------------------------------------------
type PaymentMethod string
const (
PaymentMethodTransfer PaymentMethod = "TRANSFER"
PaymentMethodCash PaymentMethod = "CASH"
PaymentMethodCard PaymentMethod = "CARD"
PaymentMethodCheque PaymentMethod = "CHEQUE"
PaymentMethodSaldo PaymentMethod = "SALDO"
)
// -------------------------------------------------------------------
// Trasaction Type
// -------------------------------------------------------------------
type TransactionType string
const (
TransactionTypePenjualan TransactionType = "PENJUALAN"
TransactionTypePembelian TransactionType = "PEMBELIAN"
TransactionTypeBiaya TransactionType = "BIAYA"
TransactionTypeInjection TransactionType = "INJECTION"
TransactionTypeSaldoAwal TransactionType = "SALDO_AWAL"
)
// -------------------------------------------------------------------
// Payment Party
// -------------------------------------------------------------------
type PaymentParty string
const (
PaymentPartyCustomer PaymentParty = "CUSTOMER"
PaymentPartySupplier PaymentParty = "SUPPLIER"
)
// -------------------------------------------------------------------
// Kandang Status
// -------------------------------------------------------------------
@@ -314,6 +353,51 @@ var ExpenseApprovalSteps = map[approvalutils.ApprovalStep]string{
ExpenseStepSelesai: "Selesai",
}
// -------------------------------------------------------------------
// Payment Approval
// -------------------------------------------------------------------
const (
ApprovalWorkflowPayment approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("PAYMENTS")
PaymentStepPengajuan approvalutils.ApprovalStep = 1
PaymentStepDisetujui approvalutils.ApprovalStep = 2
)
var PaymentApprovalSteps = map[approvalutils.ApprovalStep]string{
PaymentStepPengajuan: "Pengajuan",
PaymentStepDisetujui: "Disetujui",
}
// -------------------------------------------------------------------
// Inisial Balance Approval
// -------------------------------------------------------------------
const (
ApprovalWorkflowInitial approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("INITIAL_BALANCES")
InitialStepPengajuan approvalutils.ApprovalStep = 1
InitialStepDisetujui approvalutils.ApprovalStep = 2
)
var InitialApprovalSteps = map[approvalutils.ApprovalStep]string{
InitialStepPengajuan: "Pengajuan",
InitialStepDisetujui: "Disetujui",
}
// -------------------------------------------------------------------
// Injection Approval
// -------------------------------------------------------------------
const (
ApprovalWorkflowInjection approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("INJECTIONS")
InjectionStepPengajuan approvalutils.ApprovalStep = 1
InjectionStepDisetujui approvalutils.ApprovalStep = 2
)
var InjectionApprovalSteps = map[approvalutils.ApprovalStep]string{
InjectionStepPengajuan: "Pengajuan",
InjectionStepDisetujui: "Disetujui",
}
// -------------------------------------------------------------------
// Validators
// -------------------------------------------------------------------
@@ -448,6 +532,30 @@ func IsValidExpenseCategory(v string) bool {
return false
}
func IsValidPaymentMethod(v string) bool {
switch PaymentMethod(v) {
case PaymentMethodTransfer, PaymentMethodCash, PaymentMethodCard, PaymentMethodCheque, PaymentMethodSaldo:
return true
}
return false
}
func IsValidTransactionType(v string) bool {
switch TransactionType(v) {
case TransactionTypePenjualan, TransactionTypePembelian, TransactionTypeBiaya, TransactionTypeInjection, TransactionTypeSaldoAwal:
return true
}
return false
}
func IsValidPaymentParty(v string) bool {
switch PaymentParty(v) {
case PaymentPartyCustomer, PaymentPartySupplier:
return true
}
return false
}
// example use
// Recording helper