witam
nie wiem czy to Ciebie zadowoli ale pomysł(jak i po części kod) został zaczerpnięty z innego opensourcowego sklepu internetowego.
1.
edytuj:admin\language\polish\catalog\product.php
znajdz:- Kod: Zaznacz cały
$_['entry_price'] = 'Cena:';
po tym dodaj:- Kod: Zaznacz cały
$_['entry_price_gross'] = 'Cena brutto:';
2.
edytuj:admin\view\template\catalog\product_form.tpl
znajdz (na początku pliku):- Kod: Zaznacz cały
<div class="warning"><?php echo $error_warning; ?></div>
<?php } ?>
po tym dodaj (od 5 lini):- Kod: Zaznacz cały
<script type="text/javascript">
var tax_rates = new Array();
<?php foreach ($tax_classes as $tax_class) { ?>
tax_rates["<?php echo $tax_class['tax_class_id']; ?>"] = <?php echo $tax_class['rate']; ?>;
<?php } ?>
function doRound(x, places) {
return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
}
function getTaxRate() {
var selected_value = document.forms["form"].tax_class_id.selectedIndex;
var parameterVal = document.forms["form"].tax_class_id[selected_value].value;
if ((parameterVal > 0) && (tax_rates[parameterVal] > 0)) {
return tax_rates[parameterVal];
} else {
return 0;
}
}
function updateGross() {
var taxRate = getTaxRate();
var grossValue = document.forms["form"].price.value;
if (taxRate > 0) {
grossValue = grossValue * ((taxRate / 100) + 1);
}
document.forms["form"].price_gross.value = doRound(grossValue, 4);
}
function updateNet() {
var taxRate = getTaxRate();
var netValue = document.forms["form"].price_gross.value;
if (taxRate > 0) {
netValue = netValue / ((taxRate / 100) + 1);
}
document.forms["form"].price.value = doRound(netValue, 4);
}
</script>
znajdz:- Kod: Zaznacz cały
<tr>
<td><?php echo $entry_price; ?></td>
<td><input type="text" name="price" value="<?php echo $price; ?>" /></td>
</tr>
zamień na:- Kod: Zaznacz cały
<tr>
<td><?php echo $entry_price; ?></td>
<td><input type="text" name="price" value="<?php echo $price; ?>" onKeyUp="updateGross()" /></td>
</tr>
po tym dodaj:- Kod: Zaznacz cały
<tr bgcolor="#f7f7f7">
<td><?php echo $entry_price_gross; ?></td>
<td><input type="text" name="price_gross" value="<?php echo $price; ?>" OnKeyUp="updateNet()"></td>
</tr>
znajdz (okolo 552 linia):- Kod: Zaznacz cały
<script type="text/javascript"><!--
function addRelated() {
zamień na:- Kod: Zaznacz cały
<script type="text/javascript"><!--
updateGross();
function addRelated() {
3.
edytuj:admin\controller\catalog\product.php
znajdz (okolo 556 linia):- Kod: Zaznacz cały
$this->data['entry_price'] = $this->language->get('entry_price');
po tym dodaj:- Kod: Zaznacz cały
$this->data['entry_price_gross'] = $this->language->get('entry_price_gross');
znajdz (okolo 870 linia):- Kod: Zaznacz cały
$this->data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses();
po tym dodaj:- Kod: Zaznacz cały
for ($i=0, $n=sizeof($this->data['tax_classes']); $i<$n; $i++) {
if ($this->data['tax_classes'][$i]['tax_class_id'] > 0) {
$r = $this->model_localisation_tax_class->getTaxRates($this->data['tax_classes'][$i]['tax_class_id']);
$this->data['tax_classes'][$i]['rate'] = $r[0]['rate'];
}
}
po wykonaniu tych czynności w panelu administracyjnym przy dodawaniu/edycji produktu powinno się pokazywać pole 'Cena brutto'
i już można dodawać po cenie brutto...netto jest naliczana w locie i na odwrót
pozdrawiam