Bug 22789: Set non_priority column as boolean in schema
[koha-ffzg.git] / acqui / neworderempty.pl
index f41e598..d9505d1 100755 (executable)
@@ -163,12 +163,13 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){
         exit;
     }
     #from this point: add a new record
-        my $bibitemnum;
-        $params->{'frameworkcode'} or $params->{'frameworkcode'} = "";
-        ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} );
-        # get the price if there is one.
-        $listprice = GetMarcPrice($marcrecord, $marcflavour);
-        SetImportRecordStatus($params->{'breedingid'}, 'imported');
+    C4::Acquisition::FillWithDefaultValues($marcrecord, {only_mandatory => 1});
+    my $bibitemnum;
+    $params->{'frameworkcode'} or $params->{'frameworkcode'} = "";
+    ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} );
+    # get the price if there is one.
+    $listprice = GetMarcPrice($marcrecord, $marcflavour);
+    SetImportRecordStatus($params->{'breedingid'}, 'imported');
 }
 
 
@@ -225,14 +226,16 @@ if ( not $ordernumber ) {    # create order
                     }
                 }
 
-                if ( $value eq '' ) {
+                if ( $value ) {
 
-                    # get today date & replace <<YYYY>>, <<MM>>, <<DD>> if provided in the default value
+                    # get today date & replace <<YYYY>>, <<YY>>, <<MM>>, <<DD>> if provided in the default value
                     my $today_dt = dt_from_string;
                     my $year     = $today_dt->strftime('%Y');
+                    my $shortyear = $today_dt->strftime('%y');
                     my $month    = $today_dt->strftime('%m');
                     my $day      = $today_dt->strftime('%d');
                     $value =~ s/<<YYYY>>/$year/g;
+                    $value =~ s/<<YY>>/$shortyear/g;
                     $value =~ s/<<MM>>/$month/g;
                     $value =~ s/<<DD>>/$day/g;
 
@@ -319,9 +322,6 @@ my $budget_loop = [];
 my $budgets = GetBudgetHierarchy;
 foreach my $r (@{$budgets}) {
     next unless (CanUserUseBudget($patron, $r, $userflags));
-    if (!defined $r->{budget_amount} || $r->{budget_amount} <0) {
-        next;
-    }
     push @{$budget_loop}, {
         b_id  => $r->{budget_id},
         b_txt => $r->{budget_name},
@@ -354,8 +354,19 @@ my @itemtypes;
 @itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes');
 
 if ( defined $from_subscriptionid ) {
-    my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $from_subscriptionid;
-    if ( defined $lastOrderReceived ) {
+    # Get the last received order for this subscription
+    my $lastOrderReceived = Koha::Acquisition::Orders->search(
+        {
+            subscriptionid => $from_subscriptionid,
+            datereceived   => { '!=' => undef }
+        },
+        {
+            order_by =>
+              [ { -desc => 'datereceived' }, { -desc => 'ordernumber' } ]
+        }
+    );
+    if ( $lastOrderReceived->count ) {
+        $lastOrderReceived = $lastOrderReceived->next->unblessed; # FIXME We should send the object to the template
         $budget_id              = $lastOrderReceived->{budgetid};
         $data->{listprice}      = $lastOrderReceived->{listprice};
         $data->{uncertainprice} = $lastOrderReceived->{uncertainprice};