Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package routes
- import (
- "Djv-Order-Service-v2-go/config"
- "Djv-Order-Service-v2-go/generator"
- "Djv-Order-Service-v2-go/models"
- "encoding/json"
- "log"
- "time"
- "github.com/gin-gonic/gin"
- )
- func AddOrderNew(c *gin.Context) {
- db := config.Connect()
- res := c.Writer
- var errRes models.ResponseError
- var addOrder models.Orders
- c.BindJSON(&addOrder)
- dt := time.Now()
- dates := dt.Format("2006.01.02 15:04:05")
- OrdID := generator.OrderID()
- var totalPrice []int
- var totalDimension []int
- var totalWeight []int
- for _, ordDetail := range addOrder.OrderDetails {
- totalPrice = append(totalPrice, ordDetail.OrddPrice)
- for _, ordLoad := range ordDetail.OrderLoad {
- totalDimension = append(totalDimension, ordLoad.Ordldimensionloadstotalunit)
- totalWeight = append(totalWeight, ordLoad.Ordlweightloadstotalunit)
- }
- }
- tx = db.Begin()
- var ID int
- var ordid string
- // var orddid int
- status := res.Status()
- order, errOrder := tx.NamedQuery(`
- INSERT INTO orders
- (ordid,
- ordassignmenttype,
- ordcompanyshipperid,
- ordusershipperid,
- ordcompanyshippername,
- ordtotalprice,
- ordbookedby,
- ordcreatedat,
- ordcompanytransporterid,
- ordusertransportername,
- ordtotalesttimearrived,
- ordusertransporterid)
- VALUES (:ordid,
- :type,
- :cmpshpid,
- :usrshpid,
- :cmpshpname,
- :ordtotalprice,
- :ordbookedby,
- :ordcreatedat,
- :ordcompanytransporterid,
- :ordusertransportername,
- :ordtotalesttimearrived,
- :ordusertransporterid) RETURNING id, ordid`,
- map[string]interface{}{
- "ordid": OrdID,
- "type": addOrder.OrdAssignmentType,
- "cmpshpid": addOrder.OrdCompanyShipperID,
- "usrshpid": addOrder.OrdUserShipperID,
- "cmpshpname": addOrder.OrdCompanyShipperName,
- "ordtotalprice": sum(totalPrice),
- "ordbookedby": addOrder.OrdBookedBy,
- "ordcreatedat": dates,
- "ordcompanytransporterid": addOrder.OrdCompanyTransporterID,
- "ordusertransportername": addOrder.OrdUserTransporterName,
- "ordtotalesttimearrived": addOrder.OrdTotalEstTimeArrived,
- "ordusertransporterid": addOrder.OrdUserTransporterID,
- })
- if errOrder != nil {
- tx.Rollback()
- log.Fatalln("ORDER ", errOrder)
- }
- for order.Next() {
- order.Scan(&ID, &ordid)
- }
- for _, ordDetail := range addOrder.OrderDetails {
- _, errDetail := tx.NamedQuery(`
- INSERT INTO orderdetail
- (ordid,
- orddorigincompanyname,
- ordddestcompanyname,
- ordddistance,
- orddesttimepickupon,
- orddesttimedropoffon,
- orddstatus,
- orddtrackstatus,
- orddprice,
- orddorigincompanyid,
- ordddestcompanyid,
- orddorigincompanycity,
- orddorigincompanyadress,
- orddorigincompanypostalcode,
- ordddestcompanyaddress,
- orddesttimearrived,
- ordddestcompanycity,
- orddddestcompanypostalcode,
- orddponumber,
- orddordernumber,
- orddshipmentnumber,
- orddloadingnotes,
- orddoriginlat,
- orddoriginlong,
- ordddestlat,
- ordddestlong,
- ordddimensionloadstotalallunit,
- orddweightloadstotalallunit)
- VALUES (:ordID,
- :originCompanyName,
- :destCompanyName,
- :distance,
- :estTimePickupOn,
- :estDropoffOn,
- :status,
- :trackStatus,
- :price,
- :originCompanyId,
- :destCompanyId,
- :originCompanyCity,
- :originCompanyAdress,
- :originCompanyPostalCode,
- :destCompanyAddress,
- :esttimearrived,
- :destCompanyCity,
- :destCompanyPostalCode,
- :poNumber,
- :orderNumber,
- :shipmentNumber,
- :loadingNotes,
- :originLat,
- :originLong,
- :destLat,
- :destLong,
- :ordddimensionloadstotalallunit,
- :orddweightloadstotalallunit) RETURNING id`, map[string]interface{}{
- "ordID": OrdID,
- "originCompanyName": ordDetail.OrddOriginCompanyName,
- "destCompanyName": ordDetail.OrddDestCompanyName,
- "distance": ordDetail.OrddDistance,
- "estTimePickupOn": ordDetail.OrddEstTimePickupOn,
- "estDropoffOn": ordDetail.OrddEstTimeDropoffOn,
- "status": 1,
- "trackStatus": ordDetail.OrddTrackStatus,
- "price": ordDetail.OrddPrice,
- "originCompanyId": ordDetail.OrddOriginCompanyID,
- "destCompanyId": ordDetail.OrddDestCompanyID,
- "originCompanyCity": ordDetail.OrddOriginCompanyCity,
- "originCompanyAdress": ordDetail.OrddOriginCompanyAdress,
- "originCompanyPostalCode": ordDetail.OrddOriginCompanyPostalCode,
- "destCompanyAddress": ordDetail.OrddDestCompanyAddress,
- "esttimearrived": ordDetail.Orddesttimearrived,
- "destCompanyCity": ordDetail.OrddDestCompanyCity,
- "destCompanyPostalCode": ordDetail.OrdddDestCompanyPostalCode,
- "poNumber": ordDetail.OrddPoNumber,
- "orderNumber": ordDetail.OrddOrderNumber,
- "shipmentNumber": ordDetail.OrddShipmentNumber,
- "loadingNotes": ordDetail.OrddLoadingNotes,
- "originLat": ordDetail.OrddOriginLat,
- "originLong": ordDetail.OrddOriginLong,
- "destLat": ordDetail.OrddDestLat,
- "destLong": ordDetail.OrddDestLong,
- "ordddimensionloadstotalallunit": sum(totalDimension),
- "orddweightloadstotalallunit": sum(totalWeight),
- })
- // for details.Next() {
- // details.Scan(orddid)
- for _, ordLoads := range ordDetail.OrderLoad {
- log.Println(*ordLoads.Ordldescriptionload)
- _, errLoad := tx.NamedExec(`
- INSERT INTO public.orderloads
- (ordlloadtype,
- ordlfleettype,
- ordldescriptionload,
- ordlquantityloads,
- ordldimensionloadsperunit,
- ordldimensionloadstotalunit,
- ordlweightloadsperunit,
- ordlweightloadstotalunit,
- ordlgoodscontainer,
- createdat,
- orderid,
- vehicletype,
- orddid)
- VALUES (:ordlloadtype,
- :ordlfleettype,
- :ordldescriptionload,
- :ordlquantityloads,
- :ordldimensionloadsperunit,
- :ordldimensionloadstotalunit,
- :ordlweightloadsperunit,
- :ordlweightloadstotalunit,
- :ordlgoodscontainer,
- :createdat,
- :orderid,
- :vehicletype,
- :orddid)`, map[string]interface{}{
- "ordlloadtype": ordLoads.Ordlloadtype,
- "ordlfleettype": ordLoads.Ordlfleettype,
- "ordldescriptionload": *ordLoads.Ordldescriptionload,
- "ordlquantityloads": *ordLoads.Ordlquantityloads,
- "ordldimensionloadsperunit": *ordLoads.Ordldimensionloadsperunit,
- "ordldimensionloadstotalunit": ordLoads.Ordldimensionloadstotalunit,
- "ordlweightloadsperunit": ordLoads.Ordlweightloadsperunit,
- "ordlweightloadstotalunit": ordLoads.Ordlweightloadstotalunit,
- "ordlgoodscontainer": ordLoads.Ordlgoodscontainer,
- "createdat": dates,
- "orderid": addOrder.OrdID,
- "vehicletype": ordLoads.Vehicletype,
- "orddid": 111,
- })
- if errLoad != nil {
- tx.Rollback()
- log.Println(errLoad)
- }
- }
- // }
- if errDetail != nil {
- tx.Rollback()
- log.Fatalln(errDetail)
- }
- }
- log.Println("STATUS ", status)
- if status != 200 {
- errRes.Status = 400
- errRes.Messages = "Oppps ..., Something when wrong"
- c.Header("Content-Type", "application/json")
- json.NewEncoder(c.Writer).Encode(errRes)
- tx.Rollback()
- return
- }
- err := tx.Commit()
- if err != nil {
- log.Println(err)
- }
- c.JSON(200, gin.H{
- "status": 200,
- "messages": "Successfull add Order",
- "OrderID": ordid,
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement