diff --git a/pkg/model/financial_form.go b/pkg/model/financial_form.go index 22433d4..ae0dacc 100644 --- a/pkg/model/financial_form.go +++ b/pkg/model/financial_form.go @@ -70,6 +70,21 @@ func (m *FinancialFrom) SaveApprovalContent(in *approval.CreateRequest, a *Appro copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true}) m.ApprovalID = a.ID + costInfos := make([]*CostInfo, 0) + for i := 0; i < len(in.FinancialFrom.CostInfo); i++ { + costInfo := new(CostInfo) + copier.CopyWithOption(&costInfo, in.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + m.CostInfo = costInfos + + invoiceInfos := make([]*InvoiceInfo, 0) + for i := 0; i < len(in.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, in.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + m.InvoiceInfo = invoiceInfos return DB.Create(&m).Error } @@ -85,6 +100,22 @@ func (m *FinancialFrom) UpdateApprovalContent(in *approval.CreateRequest, a *App copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true}) m.ID = entity.ID + costInfos := make([]*CostInfo, 0) + for i := 0; i < len(in.FinancialFrom.CostInfo); i++ { + costInfo := new(CostInfo) + copier.CopyWithOption(&costInfo, in.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + m.CostInfo = costInfos + + invoiceInfos := make([]*InvoiceInfo, 0) + for i := 0; i < len(in.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, in.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + m.InvoiceInfo = invoiceInfos + return DB.Model(&m).Updates(m).Error } @@ -92,6 +123,24 @@ func (m *FinancialFrom) BuildResContent(a *Approval, request *approval.CreateReq if a.FinancialFrom != nil { copier.CopyWithOption(&request.FinancialFrom, a.FinancialFrom, copier.Option{DeepCopy: true}) + + costInfos := make([]*approval.CostInfo, 0) + for i := 0; i < len(a.FinancialFrom.CostInfo); i++ { + costInfo := new(approval.CostInfo) + copier.CopyWithOption(&costInfo, a.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + + request.FinancialFrom.CostInfo = costInfos + + invoiceInfos := make([]*approval.InvoiceInfo, 0) + for i := 0; i < len(a.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(approval.InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, a.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + + request.FinancialFrom.InvoiceInfo = invoiceInfos } }