feat: input po_date manual

This commit is contained in:
Adnan Zahir
2026-04-25 22:36:13 +07:00
parent 27d076b817
commit 732ebd423d
2 changed files with 9 additions and 2 deletions
@@ -713,6 +713,12 @@ func (s *purchaseService) ApproveManagerPurchase(c *fiber.Ctx, id uint, req *val
}
now := time.Now().UTC()
poDateToSet := now
if req.PoDate != nil && strings.TrimSpace(*req.PoDate) != "" {
if parsed, parseErr := utils.ParseDateString(strings.TrimSpace(*req.PoDate)); parseErr == nil {
poDateToSet = parsed.UTC()
}
}
hasExistingPO := purchase.PoNumber != nil && strings.TrimSpace(*purchase.PoNumber) != ""
var generatedNumber string
@@ -725,7 +731,7 @@ func (s *purchaseService) ApproveManagerPurchase(c *fiber.Ctx, id uint, req *val
return err
}
updateData["po_number"] = code
updateData["po_date"] = now
updateData["po_date"] = poDateToSet
generatedNumber = code
}
@@ -770,7 +776,7 @@ func (s *purchaseService) ApproveManagerPurchase(c *fiber.Ctx, id uint, req *val
if generatedNumber != "" {
purchase.PoNumber = &generatedNumber
purchase.PoDate = &now
purchase.PoDate = &poDateToSet
}
updated, err := s.PurchaseRepo.GetByID(c.Context(), purchase.Id, s.withRelations)
@@ -35,6 +35,7 @@ type ApproveStaffPurchaseRequest struct {
type ApproveManagerPurchaseRequest struct {
Action string `json:"action" validate:"required,oneof=APPROVED REJECTED"`
Notes *string `json:"notes,omitempty" validate:"omitempty,max=500"`
PoDate *string `json:"po_date,omitempty" validate:"omitempty,datetime=2006-01-02"`
}
type ReceivePurchaseItemRequest struct {