X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fbrowse%2Fdid_order.html;h=3da8cb1bafc73041202c5a4a0219fb1df216d3e8;hb=645538bbc9e4d15f399181db04411f45805d37c8;hp=e844169b3bbcb9d9cc4472cf4186ec5b05fd9198;hpb=31f2e890b5b3e1b0ad29a877ff67bc641ea1fc40;p=freeside.git diff --git a/httemplate/browse/did_order.html b/httemplate/browse/did_order.html index e844169b3..3da8cb1ba 100644 --- a/httemplate/browse/did_order.html +++ b/httemplate/browse/did_order.html @@ -1,19 +1,85 @@ <% include( 'elements/browse.html', 'title' => 'Bulk DID Orders', - 'html_init' => $html_init, + 'html_init' => $html_init, 'name' => 'bulk DID orders', 'disableable' => 0, - 'query' => { 'table' => 'did_order', - 'addl_from' => 'left join did_vendor using (vendornum) ', - 'hashref' => {}, - 'order_by' => 'ORDER BY ordernum', - }, - 'count_query' => $count_query, - 'header' => $header, - 'fields' => $fields, + 'query' => $query, + 'count_query' => 'SELECT COUNT(*) FROM did_order', # XXX: this is wrong!? + 'header' => [ '#', 'Vendor',' Vendor Order #', + 'Submitted', 'Confirmed', 'Customer', + 'Received', 'Provision', 'Cancel', + ], + 'fields' => [ sub { + my $did_order = shift; + $did_order->ordernum; + }, + 'vendorname', + 'vendor_order_id', + sub { &$display_date(shift->submitted); }, + sub { # Confirmed + my $did_order = shift; + my $ordernum = $did_order->ordernum; + return &$display_date($did_order->confirmed) + if $did_order->confirmed; + include( '/elements/popup_link.html', + { 'action' => "${p}misc/did_order_confirm.html?ordernum=$ordernum", + 'label' => 'Confirm', + 'actionlabel' => 'Confirm Bulk DID Order', + 'width' => 480, + 'height' => 300, + } + ) + }, + sub { # Customer + my $did_order = shift; + my $cust_main = $did_order->cust_main; + return "Stock" unless $cust_main; + "".$cust_main->name.""; + }, + sub { # Received + my $did_order = shift; + my $ordernum = $did_order->ordernum; + return "Upload Received" + unless $did_order->received; + "" + . &$display_date($did_order->received) . ""; + }, + sub { # Provision + my $did_order = shift; + my $ordernum = $did_order->ordernum; + my @provisioned = $did_order->provisioned; + return '' + unless $did_order->received + && $did_order->custnum + && !scalar(@provisioned); + include( '/elements/popup_link.html', + { 'action' => "${p}misc/did_order_provision.html?ordernum=".$did_order->ordernum, + 'label' => 'Provision All DIDs', + 'actionlabel' => 'Bulk DID order - DID provisioning', + 'width' => 520, + 'height' => 300, + } + ) + }, + sub { # Cancel + my $did_order = shift; + return '' unless !$did_order->received; + qq!Cancel! + }, + ], 'links' => [ - [ $p.'edit/did_order.html?', 'ordernum' ], - ], + [ $p.'edit/did_order.html?', 'ordernum' ], + ], + 'html_foot' => ' + + ', ) %> <%init> @@ -24,34 +90,35 @@ die "access denied" my $conf = new FS::Conf; my $date_format = $conf->config('date_format') || '%m/%d/%Y'; -my $html_init = - qq!Add a bulk DID order

!; - -my $count_query = 'SELECT COUNT(*) FROM did_order'; - my $display_date = sub { my $date = shift; return '' unless $date; time2str($date_format, $date); }; -my $header = [ '#', 'Vendor',' Vendor Order #', - 'Submitted', 'Confirmed', 'Customer', 'Received', - ]; -my $fields = [ sub { - my $did_order = shift; - $did_order->ordernum; - }, 'vendorname', 'vendor_order_id', - sub { &$display_date(shift->submitted); }, - sub { &$display_date(shift->confirmed); }, - 'custnum', - sub { - my $did_order = shift; - my $ordernum = $did_order->ordernum; - return &$display_date($did_order->received) - if $did_order->received; - "Upload Received"; - }, - ]; +my $html_init = qq!Add a bulk DID order +

!; + +my $query = { + 'table' => 'did_order', + 'hashref' => {}, + 'addl_from' => 'left join did_vendor using (vendornum) ', + 'order_by' => 'ORDER BY ordernum', + }; +$query->{'hashref'}->{'custnum'} = $1 if $cgi->param('custnum') =~ /^(\d+)$/; +if ( $cgi->param('custrcvdunprov') ) { + $query->{'hashref'}->{'received'} = { 'op' => '>', 'value' => '0', }; + $query->{'hashref'}->{'custnum'} = { 'op' => '>', 'value' => '0', }; + $query->{'addl_from'} .= ' left join phone_avail using (ordernum) '; + $query->{'extra_sql'} .= ' and svcnum is null '; + $html_init .= qq!Browse all DID orders!; +} +else { + $html_init .= qq! + Browse all non-stock orders with received unprovisioned DIDs + !; +} + +$html_init .= "

";