Koha/C4/Date.pm
plg 3bec20f948 new: function C4::Date::get_date_format_string_for_DHTMLcalendar based on
the system preference prefered date format.

improvement: book fund list and budget list screen redesigned. Filters on
each field. Columns are not sortable yet. Using DHTML Calendar to fill date
fields instead of manual filling. Pagination system. From the book fund
list, you can reach the budget list, filtered on a book fund, or not. A
budget can be added only from book fund list screen.

bug fixed: branchcode was missing in table aqbudget.

bug fixed: when setting a branchcode to a book fund, all associated budgets
move to this branchcode.

modification: when adding/modifying budget/fund, MySQL specific "REPLACE..."
statements replaced by standard SQL compliant statement.

bug fixed: when adding/modifying a budget, if the book fund is associated to
a branch, the branch selection is disabled and set to the book fund branch.
2006-04-13 08:36:42 +00:00

146 lines
2.7 KiB
Perl

#!/usr/bin/perl -w
package C4::Date;
use strict;
use C4::Context;
use Date::Manip;
require Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 0.01;
@ISA = qw(Exporter);
@EXPORT = qw(
&display_date_format
&format_date
&format_date_in_iso
get_date_format_string_for_DHTMLcalendar
);
sub get_date_format
{
#Get the database handle
my $dbh = C4::Context->dbh;
return C4::Context->preference('dateformat');
}
sub display_date_format
{
my $dateformat = get_date_format();
if ( $dateformat eq "us" )
{
return "mm/dd/yyyy";
}
elsif ( $dateformat eq "metric" )
{
return "dd/mm/yyyy";
}
elsif ( $dateformat eq "iso" )
{
return "yyyy-mm-dd";
}
else
{
return "Invalid date format: $dateformat. Please change in system preferences";
}
}
sub get_date_format_string_for_DHTMLcalendar {
my $dateformat = get_date_format();
if ($dateformat eq 'us') {
return '%m/%d/%Y';
}
elsif ($dateformat eq 'metric') {
return '%d/%m/%Y';
}
elsif ($dateformat eq "iso") {
return '%Y-%m-%d';
}
else {
return
'Invalid date format: '.$dateformat.'.'
.' Please change in system preferences';
}
}
sub format_date
{
my $olddate = shift;
my $newdate;
if ( ! $olddate )
{
return "";
}
my $dateformat = get_date_format();
if ( $dateformat eq "us" )
{
Date_Init("DateFormat=US");
$olddate = ParseDate($olddate);
$newdate = UnixDate($olddate,'%m/%d/%Y');
}
elsif ( $dateformat eq "metric" )
{
Date_Init("DateFormat=metric");
$olddate = ParseDate($olddate);
$newdate = UnixDate($olddate,'%d/%m/%Y');
}
elsif ( $dateformat eq "iso" )
{
Date_Init("DateFormat=iso");
$olddate = ParseDate($olddate);
$newdate = UnixDate($olddate,'%Y-%m-%d');
}
else
{
return "Invalid date format: $dateformat. Please change in system preferences";
}
}
sub format_date_in_iso
{
my $olddate = shift;
my $newdate;
if ( ! $olddate )
{
return "";
}
my $dateformat = get_date_format();
if ( $dateformat eq "us" )
{
Date_Init("DateFormat=US");
$olddate = ParseDate($olddate);
}
elsif ( $dateformat eq "metric" )
{
Date_Init("DateFormat=metric");
$olddate = ParseDate($olddate);
}
elsif ( $dateformat eq "iso" )
{
Date_Init("DateFormat=iso");
$olddate = ParseDate($olddate);
}
else
{
return "9999-99-99";
}
$newdate = UnixDate($olddate, '%Y-%m-%d');
return $newdate;
}
1;