update due date and range date
This commit is contained in:
@@ -47,18 +47,19 @@ func (v *PurchaseOrderValidatorImpl) ValidateCreatePurchaseOrderRequest(req *con
|
||||
return errors.New("transaction_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
// Validate due date
|
||||
if strings.TrimSpace(req.DueDate) == "" {
|
||||
return errors.New("due_date is required"), constants.MissingFieldErrorCode
|
||||
}
|
||||
dueDate, err := time.Parse("2006-01-02", req.DueDate)
|
||||
if err != nil {
|
||||
return errors.New("due_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
if req.DueDate != nil {
|
||||
if strings.TrimSpace(*req.DueDate) == "" {
|
||||
return errors.New("due_date cannot be empty"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
// Check if due date is after transaction date
|
||||
if dueDate.Before(transactionDate) {
|
||||
return errors.New("due_date must be after transaction_date"), constants.MalformedFieldErrorCode
|
||||
dueDate, err := time.Parse("2006-01-02", *req.DueDate)
|
||||
if err != nil {
|
||||
return errors.New("due_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
if dueDate.Before(transactionDate) {
|
||||
return errors.New("due_date must be after transaction_date"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
}
|
||||
|
||||
if req.Reference != nil && len(*req.Reference) > 100 {
|
||||
@@ -100,22 +101,27 @@ func (v *PurchaseOrderValidatorImpl) ValidateUpdatePurchaseOrderRequest(req *con
|
||||
}
|
||||
}
|
||||
|
||||
// Validate dates if both are provided
|
||||
if req.TransactionDate != nil && req.DueDate != nil {
|
||||
if *req.TransactionDate != "" && *req.DueDate != "" {
|
||||
transactionDate, err := time.Parse("2006-01-02", *req.TransactionDate)
|
||||
if err != nil {
|
||||
return errors.New("transaction_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
dueDate, err := time.Parse("2006-01-02", *req.DueDate)
|
||||
if err != nil {
|
||||
return errors.New("due_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
if dueDate.Before(transactionDate) {
|
||||
return errors.New("due_date must be after transaction_date"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
var transactionDate *time.Time
|
||||
if req.TransactionDate != nil && *req.TransactionDate != "" {
|
||||
parsedDate, err := time.Parse("2006-01-02", *req.TransactionDate)
|
||||
if err != nil {
|
||||
return errors.New("transaction_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
transactionDate = &parsedDate
|
||||
}
|
||||
|
||||
if req.DueDate != nil {
|
||||
if strings.TrimSpace(*req.DueDate) == "" {
|
||||
return errors.New("due_date cannot be empty"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
dueDate, err := time.Parse("2006-01-02", *req.DueDate)
|
||||
if err != nil {
|
||||
return errors.New("due_date must be in YYYY-MM-DD format"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
|
||||
if transactionDate != nil && dueDate.Before(*transactionDate) {
|
||||
return errors.New("due_date must be after transaction_date"), constants.MalformedFieldErrorCode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user