add orders
This commit is contained in:
@@ -3,30 +3,22 @@ package transformer
|
||||
import (
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/models"
|
||||
"apskel-pos-be/internal/util"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
const ddmmyyyy = "02-01-2006"
|
||||
|
||||
// PaymentMethodAnalyticsContractToModel converts contract request to model
|
||||
func PaymentMethodAnalyticsContractToModel(req *contract.PaymentMethodAnalyticsRequest) *models.PaymentMethodAnalyticsRequest {
|
||||
var dateFrom, dateTo time.Time
|
||||
if req.DateFrom != "" {
|
||||
df, err := time.Parse(ddmmyyyy, req.DateFrom)
|
||||
if err == nil {
|
||||
dateFrom = df
|
||||
}
|
||||
}
|
||||
if req.DateTo != "" {
|
||||
dt, err := time.Parse(ddmmyyyy, req.DateTo)
|
||||
if err == nil {
|
||||
dateTo = dt
|
||||
}
|
||||
}
|
||||
|
||||
if req.DateFrom == req.DateTo {
|
||||
dateTo = dateTo.AddDate(0, 0, 1)
|
||||
if fromTime, toTime, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo); err == nil {
|
||||
if fromTime != nil {
|
||||
dateFrom = *fromTime
|
||||
}
|
||||
if toTime != nil {
|
||||
dateTo = *toTime
|
||||
}
|
||||
}
|
||||
|
||||
return &models.PaymentMethodAnalyticsRequest{
|
||||
@@ -75,21 +67,14 @@ func PaymentMethodAnalyticsModelToContract(resp *models.PaymentMethodAnalyticsRe
|
||||
|
||||
func SalesAnalyticsContractToModel(req *contract.SalesAnalyticsRequest) *models.SalesAnalyticsRequest {
|
||||
var dateFrom, dateTo time.Time
|
||||
if req.DateFrom != "" {
|
||||
df, err := time.Parse(ddmmyyyy, req.DateFrom)
|
||||
if err == nil {
|
||||
dateFrom = df
|
||||
}
|
||||
}
|
||||
if req.DateTo != "" {
|
||||
dt, err := time.Parse(ddmmyyyy, req.DateTo)
|
||||
if err == nil {
|
||||
dateTo = dt
|
||||
}
|
||||
}
|
||||
|
||||
if req.DateFrom == req.DateTo {
|
||||
dateTo = dateTo.AddDate(0, 0, 1)
|
||||
if fromTime, toTime, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo); err == nil {
|
||||
if fromTime != nil {
|
||||
dateFrom = *fromTime
|
||||
}
|
||||
if toTime != nil {
|
||||
dateTo = *toTime
|
||||
}
|
||||
}
|
||||
|
||||
return &models.SalesAnalyticsRequest{
|
||||
@@ -142,21 +127,14 @@ func SalesAnalyticsModelToContract(resp *models.SalesAnalyticsResponse) *contrac
|
||||
// ProductAnalyticsContractToModel converts contract request to model
|
||||
func ProductAnalyticsContractToModel(req *contract.ProductAnalyticsRequest) *models.ProductAnalyticsRequest {
|
||||
var dateFrom, dateTo time.Time
|
||||
if req.DateFrom != "" {
|
||||
df, err := time.Parse(ddmmyyyy, req.DateFrom)
|
||||
if err == nil {
|
||||
dateFrom = df
|
||||
}
|
||||
}
|
||||
if req.DateTo != "" {
|
||||
dt, err := time.Parse(ddmmyyyy, req.DateTo)
|
||||
if err == nil {
|
||||
dateTo = dt
|
||||
}
|
||||
}
|
||||
|
||||
if req.DateFrom == req.DateTo {
|
||||
dateTo = dateTo.AddDate(0, 0, 1)
|
||||
if fromTime, toTime, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo); err == nil {
|
||||
if fromTime != nil {
|
||||
dateFrom = *fromTime
|
||||
}
|
||||
if toTime != nil {
|
||||
dateTo = *toTime
|
||||
}
|
||||
}
|
||||
|
||||
return &models.ProductAnalyticsRequest{
|
||||
@@ -200,21 +178,15 @@ func ProductAnalyticsModelToContract(resp *models.ProductAnalyticsResponse) *con
|
||||
// DashboardAnalyticsContractToModel converts contract request to model
|
||||
func DashboardAnalyticsContractToModel(req *contract.DashboardAnalyticsRequest) *models.DashboardAnalyticsRequest {
|
||||
var dateFrom, dateTo time.Time
|
||||
if req.DateFrom != "" {
|
||||
df, err := time.Parse(ddmmyyyy, req.DateFrom)
|
||||
if err == nil {
|
||||
dateFrom = df
|
||||
}
|
||||
}
|
||||
if req.DateTo != "" {
|
||||
dt, err := time.Parse(ddmmyyyy, req.DateTo)
|
||||
if err == nil {
|
||||
dateTo = dt
|
||||
}
|
||||
}
|
||||
|
||||
if req.DateFrom == req.DateTo {
|
||||
dateTo = dateTo.AddDate(0, 0, 1)
|
||||
// Parse date range using utility function
|
||||
if fromTime, toTime, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo); err == nil {
|
||||
if fromTime != nil {
|
||||
dateFrom = *fromTime
|
||||
}
|
||||
if toTime != nil {
|
||||
dateTo = *toTime
|
||||
}
|
||||
}
|
||||
|
||||
return &models.DashboardAnalyticsRequest{
|
||||
@@ -296,21 +268,21 @@ func ProfitLossAnalyticsContractToModel(req *contract.ProfitLossAnalyticsRequest
|
||||
return nil, fmt.Errorf("request cannot be nil")
|
||||
}
|
||||
|
||||
dateFrom, err := time.Parse("02-01-2006", req.DateFrom)
|
||||
// Parse date range using utility function
|
||||
dateFrom, dateTo, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid date_from format: %w", err)
|
||||
return nil, fmt.Errorf("invalid date format: %w", err)
|
||||
}
|
||||
|
||||
dateTo, err := time.Parse("02-01-2006", req.DateTo)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid date_to format: %w", err)
|
||||
if dateFrom == nil || dateTo == nil {
|
||||
return nil, fmt.Errorf("both date_from and date_to are required")
|
||||
}
|
||||
|
||||
return &models.ProfitLossAnalyticsRequest{
|
||||
OrganizationID: req.OrganizationID,
|
||||
OutletID: req.OutletID,
|
||||
DateFrom: dateFrom,
|
||||
DateTo: dateTo,
|
||||
DateFrom: *dateFrom,
|
||||
DateTo: *dateTo,
|
||||
GroupBy: req.GroupBy,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user