Koha::Edifact::Order
Format an Edifact Order message from a Koha basket
Generates an Edifact format Order message for a Koha basket. Normally the only methods used directly by the caller would be new to set up the message, encode to return the formatted message and filename to obtain a name under which to store the message
Should integrate into Koha::Edifact namespace Can caller interface be made cleaner? Make handling of GIR segments more customizable
my $edi_order = Edifact::Order->new( orderlines => \@orderlines, vendor => $vendor_edi_account, ean => $library_ean ); instantiate the Edifact::Order object, all parameters are Schema::Resultset objects Called in Koha::Edifact create_edi_order
my $filename = $edi_order->filename() returns a filename for the edi order. The filename embeds a reference to the basket the message was created to encode
my $edifact_message = $edi_order->encode(); Encodes the basket as a valid edifact message ready for transmission
Creates the service segments which begin the message
    Return an interchange header encoding sender and recipient
    ids message date and standards
Include message data within the encoded message
    Terminate message data including control data on number
    of messages and segments included
Include the service segments occurring at the end of the message
Returns the unique interchange control reference as a 14 digit number
    On generates and subsequently returns the unique message
    reference number as a 12 digit number preceded by ME, to generate a new number
    pass the string 'new'.
    In practice we encode 1 message per transmission so there is only one message
    referenced. were we to encode multiple messages a new reference would be
    neaded for each
Commences a new message
    returns the UNZ segment which ends the tranmission encoding the
    message count and control reference for the interchange
Formats the message header segments
Returns the BGM segment which includes the Koha basket number
    Parameters: Function ( BUYER, DELIVERY, INVOICE, SUPPLIER)
                Id
                Agency
    Returns a NAD segment containg the id and agency for for the Function
    value. Handles the fact that NAD segments encode the value for 'EAN' differently
    to elsewhere.
Creates the message segments wncoding an order line
    Encodes the biblio item fields Author, title, publisher, date of publication
    binding
    Formats an IMD segment, handles the chunking of data into the 35 character
    lengths required and the creation of repeat segments
Add item level information
    Handle the formatting of a GIR element
    return empty string if no data
    Adds a parssed array of segments to the objects segment list
    ensures all segments are properly terminated by '
    Adds a LIN segment consisting of the line number and the ean number
    if the passed isbn is valid
Add a PIA segment for an additional product id
Passed a DateTime object returns a correctly formatted DTM segment
    Stores and returns constant strings for service_string_advice
    and message_identifier
    TBD replace with class variables
Format sender and receipient identifiers for use in the interchange header
    Encode textual data into the standard character set ( iso 8859-1 )
    and quote any Edifact metacharacters
    Convenient routine which returns message date as a Y-m-d string
    useful if the caller wants to log date of creation
Colin Campbell <colin.campbell@ptfs-europe.com>
Copyright 2014,2015,2016 PTFS-Europe Ltd This program is free software, You may redistribute it under under the terms of the GNU General Public License