Giter Club home page Giter Club logo

erpitst's Introduction

ITST

ITST GmbH

License

GPL

erpitst's People

Contributors

lasalesi avatar vic-t avatar

Watchers

 avatar

Forkers

lasalesi

erpitst's Issues

Aufgabenerstellung direkt aus Zammad-Ticket

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.

Missing required parameter 'digestmod'.

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
{}

Artikelkategorie benötigt

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.

Seriennummern werden nicht automatisch dem Kunden zugewiesen

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.

Fehlende Verknüpfung zu Aufgabe/Projekt bei neuen Timesheets

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.

Fehlende Verknüpfung zum Kunden bei Rechnungsstellung von Projekt aus

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.