ITST GmbH
GPL
License: Other
Fürs Issue Mgmt bleiben wir vorerst bei Zammad. Für eine Minimalintegration muss es möglich sein, Zammad-Tickets mit ERP-Aufgaben zu verlinken und umgekehrt.
In einem zweiten Schritt soll die Aufgabenerstellung übers Zammad automatisiert werden können. Sofern im Zammad Kundeninformationen hinterlegt sind (ERP-Kundennummer), sollen auch diese berücksichtigt werden.
Der Versand gewisser einzelner Emails schlägt fehlt mit der oben angegebenen Fehlermeldung.
App Versions
{
"erpnext": "12.1.6",
"erpnextswiss": "1.15.0",
"frappe": "12.0.16",
"itst": "0.0.1"
}
Route
Form/Email Queue/c390b62fa4
Error Report
Traceback (most recent call last):
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 60, in application
response = frappe.api.handle()
File "/home/frappe/frappe-bench/apps/frappe/frappe/api.py", line 55, in handle
return frappe.handler.handle()
File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 21, in handle
data = execute_cmd(cmd)
File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 56, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1036, in call
return fn(*args, **newargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_queue/email_queue.py", line 45, in send_now
send_one(name, now=True)
File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 468, in send_one
raise e
File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 406, in send_one
message = prepare_message(email, recipient.recipient, recipients_list)
File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 489, in prepare_message
unsubscribe_url = get_unsubcribed_url(email.reference_doctype, email.reference_name, recipient,
File "/home/frappe/frappe-bench/apps/frappe/frappe/email/queue.py", line 289, in get_unsubcribed_url
query_string = get_signed_params(params)
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/verified_command.py", line 20, in get_signed_params
signature = hmac.new(params.encode())
File "/usr/lib/python3.8/hmac.py", line 153, in new
return HMAC(key, msg, digestmod)
File "/usr/lib/python3.8/hmac.py", line 51, in __init__
raise TypeError("Missing required parameter 'digestmod'.")
TypeError: Missing required parameter 'digestmod'.
Request Data
{
"type": "POST",
"args": {
"name": "f2b1b26fbe"
},
"headers": {},
"error_handlers": {},
"url": "/api/method/frappe.email.doctype.email_queue.email_queue.send_now"
}
Response JSON
{}
Um unsere heutige Arbeitsweise möglichst abbilden zu können, brauchen wir die Möglichkeit, Artikel mit einer Kategorie zu hinterlegen. Da die Kategorien auch ändern können, braucht es einen eigenen Doctype.
Wenn vom Kunden aus eine Rechnung generiert wird, wird die als Standard hinterlegte Vorlage für Verkaufssteuern automatisch hinterlegt. Bei der Erstellung einer Rechnung von einem Projekt aus geschieht dies nicht.
Ein Wareneingang eines Lagerartikel führt zur Erstellung einer Seriennummer, wo der Lieferant korrekt hinterlegt ist. Wenn der gleiche, konkrete Lagerartikel an einen Kunden ausgeliefert wird, wird in der Seriennummer zwar der Kundenlieferschein korrekt verknüpft, nicht aber der Kunde selbst.
Da zwischen dem Kundenlieferschein und dem Kunden eine 1:1-Beziehung besteht, sollte auch die Kundenverknüpfung automatisiert erstellt werden.
In der Artikelansicht steht in der Titelzeile immer der Artikelname. Der Artikelcode wird erst mit einem Klick auf die Titelzeile angezeigt. Kann man das anders einstellen?
Eine Aufgabe kann höchstens einem Projekt zugewiesen sein, ein Projekt höchstens einem Kunden.
Timesheets können auf verschiedene Arten erstellt werden: Direkt, über den Kunden, über ein Projekt, über eine Aufgabe. Timesheet-Einträge enthalten Informationen über verknüpfte Projekte und Aufgaben.
Intuitiv erwartet man bei der Erstellung eines Timesheets aus einer Aufgabe heraus, dass zumindest die Aufgabe, bei Vorhandensein eines verknüpften Projekts aber auch dieses in den Timesheet-Einträgen referenziert wird. Aktuell passiert das nicht.
Das Problem liegt vermutlich in einer fehlenden Timesheet-Klassifizierung. Timesheet-Einträge sind dem Timesheet untergeordnet, aber nur in den Einträgen werden Projekt und Aufgabe referenziert.
Ein Lösungsansatz könnte daher wie folgt aussehen: Dem Doctype Timesheet werden zwei zusätzliche Linkfelder hinzugefügt, eines für eine Aufgabe, ein anderes für ein Projekt.
Sofern ein Timesheet aus einer Aufgabe erstellt wird, wird diese Aufgabe und, sofern vorhanden, das übergeordnete Projekt verlinkt. Sofern es aus einem Projekt erstellt wird, wird letzteres verlinkt, das Aufgabenfeld bleibt leer.
Beim Erstellen neuer Zeiteinträge prüft ein Script, ob Links vorhanden sind. Wenn ja, werden diese standardmässig für jeden Zeiteintrag in diesem Timesheet übernommen. Wenn nein, werden die Felder entsprechend leer gelassen.
Ein Projekt kann mit höchstens einem Kunden verknüpft sein. Wenn nun also von einem Projekt aus eine Rechnung erstellt wird, welches bereits mit einem Kunden verknüpft ist, sollte es nicht nötig sein, den Kunden zusätzlich auswählen zu müssen. Dieser sollte automatisch hinterlegt werden.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.