diff --git a/client/supplier.go b/client/supplier.go index 1ed20d0..f742f94 100644 --- a/client/supplier.go +++ b/client/supplier.go @@ -136,3 +136,22 @@ func (s Supplier) UpdateWarehouseIntoServiceSupplier(p model.UpdateSupplierWareh } return nil } + +// CreateCashflow ... +func (s Supplier) CreateCashflow(p model.SupplierCashflowCreatePayload) (*model.SupplierCashflowCreateResponse, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.CreateCashflow, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Error string `json:"error"` + Data *model.SupplierCashflowCreateResponse `json:"data"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} diff --git a/model/common_request.go b/model/common_request.go index 0ce5163..c3cbac7 100644 --- a/model/common_request.go +++ b/model/common_request.go @@ -20,3 +20,9 @@ type ActionBy struct { ID string `json:"id"` Name string `json:"name"` } + +// ClickAction ... +type ClickAction struct { + Type string `json:"type"` + Value string `json:"value"` +} diff --git a/model/supplier_request.go b/model/supplier_request.go index 5a19924..0a4b6fa 100644 --- a/model/supplier_request.go +++ b/model/supplier_request.go @@ -38,3 +38,13 @@ type UpdateSupplierWarehousePayload struct { DistrictCode int `json:"districtCode"` WardCode int `json:"wardCode"` } + +// SupplierCashflowCreatePayload ... +type SupplierCashflowCreatePayload struct { + Supplier string `json:"supplier"` + Action string `json:"action"` + Name string `json:"name"` + TargetID string `json:"targetId"` + Value float64 `json:"value"` + ClickAction *ClickAction `json:"clickAction"` +} diff --git a/model/supplier_response.go b/model/supplier_response.go index 975a8de..8efdb2c 100644 --- a/model/supplier_response.go +++ b/model/supplier_response.go @@ -29,3 +29,7 @@ type SupplierAll struct { Suppliers []SupplierBrief `json:"suppliers"` Total int64 `json:"total"` } + +type SupplierCashflowCreateResponse struct { + ID string `json:"id"` +} diff --git a/subject/supplier.go b/subject/supplier.go index 17ca8d0..1b86c12 100644 --- a/subject/supplier.go +++ b/subject/supplier.go @@ -10,8 +10,10 @@ var Supplier = struct { GetListSupplierInfo string GetSupplierContractBySupplierID string FindAll string + CreateCashflow string }{ GetListSupplierInfo: getSupplierValue("get_list_supplier_info"), GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"), FindAll: getSupplierValue("find_all"), + CreateCashflow: getSupplierValue("create_cashflow"), }