3bec20f948
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.
146 lines
2.7 KiB
Perl
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;
|