feat: tiap commit jadi entry timesheet terpisah (pro-rata per commit)
Sebelumnya commit dengan kode task yang sama digabung jadi 1 entry. Sekarang setiap commit → 1 entry Odoo. Bobot waktu dihitung dari gap ke commit sebelumnya (atau dari 08:00 untuk commit pertama hari itu). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
42
README.md
42
README.md
@@ -111,22 +111,28 @@ Script utama. Ambil commit hari ini, cari task di Odoo, hitung pro-rata, simpan
|
||||
|
||||
Semua parameter opsional jika `.env` sudah diisi.
|
||||
|
||||
**Cara hitung pro-rata:**
|
||||
- Bobot tiap task = span waktu antara commit pertama dan terakhir task tersebut
|
||||
- Task dengan commit pertama di hari itu → span dihitung dari **jam 08:00**
|
||||
- Single commit mendapat minimum 30 menit
|
||||
**Cara hitung pro-rata (per commit):**
|
||||
- Setiap commit = satu timesheet entry terpisah
|
||||
- Commit diurutkan secara kronologis
|
||||
- Bobot commit pertama = waktu dari **jam 08:00** ke commit tersebut
|
||||
- Bobot commit berikutnya = gap dari commit sebelumnya
|
||||
- Gap 0 menit (commit bersamaan) mendapat minimum 30 menit
|
||||
- Total jam selalu = 8
|
||||
|
||||
```
|
||||
Contoh:
|
||||
Task A commit 09:00–11:00 → span 08:00–11:00 = 180 menit (first commit hari ini)
|
||||
Task B commit 14:00–15:30 → span 90 menit
|
||||
Task C commit 10:00 → span 30 menit (minimum, single commit)
|
||||
Total span = 300 menit
|
||||
commit 1 10:26 → span 08:00→10:26 = 146 menit (first)
|
||||
commit 2 10:26 → gap 0 → minimum 30 menit
|
||||
commit 3 15:16 → gap 10:26→15:16 = 290 menit
|
||||
commit 4 16:00 → gap 44 menit
|
||||
commit 5 16:42 → gap 42 menit
|
||||
Total span = 552 menit
|
||||
|
||||
Task A = 8 × 180/300 = 4.80h
|
||||
Task B = 8 × 90/300 = 2.40h
|
||||
Task C = 8 × 30/300 = 0.80h
|
||||
commit 1 = 8 × 146/552 = 2.12h
|
||||
commit 2 = 8 × 30/552 = 0.43h
|
||||
commit 3 = 8 × 290/552 = 4.20h
|
||||
commit 4 = 8 × 44/552 = 0.64h
|
||||
commit 5 = 8 × 42/552 = 0.61h
|
||||
```
|
||||
|
||||
```bash
|
||||
@@ -160,14 +166,16 @@ python3 daily_timesheet.py --session-id <id> --user-id 41 --employee-id 37 --aut
|
||||
**Contoh output preview:**
|
||||
```
|
||||
──────────────────────────────────────────────────────────────────────────────
|
||||
PROJECT TASK WAKTU SPAN JAM DESKRIPSI
|
||||
PROJECT TASK WAKTU SPAN JAM DESKRIPSI
|
||||
──────────────────────────────────────────────────────────────────────────────
|
||||
CPONE 10832 08:00→11:00 180m↑ 4.80 buat api endpoint
|
||||
Support Kedungdoro 5521 14:00–15:30 90m 2.40 fix bug validasi
|
||||
Support Pramita 7788 10:00 (1x) 30m* 0.80 update config
|
||||
Support Pramita 52010 08:00→10:26 146m↑ 2.12 Menambahkan regional
|
||||
Support Pramita 52010 10:26 30m* 0.43 fix validasi regional
|
||||
IBL 52016 15:16 290m 4.20 update deploy.sh
|
||||
IBL 52016 16:00 44m 0.64 fix deploy path
|
||||
IBL 52016 16:42 42m 0.61 update script prod
|
||||
──────────────────────────────────────────────────────────────────────────────
|
||||
TOTAL 300m 8.00
|
||||
↑ span dihitung dari 08:00 | * single commit → minimum 30 menit
|
||||
TOTAL 552m 8.00
|
||||
↑ span dari 08:00 | * gap ke commit sebelumnya → minimum 30 menit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user