package service
|
|
import (
|
"aps_crm/model"
|
"aps_crm/model/request"
|
"aps_crm/pkg/ecode"
|
"gorm.io/gorm"
|
)
|
|
type InvoiceService struct{}
|
|
func NewInvoiceService() InvoiceService {
|
return InvoiceService{}
|
}
|
|
func (InvoiceService) AddInvoice(invoice *model.Invoice) int {
|
|
err := model.WithTransaction(func(db *gorm.DB) error {
|
err := model.NewInvoiceSearch().Create(invoice)
|
if err != nil {
|
return err
|
}
|
//if invoice.SourceType == constvar.InvoiceSourceTypeServiceContract {
|
// contract,err := model.NewServiceContractSearch().SetId(invoice.SourceId).First()
|
// if err != nil {
|
// return err
|
// }
|
// AmountInvoiced := contract.AmountReceived.Add()
|
// err := model.NewServiceContractSearch().SetId(invoice.SourceId).UpdateByMap(map[string]interface{}{
|
// "amount_received" :
|
// })
|
// if err != nil {
|
// return err
|
// }
|
//}
|
|
return nil
|
})
|
|
if err != nil {
|
return ecode.DBErr
|
}
|
|
return ecode.OK
|
}
|
|
func (InvoiceService) DeleteInvoice(id int) int {
|
err := model.NewInvoiceSearch().SetId(id).Delete()
|
if err != nil {
|
return ecode.DBErr
|
}
|
return ecode.OK
|
}
|
|
func (InvoiceService) GetInvoiceList() ([]*model.Invoice, int64, int) {
|
list, total, err := model.NewInvoiceSearch().Find()
|
if err != nil {
|
return nil, 0, ecode.DBErr
|
}
|
|
return list, total, ecode.OK
|
}
|
|
func (InvoiceService) UpdateInvoices(Invoices []*request.UpdateInvoice) int {
|
for _, v := range Invoices {
|
// check Invoice exist
|
_, err := model.NewInvoiceSearch().SetId(v.Id).First()
|
if err != nil {
|
return ecode.DBErr
|
}
|
|
err = model.NewInvoiceSearch().SetId(v.Id).Updates(map[string]interface{}{})
|
if err != nil {
|
return ecode.DBErr
|
}
|
}
|
|
return ecode.OK
|
}
|
|
func (InvoiceService) UpdateInvoice(invoice *model.Invoice) int {
|
err := model.NewInvoiceSearch().SetId(invoice.Id).Save(invoice)
|
if err != nil {
|
return ecode.DBErr
|
}
|
return ecode.OK
|
}
|