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

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

sub GetAllByTrackLicenseID {
    my ( $class, $trackLicenseID ) = @_;
    assert($trackLicenseID);

    return $class->GetAll( "SELECT * FROM " . kTable . " WHERE track_license_id=$trackLicenseID" );
}

sub GetByMatch {
    my ( $class, %args ) = @_;

    my $track_license_id   = $args{track_license_id};
    my $product_id         = $args{product_id};
    my $issue_stat_rate_id = $args{issue_stat_rate_id};
    my $sale_stat_rate_id  = $args{sale_stat_rate_id};

    my $sql =
        "SELECT * FROM "
      . kTable
      . " WHERE track_license_id=$track_license_id"
      . " AND product_id=$product_id"
      . " AND issue_stat_rate_id=$issue_stat_rate_id"
      . " AND sale_stat_rate_id=$sale_stat_rate_id";

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

sub DeleteAll {
    my ($class) = @_;
    my $sql     = "TRUNCATE TABLE " . kTable;
    my $dbo     = Common::RSApp::GetClientDB();

    $dbo->DoCmd($sql);
}

1;
