zhangqian
2024-04-07 f80c6068d5e2ae5b9101125497b4de88726e1d9e
service/salesDetails.go
@@ -1,8 +1,8 @@
package service
import (
   "aps_crm/constvar"
   "aps_crm/model"
   "aps_crm/model/request"
   "aps_crm/pkg/ecode"
   "github.com/shopspring/decimal"
   "gorm.io/gorm"
@@ -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
@@ -114,14 +117,49 @@
   return ecode.OK
}
func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keywordType constvar.SalesDetailsKeywordType, keyword string) ([]*model.SalesDetails, int64, int) {
func (SalesDetailsService) GetSalesDetailsList(params request.GetSalesDetailsList, memberIds []int) ([]*model.SalesDetails, int64, int) {
   // get contact list
   contacts, total, err := model.NewSalesDetailsSearch().
      SetPreload(true).
      SetKeywordType(keywordType).
      SetKeyword(keyword).SetPage(page, pageSize).FindAll()
      SetMemberIds(memberIds).
      SetKeywordType(params.KeywordType).
      SetSaleChanceId(params.SaleChanceId).
      SetClientId(params.ClientId).
      SetNumber(params.Number).
      SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).FindAll()
   if err != nil {
      return nil, 0, ecode.SalesDetailsListErr
   }
   return contacts, total, ecode.OK
}
func (SalesDetailsService) GetSalesDetails(saleDetailID int) (*model.SalesDetails, error) {
   return model.NewSalesDetailsSearch().SetId(saleDetailID).SetPreload(true).First()
}
func (SalesDetailsService) GetSalesDetailsByNumber(number string) (*model.SalesDetails, error) {
   return model.NewSalesDetailsSearch().SetNumber(number).SetPreload(true).First()
}
func (SalesDetailsService) GetDeliveryOrder(saleDetailID int) ([]*model.DeliveryOrder, error) {
   // get contact list
   orders, err := model.NewDeliveryOrderSearch().SetSalesDetailsID(saleDetailID).FindAll()
   return orders, err
}
func (slf SalesDetailsService) GetProducts(saleDetailNumber string) (products []*model.Product, err error) {
   salesDetails, err := slf.GetSalesDetailsByNumber(saleDetailNumber)
   if err != nil {
      return nil, err
   }
   // get contact list
   salesDetailsProducts, err := model.NewSalesDetailsProductSearch().SetSalesDetailsId(salesDetails.Id).FindAll()
   if err != nil {
      return
   }
   productIDs := make([]uint, 0)
   for _, v := range salesDetailsProducts {
      productIDs = append(productIDs, v.ProductId)
   }
   return model.NewProductSearch(nil).SetIds(productIDs).FindAll()
}