use SL::PE;
use SL::OE;
use Data::Dumper;
+use DateTime;
use List::Util qw(max sum);
use SL::DB::Default;
$form->{callback} = "$form->{script}?action=add&type=$form->{type}" unless $form->{callback};
- $form->{jsscript} = "date";
-
&invoice_links;
&prepare_invoice;
&display_form;
$form->{vc} = 'customer';
# create links
- $form->{webdav} = $::lx_office_conf{features}->{webdav};
+ $form->{webdav} = $::instance_conf->get_webdav;
$form->create_links("AR", \%myconfig, "customer");
my $editing = $form->{id};
- $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded currency cp_id intnotes id shipto_id));
+ $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id
+ taxincluded currency cp_id intnotes id shipto_id
+ delivery_term_id));
+ $form->{shipto} = 1 if $editing || $form->{convert_from_oe_ids} || $form->{convert_from_do_ids};
IS->get_customer(\%myconfig, \%$form);
#quote all_customer Bug 133
$form->restore_vars(qw(id));
IS->retrieve_invoice(\%myconfig, \%$form);
- $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes cp_id shipto_id));
+ $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes
+ cp_id shipto_id delivery_term_id));
$form->restore_vars(qw(taxincluded)) if $form->{id};
$form->restore_vars(qw(salesman_id)) if $editing;
$TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update};
$TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/;
- $::request->{layout}->focus('#customer');
-
my $follow_up_vc = $form->{customer};
$follow_up_vc =~ s/--\d*\s*$//;
$TMPL_VAR{customer_name} = $follow_up_vc;
shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax
shiptoemail shiptodepartment_1 shiptodepartment_2 shiptocp_gender message email subject cc bcc taxaccounts cursor_fokus
convert_from_do_ids convert_from_oe_ids
+ show_details
), @custom_hiddens,
map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}];
- $form->{jsscript} = 1;
- $::request->layout->use_stylesheet('presenter/record/record_list.css');
+ $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase));
+
$form->header();
print $form->parse_html_template("is/form_header", \%TMPL_VAR);
my ($tax, $subtotal);
$form->{taxaccounts_array} = [ split(/ /, $form->{taxaccounts}) ];
- if ($form->{customer_id}) {
+ if( $form->{customer_id} && !$form->{taxincluded_changed_by_user} ) {
my $customer = SL::DB::Customer->new(id => $form->{customer_id})->load();
$form->{taxincluded} = defined($customer->taxincluded_checked) ? $customer->taxincluded_checked : $myconfig{taxincluded_checked};
}
$form->{oldinvtotal} = $form->{invtotal};
+ $form->{ALL_DELIVERY_TERMS} = SL::DB::Manager::DeliveryTerm->get_all_sorted();
+
print $form->parse_html_template('is/form_footer', {
is_type_credit_note => ($form->{type} eq "credit_note"),
totalpaid => $totalpaid,
}
if ($rows) {
- $form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
+ $form->{"qty_$i"} = $form->parse_amount(\%myconfig, $form->{"qty_$i"});
+ if( !$form->{"qty_$i"} ) {
+ $form->{"qty_$i"} = 1;
+ }
if ($rows > 1) {
my $closedto = $form->datetonum($form->{closedto}, \%myconfig);
my $invdate = $form->datetonum($form->{invdate}, \%myconfig);
+ $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+ if ($form->date_max_future($invdate, \%myconfig));
$form->error($locale->text('Cannot post invoice for a closed period!'))
if ($invdate <= $closedto);
$form->{rowcount}--;
$form->{invdate} = $form->current_date(\%myconfig);
$form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate};
+ $form->{employee_id} = SL::DB::Manager::Employee->current->id;
# remember pricegroups for "use as new"
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
if (IS->has_storno(\%myconfig, $form, "ar")) {
$form->error($locale->text("Invoice has already been storno'd!"));
}
+ if ($form->datetonum($form->{invdate}, \%myconfig) <= $form->datetonum($form->{closedto}, \%myconfig)) {
+ $form->error($locale->text('Cannot storno invoice for a closed period!'));
+ }
map({ my $key = $_; delete($form->{$key}) unless (grep({ $key eq $_ } qw(id login password type))); } keys(%{ $form }));
$form->{storno} = 1;
$form->{id} = "";
$form->{invnumber} = "Storno zu " . $form->{invnumber};
+ $form->{invdate} = DateTime->today->to_lxoffice;
$form->{rowcount}++;
post();
$main::lxdebug->leave_sub();
}
+sub post_and_e_mail {
+ e_mail();
+};
+
sub e_mail {
$main::lxdebug->enter_sub();