From a3de6fbf95c9d3ca08ac5b78217c7a065c9a39a7 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期五, 27 十月 2023 10:25:33 +0800
Subject: [PATCH] 退货单修改

---
 service/salesDetails.go       |    3 +
 model/contract.go             |    2 
 model/salesDetailsProduct.go  |    9 ++++
 model/request/salesDetails.go |    4 +-
 api/v1/contract.go            |    1 
 docs/swagger.yaml             |    6 ++-
 model/SalesReturnProduct.go   |   21 +++++++---
 docs/docs.go                  |    7 ++-
 docs/swagger.json             |    7 ++-
 model/request/contract.go     |    2 
 model/salesDetails.go         |    2 
 api/v1/salesDetails.go        |    1 
 service/salesReturn.go        |    1 
 13 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/api/v1/contract.go b/api/v1/contract.go
index a2cc756..5a0dcdd 100644
--- a/api/v1/contract.go
+++ b/api/v1/contract.go
@@ -140,6 +140,7 @@
 		File:         contract.File,
 		CodeStandID:  contract.CodeStandID,
 		ContractName: contract.ContractName,
+		SendTime:     contract.SendTime,
 	}
 
 	return ecode.OK, contractModel
diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go
index f5c69eb..1a1e37d 100644
--- a/api/v1/salesDetails.go
+++ b/api/v1/salesDetails.go
@@ -159,6 +159,7 @@
 	salesDetailsModel.LogisticCost = salesDetails.LogisticCost
 	salesDetailsModel.CodeStandID = salesDetails.CodeStandID
 	salesDetailsModel.DeliverType = salesDetails.DeliverType
+	salesDetailsModel.QuotationId = salesDetails.QuotationId
 
 	return ecode.OK, salesDetailsModel
 }
diff --git a/docs/docs.go b/docs/docs.go
index bf61850..8452e69 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -11150,6 +11150,9 @@
                 "quotationId": {
                     "type": "integer"
                 },
+                "sendTime": {
+                    "type": "string"
+                },
                 "serviceContractStatus": {
                     "$ref": "#/definitions/model.ServiceContractStatus"
                 },
@@ -13578,7 +13581,7 @@
                     "type": "integer"
                 },
                 "sendTime": {
-                    "description": "鍙戣揣鏃堕棿s",
+                    "description": "鍙戣揣鏃堕棿",
                     "type": "string"
                 },
                 "status_id": {
@@ -16515,7 +16518,7 @@
                     "type": "integer"
                 },
                 "sendTime": {
-                    "description": "鍙戣揣鏃堕棿s",
+                    "description": "鍙戣揣鏃堕棿",
                     "type": "string"
                 },
                 "status_id": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 28a34e8..64bc3af 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -11138,6 +11138,9 @@
                 "quotationId": {
                     "type": "integer"
                 },
+                "sendTime": {
+                    "type": "string"
+                },
                 "serviceContractStatus": {
                     "$ref": "#/definitions/model.ServiceContractStatus"
                 },
@@ -13566,7 +13569,7 @@
                     "type": "integer"
                 },
                 "sendTime": {
-                    "description": "鍙戣揣鏃堕棿s",
+                    "description": "鍙戣揣鏃堕棿",
                     "type": "string"
                 },
                 "status_id": {
@@ -16503,7 +16506,7 @@
                     "type": "integer"
                 },
                 "sendTime": {
-                    "description": "鍙戣揣鏃堕棿s",
+                    "description": "鍙戣揣鏃堕棿",
                     "type": "string"
                 },
                 "status_id": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 28a52ba..a27c9b3 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -762,6 +762,8 @@
         $ref: '#/definitions/model.Quotation'
       quotationId:
         type: integer
+      sendTime:
+        type: string
       serviceContractStatus:
         $ref: '#/definitions/model.ServiceContractStatus'
       statusId:
@@ -2390,7 +2392,7 @@
       quotation_id:
         type: integer
       sendTime:
-        description: 鍙戣揣鏃堕棿s
+        description: 鍙戣揣鏃堕棿
         type: string
       status_id:
         type: integer
@@ -4405,7 +4407,7 @@
       quotation_id:
         type: integer
       sendTime:
-        description: 鍙戣揣鏃堕棿s
+        description: 鍙戣揣鏃堕棿
         type: string
       status_id:
         type: integer
diff --git a/model/SalesReturnProduct.go b/model/SalesReturnProduct.go
index 35bb297..07374d0 100644
--- a/model/SalesReturnProduct.go
+++ b/model/SalesReturnProduct.go
@@ -9,22 +9,23 @@
 type (
 	// SalesReturnProduct 鏈嶅姟鍚堝悓鍜屼骇鍝佸叧鑱�
 	SalesReturnProduct struct {
-		SalesReturnId int  `json:"id" gorm:"column:service_contract_id;type:int;primary_key;not null;default:0"`
+		SalesReturnId int  `json:"id" gorm:"column:sales_return_id;type:int;primary_key;not null;default:0"`
 		ProductId     uint `json:"name" gorm:"primary_key;column:product_id;type:int;not null;default:0;comment:浜у搧id"`
 	}
 
 	// SalesReturnProductSearch 閿�鍞槑缁嗗拰浜у搧鍏宠仈鎼滅储鏉′欢
 	SalesReturnProductSearch struct {
 		SalesReturnProduct
-		Orm      *gorm.DB
-		Keyword  string
-		PageNum  int
-		PageSize int
+		Orm        *gorm.DB
+		Keyword    string
+		PageNum    int
+		PageSize   int
+		ProductIds []uint
 	}
 )
 
 func (SalesReturnProduct) TableName() string {
-	return "service_contract_product"
+	return "sales_return_product"
 }
 
 func NewSalesReturnProductSearch() *SalesReturnProductSearch {
@@ -35,10 +36,18 @@
 
 func (slf *SalesReturnProductSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&SalesReturnProduct{})
+	if len(slf.ProductIds) > 0 {
+		db = db.Where("product_id in (?)", slf.ProductIds)
+	}
 
 	return db
 }
 
+func (slf *SalesReturnProductSearch) SetProductIds(ids []uint) *SalesReturnProductSearch {
+	slf.ProductIds = ids
+	return slf
+}
+
 func (slf *SalesReturnProductSearch) Create(record *SalesReturnProduct) error {
 	var db = slf.build()
 	return db.Create(record).Error
diff --git a/model/contract.go b/model/contract.go
index 63dd9cf..91e50e8 100644
--- a/model/contract.go
+++ b/model/contract.go
@@ -22,7 +22,7 @@
 		File                  string                `json:"file" gorm:"column:file;type:varchar(255);comment:鍚堝悓鏂囦欢"`
 		CreatedAt             *CustomTime           `json:"created_at" gorm:"column:created_at;type:datetime;comment:鍒涘缓鏃堕棿"`
 		CodeStandID           string                `json:"codeStandID" gorm:"column:code_stand_id;type:varchar(255);comment:缂栫爜id"`
-		//SendTime              string                `json:"sendTime" gorm:"column:send_time;type:varchar(255);comment:鍙戣揣鏃堕棿"`
+		SendTime              string                `json:"sendTime" gorm:"column:send_time;type:varchar(255);comment:鍙戣揣鏃堕棿"`
 		gormModel
 	}
 
diff --git a/model/request/contract.go b/model/request/contract.go
index e051bb6..ef09ea2 100644
--- a/model/request/contract.go
+++ b/model/request/contract.go
@@ -13,7 +13,7 @@
 	StatusId     int    `json:"status_id"`
 	File         string `json:"file"`
 	CodeStandID  string `json:"codeStandID"` //缂栫爜id
-	SendTime     string `json:"sendTime"`    //鍙戣揣鏃堕棿s
+	SendTime     string `json:"sendTime"`    //鍙戣揣鏃堕棿
 }
 
 type UpdateContract struct {
diff --git a/model/request/salesDetails.go b/model/request/salesDetails.go
index 0b4a8bd..71aa235 100644
--- a/model/request/salesDetails.go
+++ b/model/request/salesDetails.go
@@ -11,7 +11,7 @@
 
 type SalesDetails struct {
 	ClientId            int              `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
-	Number              string           `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
+	Number              string           `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞槑缁嗗崟鍙�"`
 	SaleChanceId        int              `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
 	SaleType            int              `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
 	SignTime            string           `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"`
@@ -43,5 +43,5 @@
 	Keyword      string                           `json:"keyword"`
 	SaleChanceId int                              `json:"saleChanceId"` //閿�鍞満浼歩d
 	ClientId     int                              `json:"clientId"`     //瀹㈡埛id
-	Number       string                           `json:"number"`       //閿�鍞瓙鍗曞彿
+	Number       string                           `json:"number"`       //閿�鍞槑缁嗗崟鍙�
 }
diff --git a/model/salesDetails.go b/model/salesDetails.go
index 569fbf3..10e89b5 100644
--- a/model/salesDetails.go
+++ b/model/salesDetails.go
@@ -14,7 +14,7 @@
 		Id                  int               `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
 		ClientId            int               `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
 		Client              Client            `json:"client" gorm:"foreignKey:ClientId"`
-		Number              string            `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"`
+		Number              string            `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞槑缁嗗崟鍙�"`
 		SaleChanceId        int               `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"`
 		SaleChance          SaleChance        `json:"saleChance" gorm:"foreignKey:SaleChanceId"`
 		SaleType            int               `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"`
diff --git a/model/salesDetailsProduct.go b/model/salesDetailsProduct.go
index a803e83..abaed56 100644
--- a/model/salesDetailsProduct.go
+++ b/model/salesDetailsProduct.go
@@ -23,6 +23,7 @@
 		Keyword     string
 		PageNum     int
 		PageSize    int
+		ProductIds  []uint
 	}
 )
 
@@ -38,10 +39,18 @@
 
 func (slf *SalesDetailsProductSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&SalesDetailsProduct{})
+	if len(slf.ProductIds) > 0 {
+		db = db.Where("product_id in (?)", slf.ProductIds)
+	}
 
 	return db
 }
 
+func (slf *SalesDetailsProductSearch) SetProductIds(ids []uint) *SalesDetailsProductSearch {
+	slf.ProductIds = ids
+	return slf
+}
+
 func (slf *SalesDetailsProductSearch) Create(record *SalesDetailsProduct) error {
 	var db = slf.build()
 	return db.Create(record).Error
diff --git a/service/salesDetails.go b/service/salesDetails.go
index 62653f1..dec2d36 100644
--- a/service/salesDetails.go
+++ b/service/salesDetails.go
@@ -22,6 +22,9 @@
 	salesDetails.AmountTotal = salesDetails.AmountTotal.Round(2)
 	salesDetails.AmountReceivable = salesDetails.AmountTotal
 	salesDetails.AmountUnInvoiced = salesDetails.AmountTotal
+	for _, product := range salesDetails.Products {
+		product.Id = 0
+	}
 	err := model.NewSalesDetailsSearch().Create(salesDetails)
 	if err != nil {
 		return ecode.SalesDetailsExist
diff --git a/service/salesReturn.go b/service/salesReturn.go
index b1177ea..ab8fef5 100644
--- a/service/salesReturn.go
+++ b/service/salesReturn.go
@@ -17,6 +17,7 @@
 	salesReturn.AmountTotal = decimal.Zero
 	for _, product := range salesReturn.Products {
 		salesReturn.AmountTotal = salesReturn.AmountTotal.Add(product.Amount.Mul(product.Price))
+		product.Id = 0
 	}
 	salesReturn.AmountShouldRefund = salesReturn.AmountTotal
 	err := model.NewSalesReturnSearch().Create(salesReturn)

--
Gitblit v1.8.0