Modify

Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#466 closed Bug/Fehler (fixed)

Zeitraum für Product Download

Reported by: Volker Strähle Owned by: Gerhard Waldemair
Priority: niedrig Milestone: modified-shop-2.0.0.0
Component: Module Version: 2.0.0.0
Keywords: Cc:
Blocked By: Blocking:

Description

Ich bastel zur Zeit an einer Downloadfunktion. Dabei ist mir in der download.php aufagefallen, dass je nach eingegebenen Werten ein Download gar nicht möglich ist. Der Grund ist die Art der Berechnung wie lange ein Download erlaubt ist. Es wird immer vom Tag der Bestellung gerechnet und nicht vom Tag der Downloadfreigabe.

Bsp.:
gekauft 03.04.2014 (Karfreitag, Feiertag)
als Downloadzeit ist 3 Tage eingestellt.
Freigabe erfolgt aber erst am 8.4. weil der Kunde mit Vorkasse zahlen wollte
=> download trotz Freigabe nicht möglich.

Abhilfe: Tabelle orders_products_download um Spalte Freigabe-Datum erweitern und von diesem auf Gültigkeit des Downloads prüfen.

Attachments (0)

Change History (3)

comment:1 by Volker Strähle, 11 years ago

Noch was: ich bin der Meinung, dass in download.php unnötige Abfragen ausgeführt werden. Ich habe da mal so geändert:

status allowed for download

$allowed_status = join("','",explode(',', DOWNLOAD_MIN_ORDERS_STATUS));

$downloads_query = xtc_db_query("SELECT opd.orders_products_filename

FROM ".TABLE_ORDERS_PRODUCTS_DOWNLOAD." opd

JOIN ".TABLE_ORDERS." o

ON o.orders_id = opd.orders_id

WHERE o.orders_id = '".(int)$_GET['order']."'

AND o.orders_status IN ('".$allowed_status."')

AND opd.orders_products_download_id = '".(int)$_GET['id']."'

AND opd.orders_products_filename != ''

AND o.date_purchased >= DATE_SUB(CURDATE(), INTERVAL opd.download_maxdays DAY)

AND opd.download_count > '0'

AND opd.download_key = '".xtc_db_input($_GET['key'])."'

AND (o.customers_id = '".(int)$_SESSION['customer_id']."' OR o.customers_email_address = '".xtc_db_prepare_input($_POST['email_address'])."')");

/*

Check that order_id, download_id and key match

$check_status_query = xtc_db_query("SELECT o.orders_id,

o.orders_status,

o.date_purchased,

opd.orders_products_download_id

FROM ".TABLE_ORDERS_PRODUCTS_DOWNLOAD." opd

JOIN ".TABLE_ORDERS." o

ON o.orders_id=opd.orders_id

WHERE opd.orders_id = '".(int)$_GET['order']."'

AND opd.orders_products_download_id = '".(int)$_GET['id']."'

AND opd.download_key = '".xtc_db_input($_GET['key'])."'");

if (xtc_db_num_rows($check_status_query) > 0) {

$check_status = xtc_db_fetch_array($check_status_query);

$allowed_status = explode(',', DOWNLOAD_MIN_ORDERS_STATUS);

if (in_array($check_status['orders_status'], $allowed_status)) {

status allowed for download

$downloads_query = xtc_db_query("SELECT opd.orders_products_filename

FROM ".TABLE_ORDERS_PRODUCTS_DOWNLOAD." opd

JOIN ".TABLE_ORDERS." o

ON o.orders_id = opd.orders_id

WHERE o.orders_id = '".$check_status['orders_id']."'

AND opd.orders_products_download_id = '".$check_status['orders_products_download_id']."'

AND opd.orders_products_filename != ''

AND DATE_SUB(CURDATE(), INTERVAL opd.download_maxdays DAY) <= '".$check_status['date_purchased']."'

AND opd.download_count > '0'

AND opd.download_key = '".xtc_db_input($_GET['key'])."'

AND o.customers_id = '".(int)$_SESSION['customer_id_download']."'");

*/

comment:2 by Gerhard Waldemair, 10 years ago

Owner: set to Gerhard Waldemair
Resolution: fixed
Status: newclosed

In 8352:

fix #466

comment:3 by Gerhard Waldemair, 10 years ago

In 8353:

fix #466

Modify Ticket

Action
as closed The owner will remain Gerhard Waldemair.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.