[Koha-cvs] CVS: koha/acqui.simple additem.pl,1.29,1.30

Henri-Damien LAURENT hdl at users.sourceforge.net
Mon Aug 1 16:37:09 CEST 2005


Update of /cvsroot/koha/koha/acqui.simple
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21090/acqui.simple

Modified Files:
	additem.pl 
Log Message:
Adding Independant branches Management for items, i.e
Only items on the same branch as user can be created, modified, deleted.
If trying to get an item which homebranch is different from user branch AND that user is not superlibrarian, then go back to additem.


Index: additem.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/additem.pl,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** additem.pl	6 May 2005 08:25:16 -0000	1.29
--- additem.pl	1 Aug 2005 14:36:49 -0000	1.30
***************
*** 53,56 ****
--- 53,57 ----
  my $oldbiblionumber = &MARCfind_oldbiblionumber_from_MARCbibid($dbh,$bibid);
  
+ 
  my $op = $input->param('op');
  my $itemnum = $input->param('itemnum');
***************
*** 132,135 ****
--- 133,144 ----
  # build screen with existing items. and "new" one
  #------------------------------------------------------------------------------------------------------------------------------
+ my ($template, $loggedinuser, $cookie)
+     = get_template_and_user({template_name => "acqui.simple/additem.tmpl",
+ 			     query => $input,
+ 			     type => "intranet",
+ 			     authnotrequired => 0,
+ 			     flagsrequired => {editcatalogue => 1},
+ 			     debug => 1,
+ 			     });
  
  my %indicators;
***************
*** 142,145 ****
--- 151,155 ----
  #---- finds where items.itemnumber is stored
  my ($itemtagfield,$itemtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"items.itemnumber",$itemtype);
+ my ($branchtagfield,$branchtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"items.homebranch",$itemtype);
  my @itemnums; # array to store itemnums
  foreach my $field (@fields) {
***************
*** 152,155 ****
--- 162,175 ----
  		$witness{$subf[$i][0]} = $tagslib->{$field->tag()}->{$subf[$i][0]}->{lib} if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  eq 10);
  		$this_row{$subf[$i][0]} =$subf[$i][1] if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  eq 10);
+ 		if (($field->tag eq $branchtagfield) && ($subf[$i][$0] eq $branchtagsubfield) && C4::Context->preference("IndependantBranches")) {
+ 			#verifying rights
+ 			my $userenv = C4::Context->userenv;
+ 			unless ($userenv->{'flags'} == 1){
+ 				if (not ($userenv->{'branch'} eq $subf[$i][1])) {
+ 					$this_row{'nomod'}=1;
+ 					warn "nomod"
+ 				}
+ 			}
+ 		}
  		push @itemnums,$this_row{$subf[$i][0]} =$subf[$i][1] if ($field->tag() eq $itemtagfield && $subf[$i][0] eq $itemtagsubfield);
  	}
***************
*** 175,178 ****
--- 195,200 ----
  	$row_data{item_value} = $items_data;
  	$row_data{itemnum} = $itemnums[$i];
+ 	#reporting this_row values
+ 	$row_data{'nomod'} = $big_array[$i]{'nomod'};
  	push(@item_value_loop,\%row_data);
  }
***************
*** 203,206 ****
--- 225,235 ----
  		my ($x,$value);
  		($x,$value) = find_value($tag,$subfield,$itemrecord) if ($itemrecord);
+ 		
+ 		#testing branch value if IndependantBranches.
+ 		my $test = (C4::Context->preference("IndependantBranches")) && 
+ 					($tag==$branchtagfield) && ($subfield==$branchtagsubfield) &&
+ 					(C4::Context->userenv->{flags} != 1) && ($value != C4::Context->userenv->{branch}) ;
+ 		print $input->redirect("additem.pl?bibid=$bibid") if ($test);
+ 		
  		# search for itemcallnumber if applicable
  		if ($tagslib->{$tag}->{$subfield}->{kohafield} eq 'items.itemcallnumber' && C4::Context->preference('itemcallnumber')) {
***************
*** 218,227 ****
  			#---- branch
  			if ($tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) {
! 				my $sth=$dbh->prepare("select branchcode,branchname from branches order by branchname");
! 				$sth->execute;
! 				push @authorised_values, "" unless ($tagslib->{$tag}->{$subfield}->{mandatory});
! 				while (my ($branchcode,$branchname) = $sth->fetchrow_array) {
! 					push @authorised_values, $branchcode;
! 					$authorised_lib{$branchcode}=$branchname;
  				}
  			#----- itemtypes
--- 247,266 ----
  			#---- branch
  			if ($tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) {
! 				if ((C4::Context->preference("IndependantBranches")) && (C4::Context->userenv->{flags} != 1)){
! 						my $sth=$dbh->prepare("select branchcode,branchname from branches where branchcode = ? order by branchname");
! 						$sth->execute(C4::Context->userenv->{branch});
! 						push @authorised_values, "" unless ($tagslib->{$tag}->{$subfield}->{mandatory});
! 						while (my ($branchcode,$branchname) = $sth->fetchrow_array) {
! 							push @authorised_values, $branchcode;
! 							$authorised_lib{$branchcode}=$branchname;
! 						}
! 				} else {
! 					my $sth=$dbh->prepare("select branchcode,branchname from branches order by branchname");
! 					$sth->execute;
! 					push @authorised_values, "" unless ($tagslib->{$tag}->{$subfield}->{mandatory});
! 					while (my ($branchcode,$branchname) = $sth->fetchrow_array) {
! 						push @authorised_values, $branchcode;
! 						$authorised_lib{$branchcode}=$branchname;
! 					}
  				}
  			#----- itemtypes
***************
*** 267,278 ****
  	}
  }
- my ($template, $loggedinuser, $cookie)
-     = get_template_and_user({template_name => "acqui.simple/additem.tmpl",
- 			     query => $input,
- 			     type => "intranet",
- 			     authnotrequired => 0,
- 			     flagsrequired => {editcatalogue => 1},
- 			     debug => 1,
- 			     });
  
  # what's the next op ? it's what we are not in : an add if we're editing, otherwise, and edit.
--- 306,309 ----





More information about the Koha-cvs mailing list