Post by fossy » Sun Jul 12, 2009 7:44 pm

Also, ich finde es auch unhandlich die Nettopreise bei der Neuanlegung eines Produktes aus meinen VK-Preisen rauszurechnen und einzutragen.
Abhilfe:
Ein neues Feld in der product_form und eine kleine JS-function.
Ablauf:
VK-Preis kann Brutto (mit oder ohne Dezimalstellen) eingegeben werden und im Preisfeld wird der Nettopreis auf 4 Nachkommastellen generiert.Dieser wir dann auch weiterhin in den Produkttabellen geführt, an der Struktur ändert sich nichts, alles nur eine kleine Eingabehilfe.
Bei Interesse kann ich das mal hochladen.
admin_brutto.png

Ausschnitt aus der Seite Admin->>Produkte>>Daten - admin_brutto.png (16.51 KiB) Viewed 5184 times


Dirk
--
...it' never too late!


User avatar
New member

Posts

Joined
Tue Jun 02, 2009 3:19 am

Post by ePlayServer » Sun Jul 12, 2009 7:54 pm

Interesse :-)

New member

Posts

Joined
Sat Jul 04, 2009 8:15 pm

Post by fossy » Mon Jul 13, 2009 12:33 am

...here it is ;)
SICHERN SICHERN SICHERN!! ;D ;D

In modell/localisation/tax_class suchen nach:

Code: Select all

public function getTaxClasses
und hier die sql-Abfrage ändern in:

Code: Select all

$sql = "SELECT *  FROM ". DB_PREFIX ."tax_class
                        LEFT JOIN ". DB_PREFIX ."tax_rate
                        USING ( tax_class_id )";
			$sql .= " ORDER BY title";
ebenso die andere Abfrage im else-Zweig ändern in:

Code: Select all

$query = $this->db->query("SELECT * FROM ". DB_PREFIX ."tax_class
                                        LEFT JOIN ". DB_PREFIX ."tax_rate
                                        USING ( tax_class_id )"); 
(Wir brauchen den 'rate'-Wert im Produktformular!)
In controller/catalog/product.php suchen nach:

Code: Select all

 $this->data['entry_price'] = $this->language->get('entry_price');

Dahinter einfügen:

Code: Select all

 $this->data['entry_usp'] = $this->language->get('entry_usp');

Suchen nach:

Code: Select all

	$this->load->model('localisation/tax_class');
		$this->data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();
Dahinter einfügen:

Code: Select all

$this->data['tax_rate'] = $this->model_localisation_tax_class->getTaxRates(@$product_info['tax_class_id']);
    $this->data['gross_price'] = '';
    if(isset($product_info['price'])) $this->data['gross_price'] = number_format(@$product_info['price'] * (1 + ($this->data['tax_rate'][0]['rate']/100)), 2, '.', ',');
In admin/view/template/catalog/product_form.tpl suchen nach:

Code: Select all

 <tr>
        <td><?php echo $entry_sort_order; ?></td>
        <td><input type="text" name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
      </tr>
 

Dahinter die nächsten beiden Tabellenreihen(select-Feld und input-price) ersetzen mit:

Code: Select all

   <tr>
        <td><?php echo $entry_tax_class; ?></td>
        <td><select name="tax_class_id" id="tax_class_id" onchange="calc()">
            <?php foreach ($tax_classes as $tax_class) { ?>
            <?php if ($tax_class['tax_class_id'] == $tax_class_id) { ?>
            <option value="<?php echo $tax_class['tax_class_id']; ?>" selected="selected"><?php echo $tax_class['rate']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $tax_class['tax_class_id']; ?>"><?php echo $tax_class['rate']; ?></option>
            <?php } ?>
            <?php } ?>
          </select></td>
      </tr>
<script language="JavaScript">
<!--
 function calc() {
  var feld_a = parseFloat(document.getElementById("tax_class_id").options[document.getElementById("tax_class_id").selectedIndex].text);
  var feld_b = parseFloat(document.getElementById("brutto").value);
  var res =  feld_b / (1 + ( feld_a / 100));
  document.getElementById("netto").value = res.toFixed(4);
}
-->
</script>
      <tr>
        <td><?php echo $entry_usp;?></td>
        <td><input type="text" name="brutto" id="brutto" value="<?php echo $gross_price; ?>" onchange="calc()" />
      </tr>
      <tr>
       <tr>
        <td><?php echo $entry_price; ?></td>
        <td><input type="text" name="price" id="netto" value="<?php echo $price; ?>" readonly="readonly" /></td>
      </tr>
  

In admin/language/german/catalog/product.php

Code: Select all

$_['entry_usp']              = 'Verkaufspreis:';
hinzufügen und vielleicht die anderen Preisbezeichnungen anpassen.
Viel Spass damit!

Dirk
--
...it' never too late!


User avatar
New member

Posts

Joined
Tue Jun 02, 2009 3:19 am

Post by ePlayServer » Wed Jul 15, 2009 10:20 am

So nix gegen dich aber ich versteh das net gant, ich weiß net so richtig wo ich das einfügen soll. Ich habe schon verdammt viel mit php gemacht, aber das versteh ich wirklich net. Vieleicht kannst du es ja mal einem Idioten erklären :-)

New member

Posts

Joined
Sat Jul 04, 2009 8:15 pm

Post by fossy » Wed Jul 15, 2009 4:48 pm

Moin, da hab ich mich wohl verschrieben:
In modell/localisation/tax_class suchen nach:
finde ich auch nicht wirklich! ;D
Ich werds nachher ändern, sorry :-[

Dirk
--
...it' never too late!


User avatar
New member

Posts

Joined
Tue Jun 02, 2009 3:19 am

Post by fossy » Mon Jul 20, 2009 7:01 pm

So, jetzt sind die Pfade richtig:

In admin/model/localisation/tax_class suchen nach:

Code: Select all

public function getTaxClasses
und hier die sql-Abfrage ändern in:

Code: Select all

$sql = "SELECT *  FROM ". DB_PREFIX ."tax_class
                        LEFT JOIN ". DB_PREFIX ."tax_rate
                        USING ( tax_class_id )";
			$sql .= " ORDER BY title";
ebenso die andere Abfrage im else-Zweig ändern in:

Code: Select all

$query = $this->db->query("SELECT * FROM ". DB_PREFIX ."tax_class
                                        LEFT JOIN ". DB_PREFIX ."tax_rate
                                        USING ( tax_class_id )"); 
(Wir brauchen den 'rate'-Wert im Produktformular!)
In admin/controller/catalog/product.php suchen nach:

Code: Select all

 $this->data['entry_price'] = $this->language->get('entry_price');

Dahinter einfügen:

Code: Select all

 $this->data['entry_usp'] = $this->language->get('entry_usp');

Suchen nach:

Code: Select all

	$this->load->model('localisation/tax_class');
		$this->data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();
Dahinter einfügen:

Code: Select all

$this->data['tax_rate'] = $this->model_localisation_tax_class->getTaxRates(@$product_info['tax_class_id']);
    $this->data['gross_price'] = '';
    if(isset($product_info['price'])) $this->data['gross_price'] = number_format(@$product_info['price'] * (1 + ($this->data['tax_rate'][0]['rate']/100)), 2, '.', ',');
In admin/view/template/catalog/product_form.tpl suchen nach:

Code: Select all

 <tr>
        <td><?php echo $entry_sort_order; ?></td>
        <td><input type="text" name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
      </tr>
 

Dahinter die nächsten beiden Tabellenreihen(select-Feld und input-price) ersetzen mit:

Code: Select all

   <tr>
        <td><?php echo $entry_tax_class; ?></td>
        <td><select name="tax_class_id" id="tax_class_id" onchange="calc()">
            <?php foreach ($tax_classes as $tax_class) { ?>
            <?php if ($tax_class['tax_class_id'] == $tax_class_id) { ?>
            <option value="<?php echo $tax_class['tax_class_id']; ?>" selected="selected"><?php echo $tax_class['rate']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $tax_class['tax_class_id']; ?>"><?php echo $tax_class['rate']; ?></option>
            <?php } ?>
            <?php } ?>
          </select></td>
      </tr>
<script language="JavaScript">
<!--
 function calc() {
  var feld_a = parseFloat(document.getElementById("tax_class_id").options[document.getElementById("tax_class_id").selectedIndex].text);
  var feld_b = parseFloat(document.getElementById("brutto").value);
  var res =  feld_b / (1 + ( feld_a / 100));
  document.getElementById("netto").value = res.toFixed(4);
}
-->
</script>
      <tr>
        <td><?php echo $entry_usp;?></td>
        <td><input type="text" name="brutto" id="brutto" value="<?php echo $gross_price; ?>" onchange="calc()" />
      </tr>
      <tr>
       <tr>
        <td><?php echo $entry_price; ?></td>
        <td><input type="text" name="price" id="netto" value="<?php echo $price; ?>" readonly="readonly" /></td>
      </tr>
  

In admin/language/german/catalog/product.php

Code: Select all

$_['entry_usp']              = 'Verkaufspreis:';
hinzufügen und vielleicht die anderen Preisbezeichnungen anpassen.
Zum Schluss noch die cache-Datei löschen, damit das ganze auch arbeitet:

Code: Select all

cache/cache.tax_class.....

Dirk
--
...it' never too late!


User avatar
New member

Posts

Joined
Tue Jun 02, 2009 3:19 am

Post by haal » Wed Nov 04, 2009 10:34 am

Brutto Netto preise.
Ich habe alles so geändert wie beschrieben ( bin jedoch ein Laie)
Nun kriege ich folgende fehlermeldung:
bei der Steuerklasse schreibt er mir - undefiniert index on line 125
Datei: product_form.tpl
<option value="<?php echo $tax_class['tax_class_id']; ?>" selected="selected"><?php echo $tax_class['rate']; ?></option>

Es wird der mwst satz nicht erkannt.
Bitte um Hilfe.
es wird auch nicht die ausgerechnete Mwst im Warenkorb angezeigt.
danke

Newbie

Posts

Joined
Wed Nov 04, 2009 10:26 am

Post by haal » Wed Nov 04, 2009 10:40 am

noch eine Frage, wie lösche ich den cache?? Danke

Newbie

Posts

Joined
Wed Nov 04, 2009 10:26 am

Post by fireatwire » Thu Feb 04, 2010 2:50 am

Hat schon jemand diesen Mod in V 1.4 getestet? Funktioniert es oder muss etwas abgeändert werden?
Danke.

New member

Posts

Joined
Wed Feb 03, 2010 5:21 am

Post by leprimo » Thu Feb 04, 2010 3:37 am

fireatwire wrote:...Funktioniert es oder muss etwas abgeändert werden?
Das geht so ganz sicher nicht mehr. Ich hoffe ja auch immer noch das diese Brutto-Geschichte im Core eingebaut wird. Mal sehen was uns die angekündigte 1.4.1 bringt.

Active Member

Posts

Joined
Wed Nov 04, 2009 8:31 pm
Who is online

Users browsing this forum: No registered users and 5 guests