New system preference for setting date format when entering patron birth dates.
[koha.git] / newmember.pl
1 #!/usr/bin/perl
2
3 #script to print confirmation screen, then if accepted calls itself to insert data
4
5 use strict;
6 use C4::Output;
7 use C4::Input;
8 use C4::Auth;
9 use C4::Search;  # Only used for systemprefs, remove when switching to Context
10 use CGI;
11 use Date::Manip;
12
13
14 my %systemprefs=systemprefs();
15 my $dateformat=$systemprefs{'dateformat'};
16 ($dateformat) || ($dateformat='nonus');
17 Date_Init("DateFormat=$dateformat");
18
19
20 my %env;
21 my $input = new CGI;
22 my $flagsrequired;
23 $flagsrequired->{borrower}=1;
24 my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired);
25 #get varibale that tells us whether to show confirmation page
26 #or insert data
27 my $insert=$input->param('insert');
28
29 #get rest of data
30 my %data;
31 my @names=$input->param;
32 foreach my $key (@names){                                                                                    
33   $data{$key}=$input->param($key);                                                                           
34 }  
35 print $input->header;
36 print startpage();
37 print startmenu('member');
38 my $main="#99cc33";
39 my $image="/images/background-mem.gif";
40 if ($insert eq ''){
41   my $ok=0;
42   #check that all compulsary fields are entered
43   my $string="The following compulsary fields have been left blank. Please push the back button
44   and try again<p>";
45   if ($data{'cardnumber'} eq ''){
46    
47      $string.=" Cardnumber<br>";
48     $ok=1;
49   } else {
50      #check cardnumber is valid
51      my $valid=checkdigit(\%env,$data{'cardnumber'});
52      if ($valid != 1){
53        $ok=1;
54        $string.=" Invalid Cardnumber<br>";
55      }
56   }
57   if ($data{'sex'} eq ''){
58     $string.=" Gender <br>";
59     $ok=1;
60   }
61   if ($data{'firstname'} eq ''){
62     $string.=" Given Names<br>";
63     $ok=1;
64   }
65   if ($data{'surname'} eq ''){
66     $string.=" Surname<br>";
67     $ok=1;
68   }
69   if ($data{'address'} eq ''){
70     $string.=" Postal Street Address<br>";
71     $ok=1;
72   }
73   if ($data{'city'} eq ''){
74     $string.=" Postal City<br>";
75     $ok=1;
76   }
77   if ($data{'contactname'} eq ''){
78     $string.=" Alternate Contact<br>";
79     $ok=1;
80   }
81   #we are printing confirmation page
82   print mkheadr(1,'Confirm Record');
83   if ($ok ==0){
84    print mktablehdr;
85    print mktablerow(2,$main,bold('NEW MEMBER'),"",$image);
86    my $name=$data{'title'}." ";
87    if ($data{'othernames'} ne ''){
88      $name.=$data{'othernames'}." ";
89    } else {
90      $name.=$data{'firstname'}." ";
91    }
92    $name.="$data{'surname'} ( $data{'firstname'}, $data{'initials'})";
93    print mktablerow(2,'white',bold('Name'),$name);
94    print mktablerow(2,$main,bold('MEMBERSHIP DETAILS'),"",$image);
95    print mktablerow(2,'white',bold('Membership Number'),$data{'borrowernumber'});
96    print mktablerow(2,'white',bold('Cardnumber'),$data{'cardnumber'});
97    print mktablerow(2,'white',bold('Membership Category'),$data{'categorycode'});
98    print mktablerow(2,'white',bold('Area'),$data{'area'});
99    print mktablerow(2,'white',bold('Fee'),$data{'fee'});
100    if ($data{'joining'} eq ''){
101      $data{'joining'}=ParseDate('today');
102      $data{'joining'}=&UnixDate($data{'joining'},'%Y-%m-%d');
103    }
104    print mktablerow(2,'white',bold('Joining Date'),$data{'joining'});
105    if ($data{'expiry'} eq ''){
106      $data{'expiry'}=ParseDate('in 1 year');
107      $data{'expiry'}=&UnixDate($data{'expiry'},'%Y-%m-%d');
108    }
109    print mktablerow(2,'white',bold('Expiry Date'),$data{'expiry'});
110    print mktablerow(2,'white',bold('Joining Branch'),$data{'joinbranch'});
111    print mktablerow(2,$main,bold('PERSONAL DETAILS'),"",$image);
112    my $ethnic=$data{'ethnicity'}." ".$data{'ethnicnotes'};
113    print mktablerow(2,'white',bold('Ethnicity'),$ethnic);
114    $data{'dateofbirth'}=ParseDate($data{'dateofbirth'});
115    $data{'dateofbirth'}=UnixDate($data{'dateofbirth'},'%Y-%m-%d');
116    print mktablerow(2,'white',bold('Date of Birth'),$data{'dateofbirth'});
117    my $sex;
118    if ($data{'sex'} eq 'M'){
119      $sex="Male";
120    } else {
121      $sex="Female";
122    }
123    print mktablerow(2,'white',bold('Sex'),$sex);
124    print mktablerow(2,$main,bold('MEMBER ADDRESS'),"",$image);
125    my $postal=$data{'address'}."<br>".$data{'city'};
126    my $home;
127    if ($data{'streetaddress'} ne ''){
128      $home=$data{'streetaddress'}."<br>".$data{'streetcity'};
129    } else {
130      $home=$postal;
131    }
132    print mktablerow(2,'white',bold('Postal Address'),$postal);
133    print mktablerow(2,'white',bold('Home Address'),$home);
134    print mktablerow(2,$main,bold('MEMBER CONTACT DETAILS'),"",$image);
135    print mktablerow(2,'white',bold('Phone (Home)'),$data{'phone'});
136    print mktablerow(2,'white',bold('Phone (Daytime)'),$data{'phoneday'});
137    print mktablerow(2,'white',bold('Fax'),$data{'faxnumber'});
138    print mktablerow(2,'white',bold('Email'),$data{'emailaddress'});
139    print mktablerow(2,$main,bold('ALTERNATIVE CONTACT DETAILS'),"",$image);
140    print mktablerow(2,'white',bold('Name'),$data{'contactname'});
141    print mktablerow(2,'white',bold('Phone'),$data{'altphone'});
142    print mktablerow(2,'white',bold('Relationship'),$data{'altrelationship'});
143    print mktablerow(2,'white',bold('Notes'),$data{'altnotes'});
144    print mktablerow(2,$main,bold('Notes'),"",$image);
145    print mktablerow(2,'white',bold('General Notes'),$data{'borrowernotes'});
146
147    print mktableft;
148    #set up form to post data thru for modification or insertion
149    my $i=0;
150    my @inputs;
151    while (my ($key, $value) = each %data) {
152      $value=~ s/\"/%22/g;
153      $inputs[$i]=["hidden","$key","$value"];       
154      $i++;
155    }
156    $inputs[$i]=["submit","submit","submit"];
157    print mkformnotable("/cgi-bin/koha/insertdata.pl",@inputs);
158   } else {
159     print $string;
160   }
161 }
162 #print $input->dump;
163
164 print mktablehdr;
165
166 print mktableft;
167 print endmenu('member');
168 print endpage();