finance.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package admin
  2. import (
  3. "fmt"
  4. "server/dao"
  5. "server/model/common/request"
  6. )
  7. type FinanceService struct{}
  8. func (fs *FinanceService) QueryDailyExpensesList(info request.SearchDailyFee) (list interface{}, total int64, err error) {
  9. limit := info.PageInfo.PageSize
  10. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  11. dailyExpenses, total, err := dao.QueryDailyExpensesList(limit, offset, info.Genre, info.Name, info.Time, info.YearTime)
  12. for i, expenses := range dailyExpenses {
  13. feeDetails, err := dao.QueryDailyFeeDetails(int(expenses.ID))
  14. if err != nil {
  15. return nil, 0, err
  16. }
  17. dailyExpenses[i].DailyFeeDetails = feeDetails
  18. }
  19. return dailyExpenses, total, err
  20. }
  21. func (fs *FinanceService) QueryDailyExpenses(id int) (dao.DailyExpenses, error) {
  22. expenses, err := dao.QueryDailyExpenses(id)
  23. if err != nil {
  24. return dao.DailyExpenses{}, err
  25. }
  26. details, err := dao.QueryDailyFeeDetails(int(expenses.ID))
  27. if err != nil {
  28. return dao.DailyExpenses{}, err
  29. }
  30. expenses.DailyFeeDetails = details
  31. return expenses, err
  32. }
  33. func (fs *FinanceService) QueryExpensesGenre() ([]dao.ExpensesGenre, error) {
  34. return dao.QueryExpensesGenre()
  35. }
  36. func (fs *FinanceService) QueryProjectFeeGenre() ([]dao.ProjectFeeGenre, error) {
  37. return dao.QueryProjectFeeGenre()
  38. }
  39. func (fs *FinanceService) QueryBorrowingList(info request.SearchNameTime) (list interface{}, total int64, err error) {
  40. limit := info.PageInfo.PageSize
  41. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  42. borrowing, total, err := dao.QueryBorrowingList(limit, offset, info.Name, info.Time, info.YearTime)
  43. return borrowing, total, err
  44. }
  45. func (fs *FinanceService) QueryBorrowing(id int) (dao.Borrowing, error) {
  46. return dao.QueryBorrowing(id)
  47. }
  48. func (fs *FinanceService) QueryDailyFileList(info request.SearchIdNameGenre) (list interface{}, total int64, err error) {
  49. limit := info.PageInfo.PageSize
  50. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  51. dailyFiles, total, err := dao.QueryDailyFileList(limit, offset, info.Id, info.Genre, info.Name)
  52. return dailyFiles, total, err
  53. }
  54. func (fs *FinanceService) QueryProjectFinance(code string) (dao.Project, error) {
  55. project, err := dao.QueryProjectByCode(code)
  56. if err != nil {
  57. return dao.Project{}, err
  58. }
  59. collection, collectionTotal, err := dao.QueryCollectionList(8, 0, code, "")
  60. if err != nil {
  61. return dao.Project{}, err
  62. }
  63. reimbursements, reimbursementTotal, err := dao.QueryReimbursementList(8, 0, code, "", "")
  64. if err != nil {
  65. return dao.Project{}, err
  66. }
  67. for i, reimbursement := range reimbursements {
  68. details, err := dao.QueryFeeDetails(int(reimbursement.ID))
  69. if err != nil {
  70. return dao.Project{}, err
  71. }
  72. reimbursements[i].FeeDetails = details
  73. }
  74. workingHours, workingHoursTotal, err := dao.QueryWorkingHoursList(8, 0, 0, code, "", "")
  75. if err != nil {
  76. return dao.Project{}, err
  77. }
  78. fee, feeTotal, err := dao.QueryProjectFeeList(8, 0, 0, 0, code, "", "", "")
  79. if err != nil {
  80. return dao.Project{}, err
  81. }
  82. project.Collection = collection
  83. project.Reimbursement = reimbursements
  84. project.WorkingHours = workingHours
  85. project.ReimbursementTotal = reimbursementTotal
  86. project.CollectionTotal = collectionTotal
  87. project.WorkingHoursTotal = workingHoursTotal
  88. project.ProjectFee = fee
  89. project.ProjectFeeTotal = feeTotal
  90. return project, err
  91. }
  92. func (fs *FinanceService) CreateDailyExpenses(expenses dao.DailyExpenses) error {
  93. return expenses.CreateDailyExpenses()
  94. }
  95. func (fs *FinanceService) CreateExpensesGenre(genre dao.ExpensesGenre) error {
  96. return genre.CreateExpensesGenre()
  97. }
  98. func (fs *FinanceService) CreateProjectFeeGenre(genre dao.ProjectFeeGenre) error {
  99. return genre.CreateProjectFeeGenre()
  100. }
  101. func (fs *FinanceService) CreateBorrowing(borrowing dao.Borrowing) error {
  102. return borrowing.CreateBorrowing()
  103. }
  104. func (fs *FinanceService) CreateDailyFile(file dao.DailyFile) error {
  105. return file.CreateDailyFile()
  106. }
  107. func (fs *FinanceService) UpdateDailyExpenses(expenses dao.DailyExpenses) error {
  108. return expenses.UpdateDailyExpenses()
  109. }
  110. func (fs *FinanceService) UpdateExpensesGenre(genre dao.ExpensesGenre) error {
  111. return genre.UpdateExpensesGenre()
  112. }
  113. func (fs *FinanceService) UpdateProjectFeeGenre(genre dao.ProjectFeeGenre) error {
  114. return genre.UpdateProjectFeeGenre()
  115. }
  116. func (fs *FinanceService) UpdateBorrowing(borrowing dao.Borrowing) error {
  117. return borrowing.UpdateBorrowing()
  118. }
  119. func (fs *FinanceService) DeleteDailyExpenses(expenses dao.DailyExpenses) error {
  120. return expenses.DeleteDailyExpenses()
  121. }
  122. func (fs *FinanceService) DeleteExpensesGenre(genre dao.ExpensesGenre) error {
  123. expenses, _ := dao.QueryExpensesByGenre(int(genre.ID))
  124. if len(expenses) > 0 {
  125. return fmt.Errorf("费用类型正在被使用")
  126. }
  127. return genre.DeleteExpensesGenre()
  128. }
  129. func (fs *FinanceService) DeleteProjectFeeGenre(genre dao.ProjectFeeGenre) error {
  130. fee, _ := dao.QueryProjectFeeByGenre(int(genre.ID))
  131. if len(fee) > 0 {
  132. return fmt.Errorf("费用类型正在被使用")
  133. }
  134. return genre.DeleteProjectFeeGenre()
  135. }
  136. func (fs *FinanceService) DeleteBorrowing(borrowing dao.Borrowing) error {
  137. return borrowing.DeleteBorrowing()
  138. }
  139. func (fs *FinanceService) DeleteDailyFile(file dao.DailyFile) error {
  140. return file.DeleteDailyFile()
  141. }