Patch: Menge automa...
 
Benachrichtigungen
Alles entfernen

Patch: Menge automatisch aktualisieren

12 Beiträge
7 Benutzer
0 Reactions
2,075 Aufrufe
(@Grucknak)
New Member
Beigetreten: vor 13 Jahren
Beiträge: 1
Topic starter   [#1978]

Hallo Community,
da mit Version 1.6 leider keine Bestandsverwaltung implementiert wurde, habe ich mir die Funktion die ich mir wünsche selber eingebaut.

Beschreibung:
Der Patch implementiert eine automatische Aktualiserung der "Menge" (was ich als Bestand benutze) wenn der Status einer Bestellung geändert wird.

- Bei einer Statusänderung von "in Bearbeitung" oder "offen" auf "versendet" wird der Bestand jedes der in der Bestellung enthaltenen Produkte entsprechend verringert.

- Bei einer Statusänderung von "versendet" auf "in Bearbeitung" oder "offen" wird der Bestand jedes der in der Bestellung enthaltenen Produkte entsprechend erhöht.

- Sollte der Bestand eines Produktes geringer sein als die bestellte Menge wird der Bestand des Produktes negativ und eine Meldung ausgegeben die darüber informiert welches Produkt in welcher Kategorie nun einen negativen Bestand hat. (Die Artikelnummer habe ich in der Datenbank leider nicht gefunden.)

Wenn das noch jemand gebrauchen kann werde ich die entsprechende Klasse und eine Anleitung hier im Forum bereitstellen.

Grüße
Grucknak

Für interessierte hier meine Anpassung, nicht schön aber bisher funktionierts 😉

import javax.swing.JOptionPane;

...

	 Set the progress of the order to a new state. Do it also in the web shop.
	 Send a comment by email.
	 
	 @param uds
	 The order
	 @param progress
	 The new progress value (0-100%)
	 @param comment
	 The comment of the confirmation email.
	 
	public static void markOrderAs(DataSetDocument uds, int progress, String comment, boolean sendNotification) {

		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();

		if (uds instanceof DataSetDocument) {

			 Do it only, if it is an order.
			if (DocumentType.getType(uds.getIntValueByKey(category)) == DocumentType.ORDER) {
				int progress_old = uds.getIntValueByKey(progress);
			
				 Stock
				if (progress=SHIPPED && progress_old SHIPPED) mark as shipped - take from stock
				{
					ArrayListDataSetItem items = uds.getItems().getActiveDatasets();
					for (DataSetItem item items) {
						int id = item.getIntValueByKey(productid);
						int quantity_order = item.getIntValueByKey(quantity);
						
						ArrayListDataSetProduct products = Data.INSTANCE.getProducts().getActiveDatasets();
						for (DataSetProduct product products) {
							if (product.getIntValueByKey(id) == id)
							{
								int quantity_stock = product.getIntValueByKey(quantity);
								product.setIntValueByKey(quantity, quantity_stock - quantity_order);
								if ((quantity_stock - quantity_order)0)
								{
									String name = product.getFormatedStringValueByKey(name);
									String cat = product.getFormatedStringValueByKey(category);
									JOptionPane.showMessageDialog(null, Bestand kleiner Null n+ Produkt Kategorie n + name + + cat);
								}
								Data.INSTANCE.getProducts().updateDataSet(product);
								break;
							}
						}
					}
				}
				else if (progress_old = SHIPPED && progress SHIPPED) mark as processing or lower - add to stock
				{
					ArrayListDataSetItem items = uds.getItems().getActiveDatasets();
					for (DataSetItem item items) {
						int id = item.getIntValueByKey(productid);
						int quantity_order = item.getIntValueByKey(quantity);
						
						ArrayListDataSetProduct products = Data.INSTANCE.getProducts().getActiveDatasets();
						for (DataSetProduct product products) {
							if (product.getIntValueByKey(id) == id)
							{
								int quantity_stock = product.getIntValueByKey(quantity);								
								product.setIntValueByKey(quantity, quantity_stock + quantity_order);

								Data.INSTANCE.getProducts().updateDataSet(product);
								break;
							}
						}
					}
				}
					
					 change the state
					uds.setIntValueByKey(progress, progress);	
				}
			

				 also in the database
				Data.INSTANCE.updateDataSet(uds);

...


   
Zitat
(@cemski)
Eminent Member
Beigetreten: vor 13 Jahren
Beiträge: 23
 

Grucknak,
das klingt total super und mehr als man erwarten würde!
Ich bin neuer user und brauche eine Bestandspflege zwingend für mein neu gegründetes Unternehmen.

Der Haken ist nur, ich bin was Programmierung und Datenbanken angeht total unbeleckt - und daher meine Frage an dich, wo ich diesen Code "hinbringen" / einfügen muss?

Ich wäre sehr sehr dankbar für eine Anleitung!

Ich sehe zwar, dass so eine Funktion auch für ein Update eingeplant ist, aber bis dahin zu warten, würde mir echte Schmerzen bereiten, da ich die Bestände sonst händisch pflegen müßte und dann alles nachtragen müsste.



   
AntwortZitat
(@herholz)
New Member
Beigetreten: vor 13 Jahren
Beiträge: 1
 

Hallo,

ich könnte diese Lösung auch sehr gebrauchen.
Wo muss ich diesen Syntax denn einfügen?

LG



   
AntwortZitat
(@Buggyboy)
Eminent Member
Beigetreten: vor 14 Jahren
Beiträge: 26
 

Hallo!

Das würde mich auch interessieren, wenn es den Shopunabhänigig ist.

Oder ist das für eine spezielle Shopsoftware?

LG
peter


Spiel-Zeit-Shop - www.spiel-zeit-shop.de


   
AntwortZitat
(@rheydenr)
Forum-Admin Registered
Beigetreten: vor 14 Jahren
Beiträge: 4911
 

Hallo zusammen,
um den patch zu verwenden muß einiges getan werden. Zunächst diese Schritte wie im Wiki beschrieben durchführen. Dann den Quellcode runterladen, den Patch in die entsprechende Quellcode-Datei einfügen und anschließend das Produkt über die fakturama.product-Datei in der gewünschten Plattform exportieren.

Viele Grüße,
Ralf.


Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?


   
AntwortZitat
(@cemski)
Eminent Member
Beigetreten: vor 13 Jahren
Beiträge: 23
 

Hi,
also ich als Programmier-Noob aber mit gewissener technischer Affinität bin so weit gekommen:

Ich habe den ganzen Eclipse-Kram installiert.
Ich war mir nur bei dem Link nicht sicher, welchen ich nehmen soll:

http://fakturama.googlecode.com/svn/trunk/ or https://fakturama.googlecode.com/svn/trunk/ (if you plan to make changes)

ich habe dann den https:// genommen, weil ich ja was verändern will(?)
Ich weiss halt nicht genau was, für wen verändern.
Dann stand ich vor der fertigen Konfiguration und wußte nicht wo ich das hier anstellen soll:

Start Eclipse

"Debug as Eclipse Application by starting it from the Overview tab in Fakturama.product" Ich kann diesen Overview oder Tab einfach nicht finden.

Ich habe dann einfach die Datei über "Datei öffnen" geöffnet (nachdem ich nach ihr gesucht habe).

Und jetzt weiß ich nicht weiter.

Dort steht übrigens eine Fehlermeldung:
"Quelle nicht gefunden" "der Klassendatei MarkOrderAsAction.class ist keine Quellendatei zugeordnet"
.Dort steht aber jede Menge Code. Ich gehe davon aus, dass ich es auf die falsche Art geöffnet habe, aber ich habe weder "Fakturama.product" über Ovierwie tab gefunden (zu blöd das auf deutsch zu finden), noch irgendetwas mit Klassen.

Dann frage ich mich auch, wo ich den Code genau einfügen soll, und ob die drei Punkte "..." am Anfang und Ende dazu gehören.

Ich habe übrigens user Grucknak mit diesen Fragen über PM kontaktiert.
Sobald ich etwas erfahre, poste ich es hier natürlich.
Vielleicht kommt aber auch Grucknak vorbei und kann helfen.



   
AntwortZitat
(@cemski)
Eminent Member
Beigetreten: vor 13 Jahren
Beiträge: 23
 

Hallo Leute,

ich bin nicht weiter. So richtig viel passiert hier auch nicht. Nicht als Vorwurf gemeint, ist halt eine kleine Gemeinde.
Ob jemand von der Entwicklerseite uns weiterhelfen kann?
Wenn man sich noch nie mit Programmierung und Eclpise beschäftigt hat (und das Programm hat einen ganz schönen Umfang), helfen einem grobe Richtungsangaben nicht weiter.
Man kennt ja die gesamte Oberfläche nicht.
Da ich den Aufwand der Installation auf mich genommen habe, wäre ich mehr als froh, wenn uns jemand zeigen könnte "wo man klicken muss" und "wo einfügen".
Falls sich jeman auskennt und die Umgebung installiert hat, wäre z.B. ein kleines Filmchen eine tolle Lösung,
z.B. hiermit:

http://camstudio.org/

Danke!



   
AntwortZitat
(@rheydenr)
Forum-Admin Registered
Beigetreten: vor 14 Jahren
Beiträge: 4911
 

Moin, ich seh mal zu, daß der Patch mit in die Version 1.6.2 wandert.


Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?


   
AntwortZitat
(@cemski)
Eminent Member
Beigetreten: vor 13 Jahren
Beiträge: 23
 

rheydenr Wrote:
-------------------------------------------------------
> Moin, ich seh mal zu, daß der Patch mit in die
> Version 1.6.2 wandert.

Ich wagte gar nicht....ich hatte es auf den Lippen....

Das wär großartig!



   
AntwortZitat
(@cemski)
Eminent Member
Beigetreten: vor 13 Jahren
Beiträge: 23
 

So, nun habe ich ja gerufen und es wurde geliefert:

Aktualisierung der Lagermenge
Lieferantennummer

Ich finde irgendwie den Einstieg nicht.
Es geht nicht um einen Webshop.

Wo lege ich denn den Lieferanten an?

Und wohin kommt der eingekaufte Artikel mit der Menge?

Bin irgendwie zu blöd.



   
AntwortZitat
(@SanneB)
New Member
Beigetreten: vor 13 Jahren
Beiträge: 3
 

Hallo zusammen,

ich habe in der Aufstellung über die Neuerungen in der Version 1.6.2 gelesen das die automatische Bestandsberechnung enthalten sein soll.
Leider finde ich nirgendwo bei der Anlage eines Produktes einen Hinweis oder ein Feld in dem ich sagen kann wieviel Stück ich als Bestand angeben kann. Auch kann ich nirgendwo angeben das es bei einer Versendung oder Faktrurierung den Bestand anpassen soll.

Wie ich hier im Forum gelesen habe gibt es wohl die Möglichkeit diesen Quellcode irgendwo ein zu fügen, da ich aber absolut keine Ahnung habe wie man etwas programmiert geschweige denn einen Quellcode in eine bestehende Programmierung einbaut, stehe ich wie die Kuh vor dem Berg 😉

Kann mir einer von Euch weiterhelfen? Vielen Dank im voraus.

Gruß Sanne



   
AntwortZitat
(@moped)
Mitglied Registered
Beigetreten: vor 14 Jahren
Beiträge: 648
 

Momentan ist die Option nur in Verbindung mit einem Webshop zu verwenden.
Lagerbestand
der Anlage eines neuen Produktes, auch bei der Bearbeitung, ist ganz unten ein Feld "Menge", wo du den Bestand eintragen kannst.



   
AntwortZitat
Teilen: