[freeside-commits] freeside/FS/FS Schema.pm, 1.239.2.7, 1.239.2.8 svc_phone.pm, 1.28.2.3, 1.28.2.4

Erik Levinson levinse at wavetail.420.am
Tue Dec 28 07:58:16 PST 2010


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv7911/FS/FS

Modified Files:
      Tag: FREESIDE_2_1_BRANCH
	Schema.pm svc_phone.pm 
Log Message:
LNP improvements, RT9527

Index: Schema.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Schema.pm,v
retrieving revision 1.239.2.7
retrieving revision 1.239.2.8
diff -u -w -d -r1.239.2.7 -r1.239.2.8
--- Schema.pm	26 Dec 2010 04:09:33 -0000	1.239.2.7
+++ Schema.pm	28 Dec 2010 15:58:13 -0000	1.239.2.8
@@ -2778,6 +2778,7 @@
 	'lnp_due_date',     'int', 'NULL',       '', '', '',
         'lnp_other_provider', 'varchar', 'NULL', $char_d,  '', '',
         'lnp_other_provider_account', 'varchar', 'NULL', $char_d,  '', '',
+        'lnp_reject_reason', 'varchar', 'NULL', $char_d,  '', '',
       ],
       'primary_key' => 'svcnum',
       'unique' => [],

Index: svc_phone.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/svc_phone.pm,v
retrieving revision 1.28.2.3
retrieving revision 1.28.2.4
diff -u -w -d -r1.28.2.3 -r1.28.2.4
--- svc_phone.pm	26 Dec 2010 20:25:14 -0000	1.28.2.3
+++ svc_phone.pm	28 Dec 2010 15:58:14 -0000	1.28.2.4
@@ -140,6 +140,10 @@
 				type => 'select-lnp_status.html',
 				%dis2,
 			},
+	'lnp_reject_reason' => { 
+				label => 'LNP Reject Reason',
+				%dis2,
+			},
 	'portable' => 	{	label => 'Portable?', %dis2, },
 	'lrn' 	=>	{	label => 'LRN', 
 				disable_inventory => 1, 
@@ -353,6 +357,17 @@
   }
   #what about on-the-fly edits?  if the ui supports it?
 
+  # LNP data validation
+ return 'Invalid LNP status' # if someone does really stupid stuff
+    if (  ($old->lnp_status eq 'portingout' && $new->lnp_status eq 'portingin')
+	|| ($old->lnp_status eq 'portout-reject' && $new->lnp_status eq 'portingin')
+	|| ($old->lnp_status eq 'portin-reject' && $new->lnp_status eq 'portingout')
+	|| ($old->lnp_status eq 'portingin' && $new->lnp_status eq 'native')
+	|| ($old->lnp_status eq 'portin-reject' && $new->lnp_status eq 'native')
+	|| ($old->lnp_status eq 'portingin' && $new->lnp_status eq 'portingout')
+	|| ($old->lnp_status eq 'portingout' && $new->lnp_status eq 'portin-reject')
+	);
+
   my $error = $new->SUPER::replace($old, %options);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
@@ -419,11 +434,26 @@
     || $self->ut_numbern('lnp_due_date')
     || $self->ut_textn('lnp_other_provider')
     || $self->ut_textn('lnp_other_provider_account')
-    || $self->ut_enumn('lnp_status', ['','portingin','portingout','portedin','native'])
+    || $self->ut_enumn('lnp_status', ['','portingin','portingout','portedin',
+				'native', 'portin-reject', 'portout-reject'])
     || $self->ut_enumn('portable', ['','Y'])
+    || $self->ut_textn('lnp_reject_reason')
   ;
   return $error if $error;
 
+    # LNP data validation
+    return 'Cannot set LNP fields: no LNP in progress'
+	if ( ($self->lnp_desired_due_date || $self->lnp_due_date 
+	    || $self->lnp_other_provider || $self->lnp_other_provider_account
+	    || $self->lnp_reject_reason) 
+	    && (!$self->lnp_status || $self->lnp_status eq 'native') );
+    return 'Cannot set LNP reject reason: no LNP in progress or status is not reject'
+	if ($self->lnp_reject_reason && (!$self->lnp_status 
+			    || $self->lnp_status !~ /^port(in|out)-reject$/) );
+    return 'Cannot port-out a non-portable number' 
+	if (!$self->portable && $self->lnp_status eq 'portingout');
+
+
   return 'Name ('. $self->phone_name.
          ") is longer than $phone_name_max characters"
     if $phone_name_max && length($self->phone_name) > $phone_name_max;



More information about the freeside-commits mailing list