Hallo zusammen, ich programmiere gerade an einem Backend Plugin. Ein Datenfeld ist für Dezimalzahlen vorgesehen. Wenn ich die Detailansicht aufrufe und auf „Speichern“ klicke, wird die hinterlegte Zahl ohne Dezimaltrennzeichen gespeichert. Es ist z.B. nicht möglich 9,99 zu speichern. Es wird automatisch in 999 umgewandelt. Ist das Phänomen bekannt?
Niemand eine Idee?
Probier es mal mit einem direkten record.set() anstatt einem updateRecord() bei Dezimalwerten: record.set( "blablub", deineForm.getForm().findField( "deinElement" ).getValue() ); record.set( "blablub", deinElement.getValue() );
Viele Grüße
Also ich bin anfangs dem 6-seitigen Tutorial für Backend Plugins gefolgt. Insofern basiert meine Detailansicht hierauf: http://community.shopware.com/Shopware- … 2_868.html Bzw. was die Detailansicht angeht: http://community.shopware.com/Shopware- … 8_868.html Meine Detailansicht sieht schlicht aus wie unten und funktioniert auch, insofern weiß ich nicht wo hier ein updateRecord() vorkommen soll. Ext.define("Shopware.apps.PLUGIN.view.detail.Product", { extend: "Shopware.model.Container", padding: 20, configure: function() { return { controller: "PLUGIN", fieldSets: [{ title: "Details", fields: { title: "Bezeichnung", internalId: "Kennung", suggestedPrice: "Preis" } }, { title: "Beschreibung", layout: "fit", fields: { description: { fieldLabel: null, xtype: "tinymce" } } }], associations: ["categories"] }; } });
suggestedPrice ist in meinem Model wie folgt definiert: ... { name : "suggestedPrice", type: "float", useNull: true } ...
Schau dir mal den parent controller an. Dort müssen die Daten ja irgendwo aus dem Formular in das model geschrieben werden. Viele Grüße
Also ich sehe nicht, wie der Code hier helfen soll: Ext.define("Shopware.apps.PLUGIN.controller.Main", { extend: "Enlight.app.Controller", init: function() { var me = this; me.mainWindow = me.getView("list.Window").create({ }).show(); } });
Wie gesagt habe ich mein Plugin nach den Shopware-Beispielen erstellt. Ich habe ein Doctrine Model erstellt, welches hier Anwendung findet. Das Plugin funktioniert auch einwandfrei, bis auf die Tatsache, dass mein Preis nicht als Dezimalzahl gespeichert wird. Dabei ist er als float definiert.
Richtig - und es gibt einen Fehler beim updateRecord() von float Werten. Ich bin auch bereits darauf gestoßen und musste den Wert manuell per record.set() setzen. Viele Grüße
Ja, und wo genau ist dann der Fehler zu finden?
Oder genauer gefragt: Wo finde ich den Parent Controller und wo darin den Fehler? Allerdings empfinde ich eine Korrektur dort als eher “schmutzige” Lösung. Mir würde etwas gefallen, dass sich nur in meinen Code einbauen lässt.