+sub force_export_all_virtual_ap {
+ my $job = shift;
+ my $param = shift;
+ my $force_update = { 'update_virtual_ap' => '1', };
+
+ export_provisioned_services($job,$param,$force_update);
+
+ return;
+}
+
+sub force_export_all_users {
+ my $job = shift;
+ my $param = shift;
+
+ my $part_export = FS::Record::qsearchs('part_export', { 'exportnum' => $param->{export_provisioned_services_exportnum}, } )
+ or die "You are trying to use an unknown exportnum $param->{export_provisioned_services_exportnum}. This export does not exist.\n";
+ bless $part_export;
+
+ my @svcparts = FS::Record::qsearch({
+ 'table' => 'export_svc',
+ 'addl_from' => 'LEFT JOIN part_svc USING ( svcpart ) ',
+ 'hashref' => { 'exportnum' => $param->{export_provisioned_services_exportnum}, },
+ });
+ my $part_count = scalar @svcparts;
+
+ my $parts = join "', '", map { $_->{Hash}->{svcpart} } @svcparts;
+
+ my @svcs = FS::Record::qsearch({
+ 'table' => 'cust_svc',
+ 'addl_from' => 'LEFT JOIN svc_broadband USING ( svcnum ) ',
+ 'extra_sql' => " WHERE svcpart in ('".$parts."')",
+ }) unless !$parts;
+
+ my $svc_count = scalar @svcs;
+
+ my %status = {};
+ for (my $c=1; $c <=100; $c=$c+1) { $status{int($svc_count * ($c/100))} = $c; }
+
+ my $process_count=0;
+ foreach my $svc (@svcs) {
+ my $description = $svc->{Hash}->{description};
+ my $user = $svc->{Hash}->{svcnum};
+ my $svc_location = get_svc_location($job, $svc);
+ if ($status{$process_count}) { my $s = $status{$process_count}; $job->update_statustext($s); }
+ warn "Exporting user ".$svc->{Hash}->{ip_addr}."\n" if ($part_export->option('debug'));
+ my $export_error = export_user($part_export,$user,$description, $svc_location);
+ if ($export_error) {
+ warn "Error exporting user ".$svc->{Hash}->{svcnum}."\n" if ($part_export->option('debug'));
+ die ($export_error->{'error'}."\n");
+ }
+ $process_count++;
+ }
+
+ return;
+
+}
+