X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=members%2Fmemberentry.pl;h=0466a8b0e7c084c5d05e4e7054fdc069cc3a9a47;hb=eaa62ab2cde8d52696559353e1506f5320fd7ec1;hp=91095ad2eadaec2228f4006926acb10d32622790;hpb=61ebf9160f473ff5b2adca7da7f38f00f0597878;p=koha_gimpoz diff --git a/members/memberentry.pl b/members/memberentry.pl index 91095ad2ea..0466a8b0e7 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -19,7 +19,7 @@ # pragma use strict; -# use warnings; # FIXME: really. +use warnings; # external modules use CGI; @@ -70,6 +70,10 @@ my $cardnumber = $input->param('cardnumber'); my $check_member = $input->param('check_member'); my $name_city = $input->param('name_city'); my $nodouble = $input->param('nodouble'); +$nodouble = 1 if $op eq 'modify'; # FIXME hack to represent fact that if we're + # modifying an existing patron, it ipso facto + # isn't a duplicate. Marking FIXME because this + # script needs to be refactored. my $select_city = $input->param('select_city'); my $nok = $input->param('nok'); my $guarantorinfo = $input->param('guarantorinfo'); @@ -95,7 +99,7 @@ foreach (@field_check) { $template->param( "mandatory$_" => 1); } $template->param("add"=>1) if ($op eq 'add'); -$template->param("checked" => 1) if ($nodouble eq 1); +$template->param("checked" => 1) if (defined($nodouble) && $nodouble eq 1); ($borrower_data = GetMember($borrowernumber,'borrowernumber')) if ($op eq 'modify' or $op eq 'save'); my $categorycode = $input->param('categorycode') || $borrower_data->{'categorycode'}; my $category_type = $input->param('category_type'); @@ -115,8 +119,10 @@ my %newdata; # comes from $input->param() if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') { my @names= ($borrower_data && $op ne 'save') ? keys %$borrower_data : $input->param(); foreach my $key (@names) { - $newdata{$key} = $input->param($key) if (defined $input->param($key)); - $newdata{$key} =~ s/\"/"/gg unless $key eq 'borrowernotes' or $key eq 'opacnote'; + if (defined $input->param($key)) { + $newdata{$key} = $input->param($key); + $newdata{$key} =~ s/\"/"/g unless $key eq 'borrowernotes' or $key eq 'opacnote'; + } } my $dateobject = C4::Dates->new(); my $syspref = $dateobject->regexp(); # same syspref format for all 3 dates @@ -161,21 +167,21 @@ if (($op eq 'insert') and !$nodouble){ } #recover all data from guarantor address phone ,fax... -if (($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){ +if (defined($guarantorid) and ($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){ my $guarantordata=GetMember($guarantorid); $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'}; - if (($data{'contactname'} eq '' or $data{'contactname'} ne $guarantordata->{'surname'})) { - $data{'contactfirstname'}= $guarantordata->{'firstname'}; - $data{'contactname'} = $guarantordata->{'surname'}; - $data{'contacttitle'} = $guarantordata->{'title'}; + if (!defined($data{'contactname'}) or $data{'contactname'} eq '' or $data{'contactname'} ne $guarantordata->{'surname'}) { + $newdata{'contactfirstname'}= $guarantordata->{'firstname'}; + $newdata{'contactname'} = $guarantordata->{'surname'}; + $newdata{'contacttitle'} = $guarantordata->{'title'}; foreach (qw(streetnumber address streettype address2 zipcode city phone phonepro mobile fax email emailpro branchcode)) { - $data{$_} = $guarantordata->{$_}; + $newdata{$_} = $guarantordata->{$_}; } } } ###############test to take the right zipcode and city name ############## -if ($guarantorid eq '') { +if (!defined($guarantorid) or $guarantorid eq '') { # set only if parameter was passed from the form $newdata{'city'} = $input->param('city') if defined($input->param('city')); $newdata{'zipcode'} = $input->param('zipcode') if defined($input->param('zipcode')); @@ -329,8 +335,10 @@ if ($op eq "modify") { } # my $cardnumber=$data{'cardnumber'}; $data{'cardnumber'}=fixup_cardnumber($data{'cardnumber'}) if $op eq 'add'; -if ($data{'sex'} eq 'F'){ - $template->param(female => 1); +if(!defined($data{'sex'})){ + $template->param( none => 1); +} elsif($data{'sex'} eq 'F'){ + $template->param( female => 1); } elsif ($data{'sex'} eq 'M'){ $template->param( male => 1); } else { @@ -360,7 +368,9 @@ foreach (qw(C A S P I X)) { foreach my $cat (@$categories){ push @categoryloop,{'categorycode' => $cat, 'categoryname' => $labels->{$cat}, - 'categorycodeselected' => ($cat eq $borrower_data->{'categorycode'} || $cat eq $categorycode), + 'categorycodeselected' => ((defined($borrower_data->{'categorycode'}) && + $cat eq $borrower_data->{'categorycode'}) + || (defined($categorycode) && $cat eq $categorycode)), }; } my %typehash; @@ -372,9 +382,9 @@ foreach (qw(C A S P I X)) { $template->param('typeloop' => \@typeloop); # test in city -$select_city=getidcity($data{'city'}) if ($guarantorid ne '0'); +$select_city=getidcity($data{'city'}) if defined $guarantorid and ($guarantorid ne '0'); ($default_city=$select_city) if ($step eq 0); -if ($select_city eq '' ){ +if (!defined($select_city) or $select_city eq '' ){ $default_city = &getidcity($data{'city'}); } my($cityid); @@ -415,7 +425,7 @@ my @relshipdata; while (@relationships) { my $relship = shift @relationships || ''; my %row = ('relationship' => $relship); - if ($data{'relationship'} eq $relship) { + if (defined($data{'relationship'}) and $data{'relationship'} eq $relship) { $row{'selected'}=' selected'; } else { $row{'selected'}=''; @@ -521,7 +531,7 @@ if ($nok) { #Formatting data for display -if ($data{'dateenrolled'} eq ''){ +if (!defined($data{'dateenrolled'}) or $data{'dateenrolled'} eq ''){ $data{'dateenrolled'}=C4::Dates->today('iso'); } if (C4::Context->preference('uppercasesurnames')) { @@ -544,6 +554,7 @@ $template->param(%data); $template->param( "step_$step" => 1) if $step; # associate with step to know where u are $template->param( step => $step ) if $step; # associate with step to know where u are $template->param( debug => $debug ) if $debug; + $template->param( BorrowerMandatoryField => C4::Context->preference("BorrowerMandatoryField"),#field to test with javascript category_type => $category_type,#to know the category type of the borrower @@ -552,12 +563,12 @@ $template->param( "$category_type" => 1,# associate with step to know where u are destination => $destination,#to know wher u come from and wher u must go in redirect check_member => $check_member,#to know if the borrower already exist(=>1) or not (=>0) - flags =>$data{'flags'}, - "op$op" => 1, + "op$op" => 1); + +$template->param( nodouble => $nodouble, - borrowernumber => $borrowernumber,#register number - "contacttitle_".$data{'contacttitle'} => "SELECTED" , - guarantorid => $borrower_data ? $borrower_data->{'guarantorid'} : $guarantorid, + borrowernumber => $borrowernumber, #register number + guarantorid => (defined($borrower_data->{'guarantorid'})) ? $borrower_data->{'guarantorid'} : $guarantorid, ethcatpopup => $ethcatpopup, relshiploop => \@relshipdata, citypopup => $citypopup, @@ -575,6 +586,14 @@ $template->param( CGIorganisations => $CGIorganisations, NoUpdateLogin => $NoUpdateLogin ); + +if(defined($data{'flags'})){ + $template->param(flags=>$data{'flags'}); +} +if(defined($data{'contacttitle'})){ + $template->param("contacttitle_" . $data{'contacttitle'} => "SELECTED"); +} + output_html_with_http_headers $input, $cookie, $template->output;