package Form;
+use Carp;
use Data::Dumper;
use CGI;
use SL::DB;
use SL::DBConnect;
use SL::DBUtils;
+use SL::DB::Customer;
use SL::DB::Default;
+use SL::DB::PaymentTerm;
+use SL::DB::Vendor;
use SL::DO;
use SL::IC;
use SL::IS;
# this should gradually move to the layouts that need it
$layout->use_stylesheet("$_.css") for qw(
main menu list_accounts jquery.autocomplete
- jquery.multiselect2side frame_header/header
+ jquery.multiselect2side
ui-lightness/jquery-ui
jquery-ui.custom jqModal
);
$layout->use_javascript("$_.js") for (qw(
jquery jquery-ui jquery.cookie jqModal jquery.checkall jquery.download
- common part_selection switchmenuframe
+ common part_selection switchmenuframe autocomplete_part
), "jquery/ui/i18n/jquery.ui.datepicker-$::myconfig{countrycode}");
$self->{favicon} ||= "favicon.ico";
close OUT if $self->{OUT};
- Common::copy_file_to_webdav_folder($self) if ($::instance_conf->get_webdav
- and $::instance_conf->get_webdav_documents and not $self->{preview});
+ my $copy_to_webdav = $::instance_conf->get_webdav && $::instance_conf->get_webdav_documents && !$self->{preview};
if ($self->{media} eq 'file') {
copy(join('/', $self->{cwd}, $userspath, $self->{tmpfile}), $out =~ m|^/| ? $out : join('/', $self->{cwd}, $out)) if $template->uses_temp_file;
+ Common::copy_file_to_webdav_folder($self) if $copy_to_webdav;
$self->cleanup;
chdir("$self->{cwd}");
return;
}
+ Common::copy_file_to_webdav_folder($self) if $copy_to_webdav;
+
if ($self->{media} eq 'email') {
my $mail = new Mailer;
return $standard_dbh;
}
+sub set_standard_dbh {
+ my ($self, $dbh) = @_;
+ my $old_dbh = $standard_dbh;
+ $standard_dbh = $dbh;
+
+ return $old_dbh;
+}
+
sub date_closed {
$main::lxdebug->enter_sub();
my ($self, $myconfig, $reference_date) = @_;
- $reference_date = $reference_date ? conv_dateq($reference_date) . '::DATE' : 'current_date';
+ my $terms = $self->{payment_id} ? SL::DB::PaymentTerm->new(id => $self->{payment_id}) ->load
+ : $self->{customer_id} ? SL::DB::Customer ->new(id => $self->{customer_id})->load->payment
+ : $self->{vendor_id} ? SL::DB::Vendor ->new(id => $self->{vendor_id}) ->load->payment
+ : croak("Missing field in \$::form: payment_id, customer_id or vendor_id");
- my $dbh = $self->get_standard_dbh($myconfig);
- my ($payment_id, $duedate);
-
- if($self->{payment_id}) {
- $payment_id = $self->{payment_id};
- } elsif($self->{vendor_id}) {
- my $query = 'SELECT payment_id FROM vendor WHERE id = ?';
- ($payment_id) = selectrow_query($self, $dbh, $query, $self->{vendor_id});
- }
-
- if ($payment_id) {
- my $query = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|;
- ($duedate) = selectrow_query($self, $dbh, $query, $payment_id);
- }
+ my $duedate = $terms->calc_date(reference_date => $reference_date)->to_kivitendo;
$main::lxdebug->leave_sub();