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 |
- |
|
|