diff --git a/README.md b/README.md index 22b4cb9..1eb98a1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Commit dengan format "TASKCODE - deskripsi" ↓ Cari task_id di Odoo berdasarkan kode task ↓ -Hitung jam pro-rata (total = 8 jam/hari) +Hitung jam pro-rata berdasarkan time span commit (total = 8 jam/hari) ↓ Simpan ke pending_YYYY-MM-DD.json + kirim notifikasi macOS ↓ @@ -68,7 +68,24 @@ Kode task akan dipakai untuk mencari task di Odoo secara otomatis. ## Scripts ### `daily_timesheet.py` -Ambil commit hari ini dari semua repo, cari task di Odoo, hitung pro-rata, simpan pending. +Ambil commit hari ini dari semua repo, cari task di Odoo, hitung pro-rata berdasarkan time span commit, simpan pending. + +**Cara hitung pro-rata:** +- Bobot tiap task = span waktu antara commit pertama dan terakhir task tersebut +- Single commit mendapat minimum 30 menit +- Total jam selalu = 8 + +``` +Contoh: + Task A commit 09:00–11:00 → span 120 menit + Task B commit 14:00–15:30 → span 90 menit + Task C commit 10:00 → span 30 menit (minimum) + Total span = 240 menit + + Task A = 8 × 120/240 = 4.00h + Task B = 8 × 90/240 = 3.00h + Task C = 8 × 30/240 = 1.00h +``` ```bash # Dry run — preview tanpa simpan @@ -99,6 +116,19 @@ python3 daily_timesheet.py ... --date 2026-05-27 | `--dry-run` | Preview saja, tidak upload | | `--save-pending` | Simpan ke file + notifikasi | +**Contoh output preview:** +``` +─────────────────────────────────────────────────────────────────────────── + PROJECT TASK WAKTU SPAN JAM DESKRIPSI +─────────────────────────────────────────────────────────────────────────── + CPONE 10832 09:00–11:00 120m 4.00 buat api endpoint + Support Kedungdoro 5521 14:00–15:30 90m 3.00 fix bug validasi + Support Pramita 7788 10:00 (1 commit) 30m* 1.00 update config +─────────────────────────────────────────────────────────────────────────── + TOTAL 240m 8.00 + * single commit → minimum 30 menit +``` + --- ### `upload_pending.py`