[wellwell-devel] [wellwell] Store order number in coupon_log table.

Stefan Hornburg wellwell-devel at rt.icdevgroup.org
Thu Jul 22 10:42:37 UTC 2010


commit a7533b058880ded35584c6eddfe71d87c58fbcb2
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date:   Thu Jul 22 12:42:15 2010 +0200

    Store order number in coupon_log table.

 lib/WellWell/Coupon.pm                         |    1 +
 plugins/coupons/code/coupons_order_cleanup.sub |   16 ++++++++++++++++
 plugins/coupons/database/mysql/coupon_log.sql  |    1 +
 3 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/lib/WellWell/Coupon.pm b/lib/WellWell/Coupon.pm
index 8241d4f..9fa36ed 100644
--- a/lib/WellWell/Coupon.pm
+++ b/lib/WellWell/Coupon.pm
@@ -241,6 +241,7 @@ sub log {
 
 	push (@{$Vend::Session->{coupons}->[0]}, $self->{coupon_number});
 	$Vend::Session->{coupons}->[1]->{$self->{coupon_number}} = {code => $self->{code},
+																log_code => $code,
 																valid_to => $self->{valid_to}};
 	
 	return $code;
diff --git a/plugins/coupons/code/coupons_order_cleanup.sub b/plugins/coupons/code/coupons_order_cleanup.sub
index 47aca01..e831498 100644
--- a/plugins/coupons/code/coupons_order_cleanup.sub
+++ b/plugins/coupons/code/coupons_order_cleanup.sub
@@ -1,5 +1,21 @@
 Sub coupons_order_cleanup <<EOS
 sub {
+	$Tag->perl({tables => 'coupon_log'});
+
+	# store order number in coupon_log table
+	if (exists $Session->{coupons}) {
+		for my $coupon_number (keys %{$Session->{coupons}->[1]}) {
+			my $repo = $Session->{coupons}->[1]->{$coupon_number};
+
+			if ($repo->{log_code}) {
+				$Db{coupon_log}->set_field($repo->{log_code}, 'order_number', $Values->{mv_order_number});
+			}
+			else {
+				Log("coupon_log code missing for coupon $coupon_number and order $Values->{mv_order_number}");
+			}
+		}
+	}
+
 	delete $Session->{coupons};
 
 	# reset discount
diff --git a/plugins/coupons/database/mysql/coupon_log.sql b/plugins/coupons/database/mysql/coupon_log.sql
index b417084..6b7c836 100644
--- a/plugins/coupons/database/mysql/coupon_log.sql
+++ b/plugins/coupons/database/mysql/coupon_log.sql
@@ -4,6 +4,7 @@ CREATE TABLE coupon_log (
     uid int unsigned NOT NULL default 0,
 	session_id char(8) NOT NULL default '',
 	entered datetime NOT NULL,
+    order_number varchar(14) NOT NULL default '',
 	PRIMARY KEY(code),
 	KEY(coupon_code)
 );



More information about the wellwell-devel mailing list