Kaynağa Gözat

[For David] Financial Summary

tags/Baseline_30082024_BACKEND_UAT
MSI\2Fi 1 yıl önce
ebeveyn
işleme
72f69c1f05
1 değiştirilmiş dosya ile 17 ekleme ve 16 silme
  1. +17
    -16
      src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt

+ 17
- 16
src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt Dosyayı Görüntüle

@@ -144,29 +144,30 @@ open class DashboardService(

open fun getFinancialStatus(): List<Map<String, Any>> {
val sql = StringBuilder(
" with cte_invoice as (select p.code, sum(i.issueAmount) as sumIssuedAmount , sum(i.paidAmount) as sumPaidAmount"
+ " from invoice i"
+ " left join project p on p.code = i.projectCode"
+ " group by p.code"
+ " ),"
+ " cte_teamLead as ("
+ " select p.teamLead, p.code, t.name as teamName , t.code as teamCode"
+ " from project p"
+ " left join team t on t.teamLead = p.teamLead "
+ " )"
+ " Select p.code, p.description, c.name as client, concat(cte_t.teamCode, \' - \', cte_t.teamName) as teamLead, p.planStart , p.planEnd , p.expectedTotalFee ,"
+ " s.name as staff , IFNULL(t.normalConsumed, 0) as normalConsumed, IFNULL(t.otConsumed , 0) as otConsumed, s2.hourlyRate,"
+ " IFNULL(cte_i.sumIssuedAmount, 0) as sumIssuedAmount , IFNULL(cte_i.sumPaidAmount, 0) as sumPaidAmount "
" with cte_timesheet as ("
+ " Select p.code, s.name as staff, IFNULL(t.normalConsumed, 0) as normalConsumed, IFNULL(t.otConsumed , 0) as otConsumed, s2.hourlyRate"
+ " from timesheet t"
+ " left join project_task pt on pt.id = t.projectTaskId"
+ " left join project p ON p.id = pt.project_id"
+ " left join staff s on s.id = t.staffId"
+ " left join salary s2 on s.salaryId = s2.salaryPoint"
+ " left join customer c on c.id = p.customerId"
+ " left join team t2 on t2.id = s.teamId"
+ " ),"
+ " cte_invoice as ("
+ " select p.code, sum(i.issueAmount) as sumIssuedAmount , sum(i.paidAmount) as sumPaidAmount"
+ " from invoice i"
+ " left join project p on p.code = i.projectCode"
+ " group by p.code"
+ " )"
+ " select p.code, p.description, c.name as client, concat(t.code, \' - \', t.name) as teamLead, p.planStart , p.planEnd , p.expectedTotalFee,"
+ " IFNULL(cte_ts.normalConsumed, 0) as normalConsumed, IFNULL(cte_ts.otConsumed, 0) as otConsumed,"
+ " IFNULL(cte_ts.hourlyRate, 0) as hourlyRate, IFNULL(cte_i.sumIssuedAmount, 0) as sumIssuedAmount, IFNULL(cte_i.sumPaidAmount, 0) as sumPaidAmount"
+ " from project p"
+ " left join cte_timesheet cte_ts on p.code = cte_ts.code"
+ " left join customer c on c.id = p.customerId"
+ " left join tsmsdb.team t on t.teamLead = p.teamLead"
+ " left join cte_invoice cte_i on cte_i.code = p.code"
+ " left join cte_teamLead cte_t on cte_t.code = p.code"
+ " where p.status = \'On-going\' "
+ " where p.status = \'On-going\'"
)

sql.append(" order by p.code")


Yükleniyor…
İptal
Kaydet