Jump to content
xt:Commerce Community Forum

Bei Vorkasse X%skonto


DarKmaN_AC

Recommended Posts

Darauf nehme ich noch einen. :pint:

Habe es mir mal heruntergeladen:

function ot_payment($price)

Das funktioniert nicht unter xtc2.x

Gru?

Sven

ot_payment - vielleicht k?nnt ihr es austauschen


 class ot_payment {

  var $title, $output;


  function ot_payment() {

   $this->code = 'ot_payment';

   $this->title = MODULE_ORDER_TOTAL_PAYMENT_DISC_TITLE;

   $this->description = MODULE_ORDER_TOTAL_PAYMENT_DISC_DESCRIPTION;

   $this->enabled = MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS;

   $this->sort_order = MODULE_ORDER_TOTAL_PAYMENT_DISC_SORT_ORDER;

   $this->include_shipping = MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_SHIPPING;

   $this->include_tax = MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_TAX;

   $this->percentage = MODULE_ORDER_TOTAL_PAYMENT_DISC_PERCENTAGE;

   $this->minimum = MODULE_ORDER_TOTAL_PAYMENT_DISC_MINIMUM;

   $this->calculate_tax = MODULE_ORDER_TOTAL_PAYMENT_DISC_CALC_TAX;

//   $this->credit_class = true;

   $this->output = array();

  }


  function process() {

   global $order, $currencies;


   $od_amount = $this->calculate_credit($this->get_order_total());

   if ($od_amount>0) {

   $this->deduction = $od_amount;

   $this->output[] = array('title' => $this->title . ':',

       	'text' => xtc_format_price($currencies->format($od_amount),1,false),

               'value' => $od_amount);

  $order->info['total'] = $order->info['total'] - $od_amount; 

}

  }



 function calculate_credit($amount) {

  global $order, $customer_id, $payment;

  $od_amount=0;

  $od_pc = $this->percentage;

  $do = false;

  if ($amount > $this->minimum) {

  $table = split("[,]" , MODULE_ORDER_TOTAL_PAYMENT_DISC_TYPE);

  for ($i = 0; $i < count($table); $i++) {

     if ($payment == $table[$i]) $do = true;

    }

  if ($do) {

// Calculate tax reduction if necessary

  if($this->calculate_tax == 'true') {

// Calculate main tax reduction

   $tod_amount = round($order->info['tax']*10)/10*$od_pc/100;

   $order->info['tax'] = $order->info['tax'] - $tod_amount;

// Calculate tax group deductions

   reset($order->info['tax_groups']);

   while (list($key, $value) = each($order->info['tax_groups'])) {

    $god_amount = round($value*10)/10*$od_pc/100;

    $order->info['tax_groups'][$key] = $order->info['tax_groups'][$key] - $god_amount;

   } 

  }

  $od_amount = round($amount*10)/10*$od_pc/100;

  $od_amount = $od_amount + $tod_amount;

  }

  }

  return $od_amount;

 }



 function get_order_total() {

  global $order, $cart;

  $order_total = $order->info['total'];

// Check if gift voucher is in cart and adjust total

  $products = $cart->get_products();

  for ($i=0; $i<sizeof($products); $i++) {

   $t_prid = xtc_get_prid($products[$i]['id']);

   $gv_query = xtc_db_query("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'");

   $gv_result = xtc_db_fetch_array($gv_query);

   if (ereg('^GIFT', addslashes($gv_result['products_model']))) { 

    $qty = $cart->get_quantity($t_prid);

    $products_tax = xtc_get_tax_rate($gv_result['products_tax_class_id']);

    if ($this->include_tax =='false') {

      $gv_amount = $gv_result['products_price'] * $qty;

    } else {

     $gv_amount = ($gv_result['products_price'] + xtc_calculate_tax($gv_result['products_price'],$products_tax)) * $qty;

    }

    $order_total=$order_total - $gv_amount;

   }

  }

  if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax'];

  if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost'];

  return $order_total;

 } 



  function check() {

   if (!isset($this->check)) {

    $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS'");

    $this->check = xtc_db_num_rows($check_query);

   }


   return $this->check;

  }




  function keys() {

   return array('MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS', 'MODULE_ORDER_TOTAL_PAYMENT_DISC_SORT_ORDER','MODULE_ORDER_TOTAL_PAYMENT_DISC_PERCENTAGE','MODULE_ORDER_TOTAL_PAYMENT_DISC_MINIMUM', 'MODULE_ORDER_TOTAL_PAYMENT_DISC_TYPE', 'MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_SHIPPING', 'MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_TAX', 'MODULE_ORDER_TOTAL_PAYMENT_DISC_CALC_TAX');

  }


  function install() {

   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS', 'true', '6', '1','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_SORT_ORDER', '999', '6', '2', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ( 'MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_SHIPPING', 'true', '6', '5', 'xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ( 'MODULE_ORDER_TOTAL_PAYMENT_DISC_INC_TAX', 'true', '6', '6','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_PERCENTAGE', '2', '6', '7', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_CALC_TAX', 'false', '6', '5','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_MINIMUM', '100', '6', '2', now())");


   xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_ORDER_TOTAL_PAYMENT_DISC_TYPE', 'cod', '6', '2', now())");


  }


  function remove() {

   $keys = '';

   $keys_array = $this->keys();

   for ($i=0; $i<sizeof($keys_array); $i++) {

    $keys .= "'" . $keys_array[$i] . "',";

   }

   $keys = substr($keys, 0, -1);


   xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")");

  }

 }

Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

da gibt der mir einen haufen von Fehlermeldungen,

z.B.

Warning: constant() [function.constant]: Couldn't find constant MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS_TITLE in /home/www/htdocs/sex-artikel24.de/admin/modules.php on line 163

Warning: constant() [function.constant]: Couldn't find constant MODULE_ORDER_TOTAL_PAYMENT_DISC_STATUS_DESC in /home/www/htdocs/sex-artikel24.de/admin/modules.php on line 165

Warning: constant() [function.constant]: Couldn't find constant MODULE_ORDER_TOTAL_PAYMENT_DISC_SORT_ORDER_TITLE in /home/www/htdocs/sex-artikel24.de/admin/modules.php on line 163

Warning: constant() [function.constant]: Couldn't find constant MODULE_ORDER_TOTAL_PAYMENT_DISC_SORT_ORDER_DESC in /home/www/htdocs/sex-artikel24.de/admin/modules.php on line 165

und so weiter, was nun??

Link to comment
Share on other sites

Meine Einstellungen sind:

Vorab?berweisung 3% Skonto (Versand erfolgt erst nach Zahlungseingang)

Display Total

true

Sortierreihenfolge

60

Prozentrabatte

3

Mindest Summe

100

Zahlart

moneyorder

Inklusive Versandkosten

true

Inklusive Ust

true

Ust Berechnung

false

Hast du das genauso?

Glaube es liegt an den Einstellungen

mfg

Timo

Link to comment
Share on other sites

  • 3 weeks later...

Hi Leute,

h?ne mich hier mal dran, denn leider habe ich auf mein

Problem mit der Vorkasse keine Antwort erhalten und leider

auch keinen Tipp. Gibt wohl wichtigers (nicht ironisch gemeint).

Ich habe zwei Zahlungsarten:

Lastschrift und Vorkasse

Wer Vorkasse ausw?hlt, soll generell 3% Rabatt bekommen.

Dazu gibts ja das Modul "Rabatt auf Zahlungsarten".

Zus?tzlich habe ich noch den Mindermengenzuschlag aktiviert

f?r alle die unter 250,00 ? bestellen. Funktioniert auch.

Au?erdem zahlt keiner Versandkosten ab Bestellwert von 250,00 ?.

Auch dies funktioniert.

Leider rechnet wird der 3%ige Rabatt auf die Zahlungsart Vorkasse

wohl falsch berechnet.

Beispiel im WK:

200 x Testprodukt: 4.164,00 ?

Zwischensumme: 4.164,00 ?

Versandkosten: 0,00 ?

Summe: 4.164,00 ?

Zahlungsart_Rabatt: - 107,69 ?

Und das verstehe ich nicht!

Wenn ich richtig gerechnet habe, m??te der Rabatt auf die Zahlungsart doch

den Betrag von 124.92 ? ergeben oder?

Habe schon alles versucht, im Admin ist der Brutto-Admin auf "false" und

die Dezimalstellen auf "4".

Wenn ich das nun auch noch irgendwie hinbekomme, dann bin bald endlich fertig.

Seid doch so nett und schaut es Euch mal an.

Lieben Gru?

L.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...