feat(purchase

This commit is contained in:
Efril
2026-08-11 22:41:10 +07:00
parent dbc143954c
commit e6078e3c0b
19 changed files with 532 additions and 17 deletions
@@ -5,6 +5,7 @@ import (
"testing"
"time"
"apskel-pos-be/internal/constants"
"apskel-pos-be/internal/contract"
"apskel-pos-be/internal/models"
@@ -95,6 +96,49 @@ func TestPurchasingAnalyticsModelToContractCopiesOutletName(t *testing.T) {
require.Equal(t, float64(175), result.Data[0].ExpensePurchases)
}
func TestPurchasingAnalyticsModelToContractCopiesTeamData(t *testing.T) {
categoryID := uuid.New()
result := PurchasingAnalyticsModelToContract(&models.PurchasingAnalyticsResponse{
OrganizationID: uuid.New(),
Team: categoryID.String(),
Summary: models.PurchasingSummary{TotalPurchases: 300, TotalTeams: 2},
TeamData: []models.PurchasingTeamData{
{
Scope: constants.PurchaseTeamScopeCategory,
CategoryID: &categoryID,
Name: "Kitchen",
TotalPurchases: 200,
RawMaterialPurchases: 150,
ExpensePurchases: 50,
PurchaseOrderCount: 2,
Quantity: 12,
Percentage: 66.67,
},
{
Scope: constants.PurchaseTeamNone,
Name: constants.PurchaseTeamNoneName,
TotalPurchases: 100,
PurchaseOrderCount: 1,
Percentage: 33.33,
},
},
})
require.NotNil(t, result)
require.Equal(t, categoryID.String(), result.Team)
require.Equal(t, int64(2), result.Summary.TotalTeams)
require.Len(t, result.TeamData, 2)
require.Equal(t, constants.PurchaseTeamScopeCategory, result.TeamData[0].Scope)
require.Equal(t, &categoryID, result.TeamData[0].CategoryID)
require.Equal(t, "Kitchen", result.TeamData[0].Name)
require.Equal(t, float64(200), result.TeamData[0].TotalPurchases)
require.Equal(t, 66.67, result.TeamData[0].Percentage)
require.Equal(t, constants.PurchaseTeamNone, result.TeamData[1].Scope)
require.Nil(t, result.TeamData[1].CategoryID)
require.Equal(t, constants.PurchaseTeamNoneName, result.TeamData[1].Name)
}
func TestPurchasingAnalyticsModelToContractOmitsNilOutletName(t *testing.T) {
result := PurchasingAnalyticsModelToContract(&models.PurchasingAnalyticsResponse{
OrganizationID: uuid.New(),