Merge branch 'FREESIDE_3_BRANCH' of git.freeside.biz:/home/git/freeside into FREESIDE...
authorIvan Kohler <ivan@freeside.biz>
Sun, 4 Jan 2015 03:07:45 +0000 (19:07 -0800)
committerIvan Kohler <ivan@freeside.biz>
Sun, 4 Jan 2015 03:07:45 +0000 (19:07 -0800)
FS/FS/cdr/cx3.pm
httemplate/browse/reason.html
httemplate/edit/process/svc_circuit.html
httemplate/edit/reason.html
httemplate/view/svc_circuit.html

index a1e2e93..7f1222e 100644 (file)
@@ -30,8 +30,10 @@ use Date::Parse;
        skip(1),                
        sub { my ($cdr, $calldate, $param) = @_;
 
-               $cdr->set('calldate', $calldate);
-       },              #date
+                my $date = str2time($calldate);
+                $cdr->set('startdate', $date);
+
+        },              #date
        skip(4),          
        'accountcode',  # AccountCode
        skip(6),                
index 14e97bf..5bb6a3e 100644 (file)
                                     'addl_from' => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type', 
                                   },
                  'count_query' => $count_query,
-                 'header'      => [ '#',
-                                    ucfirst($classname) . ' Reason Type',
-                                    ucfirst($classname) . ' Reason',
-                                    ($class eq 'S' ?  'Unsuspension Fee' : ()),
-                                  ],
-                 'fields'      => [ 'reasonnum',
-                                    sub { shift->reasontype->type },
-                                    'reason',
-                                    $unsuspend_pkg_comment,
-                                  ],
-                 'links'       => [ $link,
-                                    $link,
-                                    '',
-                                    $unsuspend_pkg_link,
-                                  ],
+                 'header'      => \@header,
+                 'fields'      => \@fields,
+                 'links'       => \@links,
+                 'align'       => $align,
              )
 %>
 <%init>
@@ -53,18 +42,58 @@ my $count_query = 'SELECT COUNT(*) FROM reason LEFT JOIN reason_type on ' .
 
 my $link = [ $p."edit/reason.html?class=$class&reasonnum=", 'reasonnum' ];
 
-my ($unsuspend_pkg_comment, $unsuspend_pkg_link);
-if ( $class eq 'S' ) {
-  $unsuspend_pkg_comment = sub {
-    my $pkgpart = shift->unsuspend_pkgpart or return '';
-    my $part_pkg = FS::part_pkg->by_key($pkgpart) or return '';
-    $part_pkg->pkg_comment;
-  };
+my @header = (
+  '#',
+  ucfirst($classname) . ' reason type',
+  ucfirst($classname) . ' reason',
+);
+
+my @fields = (
+  'reasonnum',
+  sub { shift->reasontype->type },
+  'reason',
+);
 
-  my $unsuspend_pkg_link = sub {
-    my $pkgpart = shift->unsuspend_pkgpart or return '';
-    [ $p."edit/part_pkg.cgi?", $pkgpart ];
-  };
+my @links = (
+  $link,
+  $link,
+  '',
+);
+
+my $align = 'rll';
+
+if ( $class eq 'S' ) {
+  push @header,
+    'Credit unused service',
+    'Unsuspension fee',
+  ;
+  push @fields,
+    sub {
+      my $reason = shift;
+      if ( $reason->unused_credit ) {
+        return '<SPAN STYLE="background-color:#00ff00">YES</SPAN>';
+      } else {
+        return '<SPAN STYLE="background-color:#ff0000">NO</SPAN>';
+      }
+    },
+    sub {
+      my $reason = shift;
+      my $pkgpart = $reason->unsuspend_pkgpart or return '';
+      my $part_pkg = FS::part_pkg->by_key($pkgpart) or return '';
+      my $text = $part_pkg->pkg_comment;
+      my $href = $p."edit/part_pkg.cgi?$pkgpart";
+      $text = qq!<A HREF="$href">! . encode_entities($text) . "</A>".
+              "<FONT SIZE=-1>";
+      if ( $reason->unsuspend_hold ) {
+        $text .= ' (on next bill)'
+      } else {
+        $text .= ' (immediately)'
+      }
+      $text .= '</FONT>';
+    }
+  ;
+  $align .= 'cl';
 }
 
+
 </%init>
index d28f913..27f43db 100644 (file)
@@ -2,10 +2,22 @@
     table       => 'svc_circuit',
     edit_ext    => 'html',
     redirect    => popurl(3)."view/svc_circuit.html?",
+    precheck_callback => $precheck,
 &>
 <%init>
 
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
 
+my $precheck = sub {
+  my $cgi = shift;
+  foreach ('desired_due_date', 'due_date') {
+    if ( length $cgi->param($_) ) {
+      my $date = parse_datetime( $cgi->param($_) );
+      $cgi->param($_, $date);
+    }
+  }
+  return;
+};
+
 </%init>
index 78d0447..3e6645e 100644 (file)
@@ -15,6 +15,7 @@
                 'class'       => '',
                 'unsuspend_pkgpart' => 'Unsuspension fee',
                 'unsuspend_hold'    => 'Delay until next bill',
+                'unused_credit'     => 'Credit unused portion of service',
               },
   'fields' => \@fields,
 &>
@@ -61,18 +62,22 @@ my @fields = (
   },
 );
 
-push @fields,
-  { 'field'     => 'unsuspend_pkgpart',
-    'type'      => 'select-part_pkg',
-    'hashref'   => { 'disabled' => '',
-                     'freq'     => 0 }, # one-time charges only
-  },
-  { 'field'     => 'unsuspend_hold',
-    'type'      => 'checkbox',
-    'value'     => 'Y',
-  },
-  if ( $class eq 'S' );
-  
-
+if ( $class eq 'S' ) {
+  push @fields,
+    { 'field'     => 'unsuspend_pkgpart',
+      'type'      => 'select-part_pkg',
+      'hashref'   => { 'disabled' => '',
+                       'freq'     => 0 }, # one-time charges only
+    },
+    { 'field'     => 'unsuspend_hold',
+      'type'      => 'checkbox',
+      'value'     => 'Y',
+    },
+    { 'field'     => 'unused_credit',
+      'type'      => 'checkbox',
+      'value'     => 'Y',
+    }, 
+  ;
+}
 
 </%init>
index c8d5d23..42bfc4b 100644 (file)
@@ -53,10 +53,10 @@ my @fields = (
     table     => 'circuit_termination',
     name_col  => 'termination',
   },
-  qw( vendor_qual_id vendor_order_id vendor_order_type vendor_order_status
-      desired_due_date due_date
-      endpoint_ip_addr
-  ),
+  qw( vendor_qual_id vendor_order_id vendor_order_type vendor_order_status ),
+  { field     => 'desired_due_date', type => 'date' },
+  { field     => 'due_date', type => 'date' },
+  'endpoint_ip_addr',
   { field     => 'endpoint_mac_addr', type => 'mac_addr' },
 );