#my $d_dbuser = 'freeside';
my $d_dbuser = 'enet';
#my $d_dbuser = 'ivan';
+#my $d_dbuser = 'freesideimport';
#my $agentnum = 1;
my $agentnum = 13;
my $legacy_ppp_svcnum = 2;
my $legacy_email_svcnum = 3;
#my $legacy_broadband_svcnum = 4;
-my $legacy_broadband_svcnum = 14;
+#my $legacy_broadband_svcnum = 14;
#my $previous_credit_reasonnum = 1;
my $previous_credit_reasonnum = 1220;
$payby_map{ shift->{billing_type} };
}
+sub payinfo {
+ my $hash = shift;
+ my $payby = payby($hash);
+ my $info;
+ my $cc =
+ $hash->{'credit_card_number_1'}.
+ $hash->{'credit_card_number_2'}.
+ $hash->{'credit_card_number_3'}.
+ $hash->{'credit_card_number_4'};
+ my $bank =
+ $hash->{'bank_account_number'}.
+ '@'.
+ $hash->{'bank_transit_number'};
+ if ($payby eq 'CARD') {
+ $info = $cc;
+ }elsif ($payby eq 'CHEK') {
+ $info = $bank;
+ }elsif ($payby eq 'BILL') {
+ $info = $hash->{'blanket_purchase_order_number'};
+ $bank =~ s/[^\d\@]//g;
+ $cc =~ s/\D//g;
+ if ( $bank =~ /^\d+\@\d{9}/) {
+ $info = $bank;
+ $payby = 'DCHK';
+ }
+ if ( $cc =~ /^\d{13,16}/ ) {
+ $info = $cc;
+ $payby = 'DCRD';
+ }
+ }else{
+ die "unexpected payby";
+ }
+ ($info, $payby);
+}
+
sub ut_name_fixup {
my ($object, $field) = (shift, shift);
my $value = $object->getfield($field);
'domsvc' => sub{ $legacy_domain_svcnum },
'status' => 'status',
},
+# 'fixup' => sub { my $svc_acct = shift;
+# my $row = shift;
+# my $id = $row->{'master_account'}
+# ? 'slave:'. $row->{'customer_id'}
+# : $row->{'login'};
+# my $status = $svc_acct->status;
+# if ( $status ne 'Current'
+# && $status ne 'On Hold' )
+# {
+# $cancel{$id} =
+# str2time($row->{termination_date});
+# warn "not creating (cancelled) svc_acct for " .
+# $svc_acct->username. "\n";
+# return 1
+# }
+# $susp{$id} = str2time($row->{hold_date})
+# if $status eq 'On Hold';
+# $adjo{$id} = str2time($row->{hold_date})
+# if ( $status eq 'Current' &&
+# $row->{hold_date} );
+# $bill{$id} =
+# str2time($row->{expiration_date});
+# '';
+# },
'fixup' => sub { my $svc_acct = shift;
my $row = shift;
my $id = $row->{'master_account'}
{
$cancel{$id} =
str2time($row->{termination_date});
- warn "not creating (cancelled) svc_acct for " .
- $svc_acct->username. "\n";
return 1
}
$susp{$id} = str2time($row->{hold_date})
$row->{hold_date} );
$bill{$id} =
str2time($row->{expiration_date});
- '';
- },
- 'skey' => sub { my $svc_acct = shift;
- my $row = shift;
- my $id = $row->{'master_account'}
- ? 'slave:'. $row->{'customer_id'}
- : $row->{'login'};
+ my $object =
+ qsearchs( 'svc_acct',
+ { 'username' => $row->{'login'} }
+ );
+ unless( $object ) {
+ warn "can't find svc_acct for legacy ppp ".
+ $row->{'login'}, "\n";
+ return 1;
+ }
+
+ $object_map{svc_acct}{$id} = $object->svcnum;
+ return 1;
},
+# 'skey' => sub { my $svc_acct = shift;
+# my $row = shift;
+# my $id = $row->{'master_account'}
+# ? 'slave:'. $row->{'customer_id'}
+# : $row->{'login'};
+# },
},
cust_main => { 'stable' => 'cust',
'mapping' =>
'ship_zip' => sub { or_b('zip_code', shift) },
'ship_daytime' => sub { or_p('phone', shift) },
'ship_fax' => sub { or_p('fax', shift) },
- 'payby' => \&payby,
- 'payinfo' => sub { my $hash = shift;
- my $payby = payby($hash);
- if ($payby eq 'CARD') {
- $hash->{'credit_card_number_1'}.
- $hash->{'credit_card_number_2'}.
- $hash->{'credit_card_number_3'}.
- $hash->{'credit_card_number_4'};
- }elsif ($payby eq 'CHEK') {
- $hash->{'bank_account_number'}.
- '@'.
- $hash->{'bank_transit_number'};
- }elsif ($payby eq 'BILL') {
- $hash->{'blanket_purchase_order_number'};
- }else{
- die "unexpected payby";
- }
- },
- 'paycvv' => sub { my $hash = shift;
- my $payby = payby($hash);
- if ($payby eq 'CARD') {
- $hash->{'credit_card_cvv_number'};
- }else{
- '';
- }
- },
- 'paydate' => sub { my $hash = shift;
- my $payby = payby($hash);
- if ($payby eq 'CARD') {
- '20'.
- $hash->{'credit_card_exp_date_2'}.
- '-'.
- substr(
- $hash->{'credit_card_exp_date_1'},
- 0,
- 2,
- ).
- '-01';
- }else{
- '2037-12-01';
- }
- },
- 'payname' => sub { my $hash = shift;
- my $payby = payby($hash);
- if ($payby eq 'CARD') {
- $hash->{'credit_card_name'};
- }elsif ($payby eq 'CHEK') {
- $hash->{'bank_name'};
- }else{
- '';
- }
- },
- 'paytype' => sub { my $hash = shift;
- my $payby = payby($hash);
- if ($payby eq 'CHEK') {
- $hash->{'bank_account_to_debit'}
- ? 'Personal '.
- $hash->{bank_account_to_debit}
- : '';
- }else{
- '';
- }
- },
'tax' => sub { shift->{taxable} eq '' ? 'Y' : '' },
'refnum' => sub { $referrals{shift->{'referred_from'}}
|| 1
ut_name_fixup($cust_main, 'first');
ut_name_fixup($cust_main, 'company');
ut_name_fixup($cust_main, 'last');
+
+ my ($info, $payby) = payinfo($row);
+ $cust_main->payby($payby);
+ $cust_main->payinfo($info);
+
+ $cust_main->paycvv(
+ $row->{'credit_card_cvv_number'}
+ )
+ if ($payby eq 'CARD' or $payby eq 'DCRD');
+
+ $cust_main->paydate('20'.
+ $row->{'credit_card_exp_date_2'}. '-'.
+ substr(
+ $row->{'credit_card_exp_date_1'},
+ 0,
+ 2,
+ ).
+ '-01'
+ )
+ if ($payby eq 'CARD' or $payby eq 'DCRD');
+
+ my $payname = '';
+ $payname = $row->{'credit_card_name'}
+ if ($payby eq 'CARD' or $payby eq 'DCRD');
+ $payname = $row->{'bank_name'}
+ if ($payby eq 'CHEK' or $payby eq 'DCHK');
+ $cust_main->payname($payname);
+
+ $cust_main->paytype(
+ $row->{'bank_account_to_debit'}
+ ? 'Personal '.
+ $row->{bank_account_to_debit}
+ : ''
+ )
+ if ($payby eq 'CHEK' or $payby eq 'DCHK');
+
$cust_main->payby('BILL')
if ($cust_main->payby eq 'CHEK' &&
$cust_main->payinfo !~ /^\d+\@\d{9}$/);
ut_text_fixup($cust_main, 'address1');
ut_state_fixup($cust_main, 'state');
ut_zip_fixup($cust_main, 'zip');
+
+
'';
},
'skey' => sub { my $object = shift;
'svcpart' => sub{ $legacy_email_svcnum },
'domsvc' => sub{ $legacy_domain_svcnum },
},
- 'fixup' => sub { my $object = shift;
+# 'fixup' => sub { my ($object, $row) = (shift,shift);
+# my ($sd,$sm,$sy) = split '/',
+# $row->{shut_off_date}
+# if $row->{shut_off_date};
+# if ($sd && $sm && $sy) {
+# my ($cd, $cm, $cy) = (localtime)[3,4,5];
+# $cy += 1900; $cm++;
+# return 1 if $sy < $cy;
+# return 1 if ($sy == $cy && $sm < $cm);
+# return 1 if ($sy == $cy && $sm == $cm && $sd <= $cd);
+# }
+# return 1 if $object_map{'cust_main'}{$object->username};
+# '';
+# },
+ 'fixup' => sub { my ($object, $row) = (shift,shift);
my ($sd,$sm,$sy) = split '/',
- $object->{shut_off_date}
- if $object->{shut_off_date};
+ $row->{shut_off_date}
+ if $row->{shut_off_date};
if ($sd && $sm && $sy) {
my ($cd, $cm, $cy) = (localtime)[3,4,5];
$cy += 1900; $cm++;
return 1 if ($sy == $cy && $sm == $cm && $sd <= $cd);
}
return 1 if $object_map{'cust_main'}{$object->username};
- '';
- },
- 'skey' => sub { my $object = shift;
- my $href = shift;
- 'email:'. $href->{'email_customer_id'};
+ my $svc_acct =
+ qsearchs( 'svc_acct',
+ { 'username' => $row->{'login'} }
+ );
+ unless( $svc_acct ) {
+ warn "can't find svc_acct for email ".
+ $row->{'login'}. "\n";
+ return 1;
+ }
+ $object_map{svc_acct}{'email:'.$row->{'email_customer_id'}} = $svc_acct->svcnum;
+ return 1;
},
+# 'skey' => sub { my $object = shift;
+# my $href = shift;
+# 'email:'. $href->{'email_customer_id'};
+# },
'wrapup' => sub { for my $id (keys %{$object_map{'cust_pkg'}}){
next unless $id =~ /^email:(\d+)/;
my $custid = $1;
$object_map{'svc_acct'}{$id} }
);
unless ($cust_svc) {
- warn "can't find legacy ppp $id\n";
+ warn "can't find legacy email $id\n";
next;
}
$cust_svc->
pkgnum($cust_pkg_map{$custid});
my $error = $cust_svc->replace;
- warn "error linking legacy ppp $id: $error\n";
+ warn "error linking legacy email $id: $error\n";
}
},
},
my ($id) = $href->{'id'};
my ($skey) = $href->{'skey'};
- $d_dbh->do("delete from $table"); #XXX FIXME!
+ #$d_dbh->do("delete from $table");
my $s_sth = $s_dbh->prepare("select count(*) from $stable");
$s_sth->execute or die $s_sth->errstr;