[Koha-patches] [PATCH] fix for #2440 : acquisition recieve & item creation

Ryan Higgins ryan.higgins at liblime.com
Sat Aug 2 03:28:25 CEST 2008


Hi Paul.

I think I understand your intent here:  to allow a separation of item
creation from receiving (billing/acq).

A recent patch I submitted for this page and its successor in normal
workflow ( parcel.pl )
reports errors on any item records that were not created in the receiving
step.

Your patch removes the capacity to receive multiple items, which is
definitely not desired.
All you should have to do  alter the " if( $quantityrec > 0 ) " conditional.

The question that needs to be answered is 'what is the appropriate behavior
if item records are not
created?' :

I think the answer is this:
1: (required)  allow the user to manually edit 'quantity received'
(currently read-only field).
2: (optional)  add an onchange for 'quantity received' to show enough item
record divs to add the holdings data if we have it.
3: (required)  add an onsubmit form checker that tests the number of unique
barcodes against the number in 'quantity received',
    and tells the user that if they say ok, item records will _not_ be
created, but the acq module will register that the items
    were received.  Most of this js code is already in place.

>From my understanding, I think this will meet the needs that you express
with this patch without breaking the expected
behavior on our side.  Let me know if I was not sufficiently clear,
misinterpreted your needs, or if you cannot accept the
extra button click to verify that it's okay to modify the acq record without
adding the holdings record(s).

Ryan



On Thu, Jul 31, 2008 at 8:19 AM, <paul.poulain at biblibre.com> wrote:

> From: Paul POULAIN <paul.poulain at biblibre.com>
>
> It has to be reintroduced, as some (most in France) libraries don't create
> items on recieve, but after "equipment" step.
> ---
>  acqui/finishreceive.pl |   58
> ++++++++++++++++++++++++-----------------------
>  1 files changed, 30 insertions(+), 28 deletions(-)
>
> diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl
> index 8cf8d4f..8cb5bf2 100755
> --- a/acqui/finishreceive.pl
> +++ b/acqui/finishreceive.pl
> @@ -59,34 +59,36 @@ my $error_url_str;
>
>  if ($quantityrec > $origquantityrec ) {
>        foreach my $bc (@barcode) {
> -               my $item_hash = {
> -                    "items.replacementprice" => $replacement,
> -                    "items.price"            => $cost,
> -                    "items.booksellerid"     => $supplierid,
> -                    "items.homebranch"       => $branch[$cnt],
> -                    "items.holdingbranch"    => $branch[$cnt],
> -                    "items.barcode"          => $barcode[$cnt],
> -                    "items.ccode"          => $ccode[$cnt],
> -                    "items.itype"          => $itemtype[$cnt],
> -                    "items.location"          => $location[$cnt],
> -                    "items.enumchron"          => $enumchron[$cnt], #
> FIXME : No integration here with serials module.
> -                    "items.loan"             => 0,
> -                                       };
> -               $item_hash->{'items.cn_source'} =
> C4::Context->preference('DefaultClassificationSource')
> if(C4::Context->preference('DefaultClassificationSource') );
> -               # FIXME : cn_sort is populated by
> Items::_set_derived_columns_for_add , which is never called with
> AddItemFromMarc .  Bug 2403
> -        my $itemRecord = TransformKohaToMarc($item_hash);
> -               $cnt++;
> -               $item_hash =
> TransformMarcToKoha(undef,$itemRecord,'','items');
> -               # FIXME: possible race condition.  duplicate barcode check
> should happen in AddItem, but for now we have to do it here.
> -               my %err = CheckItemPreSave($item_hash);
> -               if(%err) {
> -                       for my $err_cnd (keys %err) {
> -                               $error_url_str .= "&error=" . $err_cnd .
> "&error_param=" . $err{$err_cnd};
> -                       }
> -                       $quantityrec--;
> -               } else {
> -                       AddItemFromMarc($itemRecord,$biblionumber);
> -               }
> +        if ($bc) {
> +            my $item_hash = {
> +                        "items.replacementprice" => $replacement,
> +                        "items.price"            => $cost,
> +                        "items.booksellerid"     => $supplierid,
> +                        "items.homebranch"       => $branch[$cnt],
> +                        "items.holdingbranch"    => $branch[$cnt],
> +                        "items.barcode"          => $barcode[$cnt],
> +                        "items.ccode"          => $ccode[$cnt],
> +                        "items.itype"          => $itemtype[$cnt],
> +                        "items.location"          => $location[$cnt],
> +                        "items.enumchron"          => $enumchron[$cnt], #
> FIXME : No integration here with serials module.
> +                        "items.loan"             => 0,
> +                        };
> +            $item_hash->{'items.cn_source'} =
> C4::Context->preference('DefaultClassificationSource')
> if(C4::Context->preference('DefaultClassificationSource') );
> +            # FIXME : cn_sort is populated by
> Items::_set_derived_columns_for_add , which is never called with
> AddItemFromMarc .  Bug 2403
> +            my $itemRecord = TransformKohaToMarc($item_hash);
> +            $cnt++;
> +            $item_hash =
> TransformMarcToKoha(undef,$itemRecord,'','items');
> +            # FIXME: possible race condition.  duplicate barcode check
> should happen in AddItem, but for now we have to do it here.
> +            my %err = CheckItemPreSave($item_hash);
> +            if(%err) {
> +                for my $err_cnd (keys %err) {
> +                    $error_url_str .= "&error=" . $err_cnd .
> "&error_param=" . $err{$err_cnd};
> +                }
> +                $quantityrec--;
> +            } else {
> +                AddItemFromMarc($itemRecord,$biblionumber);
> +            }
> +        }
>        }
>
>     # save the quantity received.
> --
> 1.5.3.2
>
> _______________________________________________
> Koha-patches mailing list
> Koha-patches at lists.koha.org
> http://lists.koha.org/mailman/listinfo/koha-patches
>



-- 
Ryan Higgins

LibLime * Open-Source Solutions for Libraries
Featuring KohaZOOM ILS
888-564-2457 x704
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-patches/attachments/20080801/da089933/attachment-0001.htm>


More information about the Koha-patches mailing list