From 40e540f8ca398fee68f4520dbebd6db6fe2e164c Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期四, 11 一月 2024 15:28:19 +0800 Subject: [PATCH] 添加销售明细推送到wms --- api/v1/quotation.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 56 insertions(+), 1 deletions(-) diff --git a/api/v1/quotation.go b/api/v1/quotation.go index edfb0ae..ecbe7da 100644 --- a/api/v1/quotation.go +++ b/api/v1/quotation.go @@ -9,6 +9,7 @@ "aps_crm/pkg/ecode" "aps_crm/utils" "github.com/gin-gonic/gin" + "github.com/shopspring/decimal" ) type QuotationApi struct{} @@ -32,6 +33,23 @@ if errCode != ecode.OK { ctx.Fail(errCode) return + } + + count, err := model.NewQuotationSearch(nil).SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + + if quotation.MemberId == 0 { + userInfo := utils.GetUserInfo(c) + if userInfo.UserType == constvar.UserTypeSub { + quotation.MemberId = userInfo.CrmUserId + } } errCode = quotationService.AddQuotation("ation) @@ -142,6 +160,8 @@ quotationModel.Conditions = quotation.Conditions quotationModel.File = quotation.File quotationModel.Products = quotation.Products + quotationModel.CodeStandID = quotation.CodeStandID + quotationModel.QuotationName = quotation.QuotationName return ecode.OK, quotationModel @@ -167,7 +187,7 @@ if params.SearchMap == nil { params.SearchMap = make(map[string]interface{}, 0) } - params.SearchMap["member_id"] = userInfo.CrmUserId + params.SearchMap["member_ids"] = userInfo.SubUserIds } quotations, total, errCode := quotationService.GetQuotationList(params.Page, params.PageSize, params.SearchMap) @@ -176,8 +196,43 @@ return } + for _, quotation := range quotations { + amount := decimal.NewFromInt(0) + for _, product := range quotation.Products { + amount = amount.Add(product.Total) + } + quotation.AmountTotal = amount + } + ctx.OkWithDetailed(response.QuotationResponse{ List: quotations, Count: int(total), }) } + +// Statistics +// +// @Tags Quotation +// @Summary 鎶ヤ环鍗曠粺璁� +// @Produce application/json +// @Success 200 {object} contextx.Response{data=map[string]int64} +// @Router /api/quotation/statistics [get] +func (con *QuotationApi) Statistics(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + m := make(map[string]int64) + total, _ := model.NewQuotationSearch(nil).Count() + m["total"] = total + //宸插垱寤� + created, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(1).Count() + m["created"] = created + //宸插鎵� + approved, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(3).Count() + m["approved"] = approved + //宸叉帴鍙� + accepted, _ := model.NewQuotationSearch(nil).SetQuotationStatusId(5).Count() + m["accepted"] = accepted + ctx.OkWithDetailed(m) +} -- Gitblit v1.8.0