% include( 'elements/edit.html',
'fields' => [
{ field => 'vendornum',
type => 'select-table',
name_col => 'vendorname',
table => 'did_vendor',
disable_empty => 1,
},
{ field => 'vendor_order_id',
type => 'hidden',
},
{ field => 'confirmed',
type => 'hidden',
},
{ field => 'received',
type => 'hidden',
},
{ field => 'submitted',
type => 'hidden',
},
{ field => 'stock_or_customer',
type => 'radio',
options => [ 'Stock', 'Customer', ],
onchange => 'stockcust_changed',
curr_value_callback => $stock_or_customer,
},
{ field => 'custnum',
type => 'search-cust_main',
},
{ type => 'tablebreak-tr-title',
value => 'Order Items',
},
{ 'field' => 'orderitemnum',
'type' => 'did_order_item',
'o2m_table' => 'did_order_item',
'm2_label' => 'Item',
'm2_error_callback' => $m2_error_callback,
},
],
'labels' => {
'ordernum' => 'Order',
'vendornum' => 'Vendor',
'vendor_order_id' => 'Vendor Order #',
'custnum' => '',
'confirmed' => 'Confirmation Date',
'orderitemnum' => 'Item',
},
'viewall_dir' => 'browse',
'table' => 'did_order',
'name' => 'Bulk DID Order',
'field_callback' => $field_callback,
'html_bottom' => $javascript,
'body_etc' => 'onLoad="stockcust_changed()"',
)
%>
<%init>
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( msanum npa latanum ratecenternum 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;
};
my $stock_or_customer = sub{
my($cgi,$object,$field) = @_;
return 'Customer' if $object->custnum;
'Stock';
};
my $javascript = <
function stockcust_changed() {
var f = document.edit_topform;
var custnum = f.custnum;
var custnum_search = f.custnum_search;
var custnum_select = f.custnum_select;
if ( f.stock_or_customer_Stock.checked ) {
custnum_search.disabled = true;
custnum_select.disabled = true;
custnum.value = '';
}
else if ( f.stock_or_customer_Customer.checked ) {
custnum_search.disabled = false;
custnum_select.disabled = false;
}
}
/* o2m or something else is broken, can't put this in the actual
component because random JS and other crap is rendered
onto the final output page */
function ratecenter_changed(rc) {
var idbase = rc.id.substring(0,rc.id.indexOf('_'));
var div = document.getElementById(idbase+'_rc_div');
var input = document.getElementById(idbase+'_rc_new');
if(rc.options[rc.selectedIndex].value == '0') {
div.style.display = 'inline';
}
else {
div.style.display = 'none';
}
input.value = '';
}
END
%init>