package Opals::XML::SAX::IllMsgHandler;

# Version number
$VERSION   = 0.01;

use warnings;
use strict;
use XML::SAX;
use base qw( XML::SAX::Base );
#################################################################
sub new {
    my ($class) = @_;
    my $type = shift;
    my $self={};
    $self->{'msg'}={
                        illId       =>undef,
                        lid         =>undef,
                        uid         =>undef,
                        status      =>undef,
                        loanList    =>[]
                        };

    $self->{text}="";
    bless $self, $class;
    return $self;
}
#################################################################
sub getMsg{
    my ($self)=@_;
    return $self->{'msg'};
}
#################################################################
sub start_element {
    my ($self, $element) = @_;
    my $name = $element->{'Name'};

    if($name eq 'loan'){
        my($loanId,$reqDueDate,$loanDate,$dueDate,$dateReturn,$lostDate,$receiptDate)=(
           $element->{'Attributes'}{'{}loanId'}{'Value'},  
           $element->{'Attributes'}{'{}reqDueDate'}{'Value'},  
           $element->{'Attributes'}{'{}loanDate'}{'Value'},  
           $element->{'Attributes'}{'{}dueDate'}{'Value'},  
           $element->{'Attributes'}{'{}dateReturn'}{'Value'},  
           $element->{'Attributes'}{'{}lostDate'}{'Value'},  
           $element->{'Attributes'}{'{}receiptDate'}{'Value'}
           );  
        $self->{'tmpLoan'}={loanId=>$loanId,reqDueDate=>$reqDueDate,
                            loanDate=>$loanDate,dueDate=>$dueDate,dateReturn=>$dateReturn,
                            lostDate=>$lostDate,receiptDate=>$receiptDate};
    }
    $self->{text}="";
} 
#################################################################
sub end_element {
    my ($self, $element) = @_;
    my $name = $element->{'Name'};
    if($name eq 'loan'){
        $self->{'tmpLoan'}->{'barcode'}=$self->{text};
        push @{$self->{'msg'}->{'loanList'}},$self->{'tmpLoan'};
    }
    else{
        $self->{'msg'}->{$name}=$self->{text};
    }
    $self->{text}="";
  
}
#################################################################
sub characters {
    my $self = shift;
    my $text = shift;
    $self->{text} .= $text->{Data};
}


1;
