Skip to content

feat: add work assignment doctype with member hour tracking (LAN-885)#294

Open
MarcCon wants to merge 38 commits intoversion-15-hotfixfrom
lan-885
Open

feat: add work assignment doctype with member hour tracking (LAN-885)#294
MarcCon wants to merge 38 commits intoversion-15-hotfixfrom
lan-885

Conversation

@MarcCon
Copy link
Copy Markdown
Collaborator

@MarcCon MarcCon commented Jan 12, 2026

This PR enables tracking of work hours for members through work assignments.

Features:

  • Work Assignment DocType
  • Work Hours Report
  • button to create work assignments directly from a member record

Open Questions:
Do we need a hourly account for a member? It is not necessary for the report.

@MarcCon MarcCon requested a review from barredterra January 12, 2026 08:45
MarcCon and others added 3 commits January 16, 2026 09:23
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Copy link
Copy Markdown
Member

@barredterra barredterra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good start!

I think in the requirements I read that each Organization should be able to specify a number of working hours per year and we need to track the members´ actual working hours against that. And, ideally, also allow carrying over excess working hours to the next year.

Let's also add the Work Assignment to the connections in the LANDA Member form.

Comment thread landa/organization_management/doctype/work_assignment/work_assignment.js Outdated
Comment thread landa/organization_management/doctype/work_assignment/work_assignment.json Outdated
Comment thread landa/organization_management/report/work_hours/work_hours.py
@MarcCon
Copy link
Copy Markdown
Collaborator Author

MarcCon commented Jan 26, 2026

Good start!

I think in the requirements I read that each Organization should be able to specify a number of working hours per year and we need to track the members´ actual working hours against that. And, ideally, also allow carrying over excess working hours to the next year.

Let's also add the Work Assignment to the connections in the LANDA Member form.

My idea would be to add a DocType "Organization Work Hours" with a child table to show members of the organization with their hours from the Work Assignment DocType and validate them against the target hours.

@MarcCon MarcCon requested a review from barredterra January 26, 2026 09:39
@barredterra
Copy link
Copy Markdown
Member

See my alternative proposal in LAN-885

@barredterra barredterra assigned barredterra and unassigned MarcCon Feb 11, 2026
Comment thread landa/organization_management/report/work_hours/work_hours.py
@barredterra barredterra assigned MarcCon and unassigned barredterra Feb 11, 2026
@MarcCon MarcCon requested a review from barredterra February 18, 2026 11:31
Comment thread landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.py Outdated
Copy link
Copy Markdown
Member

@barredterra barredterra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe in "Work Ledger Balance" die Spaltenbreiten angepasst und die Logik so angepasst, dass Work Ledger Entries ohne Work Assignment in der "Expected"-Spalte landen, und solche mit Work Assignment in der "Hours Worked"-Spalte (statt unter/über Null). Dadurch wird eine Verringerung der Expected Hours via Organization nicht mehr als geleistete Arbeit angezeigt.


Weitere nötige Arbeiten:

  • Work Assignment:

    • Connections mit Link auf Work Ledger Entry hinzufügen
    • DocType ist submittable, aber niemand hat Submit-Rechte (auch Cancel, Amend, usw)
  • Bericht "Arbeitsstunden"

    • Für Zeilen ohne Work Assignment sollten wir eine hilfreiche Beschreibung ausgeben, z.B. "Anpassung der erwarteten Arbeitszeit".
    • Spalte "Gesamtstunden" umbenennen zu "Stundensaldo"
  • Berichte zu Workspace "Vereinsverwaltung" hinzufügen

  • Als normaler Nutzer (Rolle "Mitgliederverwaltung Verein") durchtesten

  • TypeError beheben:

       File "/home/runner/frappe-bench/apps/landa/landa/organization_management/doctype/organization/organization.py", line 105, in on_update
         create_expected_hours_adjustment_entries(self.name, old - new)
                                                             ~~~~^~~~~
     TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
    

@MarcCon
Copy link
Copy Markdown
Collaborator Author

MarcCon commented Apr 8, 2026

  • DocType ist submittable, aber niemand hat Submit-Rechte (auch Cancel, Amend, usw)

@barredterra Was ist der Sinn dahinter, es muss doch submitted werden können um die Work Ledger Entrys zu erstellen?

@barredterra
Copy link
Copy Markdown
Member

@MarcCon exactly, die Rechte haben gefehlt, sodass niemand buchen kann. Das müsste noch gefixt werden.

@MarcCon
Copy link
Copy Markdown
Collaborator Author

MarcCon commented Apr 9, 2026

Ah habs falsch verstanden, alles klar.

@MarcCon
Copy link
Copy Markdown
Collaborator Author

MarcCon commented Apr 9, 2026

Die offenen Issues sind erledigt, ich teste es noch als normaler Nutzer durch.

Edit:
Als Nutzer mit der Rolle "LANDA Local Organization Management" kann ich ein Work Assignment nur für den Verein des Nutzers erstellen. Ebenso sehe ich nur Work Assignments und Work Ledger Entries dieses Vereines.

In beiden Reports kann ich in den Filtern auch nur den eigenen Verein auswählen und ansehen.

@MarcCon MarcCon requested a review from barredterra April 9, 2026 17:58
@barredterra barredterra assigned barredterra and unassigned MarcCon Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants