fix log error and omset tracker scheduled
This commit is contained in:
@@ -2,6 +2,8 @@ package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
||||
"apskel-pos-be/internal/entities"
|
||||
@@ -110,3 +112,29 @@ func (r *OrganizationRepositoryImpl) GetTotalOmset(ctx context.Context, organiza
|
||||
Scan(&total).Error
|
||||
return total, err
|
||||
}
|
||||
|
||||
// GetTodayOmset returns the total revenue from completed orders for an organization on the current calendar day.
|
||||
func (r *OrganizationRepositoryImpl) GetTodayOmset(ctx context.Context, organizationID uuid.UUID) (float64, error) {
|
||||
var total float64
|
||||
err := r.db.WithContext(ctx).
|
||||
Table("orders").
|
||||
Where(
|
||||
"organization_id = ? AND payment_status = ? AND is_void = ? AND is_refund = ? AND created_at >= ? AND created_at < ?",
|
||||
organizationID, "completed", false, false,
|
||||
todayStart(), tomorrowStart(),
|
||||
).
|
||||
Select("COALESCE(SUM(total_amount), 0)").
|
||||
Scan(&total).Error
|
||||
return total, err
|
||||
}
|
||||
|
||||
// todayStart returns midnight of the current local day.
|
||||
func todayStart() time.Time {
|
||||
now := time.Now()
|
||||
return time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
|
||||
}
|
||||
|
||||
// tomorrowStart returns midnight of the next local day.
|
||||
func tomorrowStart() time.Time {
|
||||
return todayStart().AddDate(0, 0, 1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user