| | |
| | | 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 |
| | |
| | | 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() |
| | | } |