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

(-)a/C4/Acquisition.pm (-8 / +14 lines)
Lines 184-190 The other parameters are optional, see ModBasketHeader for more info on them. Link Here
184
# FIXME : this function seems to be unused.
184
# FIXME : this function seems to be unused.
185
185
186
sub NewBasket {
186
sub NewBasket {
187
    my ( $booksellerid, $authorisedby, $basketname, $basketnote, $basketbooksellernote, $basketcontractnumber ) = @_;
187
    my ( $booksellerid, $authorisedby, $basketname, $basketnote, $basketbooksellernote, $basketcontractnumber, $deliveryplace, $billingplace ) = @_;
188
    my $dbh = C4::Context->dbh;
188
    my $dbh = C4::Context->dbh;
189
    my $query = "
189
    my $query = "
190
        INSERT INTO aqbasket
190
        INSERT INTO aqbasket
Lines 195-201 sub NewBasket { Link Here
195
    $dbh->do($query);
195
    $dbh->do($query);
196
#find & return basketno MYSQL dependant, but $dbh->last_insert_id always returns null :-(
196
#find & return basketno MYSQL dependant, but $dbh->last_insert_id always returns null :-(
197
    my $basket = $dbh->{'mysql_insertid'};
197
    my $basket = $dbh->{'mysql_insertid'};
198
    ModBasketHeader($basket, $basketname || '', $basketnote || '', $basketbooksellernote || '', $basketcontractnumber || undef);
198
    ModBasketHeader( $basket, $basketname || '', $basketnote || '', $basketbooksellernote || '', $basketcontractnumber || undef, $deliveryplace || undef, $billingplace || undef );
199
    return $basket;
199
    return $basket;
200
}
200
}
201
201
Lines 460-466 sub ModBasket { Link Here
460
460
461
=head3 ModBasketHeader
461
=head3 ModBasketHeader
462
462
463
  &ModBasketHeader($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid);
463
  &ModBasketHeader($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid, $deliveryplace, $billingplace);
464
464
465
Modifies a basket's header.
465
Modifies a basket's header.
466
466
Lines 478-495 Modifies a basket's header. Link Here
478
478
479
=item C<$booksellerid> is the id (foreign) key in the "aqbooksellers" table for the vendor.
479
=item C<$booksellerid> is the id (foreign) key in the "aqbooksellers" table for the vendor.
480
480
481
=item C<$deliveryplace> is the "deliveryplace" field in the aqbasket table.
482
483
=item C<$billingplace> is the "billingplace" field in the aqbasket table.
484
481
=back
485
=back
482
486
483
=cut
487
=cut
484
488
485
sub ModBasketHeader {
489
sub ModBasketHeader {
486
    my ($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid) = @_;
490
    my ($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid, $deliveryplace, $billingplace) = @_;
487
491
    my $query = qq{
488
    my $query = "UPDATE aqbasket SET basketname=?, note=?, booksellernote=?, booksellerid=? WHERE basketno=?";
492
        UPDATE aqbasket
493
        SET basketname=?, note=?, booksellernote=?, booksellerid=?, deliveryplace=?, billingplace=?
494
        WHERE basketno=?
495
    };
489
    my $dbh = C4::Context->dbh;
496
    my $dbh = C4::Context->dbh;
490
    my $sth = $dbh->prepare($query);
497
    my $sth = $dbh->prepare($query);
491
    $sth->execute($basketname,$note,$booksellernote,$booksellerid,$basketno);
498
    $sth->execute($basketname, $note, $booksellernote, $booksellerid, $deliveryplace, $billingplace, $basketno);
492
493
    if ( $contractnumber ) {
499
    if ( $contractnumber ) {
494
        my $query2 ="UPDATE aqbasket SET contractnumber=? WHERE basketno=?";
500
        my $query2 ="UPDATE aqbasket SET contractnumber=? WHERE basketno=?";
495
        my $sth2 = $dbh->prepare($query2);
501
        my $sth2 = $dbh->prepare($query2);
(-)a/acqui/basket.pl (-1 / +11 lines)
Lines 130-135 if ( $op eq 'delete_confirm' ) { Link Here
130
        authorisedby         => $basket->{authorisedby},
130
        authorisedby         => $basket->{authorisedby},
131
        authorisedbyname     => $basket->{authorisedbyname},
131
        authorisedbyname     => $basket->{authorisedbyname},
132
        closedate            => $basket->{closedate},
132
        closedate            => $basket->{closedate},
133
        deliveryplace        => $basket->{deliveryplace} || $basket->{freedeliveryplace},
134
        billingplace         => $basket->{billingplace},
133
        active               => $bookseller->{'active'},
135
        active               => $bookseller->{'active'},
134
        booksellerid         => $bookseller->{'id'},
136
        booksellerid         => $bookseller->{'id'},
135
        name                 => $bookseller->{'name'},
137
        name                 => $bookseller->{'name'},
Lines 356-362 my $total_est_gste; Link Here
356
358
357
    my $contract = &GetContract($basket->{contractnumber});
359
    my $contract = &GetContract($basket->{contractnumber});
358
    my @orders = GetOrders($basketno);
360
    my @orders = GetOrders($basketno);
359
361
    if ($basket->{basketgroupid}){
362
        my $basketgroup = GetBasketgroup($basket->{basketgroupid});
363
        for my $key (keys %$basketgroup ){
364
            $basketgroup->{"basketgroup$key"} = delete $basketgroup->{$key};
365
        }
366
        $template->param(%$basketgroup);
367
    }
360
    my $borrower= GetMember('borrowernumber' => $loggedinuser);
368
    my $borrower= GetMember('borrowernumber' => $loggedinuser);
361
    my $budgets = GetBudgetHierarchy(q{},$borrower->{branchcode},$borrower->{borrowernumber});
369
    my $budgets = GetBudgetHierarchy(q{},$borrower->{branchcode},$borrower->{borrowernumber});
362
    my $has_budgets = 0;
370
    my $has_budgets = 0;
Lines 385-390 my $total_est_gste; Link Here
385
        authorisedbyname     => $basket->{authorisedbyname},
393
        authorisedbyname     => $basket->{authorisedbyname},
386
        closedate            => $basket->{closedate},
394
        closedate            => $basket->{closedate},
387
        estimateddeliverydate=> $estimateddeliverydate,
395
        estimateddeliverydate=> $estimateddeliverydate,
396
        deliveryplace        => $basket->{deliveryplace} || $basket->{freedeliveryplace},
397
        billingplace         => $basket->{billingplace},
388
        active               => $bookseller->{'active'},
398
        active               => $bookseller->{'active'},
389
        booksellerid         => $bookseller->{'id'},
399
        booksellerid         => $bookseller->{'id'},
390
        name                 => $bookseller->{'name'},
400
        name                 => $bookseller->{'name'},
(-)a/acqui/basketheader.pl (-5 / +78 lines)
Lines 50-55 use warnings; Link Here
50
use CGI;
50
use CGI;
51
use C4::Context;
51
use C4::Context;
52
use C4::Auth;
52
use C4::Auth;
53
use C4::Branch;
53
use C4::Output;
54
use C4::Output;
54
use C4::Acquisition qw/GetBasket NewBasket GetContracts ModBasketHeader/;
55
use C4::Acquisition qw/GetBasket NewBasket GetContracts ModBasketHeader/;
55
use C4::Bookseller qw/GetBookSellerFromId GetBookSeller/;
56
use C4::Bookseller qw/GetBookSellerFromId GetBookSeller/;
Lines 70-75 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
70
#parameters:
71
#parameters:
71
my $booksellerid = $input->param('booksellerid');
72
my $booksellerid = $input->param('booksellerid');
72
my $basketno = $input->param('basketno');
73
my $basketno = $input->param('basketno');
74
my $branches = GetBranches;
73
my $basket;
75
my $basket;
74
my $op = $input ->param('op');
76
my $op = $input ->param('op');
75
my $is_an_edit= $input ->param('is_an_edit');
77
my $is_an_edit= $input ->param('is_an_edit');
Lines 109-124 if ( $op eq 'add_form' ) { Link Here
109
                    booksellerid => $booksellerid,
111
                    booksellerid => $booksellerid,
110
                    basketno => $basketno,
112
                    basketno => $basketno,
111
                    booksellers => \@booksellers,
113
                    booksellers => \@booksellers,
112
    	);
114
                    deliveryplace => $basket->{deliveryplace},
115
                    billingplace => $basket->{billingplace},
116
    );
117
118
    my $billingplace = $basket->{'billingplace'} || C4::Context->userenv->{"branch"};
119
    my $deliveryplace = $basket->{'deliveryplace'} || C4::Context->userenv->{"branch"};
120
121
    # Build the combobox to select the billing place
122
    my @billingplaceloop;
123
124
    # In case there's no branch selected
125
    if ($billingplace eq "NO_LIBRARY_SET") {
126
        my %row = (
127
          value => "",
128
          selected => 1,
129
          branchname => "--",
130
        );
131
        push @billingplaceloop, \%row;
132
    }
133
134
    for ( sort keys %$branches ) {
135
        my $selected = 1 if $_ eq $billingplace;
136
        my %row = (
137
            value      => $_,
138
            selected   => $selected,
139
            branchname => $branches->{$_}->{branchname},
140
        );
141
        push @billingplaceloop, \%row;
142
    }
143
    $template->param( billingplaceloop => \@billingplaceloop );
144
145
    # Build the combobox to select the delivery place
146
    my @deliveryplaceloop;
147
148
    # In case there's no branch selected
149
    if ($deliveryplace eq "NO_LIBRARY_SET") {
150
        my %row = (
151
          value => "",
152
          selected => 1,
153
          branchname => "--",
154
        );
155
        push @deliveryplaceloop, \%row;
156
    }
157
158
    for ( sort keys %$branches ) {
159
        my $selected = 1 if $_ eq $deliveryplace;
160
        my %row = (
161
            value      => $_,
162
            selected   => $selected,
163
            branchname => $branches->{$_}->{branchname},
164
        );
165
        push @deliveryplaceloop, \%row;
166
    }
167
    $template->param( deliveryplaceloop => \@deliveryplaceloop );
168
113
#End Edit
169
#End Edit
114
} elsif ( $op eq 'add_validate' ) {
170
} elsif ( $op eq 'add_validate' ) {
115
#we are confirming the changes, save the basket
171
#we are confirming the changes, save the basket
116
    my $basketno;
117
    if ( $is_an_edit ) {
172
    if ( $is_an_edit ) {
118
        $basketno = $input->param('basketno');
173
        ModBasketHeader(
119
        ModBasketHeader( $input->param('basketno'), $input->param('basketname'), $input->param('basketnote'), $input->param('basketbooksellernote'), $input->param('basketcontractnumber') || undef, $input->param('basketbooksellerid') );
174
            $basketno,
175
            $input->param('basketname'),
176
            $input->param('basketnote'),
177
            $input->param('basketbooksellernote'),
178
            $input->param('basketcontractnumber') || undef,
179
            $input->param('basketbooksellerid'),
180
            $input->param('deliveryplace'),
181
            $input->param('billingplace'),
182
        );
120
    } else { #New basket
183
    } else { #New basket
121
        $basketno = NewBasket($booksellerid, $loggedinuser, $input->param('basketname'), $input->param('basketnote'), $input->param('basketbooksellernote'), $input->param('basketcontractnumber'));
184
        $basketno = NewBasket(
185
            $booksellerid,
186
            $loggedinuser,
187
            $input->param('basketname'),
188
            $input->param('basketnote'),
189
            $input->param('basketbooksellernote'),
190
            $input->param('basketcontractnumber') || undef,
191
            undef,
192
            $input->param('deliveryplace'),
193
            $input->param('billingplace'),
194
        );
122
    }
195
    }
123
    print $input->redirect('basket.pl?basketno='.$basketno);
196
    print $input->redirect('basket.pl?basketno='.$basketno);
124
    exit 0;
197
    exit 0;
(-)a/installer/data/mysql/kohastructure.sql (+3 lines)
Lines 2563-2568 CREATE TABLE `aqbasket` ( Link Here
2563
  `authorisedby` varchar(10) default NULL,
2563
  `authorisedby` varchar(10) default NULL,
2564
  `booksellerinvoicenumber` mediumtext,
2564
  `booksellerinvoicenumber` mediumtext,
2565
  `basketgroupid` int(11),
2565
  `basketgroupid` int(11),
2566
  deliveryplace varchar(10) default NULL,
2567
  billingplace varchar(10) default NULL,
2568
  freedeliveryplace VARCHAR(10) default NULL,
2566
  PRIMARY KEY  (`basketno`),
2569
  PRIMARY KEY  (`basketno`),
2567
  KEY `booksellerid` (`booksellerid`),
2570
  KEY `booksellerid` (`booksellerid`),
2568
  KEY `basketgroupid` (`basketgroupid`),
2571
  KEY `basketgroupid` (`basketgroupid`),
(-)a/installer/data/mysql/updatedatabase.pl (+8 lines)
Lines 5369-5374 if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { Link Here
5369
    SetVersion($DBversion);
5369
    SetVersion($DBversion);
5370
}
5370
}
5371
5371
5372
$DBversion = "3.09.00.XXX";
5373
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
5374
    $dbh->do("ALTER TABLE aqbasket ADD deliveryplace VARCHAR(10) default NULL;");
5375
    $dbh->do("ALTER TABLE aqbasket ADD billingplace VARCHAR(10) default NULL;");
5376
    $dbh->do("ALTER TABLE aqbasket ADD freedeliveryplace VARCHAR(10) default NULL;");
5377
    print "Upgrade to $DBversion done (Added billingplace and deliveryplace to aqbasket)\n";
5378
    SetVersion($DBversion);
5379
}
5372
5380
5373
=head1 FUNCTIONS
5381
=head1 FUNCTIONS
5374
5382
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt (-1 / +7 lines)
Lines 149-159 Link Here
149
                        // YUI Toolbar Functions
149
                        // YUI Toolbar Functions
150
                        function yuiToolbar() {
150
                        function yuiToolbar() {
151
                            new YAHOO.widget.Button("reopenbutton");
151
                            new YAHOO.widget.Button("reopenbutton");
152
                            new YAHOO.widget.Button("exportbutton");
152
                        }
153
                        }
153
                        //]]>
154
                        //]]>
154
                    </script>
155
                    </script>
155
                        <ul id="toolbar-list" class="toolbar">
156
                        <ul id="toolbar-list" class="toolbar">
156
                            <li><a href="javascript:confirm_reopen([% skip_confirm_reopen %]);" class="button" id="reopenbutton">Reopen this basket</a></li>
157
                            <li><a href="javascript:confirm_reopen([% skip_confirm_reopen %]);" class="button" id="reopenbutton">Reopen this basket</a></li>
158
                            <li><a href="[% script_name %]?op=export&amp;basketno=[% basketno %]&amp;booksellerid=[% booksellerid %]" class="button" id="exportbutton">Export this basket as CSV</a></li>
159
157
                        </ul>
160
                        </ul>
158
                </div>
161
                </div>
159
                [% END %]
162
                [% END %]
Lines 192-197 Link Here
192
                [% IF ( basketcontractno ) %]
195
                [% IF ( basketcontractno ) %]
193
                    <li><span class="label">Contract name:</span> <a href="../admin/aqcontract.pl?op=add_form&amp;contractnumber=[% basketcontractno %]&amp;booksellerid=[% booksellerid %]">[% basketcontractname %]</a></li>
196
                    <li><span class="label">Contract name:</span> <a href="../admin/aqcontract.pl?op=add_form&amp;contractnumber=[% basketcontractno %]&amp;booksellerid=[% booksellerid %]">[% basketcontractname %]</a></li>
194
                [% END %]
197
                [% END %]
198
                [% IF ( deliveryplace ) %]<li><span class="label">Delivery place:</span> [% deliveryplace %]</li>[% END %]
199
                [% IF ( billingplace ) %]<li><span class="label">Billing place:</span> [% billingplace %]</li>[% END %]
195
                [% IF ( authorisedbyname ) %]<li><span class="label">Managed by:</span>  [% authorisedbyname %]</li>[% END %]
200
                [% IF ( authorisedbyname ) %]<li><span class="label">Managed by:</span>  [% authorisedbyname %]</li>[% END %]
196
                [% IF ( creationdate ) %]<li><span class="label">Opened on:</span>  [% creationdate | $KohaDates %]</li>[% END %]
201
                [% IF ( creationdate ) %]<li><span class="label">Opened on:</span>  [% creationdate | $KohaDates %]</li>[% END %]
197
                [% IF ( closedate ) %]<li><span class="label">Closed on:</span> [% closedate | $KohaDates %]</li>[% END %]
202
                [% IF ( closedate ) %]<li><span class="label">Closed on:</span> [% closedate | $KohaDates %]</li>[% END %]
Lines 219-226 Link Here
219
                        <input type="hidden" value="mod_basket" name="op" />
224
                        <input type="hidden" value="mod_basket" name="op" />
220
                        <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
225
                        <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
221
                        <input type="submit" value="Change basket group" /></p>
226
                        <input type="submit" value="Change basket group" /></p>
222
223
                    </form>
227
                    </form>
228
                    [% IF ( basketgroupdeliveryplace ) %]<p>Basketgroup Delivery place: [% basketgroupdeliveryplace %]</p>[% END %]
229
                    [% IF ( basketgroupbillingplace ) %]<p>Basketgroup Billing place: [% basketgroupbillingplace %]</p>[% END %]
224
                </div>
230
                </div>
225
                [% END %]
231
                [% END %]
226
            </div>
232
            </div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketgroup.tt (+1 lines)
Lines 189-194 function yuiToolbar() { Link Here
189
							<input type="text" name="basketgroupname" id="basketgroupname" value="[% name %]" /></li>
189
							<input type="text" name="basketgroupname" id="basketgroupname" value="[% name %]" /></li>
190
                        <li><label for="billingplace">Billing place:</label>
190
                        <li><label for="billingplace">Billing place:</label>
191
							<select name="billingplace" id="billingplace" style="width:13em;">
191
							<select name="billingplace" id="billingplace" style="width:13em;">
192
                                <option value="">--</option>
192
								[% FOREACH billingplaceloo IN billingplaceloop %]
193
								[% FOREACH billingplaceloo IN billingplaceloop %]
193
	                                [% IF ( billingplaceloo.selected ) %]<option value="[% billingplaceloo.value %]" selected="selected">[% billingplaceloo.branchname %]</option>
194
	                                [% IF ( billingplaceloo.selected ) %]<option value="[% billingplaceloo.value %]" selected="selected">[% billingplaceloo.branchname %]</option>
194
	                                [% ELSE %]<option value="[% billingplaceloo.value %]">[% billingplaceloo.branchname %]</option>[% END%]
195
	                                [% ELSE %]<option value="[% billingplaceloo.value %]">[% billingplaceloo.branchname %]</option>[% END%]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketheader.tt (-1 / +22 lines)
Lines 125-130 li.list2 { Link Here
125
                    <label for="basketname" class="required">Basket name</label> &nbsp;
125
                    <label for="basketname" class="required">Basket name</label> &nbsp;
126
                        <input type="text" name="basketname" id="basketname" size="40" maxlength="80" value="[% basketname %]" />
126
                        <input type="text" name="basketname" id="basketname" size="40" maxlength="80" value="[% basketname %]" />
127
                </li>
127
                </li>
128
                 <li>
129
                    <label for="billingplace">Billing Place:</label>
130
                    <select name="billingplace" id="billingplace">
131
                        <option value="">--</option>
132
                        [% FOREACH billingplace IN billingplaceloop %]
133
                            <option value="[% billingplace.value %]"[% IF ( billingplace.selected ) %] selected="selected"[% END %]>
134
                                [% billingplace.branchname %]
135
                            </option>
136
                        [% END %]
137
                    </select>
138
                </li>
139
                <li>
140
                    <label for="deliveryplace">Delivery  Place:</label>
141
                    <select name="deliveryplace" id="deliveryplace">
142
                        <option value="">--</option>
143
                        [% FOREACH deliveryplace IN deliveryplaceloop %]
144
                            <option value="[% deliveryplace.value %]"[% IF ( deliveryplace.selected ) %] selected="selected"[% END %]>
145
                                [% deliveryplace.branchname %]
146
                            </option>
147
                        [% END %]
148
                    </select>
149
                </li>
128
                <li>
150
                <li>
129
                    <label for="basketbooksellerid">Vendor</label> &nbsp;
151
                    <label for="basketbooksellerid">Vendor</label> &nbsp;
130
                    <select name="basketbooksellerid" id="basketbooksellerid">
152
                    <select name="basketbooksellerid" id="basketbooksellerid">
131
- 

Return to bug 5356