[interchange-cvs] interchange - heins modified 2 files

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Sat Mar 5 14:01:55 EST 2005


User:      heins
Date:      2005-03-05 19:01:54 GMT
Modified:  lib/Vend UserDB.pm Order.pm
Log:
* Change get_cart routine so that it will not screw up item groups on
  a merge. Problem identified by Brian Kaney <brian at vermonster.com>.

* Change assignment of mv_mi so that the value will be definitely unique
  for a single user session.

Revision  Changes    Path
2.34      +34 -3     interchange/lib/Vend/UserDB.pm


rev 2.34, prev_rev 2.33
Index: UserDB.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/UserDB.pm,v
retrieving revision 2.33
retrieving revision 2.34
diff -u -r2.33 -r2.34
--- UserDB.pm	17 Dec 2004 21:08:46 -0000	2.33
+++ UserDB.pm	5 Mar 2005 19:01:54 -0000	2.34
@@ -1,6 +1,6 @@
 # Vend::UserDB - Interchange user database functions
 #
-# $Id: UserDB.pm,v 2.33 2004/12/17 21:08:46 mheins Exp $
+# $Id: UserDB.pm,v 2.34 2005/03/05 19:01:54 mheins Exp $
 #
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -17,7 +17,7 @@
 
 package Vend::UserDB;
 
-$VERSION = substr(q$Revision: 2.33 $, 10);
+$VERSION = substr(q$Revision: 2.34 $, 10);
 
 use vars qw!
 	$VERSION
@@ -1629,8 +1629,39 @@
 
 	if($opt->{merge}) {
 		$to = [] unless ref $to;
+		my %used;
+		my %alias;
+		my $max;
+
+		for(@$to) {
+			my $master;
+			next unless $master = $_->{mv_mi};
+			$used{$master} = 1;
+			$max = $master if $master > $max;
+		}
+
+		$max++;
+
+		my $rename;
+		my $alias = 100;
+		for(@$cart) {
+			my $master;
+			next unless $master = $_->{mv_mi};
+			next unless $used{$master};
+
+			if(! $_->{mv_si}) {
+				$alias{$master} = $max++;
+				$_->{mv_mi} = $alias{$master};
+			}
+			else {
+				$_->{mv_mi} = $alias{$master};
+			}
+		}
+
 		push(@$to,@$cart);
-	} else {
+
+	}
+	else {
 		@$to = @$cart;
 	}
 }



2.68      +12 -3     interchange/lib/Vend/Order.pm


rev 2.68, prev_rev 2.67
Index: Order.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Order.pm,v
retrieving revision 2.67
retrieving revision 2.68
diff -u -r2.67 -r2.68
--- Order.pm	10 Feb 2005 06:45:40 -0000	2.67
+++ Order.pm	5 Mar 2005 19:01:54 -0000	2.68
@@ -1,6 +1,6 @@
 # Vend::Order - Interchange order routing routines
 #
-# $Id: Order.pm,v 2.67 2005/02/10 06:45:40 mheins Exp $
+# $Id: Order.pm,v 2.68 2005/03/05 19:01:54 mheins Exp $
 #
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -29,7 +29,7 @@
 package Vend::Order;
 require Exporter;
 
-$VERSION = substr(q$Revision: 2.67 $, 10);
+$VERSION = substr(q$Revision: 2.68 $, 10);
 
 @ISA = qw(Exporter);
 
@@ -2457,9 +2457,18 @@
 	}
 
 	@group   = split /\0/, (delete $CGI::values{mv_order_group} || '');
+	
+	my $inc;
 	for( my $i = 0; $i < @group; $i++ ) {
 #::logDebug("processing order group=$group[$i]");
-	   $attr{mv_mi}->[$i] = $group[$i] ? ++$Vend::Session->{pageCount} : 0;
+		if($group[$i]) {
+			$inc ||= time();
+			my $add = sprintf('%06d', ++$Vend::Session->{pageCount});
+			$attr{mv_mi}->[$i] = $inc . $add;
+		}
+		else {
+			$attr{mv_mi}->[$i] = 0;
+		}
 	}
 
 	$j = 0;








More information about the interchange-cvs mailing list