+ return $letters;
+}
+
+=head2 GetLettersAvailableForALibrary
+
+ my $letters = GetLettersAvailableForALibrary(
+ {
+ branchcode => 'CPL', # '' for default
+ module => 'circulation',
+ }
+ );
+
+ Return an arrayref of letters, sorted by name.
+ If a specific letter exist for the given branchcode, it will be retrieve.
+ Otherwise the default letter will be.
+
+=cut
+
+sub GetLettersAvailableForALibrary {
+ my ($filters) = @_;
+ my $branchcode = $filters->{branchcode};
+ my $module = $filters->{module};
+
+ croak "module should be provided" unless $module;
+
+ my $dbh = C4::Context->dbh;
+ my $default_letters = $dbh->selectall_arrayref(
+ q|
+ SELECT module, code, branchcode, name
+ FROM letter
+ WHERE 1
+ |
+ . q| AND branchcode = ''|
+ . ( $module ? q| AND module = ?| : q|| )
+ . q| ORDER BY name|, { Slice => {} }
+ , ( $module ? $module : () )
+ );
+
+ my $specific_letters;
+ if ($branchcode) {
+ $specific_letters = $dbh->selectall_arrayref(
+ q|
+ SELECT module, code, branchcode, name
+ FROM letter
+ WHERE 1
+ |
+ . q| AND branchcode = ?|
+ . ( $module ? q| AND module = ?| : q|| )
+ . q| ORDER BY name|, { Slice => {} }
+ , $branchcode
+ , ( $module ? $module : () )
+ );