$form->{currency} = $form->{curr};
}
- $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'CT', 'trans_id' => $form->{id});
+ $::form->{CUSTOM_VARIABLES} = { };
+ my %specs = ( CT => { field => 'id', name_prefix => '', },
+ Contacts => { field => 'cp_id', name_prefix => 'cp', },
+ );
- CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
+ for my $module (keys %specs) {
+ my $spec = $specs{$module};
+
+ $::form->{CUSTOM_VARIABLES}->{$module} = CVar->get_custom_variables(module => $module, trans_id => $::form->{ $spec->{field} });
+ CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}->{$module}, name_prefix => $spec->{name_prefix})
+ if scalar @{ $::form->{CUSTOM_VARIABLES}->{$module} };
+ }
$form->header;
print $form->parse_html_template('ct/form_header');
CT->query_titles_and_greetings(\%::myconfig, $::form);
CT->get_contact(\%::myconfig, $::form) if $::form->{cp_id};
+ $::form->{CUSTOM_VARIABLES}{Contacts} = CVar->get_custom_variables(module => 'Contacts', trans_id => $::form->{cp_id});
+ CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}{Contacts}, name_prefix => 'cp')
+ if scalar @{ $::form->{CUSTOM_VARIABLES}->{Contacts} };
+
$::form->{contacts_label} = \&_contacts_label;
print $::form->ajax_response_header(), $::form->parse_html_template('ct/_contact');
}
sub delete_shipto {
- $main::lxdebug->enter_sub();
+ $::lxdebug->enter_sub;
+ $::auth->assert('customer_vendor_edit');
- $main::auth->assert('customer_vendor_edit');
+ if (!$::form->{shipto_id}) {
+ flash('error', $::locale->text('No shipto selected to delete'));
+ } else {
- my $form = $main::form;
- my %myconfig = %main::myconfig;
+ CT->get_shipto(\%::myconfig, $::form);
- CT->get_shipto(\%myconfig, \%$form);
+ my $shipto = SL::DB::Manager::Shipto->find_by(shipto_id => $::form->{shipto_id});
- unless ($form->{shiptoused}) {
- CT->delete_shipto($form->{shipto_id});
- @$form{ grep /^shipto/, keys %$form } = undef;
+ if ($shipto->used) {
+ $shipto->detach->save;
+ flash('info', $::locale->text('Shipto is in use and was flagged invalid.'));
+ } else {
+ $shipto->delete;
+ flash('info', $::locale->text('Shipto deleted.'));
+ }
+ delete $::form->{$_} for grep /^shipto/, keys %$::form;
}
edit();
- $main::lxdebug->leave_sub();
+ $::lxdebug->leave_sub;
}
sub delete_contact {
$::lxdebug->enter_sub;
$::auth->assert('customer_vendor_edit');
- CT->get_contact(\%::myconfig, $::form);
+ if (!$::form->{cp_id}) {
+ flash('error', $::locale->text('No contact selected to delete'));
+ } else {
- my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+ CT->get_contact(\%::myconfig, $::form);
- if ($contact->used) {
- $contact->detach;
- flash('info', $::locale->text('Contact is in use and was flagged invalid.'));
- } else {
- $contact->delete;
- flash('info', $::locale->text('Contact deleted.'));
+ my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+
+ if ($contact->used) {
+ $contact->detach->save;
+ flash('info', $::locale->text('Contact is in use and was flagged invalid.'));
+ } else {
+ $contact->delete;
+ flash('info', $::locale->text('Contact deleted.'));
+ }
+ delete $::form->{$_} for grep /^cp_/, keys %$::form;
}
- delete $::form->{$_} for grep /^cp_/, keys %$::form;
edit();