|
Lines 70-138
our ($template, $loggedinuser, $cookie)
Link Here
|
| 70 |
debug => 1, |
70 |
debug => 1, |
| 71 |
}); |
71 |
}); |
| 72 |
|
72 |
|
| 73 |
sub parseinputbaskets { |
|
|
| 74 |
my $booksellerid = shift; |
| 75 |
my $baskets = &GetBasketsByBookseller($booksellerid); |
| 76 |
for(my $i=0; $i < scalar @$baskets; ++$i) { |
| 77 |
if( @$baskets[$i] && ! @$baskets[$i]->{'closedate'} ) { |
| 78 |
splice(@$baskets, $i, 1); |
| 79 |
--$i; |
| 80 |
} |
| 81 |
} |
| 82 |
foreach my $basket (@$baskets){ |
| 83 |
#perl DBI uses value "undef" for the mysql "NULL" value, so i need to check everywhere where $basket->{'basketgroupid'} is used for undef ☹ |
| 84 |
$basket->{'basketgroupid'} = $input->param($basket->{'basketno'}.'-group') || undef; |
| 85 |
} |
| 86 |
return $baskets; |
| 87 |
} |
| 88 |
|
| 89 |
|
| 90 |
|
| 91 |
sub parseinputbasketgroups { |
| 92 |
my $booksellerid = shift; |
| 93 |
my $baskets = shift; |
| 94 |
my $basketgroups = &GetBasketgroups($booksellerid); |
| 95 |
my $newbasketgroups; |
| 96 |
foreach my $basket (@$baskets){ |
| 97 |
my $basketgroup; |
| 98 |
my $i = 0; |
| 99 |
my $exists; |
| 100 |
if(! $basket->{'basketgroupid'} || $basket->{'basketgroupid'} == 0){ |
| 101 |
$exists = "true"; |
| 102 |
} else { |
| 103 |
foreach my $basketgroup (@$basketgroups){ |
| 104 |
if($basket->{'basketgroupid'} == $basketgroup->{'id'}){ |
| 105 |
$exists = "true"; |
| 106 |
push(@{$basketgroup->{'basketlist'}}, $basket->{'basketno'}); |
| 107 |
last; |
| 108 |
} |
| 109 |
} |
| 110 |
} |
| 111 |
if (! $exists){ |
| 112 |
#if the basketgroup doesn't exist yet |
| 113 |
$basketgroup = $newbasketgroups->{$basket->{'basketgroupid'}} || undef; |
| 114 |
$basketgroup->{'booksellerid'} = $booksellerid; |
| 115 |
} else { |
| 116 |
while($i < scalar @$basketgroups && @$basketgroups[$i]->{'id'} != $basket->{'basketgroupid'}){ |
| 117 |
++$i; |
| 118 |
} |
| 119 |
$basketgroup = @$basketgroups[$i]; |
| 120 |
} |
| 121 |
$basketgroup->{'id'}=$basket->{'basketgroupid'}; |
| 122 |
$basketgroup->{'name'}=$input->param('basketgroup-'.$basketgroup->{'id'}.'-name') || ""; |
| 123 |
$basketgroup->{'closed'}= $input->param('basketgroup-'.$basketgroup->{'id'}.'-closed'); |
| 124 |
push(@{$basketgroup->{'basketlist'}}, $basket->{'basketno'}); |
| 125 |
if (! $exists){ |
| 126 |
$newbasketgroups->{$basket->{'basketgroupid'}} = $basketgroup; |
| 127 |
} else { |
| 128 |
if($basketgroup->{'id'}){ |
| 129 |
@$basketgroups[$i] = $basketgroup; |
| 130 |
} |
| 131 |
} |
| 132 |
} |
| 133 |
return($basketgroups, $newbasketgroups); |
| 134 |
} |
| 135 |
|
| 136 |
sub BasketTotal { |
73 |
sub BasketTotal { |
| 137 |
my $basketno = shift; |
74 |
my $basketno = shift; |
| 138 |
my $bookseller = shift; |
75 |
my $bookseller = shift; |
|
Lines 297-303
my $op = $input->param('op') || 'display';
Link Here
|
| 297 |
# possible values of $op : |
234 |
# possible values of $op : |
| 298 |
# - add : adds a new basketgroup, or edit an open basketgroup, or display a closed basketgroup |
235 |
# - add : adds a new basketgroup, or edit an open basketgroup, or display a closed basketgroup |
| 299 |
# - mod_basket : modify an individual basket of the basketgroup |
236 |
# - mod_basket : modify an individual basket of the basketgroup |
| 300 |
# - validate : FIXME dead code |
|
|
| 301 |
# - closeandprint : close and print an closed basketgroup in pdf. called by clicking on "Close and print" button in closed basketgroups list |
237 |
# - closeandprint : close and print an closed basketgroup in pdf. called by clicking on "Close and print" button in closed basketgroups list |
| 302 |
# - print : print a closed basketgroup. called by clicking on "Print" button in closed basketgroups list |
238 |
# - print : print a closed basketgroup. called by clicking on "Print" button in closed basketgroups list |
| 303 |
# - export : export in CSV a closed basketgroup. called by clicking on "Export" button in closed basketgroups list |
239 |
# - export : export in CSV a closed basketgroup. called by clicking on "Export" button in closed basketgroups list |
|
Lines 387-433
if ( $op eq "add" ) {
Link Here
|
| 387 |
ModBasket( { basketno => $basketno, |
323 |
ModBasket( { basketno => $basketno, |
| 388 |
basketgroupid => $basketgroupid } ); |
324 |
basketgroupid => $basketgroupid } ); |
| 389 |
print $input->redirect("basket.pl?basketno=" . $basketno); |
325 |
print $input->redirect("basket.pl?basketno=" . $basketno); |
| 390 |
} elsif ($op eq 'validate') { |
|
|
| 391 |
# |
| 392 |
# FIXME dead code |
| 393 |
# |
| 394 |
if(! $booksellerid){ |
| 395 |
$template->param( booksellererror => 1); |
| 396 |
} else { |
| 397 |
$template->param( booksellerid => $booksellerid ); |
| 398 |
} |
| 399 |
my $baskets = parseinputbaskets($booksellerid); |
| 400 |
my ($basketgroups, $newbasketgroups) = parseinputbasketgroups($booksellerid, $baskets); |
| 401 |
foreach my $nbgid (keys %$newbasketgroups){ |
| 402 |
#javascript just picks an ID that's higher than anything else, the ID might not be correct..change it and change all the basket's basketgroupid as well |
| 403 |
my $bgid = NewBasketgroup($newbasketgroups->{$nbgid}); |
| 404 |
${$newbasketgroups->{$nbgid}}->{'id'} = $bgid; |
| 405 |
${$newbasketgroups->{$nbgid}}->{'oldid'} = $nbgid; |
| 406 |
} |
| 407 |
foreach my $basket (@$baskets){ |
| 408 |
#if the basket was added to a new basketgroup, first change the groupid to the groupid of the basket in mysql, because it contains the id from javascript otherwise. |
| 409 |
if ( $basket->{'basketgroupid'} && $newbasketgroups->{$basket->{'basketgroupid'}} ){ |
| 410 |
$basket->{'basketgroupid'} = ${$newbasketgroups->{$basket->{'basketgroupid'}}}->{'id'}; |
| 411 |
} |
| 412 |
ModBasket($basket); |
| 413 |
} |
| 414 |
foreach my $basketgroup (@$basketgroups){ |
| 415 |
if(! $basketgroup->{'id'}){ |
| 416 |
foreach my $basket (@{$basketgroup->{'baskets'}}){ |
| 417 |
if($input->param('basket'.$basket->{'basketno'}.'changed')){ |
| 418 |
ModBasket($basket); |
| 419 |
} |
| 420 |
} |
| 421 |
} elsif ($input->param('basketgroup-'.$basketgroup->{'id'}.'-changed')){ |
| 422 |
ModBasketgroup($basketgroup); |
| 423 |
} |
| 424 |
} |
| 425 |
$basketgroups = &GetBasketgroups($booksellerid); |
| 426 |
my $bookseller = &GetBookSellerFromId($booksellerid); |
| 427 |
$baskets = &GetBasketsByBookseller($booksellerid); |
| 428 |
# keep ungroupedbaskets |
| 429 |
|
| 430 |
displaybasketgroups($basketgroups, $bookseller, $baskets); |
| 431 |
} elsif ( $op eq 'closeandprint') { |
326 |
} elsif ( $op eq 'closeandprint') { |
| 432 |
# |
327 |
# |
| 433 |
# close an open basketgroup and generates a pdf |
328 |
# close an open basketgroup and generates a pdf |
| 434 |
- |
|
|