docs: update README — pro-rata time span dan contoh output
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
34
README.md
34
README.md
@@ -13,7 +13,7 @@ Commit dengan format "TASKCODE - deskripsi"
|
|||||||
↓
|
↓
|
||||||
Cari task_id di Odoo berdasarkan kode task
|
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
|
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
|
## Scripts
|
||||||
|
|
||||||
### `daily_timesheet.py`
|
### `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
|
```bash
|
||||||
# Dry run — preview tanpa simpan
|
# Dry run — preview tanpa simpan
|
||||||
@@ -99,6 +116,19 @@ python3 daily_timesheet.py ... --date 2026-05-27
|
|||||||
| `--dry-run` | Preview saja, tidak upload |
|
| `--dry-run` | Preview saja, tidak upload |
|
||||||
| `--save-pending` | Simpan ke file + notifikasi |
|
| `--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`
|
### `upload_pending.py`
|
||||||
|
|||||||
Reference in New Issue
Block a user