use FrBr::Books::Util::Book;
use FrBr::Books::Util::Category;
use FrBr::Books::Util::Serie;
+use FrBr::Books::Util::Ort;
use FrBr::Books::Util::Verlag;
use FrBr::Books::Util::Waehrung;
sub auto : Private {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::auto(): ";
+ my $K = ( caller(0) )[3] . "(): ";
$c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
sub default : Private {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::default(): ";
+ my $K = ( caller(0) )[3] . "(): ";
$c->stash->{'template'} = 'not_implemented.tt2';
sub list : Local {
my ($self, $c) = @_;
- my $K = __PACKAGE__ . "::list(): ";
+ my $K = ( caller(0) )[3] . "(): ";
$c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
push @{ $c->stash->{'menu_path'} }, {
sub form_new : Path('new') {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::form_new(): ";
+ my $K = ( caller(0) )[3] . "(): ";
$c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
sub bookdata_session2stash : Private {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::bookdata_session2stash(): ";
+ my $K = ( caller(0) )[3] . "(): ";
$c->stash->{'book_edit'} = {} unless $c->stash->{'book_edit'};
$c->stash->{'book_edit'}{'title'} = $c->session->{'book_data_edit'}{'title'} if defined $c->session->{'book_data_edit'}{'title'};
sub bookdata_cgi2session : Private {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::bookdata_cgi2session(): ";
+ my $K = ( caller(0) )[3] . "(): ";
return 1 unless $c->request->params->{'book_form_sent'};
sub prepare_data_structures : Private {
my ( $self, $c ) = @_;
- my $K = __PACKAGE__ . "::prepare_data_structures(): ";
+ my $K = ( caller(0) )[3] . "(): ";
# Autoren zusammensammeln
my $autor_list_complete = get_author_list($c);
}
$c->log->debug( get_output_string( $K . "Verlage: ", $c->stash->{'verlagsliste'} ) );
+ # Aufbewahrungsorte zusammensammeln
+ my $ortsliste = get_ortsliste($c);
+ $c->log->debug( get_output_string( $K . "Aufbewahrungsorte gesamt: ", $ortsliste ) );
+ $c->stash->{'ortsliste'} = {};
+ $c->stash->{'orts_ids'} = [];
+ for my $ort ( @$ortsliste ) {
+ push @{$c->stash->{'orts_ids'}}, $ort->{'id'};
+ $c->stash->{'ortsliste'}{$ort->{'id'}} = $ort->{'name'};
+ }
+ $c->log->debug( get_output_string( $K . "Aufbewahrungsorte: ", $c->stash->{'ortsliste'} ) );
+
# Buchserien zusamensammeln
my $serienliste = get_serienliste($c);
$c->log->debug( get_output_string( $K . "Serien gesamt: ", $serienliste ) );
my $b_search_params = undef;
my $other_params = {};
$other_params->{'order_by'} = [ 'title' ];
- $other_params->{'join'} = [ 'waehrung', 'verlag', 'bindungsart' ];
+ $other_params->{'join'} = [ 'waehrung', 'verlag', 'ort', 'bindungsart' ];
$other_params->{'select'} = [
'me.id',
'me.title',
'me.bindungsart_id',
'bindungsart.art_name',
'me.verlags_id',
+ 'me.orts_id',
'me.isbn',
'me.buch_nr',
'me.ausgabejahr',
'waehrung.umrechnung_in_euro',
'verlag.name_short',
'verlag.name_long',
-
+ 'ort.name',
+ 'ort.descr',
+ 'ort.statisch',
];
$other_params->{'as'} = [
'id',
'bindungsart_id',
'bindungsart',
'verlags_id',
+ 'orts_id',
'isbn',
'buch_nr',
'ausgabejahr',
'umrechnung_in_euro',
'verlagsname_short',
'verlagsname_long',
+ 'ortsname',
+ 'ort_beschreibung',
+ 'ort_ist_statisch',
];
my $i = 0;
$buch->{'bindungsart_id'} = $book->bindungsart_id();
$buch->{'bindungsart'} = $book->get_column('bindungsart');
$buch->{'verlags_id'} = $book->verlags_id();
+ $buch->{'orts_id'} = $book->orts_id();
$buch->{'isbn'} = $book->isbn();
$buch->{'buch_nr'} = $book->buch_nr();
$buch->{'ausgabejahr'} = $book->ausgabejahr();
$buch->{'umrechnung_in_euro'} = $book->get_column('umrechnung_in_euro');
$buch->{'verlagsname_short'} = $book->get_column('verlagsname_short');
$buch->{'verlagsname_long'} = $book->get_column('verlagsname_long');
+ $buch->{'ortsname'} = $book->get_column('ortsname');
+ $buch->{'ort_beschreibung'} = $book->get_column('ort_beschreibung');
+ $buch->{'ort_ist_statisch'} = $book->get_column('ort_ist_statisch');
$buch->{'autoren'} = [];
$buch->{'kategorien'} = [];
$buch->{'serien'} = [];
--- /dev/null
+package FrBr::Books::Util::Ort;
+
+# $Id$
+# $URL$
+
+use strict;
+use warnings;
+
+use FrBr::Common;
+
+# Export-Deklarationen
+
+BEGIN {
+
+ use Exporter();
+ our ( $VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS );
+
+ # set the version for version checking
+ $VERSION = 0.1;
+ my ($rev) = '$Revision$' =~ /(\d+)/;
+ $VERSION = sprintf( $VERSION . ".%d", $rev );
+
+ @ISA = qw(Exporter);
+ @EXPORT = qw(
+ &get_ortsliste
+ );
+
+ #%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ #@EXPORT_OK = qw($Var1 %Hashit &func3);
+} ## end BEGIN
+
+our @EXPORT_OK;
+
+=head1 NAME
+
+FrBr::Books::Util::Ort - Modul fuer Funktionen rund um Aufbewahrungsorte
+
+=head1 METHODS
+
+=cut
+
+#-----------------------------------------------------------------------------------
+
+=head2 get_ortsliste( $c, $params )
+
+Sammelt alle Aufbewahrungsorte zusammen.
+
+Folgende benannte Parameter koennen ueber $params uebergeben werden:
+
+Rueckgabe: Eine Array-Ref von Hash-Refs mit allen Aufbewahrungsorten, die den uebergebenen Suchkriterien entsprechen:
+
+ $res = [
+ { 'id' => 1,
+ 'name' => 'Ausgeliehen',
+ 'descr' => '',
+ 'statisch' => 'y',
+ },
+ { 'id' => 2,
+ ...
+ },
+ ...
+ ];
+
+Die Liste ist nach den Namen der Aufbewahrungsorte alphabetisch sortiert.
+
+=cut
+
+sub get_ortsliste {
+
+ my $c = shift;
+ my $K = ( caller(0) )[3] . "(): ";
+
+ $c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
+
+ my $params = {};
+ if ( ref($_[0]) and ref($_[0]) eq 'HASH' ) {
+ $params = $_[0];
+ }
+ else {
+ %$params = @_;
+ }
+ $c->log->debug( get_output_string( $K, "Uebergebene Parameter: ", $params ) ) if $c->stash->{'debug_level'} >= 2;
+
+ my $list = [];
+
+ my $search_params = undef;
+
+ my $other_params = {};
+ $other_params->{'order_by'} = [ 'name' ];
+ $other_params->{'select'} = [
+ 'id',
+ 'name',
+ 'descr',
+ 'statisch',
+ ];
+ $other_params->{'as'} = [
+ 'id',
+ 'name',
+ 'descr',
+ 'statisch',
+ ];
+
+ for my $ort_rs ( $c->model('Schema::Orte')->search( $search_params, $other_params )->all() ) {
+ my $ort = {};
+ $ort->{'id'} = $ort_rs->id();
+ $ort->{'name'} = $ort_rs->name();
+ $ort->{'descr'} = $ort_rs->descr();
+ $ort->{'statisch'} = $ort_rs->statisch();
+ push @$list, $ort;
+ }
+
+ return $list;
+}
+
+#-----------------------------------------------------------------------------------
+
+=head1 AUTHOR
+
+Frank Brehm
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__END__
+
+# vim: noai : ts=4 fenc=utf-8 filetype=perl expandtab :
<option value="">-- Verlag auswählen --</option>[% FOR verlagsid IN verlags_ids %]
<option value="[% verlagsid %]"[% IF book_edit.verlags_id == verlagsid %] selected[% END %]>[% verlagsliste.$verlagsid %]</option>[% END %]
</select> <input type="button" name="neuer_verlag" value="*" class="shift_button" title="Neuer Verlag" onclick="goto_new_verlag();" /></td>
+ </tr><tr>
+ <th>Aufbewahrungsort:</th>
+ <td><select name="orts_id" size="1">
+ <option value="">-- Aufbewahrungsort auswählen --</option>[% FOR ortsid IN orts_ids %]
+ <option value="[% ortsid %]"[% IF book_edit.orts_id == ortsid %] selected[% END %]>[% ortsliste.$ortsid %]</option>[% END %]
+ </select> <input type="button" name="neuer_aufbewahrungsort" value="*" class="shift_button" title="Neuer Aufbewahrungsort" onclick="goto_new_ort();" /></td>
</tr><tr>
<th>Kategorie(n):</th>
<td>
<th>Titel</th>
<th>Kategorie</th>
<th>Verlag</th>
+ <th>Aufbewahrungsort</th>
<th>ISBN</th>
</tr>
[%- FOREACH book IN books -%][% buch_id = book.id %]
<td>[% book.title %]</td>
<td>[% tt_cat = [ ]; tt_cat.push(cat) FOREACH cat = book.kategorien %][% tt_cat.join(',<br />') %]</td>
<td>[% book.verlagsname_short %]</td>
+ <td>[% IF book.orts_id %][% book.ortsname %][% ELSE %]unbekannt[% END %]</td>
<td>[% book.isbn %]</td>
</tr>
[% END -%]