RE: Fehler bei Lastschriftverfahren

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
r23
Beiträge: 2663
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

RE: Fehler bei Lastschriftverfahren

Beitrag von r23 »

[quote='nilzpferd',index.php?page=Thread&postID=1557#post1557]
mein 2. problem:
ich bekomme die zahlungsart lastschriftverfahren nicht in der bestellabwicklung aktiviert.
- lastschrift an sich ist aktiviert
- in der kundengruppe ist lastschrift erlaubt

ich vermute das das problem hier liegt:
Bild
wenn ich versuche den parameter maximale bestellhöhe zu definieren lässt er nach aktualisierung das feld ohne wert leer! eingabeversuche waren z.b. "300" oder "300.00" oder "300,00"
kann es sein das der wert somit bei 0 liegt und dadruch die lastschrift "blockiert" wird?
[/quote]

~/shop/includes/modules/payment/banktransfer.php

in der Methode gibt es viele Gründe, warum das Modul deaktiviert werden könnte

// class methods

Code: Alles auswählen

    function update_status() {
      global $oOrder, $oCurrencies;

      if ($_SESSION['shipping]['id] == 'selfpickup_selfpickup') {
        $this->enabled = false;
      }

      $my_currency = $_SESSION['currency];
      if (!in_array($my_currency, array('CHF', 'EUR', 'USD'))) {
        $my_currency = 'EUR';
      }

      $nAmount = number_format(($oOrder->info['total] - $oOrder->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));

      if ($nAmount > (int)MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER) {
        $this->enabled = false;
      }

      if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_BANKTRANSFER_ZONE > 0) ) {
        $check_flag = false;

        // Get database information
        $dbconn =& oosDBGetConn();
        $oostable =& oosDBGetTables();

        $zones_to_geo_zonestable = $oostable['zones_to_geo_zones];
        $check_result = $dbconn->Execute("SELECT zone_id FROM $zones_to_geo_zonestable WHERE geo_zone_id = '" . MODULE_PAYMENT_BANKTRANSFER_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id");
        while ($check = $check_result->fields) {
          if ($check['zone_id] < 1) {
            $check_flag = true;
            break;

          } elseif ($check['zone_id] == $oOrder->billing['zone_id]) {
            $check_flag = true;
            break;
          }

          // Move that ADOdb pointer!
          $check_result->MoveNext();
        }

        // Close result set
        $check_result->Close();

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }
    // disable the module if the order only contains virtual products
      if ($this->enabled == true) {
        if ($oOrder->content_type == 'virtual') {
          $this->enabled = false;
        }
      }
    }
a. selbstabholung.
b. Bestellwert
c. Zone
d. "virtual"

wenn es der Bestellwert sein sollte, kann man mit

Code: Alles auswählen

      if ($nAmount > (int)MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER) {
echo MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER;
echo <br>;
echo $nAmount;
exit;
        $this->enabled = false;
      }
dies prüfen.
nilzpferd
Beiträge: 10
Registriert: 12.10.2009, 10:51

RE: RE: Fehler bei Produktbildanzeige, Lastschriftverfahren

Beitrag von nilzpferd »

[quote='r23',index.php?page=Thread&postID=1561#post1561]a. selbstabholung.
b. Bestellwert
c. Zone
d. "virtual"

wenn es der Bestellwert sein sollte, kann man mit

Code: Alles auswählen

      if ($nAmount > (int)MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER) {
echo MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER;
echo <br>;
echo $nAmount;
exit;
        $this->enabled = false;
      }
dies prüfen.[/quote]beim befehl

Code: Alles auswählen

echo MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER; 
gibt er mir danach leider nur noch eine komplett leere seite aus! ($nAmount wert-ausgabe zeigt er an!)
habe die if abfrage nach der maxhöhe einfach deaktiviert und jetzt zeigt er mit die lastschriftfelder an, somit liegt der fehler wohl dort.

das erste problem mit der fotolinkanzeige konnte ich btw lösen, dein tipp war gut.

danke grüße
Zuletzt geändert von nilzpferd am 05.11.2009, 02:27, insgesamt 1-mal geändert.
r23
Beiträge: 2663
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo

leere seite ist in der Regel ein Syntax-Fehler im Script. Der Shop schreibt seine Meldungen nach
~/oos_temp/logs/php_error_log

vermutlich lag es an mir

Code: Alles auswählen

echo '<br/>';
ist richtiger ...

Code: Alles auswählen

(int)MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER;
wird zu NULL wenn das Datenfeld leer ist.

es sollte eine Zahl über den Admin erfasst werden 300 (nicht 300.00)
mit

Code: Alles auswählen

echo (int)MODULE_PAYMENT_BANKTRANSFER_MAX_ORDER;
kann man den Wert prüfen...

oder einfach im Script anpassen.

hth

ralf
r23
Beiträge: 2663
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

:?:

eine lösung gefunden?
Antworten