# format discount
$form->{discount} *= 100;
# format uri
- $form->{homepage} = 'http://' . $form->{homepage} unless $form->{homepage} =~ m|^https?://|;
+ $form->{homepage} = 'http://' . $form->{homepage} unless ((!$form->{homepage}) || $form->{homepage} =~ m|^https?://|);
&form_header;
&form_footer;
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- $form->get_lists(employees => "ALL_EMPLOYEES",
- taxzones => "ALL_TAXZONES",
+ $form->get_lists(taxzones => "ALL_TAXZONES",
currencies => "ALL_CURRENCIES");
$form->get_pricegroup(\%myconfig, { all => 1 });
$form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::lx_office_conf{features}->{vertreter};
+ $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{FU_created_for_user}, deleted => 0 ] ]);
+ $form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]);
+ $form->{USER} = SL::DB::Manager::Employee->current;
- $form->{ALL_SALESMEN} = $form->{ALL_EMPLOYEES};
$form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
$form->{is_customer} = $form->{db} eq 'customer';
- $form->{salesman_label} = sub { $_[0]->{name} ne "" ? $_[0]->{name} : $_[0]->{login} };
$form->{shipto_label} = \&_shipto_label;
$form->{contacts_label} = \&_contacts_label;
$form->{taxzone_id} = 0 if !$form->{id};
}
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 {
+
+ CT->get_contact(\%::myconfig, $::form);
- my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
+ my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id});
- 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.'));
+ 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();