[interchange-cvs] interchange - heins modified code/UI_Tag/user_merge.tag

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Mon Jan 21 14:22:56 EST 2008


User:      heins
Date:      2008-01-21 19:22:55 GMT
Modified:  code/UI_Tag user_merge.tag
Log:
* Add merge of saved carts when merging users.

* If cart name already exists, log to logs/merged_users.log and do not
  overwrite.

Revision  Changes    Path
1.3       +18 -1     interchange/code/UI_Tag/user_merge.tag


rev 1.3, prev_rev 1.2
Index: user_merge.tag
===================================================================
RCS file: /var/cvs/interchange/code/UI_Tag/user_merge.tag,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- user_merge.tag	30 Mar 2007 23:40:54 -0000	1.2
+++ user_merge.tag	21 Jan 2008 19:22:55 -0000	1.3
@@ -5,7 +5,7 @@
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.  See the LICENSE file for details.
 # 
-# $Id: user_merge.tag,v 1.2 2007/03/30 23:40:54 pajamian Exp $
+# $Id: user_merge.tag,v 1.3 2008/01/21 19:22:55 mheins Exp $
 
 UserTag user-merge Order from to
 UserTag user-merge addAttr
@@ -124,6 +124,8 @@
 		$from_user{$_}++;
 	}
 
+	my $cart_hash = string_to_ref($urec->{carts});
+	my $carts_changed;
 
 	my @users = sort keys %from_user;
 
@@ -146,6 +148,18 @@
 		}
 
 		my $urec = $udb->row_hash($user);
+		my $chash = string_to_ref($urec->{carts});
+		if(ref $chash) {
+			for(keys %$chash) {
+				if($cart_hash->{$_}) {
+					$Tag->log({ type => 'text', file => $logfile, body => "unable to merge cart=$_ (already exists). Contents=$urec->{carts}\n"} );
+				}
+				else {
+					$cart_hash->{$_} = $chash->{$_};
+					$carts_changed++;
+				}
+			}
+		}
 		my $ustring = ::uneval($urec);
 		$Tag->log({ type => 'text', file => $logfile, body => "delete user $user=$ustring\n"} );
 		$udb->delete_record($user)
@@ -153,6 +167,9 @@
 		push @record, "delete user $user" unless $opt->{no_delete};
 	}
 
+	if($carts_changed) {
+		$udb->set_field($to, 'carts', ::uneval($cart_hash));
+	}
 	push @record, '';
 
 	$Tag->log({ type => 'text', file => $logfile, body => join("\n", @record)} );








More information about the interchange-cvs mailing list