-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ADD] #75 wizard for allocation vacations #107
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 15.0 #107 +/- ##
==========================================
+ Coverage 85.08% 86.57% +1.49%
==========================================
Files 13 15 +2
Lines 181 216 +35
Branches 26 37 +11
==========================================
+ Hits 154 187 +33
- Misses 25 26 +1
- Partials 2 3 +1 ☔ View full report in Codecov by Sentry. |
Ich jetzt erst dazu gekommen, mir das anzuschauen. Ich hab den Wizard auch gefunden. Technisch sicher logisch, das beim Mitarbeiter-Datensatz anzuordnen. Damit kann ich aber immer nur für den jeweiligen Mitarbeiter den Urlaub anlegen, oder? Ich hätte den Wizard im "Time Off" Modul gesucht, wo die bisherige Urlaubs-Allocation stattfindet und auch z.B. die Feiertags-Konfiguration. Und/oder bei der Übersicht der Mitarbeiter, um dann für mehrere Mitarbeiter den Urlaubs-Anspruch zu erstellen. Also hier z.B.: Praktisch hab ich's leider nicht geschafft, einen Anspruch anzulegen: |
die Idee ist, dass Du in der Liste alle Employees selektierst für die Du Urlaub anlegen willst. Wenn das in ein Menü soll, muss ich das umdrehen, so dass Du im Wizard dann Employees wählst, geht auch. Soll ich das entsprechend andern? Und wo genau soll der Menüeintrag hin? Kann ich noch einen Screenshot der Konfiguration des Urlaubstyps sehen? Da scheine ich andere approval-Regeln anzunehmen als dieser Urlaub hat. |
Hier mal der Screenshot des Urlaubs-Typs, den ich verwenden wollte: Ich verstehe, man könnte mehrer Mitarbeiter aus der Liste auswählen und dann für diese den Urlaub anlegen. Aber zur Kontrolle muss man dann ja ins Time-Off-Modul. Drum wäre es mir schon logischer, man legt den Urlaubs-Anspruch dann gleich im Time-Off-Modul an. Bisher macht man das ja hier: |
zur Kontrolle öffnet der Wizard bisher nach getaner Arbeit eine Liste der erzeugten Allocations, ich habe soeben einen Fix gepushed mit dem Du das testen kannst. |
Cool. Wenn man weiß, wie's geht.... Jetzt legt er sie an. Nur die Summen stimmen nicht. Muss erst mal etwas experimentierne, bevor ich das erklären kann. (Manche Mitarbeiter haben >100% Urlaubstage bekommen) |
f245707
to
2914603
Compare
@albig jetzt mit angepasster Berechnung und dual use Menü/Kontextmenü |
Das sieht schon mal gut aus. Wenn ein Arbeitsplan am 30.06.2025 endet, wird der Juni nicht vollständig berücksichtigt. Kannst Du da noch mal drauf schauen? Beispiel:
|
zur Zeit mache ich (enddatum_kalender - startdatum_kalendar) / (enddatum_interval - startdatum_interval), dh. das ist auf Tage genau. Soll ich das anpassen dass wenn ein Kalender in Monatsgrenzen definiert ist, es auf anteilige Monate umschaltet? Oder immer (endmonat - beginmonat) / (monate des Intervalls, meistens 12) fur den Anteil? |
Mmh. Dann ist wohl das erste Halbjahr um nen Tag kürzer, kann das sein? Wenn ich die Vertrags-"Trennung" auf 1.6. setze, dann würde es passen. Wir brauchen es tatsächlich monatsweise und es gibt auch nur ganze Tage. D.h. hier müsste im Sinne der Arbeitnehmer aufgerundet werden. Ein weiterer Use-Case ist: Vertragswechsel Mitte des Monats. Dann wird's beliebig kompliziert :-( Beispiel:
Einfacher:
Am genauesten scheint es mir, wir bleiben bei der aktuellen Berechnung und folgen Deinem Vorschlag:
|
ja, der Februar mit 28/29 Tagen stört die Balance. Jetzt schalte ich in die Monatsberechnung wenn ein Kalender am 1. anfängt und/oder am Monatsende aufhört, und das fur das Intervall der Allocation auch gilt (was fur das ganze Jahr ja immer der Fall ist). Runden: Die Zwischenergebnisse runde ich mit zwei Dezimalen, und am Ende runde ich auf auf ganze Zahlen |
Jetzt kommen ganze Zahlen raus. Super. Aber hier klemmt es leider noch: Use-Case 1
Use-Case 2
Use-Case 3
Bei (*) bin ich mir auch unsicher, wie es korrekt berechnet wird. Aber 26 Tage sind definitv falsch. |
hmm, ich habe gerade Tests geschrieben die die obigen Szenarios abdecken, und bekomme genau Deine erwarteten Werte: https://github.com/verdigado/odoo-customize/pull/107/files#diff-ed0052146289db2d52711a7dd4e25f128d1a3ab365fa6a35bc60aab469d7e60bR98-R206 Siehst Du einen Unterschied mit Deinen Testdaten? |
Ebenso "mmh" :-( Ich kann das nicht mehr nachvollziehen. Hatte einiges probiert und während des Schreibens bin ich zu den Ergebnissen gekommen. Der Code-Stand hätte aktuell sein sollen. Dann muss ich da einen Fehler gemacht haben. Eins hab ich aber noch: "Date Start" und "Date End" hat mich zunächst in die Irre geführt. Das ist ja die "Validity Period". Die ist aber nicht zwingend mit dem Kalenderjahr identisch. Üblicherweise sind die Ansprüche bis Tag X des Folgejahres gültig. Oft 31.03. Oder man lässt es einfach offen. Nutzt Du das "Date-End" für die Berechnung aktuell überhaupt oder setzt Du damit nicht einfach nur die "Validation End"? Logischer fände ich folgendes:
Könntest Du das noch bitte umsetzen? Dann sieht es IMHO sehr gut aus. Gültigkeit ganzes Jahr
|
jetzt mit Trennung Bezugsintervall (=year) und Gültigkeit (=date_{start,end}). Schreibst Du hier noch wenn das okay ist? Dann squashe ich noch die commits |
Sieht gut aus, aber ich laufe in folgenden Fehler rein:
Nach dem gescheiterten Versuch den Anspruch anzulegen ist das Formular beim Feld "Year" dann leer, obwohl es initial befüllt war. Zwei Fragen / Bitten:
|
jetzt sollte das tun. Die Sache mit dem default fur end_validity verstehe ich nicht wirklich, habe es aber einfach mal gemacht |
Ja, das funktioniert jetzt. Mit dem Default für
Ich vermute, dass JavaScript ist und wenn Odoo dafür nix vorgesehen hat, dann ist es halt so umständlich. Ist ja bei den Zeilen für Anwesenheiten genauso gelöst. |
e98220a
to
6e08740
Compare
danke, verstehe. Soeben noch die commits gesquashed |
das in Odoo's Standard-Allocation zu integrieren ist nicht ganz trivial, daher heute als eigenen Wizard so dass Du schonmal die Berechnung anschauen kannst, und mir sagen wie weiter ;-)