View | Details | Raw Unified | Return to bug 11579
Collapse All | Expand All

(-)a/acqui/basketgroup.pl (-106 lines)
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
- 

Return to bug 11579