Update
This commit is contained in:
parent
350c670d04
commit
f2029ab5b4
@ -92,6 +92,7 @@ type OrderRequest struct {
|
|||||||
PartnerID int64 `json:"partner_id" validate:"required"`
|
PartnerID int64 `json:"partner_id" validate:"required"`
|
||||||
PaymentMethod string `json:"payment_method" validate:"required"`
|
PaymentMethod string `json:"payment_method" validate:"required"`
|
||||||
OrderItems []OrderItemRequest `json:"order_items" validate:"required,dive"`
|
OrderItems []OrderItemRequest `json:"order_items" validate:"required,dive"`
|
||||||
|
VisitDate string `json:"visit_date"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderItemRequest struct {
|
type OrderItemRequest struct {
|
||||||
|
|||||||
@ -16,6 +16,7 @@ type CustomerOrder struct {
|
|||||||
PartnerID int64 `json:"partner_id" validate:"required"`
|
PartnerID int64 `json:"partner_id" validate:"required"`
|
||||||
PaymentMethod transaction.PaymentMethod `json:"payment_method" validate:"required"`
|
PaymentMethod transaction.PaymentMethod `json:"payment_method" validate:"required"`
|
||||||
OrderItems []OrderItem `json:"order_items" validate:"required"`
|
OrderItems []OrderItem `json:"order_items" validate:"required"`
|
||||||
|
VisitDate string `json:"visit_date"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *CustomerOrder) ToEntity(createdBy int64) *entity.OrderRequest {
|
func (o *CustomerOrder) ToEntity(createdBy int64) *entity.OrderRequest {
|
||||||
|
|||||||
@ -117,8 +117,7 @@ func (b *OrderRepository) GetAllHystoryOrders(ctx context.Context, req entity.Or
|
|||||||
Select("orders.id as id, users.name as employee, sites.name as site, orders.created_at as timestamp, orders.created_at as booking_time, STRING_AGG(ticket_summary.name || ' x' || ticket_summary.total_qty, ', ') AS tickets, orders.payment_type as payment_type, orders.status as status, orders.amount as amount, orders.visit_date as visit_date, orders.ticket_status as ticket_status, orders.source as source").
|
Select("orders.id as id, users.name as employee, sites.name as site, orders.created_at as timestamp, orders.created_at as booking_time, STRING_AGG(ticket_summary.name || ' x' || ticket_summary.total_qty, ', ') AS tickets, orders.payment_type as payment_type, orders.status as status, orders.amount as amount, orders.visit_date as visit_date, orders.ticket_status as ticket_status, orders.source as source").
|
||||||
Joins("left join (SELECT items.order_id, products.name, SUM(items.qty) AS total_qty FROM order_items items LEFT JOIN products ON items.item_id = products.id GROUP BY items.order_id, products.name) AS ticket_summary ON orders.id = ticket_summary.order_id").
|
Joins("left join (SELECT items.order_id, products.name, SUM(items.qty) AS total_qty FROM order_items items LEFT JOIN products ON items.item_id = products.id GROUP BY items.order_id, products.name) AS ticket_summary ON orders.id = ticket_summary.order_id").
|
||||||
Joins("left join users on orders.created_by = users.id").
|
Joins("left join users on orders.created_by = users.id").
|
||||||
Joins("left join sites on orders.site_id = sites.id").
|
Joins("left join sites on orders.site_id = sites.id")
|
||||||
Where("orders.status != ?", "NEW")
|
|
||||||
|
|
||||||
if req.PaymentType != "" {
|
if req.PaymentType != "" {
|
||||||
query = query.Where("orders.payment_type = ?", req.PaymentType)
|
query = query.Where("orders.payment_type = ?", req.PaymentType)
|
||||||
@ -138,12 +137,8 @@ func (b *OrderRepository) GetAllHystoryOrders(ctx context.Context, req entity.Or
|
|||||||
|
|
||||||
if req.StartDate != "" && req.EndDate != "" {
|
if req.StartDate != "" && req.EndDate != "" {
|
||||||
// Assuming req.Date and req.EndDate are in string format "YYYY-MM-DD"
|
// Assuming req.Date and req.EndDate are in string format "YYYY-MM-DD"
|
||||||
startDate := req.StartDate
|
startDate := req.StartDate + " 00:00:00"
|
||||||
endDate := req.EndDate
|
endDate := req.EndDate + " 23:59:59"
|
||||||
|
|
||||||
if endDate == "" {
|
|
||||||
endDate = time.Now().Format("2006-01-02")
|
|
||||||
}
|
|
||||||
|
|
||||||
query = query.Where("orders.created_at BETWEEN ? AND ?", startDate, endDate)
|
query = query.Where("orders.created_at BETWEEN ? AND ?", startDate, endDate)
|
||||||
}
|
}
|
||||||
@ -175,7 +170,7 @@ func (b *OrderRepository) GetAllHystoryOrders(ctx context.Context, req entity.Or
|
|||||||
query = query.Limit(req.Limit)
|
query = query.Limit(req.Limit)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := query.Scan(&orders).Error; err != nil {
|
if err := query.Debug().Scan(&orders).Error; err != nil {
|
||||||
logger.ContextLogger(ctx).Error("error when get all history orders", zap.Error(err))
|
logger.ContextLogger(ctx).Error("error when get all history orders", zap.Error(err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,6 +79,12 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
|
|||||||
totalAmount += product.Price * float64(item.Quantity)
|
totalAmount += product.Price * float64(item.Quantity)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parsedTime, err := time.Parse("2006-01-02", req.VisitDate)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error parsing date:", err)
|
||||||
|
return nil, errors.New("product not found")
|
||||||
|
}
|
||||||
|
|
||||||
order := &entity.Order{
|
order := &entity.Order{
|
||||||
PartnerID: req.PartnerID,
|
PartnerID: req.PartnerID,
|
||||||
RefID: generator.GenerateUUID(),
|
RefID: generator.GenerateUUID(),
|
||||||
@ -91,6 +97,7 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
|
|||||||
CreatedBy: req.CreatedBy,
|
CreatedBy: req.CreatedBy,
|
||||||
OrderItems: []entity.OrderItem{},
|
OrderItems: []entity.OrderItem{},
|
||||||
Source: req.Source,
|
Source: req.Source,
|
||||||
|
VisitDate: parsedTime,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, item := range req.OrderItems {
|
for _, item := range req.OrderItems {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user