#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::License::US::RingtoneLicenseWithLiquidationSchedule;

use strict;
use warnings;
use Data::Dumper;
use Carp;
use Date::Calc qw( Date_to_Days Decode_Date_US );

use lib '/app/tools/common/lib';
use Common::Assert;
use Common::Util qw(decodeDateMysql);
use Common::Log;

use lib '/app/tools/rps/lib';
use RPS::License::BaseTrackLicense;
use RPS::License::ReserveLiquidationList;
use RPS::DB::Item::TrackLicense;
use RPS::DB::Item::LicenseReserve;
use RPS::DB::Item::ReserveLiquidation;
use RPS::DB::Item::MechanicalStatementItem;

use RPS::License::ReserveLiquidationList;
use RPS::DB::Item::ReserveLiquidation;
use RPS::Finance::Account;

use RPS::License::US;
use base 'RPS::License::US::RingtoneLicense';

sub _initProperties {
    my ( $self, $props ) = @_;

    $self->SUPER::_initProperties($props);

    my $id = $self->TrackLicenseID();

    $self->{ReserveLiquidationList} = RPS::License::ReserveLiquidationList->new(
        id   => $id,
        type => RPS::DB::Item::ReserveLiquidation::kTypeRingtoneLicense,
    );

    $self->{FinanceAccount} = RPS::Finance::Account->new( accountID => $props->{finance_account_id} );

}

sub save {
    my ($self) = @_;

    # Need to stash the liquidation schedule away here because the one in $self
    # gets overwritten on save.
    #
    my $schedule = $self->{ReserveLiquidationList};

    $self->SUPER::save();

    # let's save the liquidation list
    #
    foreach my $liq ( @{ $schedule->getList() } ) {

        if ( defined $liq && $liq->Percent() ) {

            $liq->ID( $self->TrackLicenseID() );
            $liq->Type(RPS::DB::Item::ReserveLiquidation::kTypeRingtoneLicense);
        }
    }

    $schedule->save();
}

###
1;    #
###
