bulk DID order/inventory improvements, RT11291
[freeside.git] / httemplate / edit / did_order.html
index ac8f336..25e38c7 100644 (file)
@@ -1,40 +1,59 @@
 <% include( 'elements/edit.html',
               'fields' => [
-                           { field => 'vendornum',
-                             type => 'select-table',
-                             name_col => 'vendorname',
-                             table => 'did_vendor',
-                             disable_empty => 1,
+                            { field => 'vendornum',
+                              type => 'select-table',
+                              name_col => 'vendorname',
+                              table => 'did_vendor',
+                              disable_empty => 1,
+                            },
+                            { field => 'vendor_order_id',
+                             type => 'hidden',
                            },
-                           'vendor_order_id',
-                           'msa',
-                           { field => 'latanum',
-                             type => 'select-table',
-                             name_col => 'description',
-                             table => 'lata',
-                             disable_empty => 1,
-                             label_showkey => 1,
+                            { field => 'confirmed',
+                              type => 'hidden',
+                            },
+                           'custnum',
+                           { type => 'tablebreak-tr-title',
+                             value => 'Order Items',
                            },
-                           'rate_center',
-                           { field => 'state',
-                             type => 'select-state',
-                             country => 'US',
-                           },
-                           'quantity',
-                           { field => 'confirmed',
-                             type => 'input-date-field',
+                           { 'field' => 'orderitemnum',
+                             'type' => 'did_order_item',
+                             'o2m_table' => 'did_order_item',
+                             'm2_label' => 'Item',
+                             'm2_error_callback' => $m2_error_callback,
                            },
+                            #'msa',
+                            #{ field => 'latanum',
+                            #  type => 'select-table',
+                            #  name_col => 'description',
+                            #  table => 'lata',
+                            #  disable_empty => 1,
+                            #  label_showkey => 1,
+                            #},
+                            #'rate_center',
+                            #{ field => 'state',
+                            #  type => 'select-state',
+                            #  country => 'US',
+                            #},
+                            #'quantity',
                           ],
               'labels' => { 
-                           'vendornum' => 'Vendor',
-                           'vendor_order_id' => 'Vendor Order #',
-                           'msa'       => 'MSA',
-                           'latanum' => 'LATA',
-                           'rate_center' => 'Rate Center',
+                            'ordernum'        => 'Order',
+                            'vendornum'       => 'Vendor',
+                            'vendor_order_id' => 'Vendor Order #',
+                           'custnum'         => 'Customer',
+                            #'msa'             => 'MSA',
+                            #'latanum'         => 'LATA',
+                            #'rate_center'     => 'Rate Center',
+                            #'state'           => 'State',
+                            #'quantity'        => 'Quantity',
+                            'confirmed'       => 'Confirmation Date',
+                           'orderitemnum'     => 'Item',
                           },
               'viewall_dir' => 'browse',
-             'table' => 'did_order',
-             'name' => 'Bulk DID Order',
+              'table' => 'did_order',
+              'name' => 'Bulk DID Order',
+             'field_callback' => $field_callback,
            )
           
 %>
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Import');
 
+
+my $field_callback = sub {
+  my ($cgi, $object, $field_hashref ) = @_;
+  if ($object->ordernum) {
+    $field_hashref->{type} = 'text'
+       if $field_hashref->{field} eq 'vendor_order_id';
+    $field_hashref->{type} = 'input-date-field'
+       if $field_hashref->{field} eq 'confirmed';
+  }
+};
+
+my $m2_error_callback = sub {
+  my($cgi, $object) = @_;
+
+  #process_o2m fields in process/did_order.html
+  my @fields = qw( msa npa latanum rate_center state quantity );
+  my @gfields = ( '', map "_$_", @fields );
+
+  map {
+        if ( /^orderitemnum(\d+)$/ ) {
+          my $num = $1;
+          if ( grep $cgi->param("orderitemnum$num$_"), @gfields ) {
+            my $x = new FS::did_order_item {
+              'orderitemnum' => scalar($cgi->param("orderitemnum$num")),
+              map { $_ => scalar($cgi->param("orderitemnum${num}_$_")) } @fields,
+            };
+            $x;
+          } else {
+            ();
+          }
+        } else {
+          ();
+        }
+      }
+      $cgi->param;
+};
+
+
 </%init>