basic order view

This commit is contained in:
2025-03-07 16:16:23 +01:00
parent 974b95b244
commit ac8b0339c3
6 changed files with 916 additions and 28 deletions

View File

@@ -147,14 +147,20 @@ func (rc *cartItemController) NewOrderFromForm(ctx *gin.Context) (models.Order,
token := GenerateToken()
email := ctx.PostForm("email")
comment := ctx.PostForm("comment")
firstName := ctx.PostForm("firstName")
lastName := ctx.PostForm("lastName")
address := ctx.PostForm("address")
postalCode := ctx.PostForm("postalCode")
city := ctx.PostForm("city")
country := ctx.PostForm("country")
shippingStr := ctx.PostForm("shippingMethod")
address, err := rc.NewAddressFromForm(ctx)
if shippingStr != "pickup" {
if err != nil {
return models.Order{}, fmt.Errorf("Invalid address information.")
}
}
//address, err := rc.NewAddressFromForm(ctx)
//if shippingStr != "pickup" {
// if err != nil {
// return models.Order{}, fmt.Errorf("Invalid address information.")
// }
//}
var shipping models.Shipping
for _, shippingMethod := range GetShippingMethods() {
@@ -168,6 +174,8 @@ func (rc *cartItemController) NewOrderFromForm(ctx *gin.Context) (models.Order,
}
cartItems, err := repositories.CartItems.GetAllBySession(sessionId)
fmt.Println(sessionId)
fmt.Println(cartItems)
if err != nil {
return models.Order{}, err
@@ -179,8 +187,13 @@ func (rc *cartItemController) NewOrderFromForm(ctx *gin.Context) (models.Order,
Token: token,
Email: email,
Comment: comment,
FirstName: firstName,
LastName: lastName,
Address: address,
Shipping: shipping,
PostalCode: postalCode,
City: city,
Country: country,
Shipping: shipping.Id,
CartItems: cartItems,
}
@@ -363,13 +376,33 @@ func (rc *cartItemController) CheckoutHandler(c *gin.Context) {
return
}
var shipping models.Shipping
for _, shippingMethod := range GetShippingMethods() {
if shippingMethod.Id == order.Shipping {
shipping = shippingMethod
}
}
priceProducts := 0.0
for _, cartItem := range order.CartItems {
priceProducts += (float64(cartItem.Quantity) * cartItem.ItemVariant.Price)
}
priceTotal := priceProducts + shipping.Price
data := CreateSessionData(c, gin.H{
"error": "",
"success": "",
"order": order,
"askAddress": (order.Shipping != "pickup"),
"isPreview": true,
"shipping": shipping,
"priceProducts": fmt.Sprintf("%.2f", priceProducts), //round 2 decimals
"priceTotal": fmt.Sprintf("%.2f", priceTotal), //round 2 decimals
})
fmt.Println(order)
c.HTML(http.StatusOK, "order.html", data)
}