From b6c5d35cc215c18d3fb1d9aeb0239a610eb68c32 Mon Sep 17 00:00:00 2001
From: Christopher Burger <burgerc@freeside.biz>
Date: Mon, 7 Aug 2017 16:21:09 -0400
Subject: [PATCH] RT# 76992 - Added 3 new import formats that combine Location
 and Phone Service

---
 FS/FS/cust_pkg/Import.pm             | 20 +++++++++++++-------
 httemplate/misc/cust_pkg-import.html | 24 ++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/FS/FS/cust_pkg/Import.pm b/FS/FS/cust_pkg/Import.pm
index 63a9909e5..27fced195 100644
--- a/FS/FS/cust_pkg/Import.pm
+++ b/FS/FS/cust_pkg/Import.pm
@@ -283,17 +283,23 @@ sub batch_import {
     };
   }
 
-  my $formatfields = _formatfields();
+  #probably can delete below - moved to line 292
+  #my $formatfields = _formatfields();
 
-  die "unknown format $format" unless $formatfields->{$format};
+  my @formats = split /-/, $format;
+  foreach my $f (@formats){
 
-  foreach my $field ( @{ $formatfields->{$format} } ) {
+    my $formatfields = _formatfields();
+    die "unknown format $format" unless $formatfields->{$f};
 
-    push @fields, sub {
-      my( $self, $value, $conf, $param ) = @_;
-      $param->{"$format.$field"} = $value;
-    };
+    foreach my $field ( @{ $formatfields->{$f} } ) {
 
+      push @fields, sub {
+        my( $self, $value, $conf, $param ) = @_;
+        $param->{"$f.$field"} = $value;
+      };
+
+    }
   }
 
   $opt->{'fields'} = \@fields;
diff --git a/httemplate/misc/cust_pkg-import.html b/httemplate/misc/cust_pkg-import.html
index 2ed3c48f1..ac25e9314 100644
--- a/httemplate/misc/cust_pkg-import.html
+++ b/httemplate/misc/cust_pkg-import.html
@@ -48,6 +48,9 @@ Import a file containing customer packages.
         <OPTION VALUE="location">Location
         <OPTION VALUE="location-agent_custid">Location with agent_custid
         <OPTION VALUE="location-agent_custid-agent_pkgid">Location with agent_custid and agent_pkgid
+        <OPTION VALUE="location-svc_phone">Location with phone service
+        <OPTION VALUE="location-svc_phone-agent_custid">Location with phone service and agent_custid
+        <OPTION VALUE="location-svc_phone-agent_custid-agent_pkgid">Location with phone service and agent_custid and agent_pkgid
       </SELECT>
     </TD>
   </TR>
@@ -150,6 +153,27 @@ address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$
 </i>
 <BR><BR>
 
+<b>Location with phone service</b> format has the following field order: <i>custnum<%$req%>,
+pkgpart<%$req%>, discountnum,
+start_date, setup, bill, last_bill, susp, adjourn, cancel, expire,
+address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin
+</i>
+<BR><BR>
+
+<b>Location with phone service and agent_custid</b> format has the following field order: <i>agent_custid<%$req%>,
+pkgpart<%$req%>, discountnum,
+start_date, setup, bill, last_bill, susp, adjourn, cancel, expire,
+address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin
+</i>
+<BR><BR>
+
+<b>Location with phone service and agent_custid and agent_pkgid</b> format has the following field order: <i>agent_custid<%$req%>, agent_pkgid,
+pkgpart<%$req%>, discountnum,
+start_date, setup, bill, last_bill, susp, adjourn, cancel, expire,
+address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country<%$req%>, countrycode, phonenum, sip_password, pin
+</i>
+<BR><BR>
+
 <%$req%> Required fields
 <BR><BR>
 
-- 
2.20.1