1 <% include( 'elements/edit.html',
3 { field => 'vendornum',
4 type => 'select-table',
5 name_col => 'vendorname',
9 { field => 'vendor_order_id',
12 { field => 'confirmed',
15 { field => 'stock_or_customer',
17 options => [ 'Stock', 'Customer', ],
18 onchange => 'stockcust_changed',
19 curr_value_callback => $stock_or_customer,
22 type => 'search-cust_main',
24 { type => 'tablebreak-tr-title',
25 value => 'Order Items',
27 { 'field' => 'orderitemnum',
28 'type' => 'did_order_item',
29 'o2m_table' => 'did_order_item',
31 'm2_error_callback' => $m2_error_callback,
35 'ordernum' => 'Order',
36 'vendornum' => 'Vendor',
37 'vendor_order_id' => 'Vendor Order #',
39 'confirmed' => 'Confirmation Date',
40 'orderitemnum' => 'Item',
42 'viewall_dir' => 'browse',
43 'table' => 'did_order',
44 'name' => 'Bulk DID Order',
45 'field_callback' => $field_callback,
46 'html_bottom' => $javascript,
52 unless $FS::CurrentUser::CurrentUser->access_right('Import');
54 my $field_callback = sub {
55 my ($cgi, $object, $field_hashref ) = @_;
56 if ($object->ordernum) {
57 $field_hashref->{type} = 'text'
58 if $field_hashref->{field} eq 'vendor_order_id';
59 $field_hashref->{type} = 'input-date-field'
60 if $field_hashref->{field} eq 'confirmed';
64 my $m2_error_callback = sub {
65 my($cgi, $object) = @_;
67 #process_o2m fields in process/did_order.html
68 my @fields = qw( msa npa latanum ratecenter state quantity );
69 my @gfields = ( '', map "_$_", @fields );
72 if ( /^orderitemnum(\d+)$/ ) {
74 if ( grep $cgi->param("orderitemnum$num$_"), @gfields ) {
75 my $x = new FS::did_order_item {
76 'orderitemnum' => scalar($cgi->param("orderitemnum$num")),
77 map { $_ => scalar($cgi->param("orderitemnum${num}_$_")) } @fields,
90 my $stock_or_customer = sub{
91 my($cgi,$object,$field) = @_;
92 return 'Customer' if $object->custnum;
96 my $javascript = <<END;
97 <SCRIPT TYPE="text/javascript">
98 function stockcust_changed() {
99 var f = document.edit_topform;
100 var custnum = f.custnum;
101 var custnum_search = f.custnum_search;
102 var custnum_select = f.custnum_select;
103 if ( f.stock_or_customer_Stock.checked ) {
104 custnum_search.disabled = true;
105 custnum_select.disabled = true;
107 else if ( f.stock_or_customer_Customer.checked ) {
108 custnum_search.disabled = false;
109 custnum_select.disabled = false;
112 custnum_search.value = '';