diff options
Diffstat (limited to 'httemplate/misc')
| -rwxr-xr-x | httemplate/misc/cust_edi_data-onp.cgi | 57 | ||||
| -rwxr-xr-x | httemplate/misc/cust_main-import-oldonp.cgi | 68 | ||||
| -rw-r--r-- | httemplate/misc/payment.cgi | 2 | ||||
| -rwxr-xr-x | httemplate/misc/process/cust_edi_data-onp.cgi | 182 | ||||
| -rwxr-xr-x | httemplate/misc/process/cust_main-import-oldonp.cgi | 35 | ||||
| -rwxr-xr-x | httemplate/misc/process/qualified_liteup_customers.cgi | 139 | ||||
| -rwxr-xr-x | httemplate/misc/process/transaction810-import.cgi | 23 | ||||
| -rwxr-xr-x | httemplate/misc/qualified_liteup_customers.cgi | 71 | ||||
| -rwxr-xr-x | httemplate/misc/transaction810-import.cgi | 76 | ||||
| -rwxr-xr-x | httemplate/misc/usage_elec_prefilled_input.cgi | 245 | 
10 files changed, 897 insertions, 1 deletions
diff --git a/httemplate/misc/cust_edi_data-onp.cgi b/httemplate/misc/cust_edi_data-onp.cgi new file mode 100755 index 000000000..985637b0c --- /dev/null +++ b/httemplate/misc/cust_edi_data-onp.cgi @@ -0,0 +1,57 @@ +<% include("/elements/header.html",'Import EDI Info') %> + +<FORM ACTION="process/cust_edi_data-onp.cgi" METHOD="post" ENCTYPE="multipart/form-data"> + +Import a CSV file containing customer records. +<BR><BR> + +<!-- Simple file format is CSV, with the following field order: <i>cust_pkg.setup, dayphone, first, last, address1, address2, city, state, zip, comments</i> +<BR><BR> --> + +<!-- +Extended file format is CSV, with the following field order: <i>custnum<%$req%>, last<%$req%>, first<%$req%>, address1<%$req%>, address2, city state<%$req%>, zip<%$req%>, ss, daytime ph#, nightime ph#, service_lastname<%$req%>, service_firstname<%$req%>, service_address1<%$req%>, service_address2, service_city service_state <%$req%>, service_zip<%$req%>, newcustdate<%$req%></i> --> +<BR><BR> + +<%$req%> Required fields +<BR><BR> + +<% &ntable("#cccccc") %> + +<% include('/elements/tr-select-agent.html', '', #$agentnum, +              'label'       => "<B>Agent</B>", +              'empty_label' => 'Select agent', +           ) +%> + +<TR> +  <TH ALIGN="right">Format</TH> +  <TD> +    <SELECT NAME="format"> +<!--      <OPTION VALUE="simple">Simple --> +      <OPTION VALUE="extended" SELECTED>Extended +    </SELECT> +  </TD> +</TR> + +<TR> +  <TH ALIGN="right">CSV filename</TH> +  <TD><INPUT TYPE="file" NAME="csvfile"></TD> +</TR> +% #include('/elements/tr-select-part_referral.html') +% + + +<!-- +--> + +</TABLE> +<BR><BR> + +<INPUT TYPE="submit" VALUE="Import"> +</FORM> + +<% include('/elements/footer.html') %> + +<%once> +my $req = qq!<font color="#ff0000">*</font>!; +</%once> diff --git a/httemplate/misc/cust_main-import-oldonp.cgi b/httemplate/misc/cust_main-import-oldonp.cgi new file mode 100755 index 000000000..1409e0a5b --- /dev/null +++ b/httemplate/misc/cust_main-import-oldonp.cgi @@ -0,0 +1,68 @@ +<% include("/elements/header.html",'Batch Customer Import') %> + +<FORM ACTION="process/cust_main-import-oldonp.cgi" METHOD="post" ENCTYPE="multipart/form-data"> + +Import a CSV file containing customer records. +<BR><BR> + +<!-- Simple file format is CSV, with the following field order: <i>cust_pkg.setup, dayphone, first, last, address1, address2, city, state, zip, comments</i> +<BR><BR> --> + +Extended file format is CSV, with the following field order: <i>custnum<%$req%>, last<%$req%>, first<%$req%>, address1<%$req%>, address2, city state<%$req%>, zip<%$req%>, ss, daytime ph#, nightime ph#, service_lastname<%$req%>, service_firstname<%$req%>, service_address1<%$req%>, service_address2, service_city service_state <%$req%>, service_zip<%$req%>, newcustdate<%$req%></i> +<BR><BR> + +<%$req%> Required fields +<BR><BR> + +<% &ntable("#cccccc") %> + +<% include('/elements/tr-select-agent.html', '', #$agentnum, +              'label'       => "<B>Agent</B>", +              'empty_label' => 'Select agent', +           ) +%> + +<TR> +  <TH ALIGN="right">Format</TH> +  <TD> +    <SELECT NAME="format"> +<!--      <OPTION VALUE="simple">Simple --> +      <OPTION VALUE="extended" SELECTED>Extended +    </SELECT> +  </TD> +</TR> + +<TR> +  <TH ALIGN="right">CSV filename</TH> +  <TD><INPUT TYPE="file" NAME="csvfile"></TD> +</TR> +% #include('/elements/tr-select-part_referral.html') +% + + +<!-- +<TR> +  <TH>First package</TH> +  <TD> +    <SELECT NAME="pkgpart"><OPTION VALUE="">(none)</OPTION> +% foreach my $part_pkg ( qsearch('part_pkg',{'disabled'=>'' }) ) {  + +       <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg. ' - '. $part_pkg->comment %></OPTION> +% }  + +    </SELECT> +  </TD> +</TR> +--> + +</TABLE> +<BR><BR> + +<INPUT TYPE="submit" VALUE="Import"> +</FORM> + +<% include('/elements/footer.html') %> + +<%once> +my $req = qq!<font color="#ff0000">*</font>!; +</%once> diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index 813b560bd..f587bc2d2 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -182,7 +182,7 @@        <INPUT TYPE="hidden" NAME="paystate" VALUE="<% $paystate %>">  %   } -%   if ( $conf->exists('show_ss') ) { +%   if ( $conf->exists('show_ss') && !$conf->exists('svc_elec_features') ) {        <TR>          <TD ALIGN="right">            Account holder<BR> diff --git a/httemplate/misc/process/cust_edi_data-onp.cgi b/httemplate/misc/process/cust_edi_data-onp.cgi new file mode 100755 index 000000000..4295a8d79 --- /dev/null +++ b/httemplate/misc/process/cust_edi_data-onp.cgi @@ -0,0 +1,182 @@ +% +% +%  my $fh = $cgi->upload('csvfile'); +%  #warn $cgi; +%  #warn $fh; +% +%  my $error = defined($fh) +%    ? FS::cust_main::batch_edidata_onp( { +%        filehandle => $fh, +%        agentnum   => scalar($cgi->param('agentnum')), +%        refnum     => scalar($cgi->param('refnum')), +%        pkgpart    => scalar($cgi->param('pkgpart')), +%        #'fields'    => [qw( cust_pkg.setup dayphone first last address1 address2 +%        #                   city state zip comments                          )], +%        'format'   => scalar($cgi->param('format')), +%      } ) +%    : 'No file'; +% +%  if ( $error =~ /ERROR/) { +%     + +    <!-- mason kludge --> +% +%    eidiot($error); +%#    $cgi->param('error', $error); +%#    print $cgi->redirect( "${p}cust_main-import.cgi +%  } else { +%     +%# OK let define the heading +% +%# general customer info +%my @field_descriptions1 = ( '810/867 usage match','F. Name', 'L. Name', 'Cust. Num', +%                            'SVC Num', 'Balance', 'Last Billed','Last Read #', ''); +% +%# info collected from 810 & 867 to be entered into usage_elec +%my @field_descriptions2 = ( 'Start Date', +%                            'End Date', 'Prev Read', 'Curr Read', 'TDSP', +%                            'Meter Mulx', '867 Usage', 'Measure Demand', 'Billed Demand', +%                            '','','',''); +% +%# info from 810 +%my @field_descriptions3 = ( 'Invc #', '', 'Trans #/867 ref#', 'ESIID', '', '', +%                            'TDSP','', 'Due Date', '', 'Received Date', '810 usage', '', +%                            'Start Date', 'End Date',  +%                            '', '', '', '', '??', 'Billed Demand', 'Measured Demand', +%                            '','','','','',''); +% +%# info from 867 +%my @field_descriptions4 = ( 'Prev_Read', 'Curr Read', 'Multiplier',  +%                            'Total Usage',''); +% +%# info from excel formula +%my @field_descriptions5 = ( 'Total Usage Different 810&867' ); +% +%my @p_fields = ( 'p_prev_date', 'p_curr_date', 'p_prev_reading',  +%                 'p_curr_reading', 'p_tdsp', 'p_meter_mult', 'p_total_usage',  +%                 'p_measured_demand', 'p_billed_demand', 'p_svcnum', +%                 'p_first', 'p_last', 'p_balance', 'p_last_billed'); +%#                 'p_entry_date', 'p_meter_number'); +%my @p_fields_associates_index = ( 9, 10, 11, +%                                  12, 28, 14, 15, +%                                  16, 17, 4, +%                                  1, 2, 5, 6);  +% +%#my $description = join(',',@field_descriptions); +% +%my @field_name = qw / prev_date curr_date prev_read curr_read tdsp +%                      meter_multiplier total_usage measured_demand +%                      billed_demand svcnum _date meter_number /; +%my $date_exception = '(prev_date|curr_date|_date)'; +%my $p1 = popurl(0); + +%  my @usage_data = split /\n/,$error; + +%  #my @items = split /\n/,$error; +%  my (@usage_cvs, @table_item); +%  foreach my $cust_usage (@usage_data) { +%    my @usage_ele = split ',',$cust_usage; +%    my $svc_num = $usage_ele[4]; +%    my $cust_last_name = $usage_ele[2]; +%    my $cust_num = $usage_ele[3]; +% +%    # first thing first, let add the last reading from usage elec into table +%    # get the previous 1 usage_elec items +%    my @usage_obj = FS::usage_elec::query_usage($svc_num, 1); +%    my $usage = pop @usage_obj; +%    $usage_ele[7] = $usage->curr_read if $usage; #only if usage exist +% +%    my $pass_str = ''; +%    my $i=0; +%    foreach my $p_field (@p_fields) { +%      my $ele_index = $p_fields_associates_index[$i]; +%      $i++; +%      if ($pass_str) { +%        $pass_str .= "\&${p_field}=" . $usage_ele[$ele_index]; +%      } +%      else { +%        $pass_str = "${p_field}=" . $usage_ele[$ele_index]; +%      } +%    } +%      +%    $usage_ele[2]="<A HREF=\"../../view/cust_main.cgi?${cust_num}\" target=\"_blank\">${cust_last_name}</A>"; +% +%    $usage_ele[3]="<A HREF=\"../../edit/usage_elec_prefilled_input.cgi?${pass_str}\" target=\"_blank\">$cust_num</A>"; + +%    # insert TD tag +%    my $str = join("\n", map("<TD>" . $_ . "</TD>", @usage_ele)); +% +%    # let figure out if this particular usage data has already been entered  +%    # into the usage_elec table +%    # if it has, highlight it so the user can identify it +%    # To check for this, we perform some quick check (prev_date, curr_date,  +%    # prev_reading, curr_reading, and total_usage) +%    my @exist_in_usage_elec; #identify usage exist in usage_elec table +%    my @usages_history = qsearch ( { +%                           'table'   => 'usage_elec', +%                           'hashref' => { 'op'  => '=', +%                                          'svcnum' => $svc_num +%                                        }, +%                            # sort in DESCending order so it easier to splice +%                            # the array in the next step +%                           'extra_sql' => 'ORDER BY _date DESC' +%                          } ); +%    #my $usage_history_no = scalar(@usages_history); +%    my (%h_prev_date, %h_curr_date, %h_prev_read, %h_curr_read,  +%        %h_total_usage); +%    foreach my $usage (@usages_history) { +%      $h_prev_date{$usage->prev_date} = 1; +%      $h_curr_date{$usage->curr_date} = 1; +%      $h_prev_read{$usage->prev_read} = 1; +%      $h_curr_read{$usage->curr_read} = 1; +%      $h_total_usage{$usage->total_usage} = 1; +%    } +% +%    if ( exists $h_prev_date{str2time($usage_ele[9])} && +%         exists $h_curr_date{str2time($usage_ele[10])} && +%         exists $h_prev_read{$usage_ele[11]} && +%         exists $h_curr_read{$usage_ele[12]} && +%         exists $h_total_usage{$usage_ele[15]} ) { +%      # when data already entered into usage_elec +%      $str =  "<tr bgcolor=\"#9999ff\">$str</tr>"; +% +%    } +%    else { +%      $str = "<tr>$str</tr>"; +%    } +% +%    push(@table_item,$str); +%    push(@usage_cvs,join(',',@usage_ele)); #for exporting csv purposes +%  } +% +%  my $str_cvs = join "<BR>",@usage_cvs; #for exporting csv purposes +%  #print $str_cvs; +    <!-- mason kludge --> +    <% include("/elements/header.html","Import successful") %>  +<table border="2" frame="border" rules="all"> +% +% # print the heading +% print "<tr class='maintitle'>" +%  . join("\n", map("<th bgcolor=\"#88b2ce\">" . $_ . "</th>", @field_descriptions1)) +%  . join("\n", map("<th bgcolor=\"#ffff99\">" . $_ . "</th>", @field_descriptions2)) +%  . join("\n", map("<th bgcolor=\"#ff9999\">" . $_ . "</th>", @field_descriptions3)) +%  . join("\n", map("<th bgcolor=\"#66cc00\">" . $_ . "</th>", @field_descriptions4)) +%  . join("\n", map("<th bgcolor=\"#ff99cc\">" . $_ . "</th>", @field_descriptions5)) +%  . "</tr>\n"; +% +% # print the table +% foreach my $e (@table_item) { +%   #print "<TR>$e</TR>"; +%   print $e; +% } +</table> +% +% # dumping CSV data out  +% #foreach my $cvs_item (@usage_cvs) { +% #  print "$cvs_item<BR>"; +% #} +     +% +%  } +% + diff --git a/httemplate/misc/process/cust_main-import-oldonp.cgi b/httemplate/misc/process/cust_main-import-oldonp.cgi new file mode 100755 index 000000000..9bc4a453b --- /dev/null +++ b/httemplate/misc/process/cust_main-import-oldonp.cgi @@ -0,0 +1,35 @@ +% +% +%  my $fh = $cgi->upload('csvfile'); +%  #warn $cgi; +%  #warn $fh; +% +%  my $error = defined($fh) +%    ? FS::cust_main::batch_import_onp( { +%        filehandle => $fh, +%        agentnum   => scalar($cgi->param('agentnum')), +%        refnum     => scalar($cgi->param('refnum')), +%        pkgpart    => scalar($cgi->param('pkgpart')), +%        #'fields'    => [qw( cust_pkg.setup dayphone first last address1 address2 +%        #                   city state zip comments                          )], +%        'format'   => scalar($cgi->param('format')), +%      } ) +%    : 'No file'; +% +%  if ( $error ) { +%     + +    <!-- mason kludge --> +% +%    eidiot($error); +%#    $cgi->param('error', $error); +%#    print $cgi->redirect( "${p}cust_main-import.cgi +%  } else { +%     + +    <!-- mason kludge --> +    <% include("/elements/header.html",'Import successful') %>  +% +%  } +% + diff --git a/httemplate/misc/process/qualified_liteup_customers.cgi b/httemplate/misc/process/qualified_liteup_customers.cgi new file mode 100755 index 000000000..640bbc6f4 --- /dev/null +++ b/httemplate/misc/process/qualified_liteup_customers.cgi @@ -0,0 +1,139 @@ +<% include("/elements/header.html",'LITEUP') %> +% +%  my $fh = $cgi->upload('textfile'); +% +%  my $action = $cgi->param('action'); +%  #print '<br><br>'.$action.'<br><br>'; +%  # read the text file and test for accuracy +%  # we are expection each line of the file to contain +%  # ESIIDxxxxADDRESSxxxxCITYxxxxSTATEZIPxxxxLITEUPDURATION +%  # whese x is multiple whitespace +%  # +%  my $line; +%  my @newlist; +%  my $i =0; +%  while ( defined($line=<$fh>) ) { +%    $newlist[$i] = [ split /\s{2,}/, $line ]; +%    $i++; +%  } +% +%  if ($action eq 'Get Report') { #liteup audit +%    my ($beg,$end) = FS::UI::Web::parse_beginning_ending($cgi); +%    $beg = str2time("1/1/2008") unless ($beg); +%    $end = str2time(`date`) unless ($end); +%    print '<h3>Audit from ' . time2str("%D",$beg) .' through '.  +%          ($end == 4294967295 ? 'NOW' : time2str("%D",$end)) .'</h3>'; +% +%    my @cust_bills = qsearch ( { +%             'table' => 'cust_bill_pkg_detail', +%             'hashref' => { 'curr_date' => {  +%                                   'op' => '>=', +%                                  'value' => "$beg", +%                                            } +%                          }, +%             'extra_sql'=> "AND curr_date <= $end +%                            AND discount1_rate > 0 +%                            ORDER BY esiid ASC", +%                               }); +%    my %liteup_cust; +%    foreach my $cust_bill_pkg (@cust_bills) { +%      if ($cust_bill_pkg->discount1_rate) { +%        $cust_bill_pkg->esiid =~ /^\s*(\d{4})\d+$/; +%        $liteup_cust{$1}{$cust_bill_pkg->esiid}{$cust_bill_pkg->curr_date}{discount} =  +%                                                 $cust_bill_pkg->discount1_total; +%        $liteup_cust{$1}{$cust_bill_pkg->esiid}{$cust_bill_pkg->curr_date}{usage} =  +%                                          int($cust_bill_pkg->energy_usage); +%        # let get the custnum +%        my $cust_bill = qsearchs( { +%                         'table' => 'cust_bill', +%                         'hashref' => { 'invnum' => { 'op' => '=', +%                                                      'value' => $cust_bill_pkg->invnum, +%                                                    } +%                                      } +%                               }); +%        $liteup_cust{$1}{$cust_bill_pkg->esiid}{$cust_bill_pkg->curr_date}{custnum} =  +%                                       $cust_bill->custnum; +%      } +%    } + +%    foreach my $esiid_4 (sort keys %liteup_cust) { +%      print '<br><FONT COLOR="#FF0000"><b>'. $esiid_4 .'</FONT></b><br>'; +%      my $total = 0; +%      my $total_usage = 0; +%      foreach my $esiid (sort keys %{$liteup_cust{$esiid_4}}) { +%        print '----'. $esiid .'<br>'; +%        foreach my $date (sort keys %{$liteup_cust{$esiid_4}{$esiid}}) { +%          print ' 'x10 +%               . $liteup_cust{$esiid_4}{$esiid}{$date}{custnum}  +%               . ':'. time2str("%D",$date)  +%               . ':'. $liteup_cust{$esiid_4}{$esiid}{$date}{usage} .'kWh'  +%               . ':$'. $liteup_cust{$esiid_4}{$esiid}{$date}{discount}  +%               . '<br>'; +%          $total += $liteup_cust{$esiid_4}{$esiid}{$date}{discount}; +%          $total_usage += $liteup_cust{$esiid_4}{$esiid}{$date}{usage}; +%        } +%      } +%      #printf "==<FONT COLOR="#FF0000"><b>%dkWh'  . $total_usage .'kWh'.':$'. $total .'</FONT></b><br>'; +%      printf "==<FONT COLOR='#FF0000'><b>%dkWh:\$%.2f</FONT></b><br>",$total_usage,$total; +%    } +% +%  } +%elsif ($action eq 'Process List') { +%    print 'UNDER CONSTRUCTION<BR>'; +%#  my @cust_main = qsearch ( { +%#                         'table'     => 'cust_main', +%#                         'extra_sql' => 'ORDER BY custnum ASC' +%#                        } ); +% +%#  my %liteup_cust; +%#  $i=1; +%#  foreach my $cust (@cust_main) { +%#    if ($i<2000) { +%#      #print $cust->custnum . "=>" . $cust->first . "," . $cust->last . "<br>"; +%#      #print $cust->custnum . "<br>"; +%#      my @packages = get_packages($cust); +%#      foreach my $cust_pkg (@packages) { +%#        my $part_pkg = $cust_pkg->part_pkg; +%##        print 'PKG: '. $part_pkg->pkg . "<br>"; +%#        my @part_pkg_option = $part_pkg->part_pkg_option; +%#        my @cust_svc = $cust_pkg->cust_svc(3); +%#        foreach my $custsvc (@cust_svc) { +%#          my $liteup_discount; +%#          foreach my $pkg_option (@part_pkg_option) { +%##            print 'optionname:'.$pkg_option->optionname.'-----optionvalue:' +%##                 .$pkg_option->optionvalue .'<br>'; +%#            if ($pkg_option->optionname eq 'rate1_discount' &&  +%#                $pkg_option->optionvalue) { +%#              $liteup_discount = $pkg_option->optionvalue; +%#            } +%#          } +% +%#          my $svc_x = $custsvc->svc_x; +%##          print "svcnum = " . $custsvc->svcnum . "<br>" if $custsvc; +%##          print $svc_x->id . ':'. $svc_x->title .'<br>'; + +%#          if ($svc_x->title eq 'ESIID' && $svc_x->id && $liteup_discount) { +%#            print $cust->custnum . "=>" . $cust->first . "," . $cust->last . "<br>"; +%#            print 'PKG: '. $part_pkg->pkg . "<br>"; +%#            print $svc_x->id . ':'. $svc_x->title .'<br>'; +%#            print 'disount:' . $liteup_discount . '<br>; +%#            $liteup_cust{$cust->custnum}{first} = $cust->first; +%#            $liteup_cust{$cust->custnum}{last} = $cust->last; +%#            $liteup_cust{$cust->custnum}{esiid} = $cust->esiid; +%#            $liteup_cust{$cust->custnum}{discount} = $liteup_discount; +%#          } +%#        } +%#      } +%#    } +%#    $i++; +%#  } +% +%} #end elsif +%#  sub get_packages { +%#    my $cust_main = shift or return undef; +% +% +%#    return $cust_main->ncancelled_pkgs(); + +%#  } +<% include('/elements/footer.html') %> diff --git a/httemplate/misc/process/transaction810-import.cgi b/httemplate/misc/process/transaction810-import.cgi new file mode 100755 index 000000000..ab31bc615 --- /dev/null +++ b/httemplate/misc/process/transaction810-import.cgi @@ -0,0 +1,23 @@ +% +% +%  my $fh = $cgi->upload('csvfile'); +%  #warn $cgi; +%  #warn $fh; +% +%  my $error = FS::transaction810::testing( { +%        filehandle => $fh, +%        'format'   => scalar($cgi->param('format')), +%      } ); +% +%  if ( $error ) { +%     + +<b><% $error %></b>  +% +%  } else { +%     +<b>Not Successful!</b> +% +%  } +% + diff --git a/httemplate/misc/qualified_liteup_customers.cgi b/httemplate/misc/qualified_liteup_customers.cgi new file mode 100755 index 000000000..d0aa99226 --- /dev/null +++ b/httemplate/misc/qualified_liteup_customers.cgi @@ -0,0 +1,71 @@ +<% include("/elements/header.html",'LITEUP') %> + +<h3> <FONT COLOR="Blue">Process new Liteup List</FONT></h3> +<FORM ACTION="process/qualified_liteup_customers.cgi" METHOD="post" ENCTYPE="multipart/form-data"> + +Import a text file from PUCT containg qualified LITEUP customers. +<BR> +The text file should contain ESIID, Address, City, StateZip, Qualifydate.  All seperated by 2 or more white spaces.   +<BR><BR> +ie. +<BR> +10032789488231455        3608 ORING         EDINBURG  TX78539   2008030120080731<BR> +1008939284701838499830   2206 W REEN RD     HOUSTON   TX77067   2008030120080731 +<BR><BR> + +<% &ntable("#cccccc") %> + +<% include('/elements/tr-select-agent.html', '', #$agentnum, +              'label'       => "<B>Agent</B>", +              'empty_label' => 'Select agent', +           ) +%> + +<!-- +<TR> +  <TH ALIGN="right">Format</TH> +  <TD> +    <SELECT NAME="format"> +      <OPTION VALUE="simple">Simple +      <OPTION VALUE="extended" SELECTED>Extended +    </SELECT> +  </TD> +</TR> +--> + +<TR> +  <TH ALIGN="right">filename</TH> +  <TD><INPUT TYPE="file" NAME="textfile"></TD> +</TR> +% #include('/elements/tr-select-part_referral.html') +% + +</TABLE> +<BR> + +<INPUT STYLE="background-color:lightgreen" TYPE="submit" name="action" VALUE="Process List"> + +<BR><BR> +<hr color="#CC2277" size="5"> + +<h3> <FONT COLOR="Blue">Audit Liteup Program</FONT></h3> + +<TABLE> +<% include( '/elements/tr-input-beginning_ending.html' ) %> +</TABLE> + +<BR> +<INPUT STYLE="background-color:lightgreen" TYPE="submit" name="action" VALUE="Get Report"> + +<BR><BR> +<hr color="#CC2277" size="5"> + +</FORM> + +<% include('/elements/footer.html') %> + +<%once> +my $req = qq!<font color="#ff0000">*</font>!; +</%once> + + diff --git a/httemplate/misc/transaction810-import.cgi b/httemplate/misc/transaction810-import.cgi new file mode 100755 index 000000000..e957666b4 --- /dev/null +++ b/httemplate/misc/transaction810-import.cgi @@ -0,0 +1,76 @@ +<% include("/elements/header.html",'Batch Customer Import') %> + +<FORM ACTION="process/transaction810-import.cgi" METHOD="post" ENCTYPE="multipart/form-data"> + +Import a CSV file containing 810 data. +<BR><BR> + +<!-- Simple file format is CSV, with the following field order: <i>duns, inv_num, 867_usage, esiid, tdsp, due_date, inv_date, usage_kwatts, srvc_from_date, srvc_to_date, puct_fund, billed_demand, measure_demand, bill_status, billing_type, 997_ack</i> +<BR><BR> --> + +Extended file format is CSV, with the  +<BR><BR> + +<%$req%> Required fields +<BR><BR> + +[1] This field has special treatment upon import: If a string is passed instead +of an integer, the string is searched for and if necessary auto-created in the +target table. +<BR><BR> + +[2] <i>username</i> and <i>_password</i> are required if <i>pkgpart</i> is specified. +<BR><BR> + +<% &ntable("#cccccc") %> + +<% include('/elements/tr-select-agent.html', '', #$agentnum, +              'label'       => "<B>Agent</B>", +              'empty_label' => 'Select agent', +           ) +%> + +<TR> +  <TH ALIGN="right">Format</TH> +  <TD> +    <SELECT NAME="format"> +<!--      <OPTION VALUE="simple">Simple --> +      <OPTION VALUE="extended" SELECTED>Extended +    </SELECT> +  </TD> +</TR> + +<TR> +  <TH ALIGN="right">CSV filename</TH> +  <TD><INPUT TYPE="file" NAME="csvfile"></TD> +</TR> +% #include('/elements/tr-select-part_referral.html') +% + + +<!-- +<TR> +  <TH>First package</TH> +  <TD> +    <SELECT NAME="pkgpart"><OPTION VALUE="">(none)</OPTION> +% foreach my $part_pkg ( qsearch('part_pkg',{'disabled'=>'' }) ) {  + +       <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg. ' - '. $part_pkg->comment %></OPTION> +% }  + +    </SELECT> +  </TD> +</TR> +--> + +</TABLE> +<BR><BR> + +<INPUT TYPE="submit" VALUE="Import"> +</FORM> + +<% include('/elements/footer.html') %> + +<%once> +my $req = qq!<font color="#ff0000">*</font>!; +</%once> diff --git a/httemplate/misc/usage_elec_prefilled_input.cgi b/httemplate/misc/usage_elec_prefilled_input.cgi new file mode 100755 index 000000000..43b45d0d0 --- /dev/null +++ b/httemplate/misc/usage_elec_prefilled_input.cgi @@ -0,0 +1,245 @@ +%my $debug=0; # toggle debug +%my ($svcnum,  $p_prev_date, $p_curr_date, $p_prev_reading, $p_curr_reading, +%    $p_tdsp, $p_meter_mult, $p_total_usage, $p_measured_demand,  +%    $p_billed_demand, $p_svcnum, $p_entry_date, $p_meter_number, +%    $p_first, $p_last, $p_balance, $p_last_billed); +%my ($pkgnum, $svcpart, $svc_external ); +%my @field_descriptions = ( 'prev date', 'curr date', 'prev reading', +%                           'curr reading', 'tdsp', 'meter mult', +%                           'total usage', 'measured demand', 'billed demand', +%                           'svcnum', 'entry date', 'meter number' ); +%my @field_name = qw / prev_date curr_date prev_read curr_read tdsp  +%                      meter_multiplier total_usage measured_demand +%                      billed_demand svcnum _date meter_number /; +%my $date_exception = '(prev_date|curr_date|_date)'; +% +%if ( $cgi->param('error') ) { +%  ### handle error call +%  $svcnum = $cgi->param('svcnum'); +%} +%else { +% +%  my($query) = $cgi->keywords; +%#  $query =~ /^(\d+)$/ or die "unparsable svcnum"; +%  #$svcnum=$1; +% +%  $p_prev_date        = $cgi->param('p_prev_date'); +%  $p_curr_date        = $cgi->param('p_curr_date'); +%  $p_prev_reading     = $cgi->param('p_prev_reading'); +%  $p_curr_reading     = $cgi->param('p_curr_reading'); +%  $p_tdsp             = $cgi->param('p_tdsp'); +%  $p_meter_mult       = $cgi->param('p_meter_mult'); +%  $p_total_usage      = $cgi->param('p_total_usage'); +%  $p_measured_demand  = $cgi->param('p_measured_demand'); +%  $p_billed_demand    = $cgi->param('p_billed_demand'); +%  $p_svcnum = $svcnum = $cgi->param('p_svcnum'); +%  $p_first            = $cgi->param('p_first'); +%  $p_last             = $cgi->param('p_last'); +%  $p_balance          = $cgi->param('p_balance'); +%  $p_last_billed      = $cgi->param('p_last_billed'); +%  #$svcnum = $cgi->param('p_meter_number'); +%} +% +%# this is sample data for print in case no previous record of usage_elec +%my @sample_data = ( '20070201', '20070228', '10000', '100100', '76.50', +%                    '5', '500', '179', '220', "$svcnum", 'NA', '030234972LM'); +% +%### this is where i start +%###  +%### let gather all the info from usage_elec for the particular 'svcnum' +%### +%my $p1 = popurl(1); +% +%print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'), +%      "</FONT>" +%  if $cgi->param('error'); +% +%print qq!<FORM ACTION="${p1}process/usage_elec_manual_input.cgi" METHOD=POST>!; +% +%# print header +%#print header("Manually Adding Record to usage_elec Table", ''); +%print header("NAME: ${p_first} ${p_last}", ''); +%print header("BALANCE: \$${p_balance}  LAST BILLED: ${p_last_billed}", ''); +% +%#display +%# +%# +<TABLE BORDER=1> +%  +% # -ctran 04/10/08 +% # change getting previous 10 record to 13 so we can see at least 1 year +% # worth of transaction +% # get the previous 13 usage_elec items +% my @usage_obj = FS::usage_elec::query_usage($svcnum, 13);  +% +% # print the heading +% print "<TR bgcolor=#88b2ce class='maintitle'>" +%      . join("\n", map("<TH>" . $_ . "</TH>", @field_descriptions)) +%      . "</TR>\n"; +% +% if (@usage_obj) { +%   foreach my $usage (@usage_obj) { +%     # fill @usage_ele with data order by @field_name +%     my @usage_ele = (); +%     foreach my $field (@field_name) { +%       if ( $field =~ /$date_exception/ ) { +%         # exception handling of converting time to string +%         push(@usage_ele,time2str("%Y%m%d",$usage->$field)); +%       } +%       else { +%#debug: field= <% $field %> = <% $usage->$field %><BR> +%         push(@usage_ele, $usage->$field);  +%       } +%     } +% +%     print "<TR bgcolor=#e8e8ea class='mainbody'>"  +%          . join("\n", map("<TD>" . $_ . "</TD>", @usage_ele)) +%          . "</TR>\n"; +%   }  +% } +% +% ### +% ### gathering pre-filled information +% ### +% +% my ($h_prev_date, $h_prev_read, $h_tdsp, $h_meter_multiplier, +%     $h_measured_demand, $h_billed_demand, $h_svcnum, $h_meter_number); +% +% if (@usage_obj) { +%  # fill in all the history data +%  my $lindex = $#usage_obj; +%  $h_prev_date = time2str("%Y%m%d",$usage_obj[$lindex]->curr_date); +%  $h_prev_read = $usage_obj[$lindex]->curr_read; +%  $h_tdsp = $usage_obj[$lindex]->tdsp; +%  $h_meter_multiplier = $usage_obj[$lindex]->meter_multiplier; +%  $h_measured_demand = $usage_obj[$lindex]->measured_demand; +%  $h_billed_demand = $usage_obj[$lindex]->billed_demand; +%  $h_svcnum = $usage_obj[$lindex]->svcnum; +%  $h_meter_number = $usage_obj[$lindex]->meter_number; +% } +%  +% # let figure out if tdsp is charge or not (only charge for BUSINESS) +% my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$p_svcnum}); +% my $part_svc = qsearchs('part_svc',{'svcpart' => $cust_svc->svcpart}); +% $p_tdsp = '0.00' if ($part_svc->svc !~ /BUSINESS/i); +% +% # this hash store info to configure the table with text box for input +% # size - [int] how big textbox +% # value - [alpha numeric] default value of the text box +% # extra - [alpha numeric] other option for text box.  I.E. READONLY +% #         mean the text box is a readonly +% my %field_info = ( +%                   prev_date => { +%                                  'size'     => '8',  +%                                  'value'    => $p_prev_date,  +%                                }, +%                   curr_date => { 'size'     => '8',  +%                                  'value'    => $p_curr_date,  +%                                }, +%                   prev_read => { +%                                  'size'     => '8',  +%                                  'value'    => $p_prev_reading,  +%                                }, +%                   curr_read => { 'size'     => '8', +%                                  'value'    => $p_curr_reading,  +%                                }, +%                   tdsp      => { +%                                  'size'     => '8',  +%                                  'value'    => $p_tdsp/100, +%                                }, +%                   meter_multiplier => { +%                                  'size'  => '4',  +%                                  'value' => $p_meter_mult, +%                                       }, +%                   total_usage => { 'size'     => '6', +%                                    'value'    => $p_total_usage, +%                                  }, +%                   measured_demand => { +%                                  'size'  => '4',  +%                                  'value' => $p_measured_demand, +%                                      }, +%                   billed_demand => { +%                                  'size'  => '4',  +%                                  'value' => $p_billed_demand, +%                                    }, +%                   svcnum => { +%                               'size'     => '6',  +%                               'value'    => $p_svcnum, +%                               'extra'    => 'READONLY' +%                             }, +%                   _date => { +%                              'size'     => '8',  +%                              'value'    => 'N/A', +%                              'extra'    => 'READONLY' +%                             }, +%                   meter_number => { +%                              'size'     => '14',  +%                              'value'    => $h_meter_number, +%                                   }, +%                 ); +% +% +% # input box for entry +% print qq !<TR bgcolor=#e8e8ea class='mainbody'>!;  +% my $input_style = 'STYLE="color:#000000; background-color: #FFFFCC;"'; +% foreach my $field (@field_name) { +%   my $txt = ''; +%   $txt .= ' SIZE=' . $field_info{$field}->{'size'}  +%                                   if (exists($field_info{$field}->{'size'})); +%   $txt .= ' VALUE="' . $field_info{$field}->{'value'} . '"'  +%                                   if (exists($field_info{$field}->{'value'})); +%   $txt .= ' ' . $field_info{$field}->{'extra'}  +%                                   if (exists($field_info{$field}->{'extra'})); +%   if ($field eq 'meter_multiplier') { +%     print qq ! +%               <TD> +%                <TABLE> +%                 <TD> +%                   <INPUT TYPE="text" $input_style NAME="$field" $txt> +%                 </TD> +%                 <TD> +%                   <INPUT TYPE="checkbox" NAME="ignore_meter_multiplier">Ignore<P> +%                 </TD> +%                </TABLE> +%               </TD> +%              !; +%   } +%   else { +%     print qq ! +%               <TD> +%               <INPUT TYPE="text" $input_style NAME="$field" $txt> +%               </TD> +%              !; +%  } +% }  +% print "</TR>\n"; +%  + +</TABLE><BR> +%print "<BR>measured demand = ",$h_measured_demand,"\n<BR>" if ($debug); +% +<INPUT TYPE="submit" VALUE="Submit"> +<INPUT TYPE="Reset" VALUE="Clear"> +<INPUT TYPE=BUTTON OnClick="$cgi->redirect(popurl(2)."view/svc_external.cgi?$svcnum")" +       VALUE="Cancel"> +% +% print qq ! +%   <br><br> +%   prev_date, curr_date - +%               8 digit in format of yyyymmdd (y-year m-month d-date)<br> +%   prev_read, curr_read - positive interger. Also, curr_read > prev_read +%                          Unless meter multiplier ignore value is set.  In +%                          this case, this condition will be ignore.<br> +%   tdsp - an dollar amount w/wo cent<br> +%   meter_multiplier - positive integer<br> +%   total_usage - +%           should equal (total_usage = (prev_read-curr_read) * meter_multiplier) +%           unless meter multiplier ignore value is set<br> +%   measured_demand - positive integer<br> +%   billed_demand - positive integer<br> +% !; +% +    </FORM> +  </BODY> +</HTML> +  | 
