[interchange-cvs] interchange - heins modified 2 files

interchange-core@interchange.redhat.com interchange-core@interchange.redhat.com
Thu Jul 4 19:12:00 2002


User:      heins
Date:      2002-07-04 23:11:13 GMT
Modified:  lib/Vend Order.pm UserDB.pm
Log:
* Add ability to use SQL sequence as order number counter, defined
  with "sql_counter" key in route.

* Add ability for Accounting modules to *not* assign a customer number
  if needed, by setting "Accounting tag assign_username 0" to settings.

* Prevent incrementing counter for assign_username unless it will
  actually be used.

Revision  Changes    Path
2.26      +16 -10    interchange/lib/Vend/Order.pm


rev 2.26, prev_rev 2.25
Index: Order.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /anon_cvs/repository/interchange/lib/Vend/Order.pm,v
retrieving revision 2.25
retrieving revision 2.26
diff -u -r2.25 -r2.26
--- Order.pm	27 Jun 2002 22:24:10 -0000	2.25
+++ Order.pm	4 Jul 2002 23:11:13 -0000	2.26
@@ -1,6 +1,6 @@
 # Vend::Order - Interchange order routing routines
 #
-# $Id: Order.pm,v 2.25 2002/06/27 22:24:10 jon Exp $
+# $Id: Order.pm,v 2.26 2002/07/04 23:11:13 mheins Exp $
 #
 # Copyright (C) 1996-2001 Red Hat, Inc. <interchange@redhat.com>
 #
@@ -28,7 +28,7 @@
 package Vend::Order;
 require Exporter;
=20
-$VERSION =3D substr(q$Revision: 2.25 $, 10);
+$VERSION =3D substr(q$Revision: 2.26 $, 10);
=20
 @ISA =3D qw(Exporter);
=20
@@ -1241,10 +1241,9 @@
=20
 sub counter_number {
 	my $file =3D shift || $Vend::Cfg->{OrderCounter};
-	$Vend::CounterFile::DEFAULT_DIR =3D $Vend::Cfg->{VendRoot}
-		unless $file =3D~ m!^/!;
-	my $c =3D new Vend::CounterFile $file, "000000";
-	return $c->inc;
+	my $sql =3D shift;
+	my $start =3D shift || '000000';
+	return Vend::Interpolate::tag_counter($file, { sql =3D> $sql, start =3D> =
$start });
 }
=20
 sub update_order_number {
@@ -1370,9 +1369,12 @@
=20
 	# Careful! If you set it on one order and not on another,
 	# you must delete in between.
-	if(! $check_only) {
-		$::Values->{mv_order_number} =3D counter_number($main->{counter})
-				unless $Vend::Session->{mv_order_number};
+	if(! $check_only and ! $Vend::Session->{mv_order_number}) {
+		$::Values->{mv_order_number} =3D counter_number(
+											$main->{counter},
+											$main->{sql_counter},
+											$main->{first_order_number},
+										);
 	}
=20
 	my $value_save =3D { %{$::Values} };
@@ -1533,7 +1535,11 @@
 			$::Values->{mv_order_number} =3D $Vend::Session->{mv_order_number};
 		}
 		elsif($route->{counter}) {
-			$::Values->{mv_order_number} =3D counter_number($route->{counter});
+			$::Values->{mv_order_number} =3D counter_number(
+												$route->{counter},
+												$route->{sql_counter},
+												$route->{first_order_number},
+											);
 		}
 		elsif($route->{increment}) {
 			$::Values->{mv_order_number} =3D counter_number();



2.8       +11 -8     interchange/lib/Vend/UserDB.pm


rev 2.8, prev_rev 2.7
Index: UserDB.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /anon_cvs/repository/interchange/lib/Vend/UserDB.pm,v
retrieving revision 2.7
retrieving revision 2.8
diff -u -r2.7 -r2.8
--- UserDB.pm	4 Jul 2002 17:19:48 -0000	2.7
+++ UserDB.pm	4 Jul 2002 23:11:13 -0000	2.8
@@ -1,6 +1,6 @@
 # Vend::UserDB - Interchange user database functions
 #
-# $Id: UserDB.pm,v 2.7 2002/07/04 17:19:48 mheins Exp $
+# $Id: UserDB.pm,v 2.8 2002/07/04 23:11:13 mheins Exp $
 #
 # Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
 #
@@ -16,7 +16,7 @@
=20
 package Vend::UserDB;
=20
-$VERSION =3D substr(q$Revision: 2.7 $, 10);
+$VERSION =3D substr(q$Revision: 2.8 $, 10);
=20
 use vars qw!
 	$VERSION
@@ -1311,19 +1311,21 @@
 	my $start =3D $self->{OPTIONS}{username} || 'U00000';
 	$file =3D './etc/username.counter' if ! $file;
=20
-	my $custno =3D Vend::Interpolate::tag_counter(
-						$file,
-						{ sql =3D> $self->{OPTIONS}{sql_counter} },
-					);
+	my $o =3D { start =3D> $start, sql =3D> $self->{OPTIONS}{sql_counter} };
+
+	my $custno;
=20
 	if(my $l =3D $Vend::Cfg->{Accounting}) {
=20
 		my $class =3D $l->{Class};
=20
+		my $assign =3D defined $l->{assign_username} ? $l->{assign_username} : 1;
+
+		if($assign) {
 #::logDebug("Accounting class is $class");
 		my $obj;
 		eval {
-			$obj =3D $class->new;;
+				$obj =3D $class->new;
 		};
 #::logDebug("Accounting object is $obj");
=20
@@ -1334,10 +1336,11 @@
 				);
 		}
 		$custno =3D $obj->assign_customer_number();
+		}
 #::logDebug("assigned new customer number $custno");
 	}
=20
-	return $custno;
+	return $custno || Vend::Interpolate::tag_counter($file, $o);
 }
=20
 sub new_account {