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

use strict;
use warnings;
use Carp;
use Data::Dumper;

use lib '/app/tools/rps/lib';
use RPS::DB::Item::ContractRateType;

use Common::FormObject;
use base 'Common::FormObject';


sub _init
{
    my ($self, %args) = @_;

    $self->SUPER::_init(%args);

    my %properties;

    if ($args{_dbItem})
    {
        $self->_propertiesFromDBItem(\%properties, $args{_dbItem});
    }
    elsif ($args{contractRateTypeID})
    {
        $self->_propertiesFromDB(\%properties, $args{contractRateTypeID});
    }
    else
    {
        $self->_propertiesFromDefaults(\%properties);
    }


    $self->_initProperties(\%properties);
    $self->_initSubs(\%properties);

    return $self;
}


sub _propertiesFromDB
{
    my ($self, $hrProperties, $id) = @_;

    my $dbItem = RPS::DB::Item::ContractRateType->Lookup(contract_rate_type_id => $id);
    return $self->_propertiesFromDBItem($hrProperties, $dbItem);
}


sub _propertiesFromDBItem
{
	my ($self, $hrProperties, $dbItem) = @_;

    $hrProperties->{contract_rate_type_id}	= $dbItem->contract_rate_type_id;
    $hrProperties->{name}				= $dbItem->name;
    $hrProperties->{description}		= $dbItem->description;
    $hrProperties->{fixed}				= $dbItem->fixed;
}


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

    $self->{ContractRateTypeID}	= Common::FormObject::Scalar->new(value => $props->{contract_rate_type_id}, readOnly => 1);
    $self->{Name}				= Common::FormObject::Scalar::String->new(value => $props->{name}, readOnly => 1);
    $self->{Description}		= Common::FormObject::Scalar::String->new(value => $props->{description}, readOnly => 1);
    $self->{Fixed}				= Common::FormObject::Scalar::Boolean->new(value => $props->{fixed}, readOnly => 1);
}


sub _initSubs
{
    my ($self, $hrProperties) = @_;
}

sub _propertiesFromDefaults
{
    my ($self, $hrProperties) = @_;
}

sub validate
{
    my ($self) = @_;
}

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

sub delete
{
	my $self = shift;
}


###
1;#
###




