#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::DB::Item::ControlledComposition;
use strict;
use warnings;
use lib '/app/tools/common/lib';
use Common::DB::Item;
use base 'Common::DB::Item';

use constant kTable => 'controlled_composition';
use constant kDB    => Common::DB::Item::kClientDB();

sub GetByContractID {
    my ( $class, $id ) = @_;

    my $sql = "SELECT * FROM " . kTable . " WHERE artist_contract_id = " . $class->quote($id);

    my $collection = $class->GetAll($sql);

    return ( $collection->hasNext() ) ? $collection->next() : undef;
}

sub GetByLicenseConfigID {
    my ( $class, $id ) = @_;

    my $sql = "SELECT * from " . kTable . " where license_config_id = " . $class->quote($id);

    return $class->GetAll($sql);
}

sub CopyFromPatternContractID {
    my ( $class, $patternContractID, $newContractID ) = @_;

    $patternContractID = $class->quote($patternContractID);
    $newContractID     = $class->quote($newContractID);

    my $sql = qq/
        INSERT INTO controlled_composition (
            artist_contract_id,
            track_cap,
            rate_type,
            penny_rate,
            rate_percentage,
            rate_basis,
            reserve_percentage,
            lock_date
        )
        SELECT
            $newContractID,
            track_cap,
            rate_type,
            penny_rate,
            rate_percentage,
            rate_basis,
            reserve_percentage,
            lock_date
        FROM controlled_composition
        WHERE artist_contract_id = $patternContractID
    /;

    my $dbo = Common::RSApp::GetClientDB();
    my $sth = $dbo->DoCmd($sql);

    return 1;
}

1;

