1

製品管理ページで電卓ヘルパーを取得しようとしています。価格入力の近くに、ユーザーが付加価値税を差し引いた価格を計算するのに役立つテキストボックスを追加したいと考えています。これはこのプラグインに似ていますが、データベースにクエリを実行してすべての税率の配列を取得しtax_class_id、価格のすぐ下でユーザーが選択したものと比較する必要があります。

このページで一種のリクエストを見つけました。admin/controller/localisation/tax_rate.php

if (isset($this->request->post['rate'])) {
    $this->data['rate'] = $this->request->post['rate'];
} elseif (!empty($tax_rate_info)) {
    $this->data['rate'] = $tax_rate_info['rate'];
} else {
    $this->data['rate'] = '';
}

しかし、データベースにクエリを実行してページ内のデータを取得する方法がわかりませんadmin/view/template/catalog/product_form.tpl。Prestashop の価格管理と同様の結果を得ようとしています。

助けてください!

編集:

admin/controller/catalog/product.phpgetForm() 関数内に配置されたこのコードを追加して解決しました:

$sql = 'SELECT tra.rate, tra.type, tru.tax_class_id FROM '.DB_PREFIX.'tax_rate tra LEFT JOIN '.DB_PREFIX.'tax_rule tru ON tru.tax_rate_id = tra.tax_rate_id WHERE tru.tax_class_id IS NOT NULL' ;
$query = $this->db->query($sql);
$rates = array();
foreach($query->rows as $result){
    $rates[] = $result;
}
$this->data['rates'] = $rates;

すべての参加者のおかげで

4

2 に答える 2

1

OpenCartの拡張機能も開発したprice including VATので、先に進む方法についてアドバイスできます。

  1. jQuery ハンドルを使用して
    • 税クラス選択ボックスのchangeイベント
    • 価格/価格ヘルパー入力keyupイベント (またはあなたが望むもの)
    • AJAX呼び出しからのGETからインデックスが取得される
      SELECT * FROM '.DB_PREFIX.'tax_rate tra LEFT JOIN '.DB_PREFIX.'tax_rule tru ON tru.tax_rate_id = tra.tax_rate_id WHERE tru.tax_class_id = ' . (int)$this->request->get['tax_class_id']
      場所のようなコードを使用して(AJAXリクエストによって呼び出されるコントローラーのアクション内で)データベースにクエリを実行することによってtax_class_id
  2. これでtax_rate、価格を計算できます (私はこれを双方向に行っています。VAT を除いた価格を入力しても、VAT を含む価格を入力しても、その逆も同様です...)

申し訳ありませんが、具体的なコードをお伝えすることはできませんが、そうすれば直接 OpenCart 拡張機能にアクセスして、VAT 拡張機能を含む価格を削除できます ;-)

于 2013-05-17T09:32:14.513 に答える