/usr/share/perl5/EB/examples/Kasverkoop.pm is in eekboek 2.00.03-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #! perl
# RCS Info : $Id: Kasverkoop.pm,v 1.1 2009/05/06 18:11:04 jv Exp $
# Author : Johan Vromans
# Created On : Tue Dec 30 11:56:22 2008
# Last Modified By: Johan Vromans
# Last Modified On: Tue Dec 30 15:57:06 2008
# Update Count : 23
# Status : Unknown, Use with caution!
# Om deze module te gebruiken dient deze te worden geplaatst in de
# werk-directory. Vervolgens moet aan .eekboek.conf de volgende sectie
# worden toegevoegd:
#
# [shell]
# userdefs = Kasverkoop
#
# De naam achter userdefs moet uiteraard dezelfde zijn als die
# waaronder de module is opgeslagen, zonder de ".pm" extensie.
package EB::Shell::Kasverkoop;
use strict;
use warnings;
our $VERSION = sprintf "%d.%03d", q$Revision: 1.1 $ =~ /(\d+)/g;
use EB;
# Implementatie opdracht "kasverkoop".
#
# kasverkoop datum debiteur omschrijving bedrag
#
# Dit wordt omgezet in twee opdrachten:
#
# verkoop datum Kasboeking debiteur omschrijving bedrag
# kas datum omschrijving deb debiteur bedrag
sub EB::Shell::do_kasverkoop {
my ($self, @args) = @_;
# Controleer argumenten. "--nr=.." is een intern doorgegeven
# argument wanneer de vorm "kasverkoop:boekstuknummer" wordt
# gebruikt.
my $bsknr;
if ( @args && $args[0] =~ /^--?nr=(.+)/ ) {
$bsknr = $1;
shift(@args);
}
my $datum;
if ( @args && $args[0] =~/^\d+-\d+(-\d+)?$/ ) {
$datum = shift(@args);
}
else {
$datum = iso8601date();
}
# Nu moeten nog drie argumenten overblijven.
die("Onvoldoende argumenten. Nodig: [ datum ] debiteur omschrijving bedrag\n")
unless @args == 3;
# Opmaken verkoopboeking.
my @cmd1 = qw(verkoop);
push(@cmd1, $datum, $args[1], $args[0], $args[1], $args[2]);
# Opmaken kasboeking.
my @cmd2 = qw(kas);
push(@cmd2, "--nr=$bsknr") if $bsknr;
push(@cmd2, $datum, $args[1], "deb", $args[0], $args[2]);
for my $command ( \@cmd1, \@cmd2 ) {
warn("+ @$command\n") if $self->{echo};
my $cmd = shift(@$command);
my $m = $self->can("do_$cmd");
die("Onbekende opdracht: $cmd (eigen schuld)") unless $m;
my $output = $self->$m(@$command);
$self->print("$output\n") if $output;
}
return;
}
# En uiteraard, de hulpboodschap.
sub EB::Shell::help_kasverkoop {
return <<EOD;
Eenvoudige manier om een kasverkoop te boeken.
kasverkoop <datum> <debiteur> <omschrijving> <bedrag>
Bijvoorbeeld:
kasverkoop 28-01 PIETJE "Dansles" 25,00
Dit wordt omgezet in de opdrachten:
verkoop 28-01 "Kasverkoop" PIETJE "Dansles" 25,00
kas 28-01 "Kasverkoop" deb PIETJE 25,00
EOD
}
# Package ends here.
1;
|