EekBoek

 view release on metacpan or  search on metacpan

lib/EB/Tools/Einde.pm  view on Meta::CPAN

#! perl --			-*- coding: utf-8 -*-

use utf8;

# Einde.pm -- Eindejaarsverwerking
# Author          : Johan Vromans
# Created On      : Sun Oct 16 21:27:40 2005
# Last Modified By: Johan Vromans
# Last Modified On: Sat Jun 19 00:42:33 2010
# Update Count    : 247
# Status          : Unknown, Use with caution!

package main;

our $cfg;
our $dbh;

package EB::Tools::Einde;

use strict;
use warnings;

use EB;
use EB::Format;
use EB::Report;
use EB::Report::GenBase;
use EB::Report::Journal;
use EB::Report::Open;

sub new {
    my ($class) = @_;
    $class = ref($class) || $class;
    return bless {} => $class;
}

sub perform {
    my ($self, $args, $opts) = @_;

    # Akties:
    # Afboeken resultaatrekeningen -> Winstrekening
    # Afboeken BTW I/V H/L -> BTW Betaald

    my $tot = 0;

    my $date = $cfg->val(qw(internal now), iso8601date());
    $date = $dbh->adm("end") unless $date lt $dbh->adm("end");

    my $sth;
    my $rr;
    my $bky = $opts->{boekjaar};
    my $def = $opts->{definitief};
    my $eb;
    if ( $opts->{eb} ) {
	unless ( open($eb, '>:encoding(utf-8)', $opts->{eb}) ) {
	    warn("?", __x("Fout tijdens het aanmaken van bestand {file}: {err}",
			 file => $opts->{eb}, err => $!."")."\n");
	    return;
	}
	$opts->{eb_handle} = $eb;
    }

    my ($acc_id, $acc_desc, $acc_balance);

    warn("?",_T("Geen boekjaar opgegeven")."\n"), return unless $bky;

    $rr = $dbh->do("SELECT bky_begin, bky_end, bky_closed".
		   " FROM Boekjaren".
		   " WHERE bky_code = ?", $bky);
    warn("?",__x("Onbekend boekjaar: {bky}", bky => $bky)."\n"), return unless $rr;

    my ($begin, $end, $closed) = @$rr;
    if ( $closed ) {
	if ( $opts->{verwijder} ) {
	    warn("?",__x("Boekjaar {bky} is definitief afgesloten", bky => $bky)."\n");
	}
	else {
	    warn("?",__x("Boekjaar {bky} is reeds definitief afgesloten", bky => $bky)."\n");
	}
	return;
    }

    $dbh->begin_work;

    $dbh->sql_exec("DELETE FROM Boekjaarbalans where bkb_bky = ?", $bky)->finish;

    $dbh->commit, return if $opts->{verwijder};

    $opts->{STYLE} = "journaal";
    $opts->{LAYOUT} =
      [ { name => "date", title => _T("Datum"),              width => $date_width, },
	{ name => "desc", title => _T("Boekstuk/Grootboek"), width => 30, },
	{ name => "acct", title => _T("Rek"),                width =>  5, align => ">", },
	{ name => "deb",  title => _T("Debet"),              width =>  $amount_width, align => ">", },

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.714 second using v1.00-cache-2.02-grep-82fe00e-cpan-b63e86051f13 )