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

use Carp;
use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::Assert;

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


use base 'RPS::Publisher::BasePublisherAccount';

sub _publisherID { return "ca_publisher_id"; }
sub _publisherCurrency { return "CAD"; }
sub _publisherDB { return "RPS::DB::Item::CAPublisher"; }
sub _publisherAccount { return "RPS::DB::Item::CAPublisherAccount"; }

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

    $self->SUPER::_propertiesFromDBItem( $hrProperties, $dbItem );

    $hrProperties->{manufacturer_name} = $dbItem->manufacturer_name;
    $hrProperties->{manufacturer_id}   = $dbItem->manufacturer_id;
}

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

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

    $self->{ManufacturerName} = Common::FormObject::Scalar::String->new(value => $props->{manufacturer_name}, maxlength => 255 );
    $self->{ManufacturerID}   = Common::FormObject::Scalar::String->new(value => $props->{manufacturer_id}, maxlength => 10 );
}

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

    $dbItem = $self->{_dbItem} unless $dbItem;

    if (! $dbItem)
    {
        $dbItem = $self->_publisherAccount()->Create();
    }

    # CMRRA additions (FB17341).
    #
    $dbItem->manufacturer_name($self->ManufacturerName());
    $dbItem->manufacturer_id($self->ManufacturerID());

    $self->SUPER::save( $dbItem );
}

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

    my $valid = $self->SUPER::validate();

    # Commenting out the checks for manufacturer name and ID;
    # this will make them optional, not mandatory.
    #

#    if( ! defined $self->ManufacturerName() )
#    {
#        $self->{ManufacturerName}->setError(Common::FormObject::kErrFieldBlank);
#        $valid = 0;
#    }
#
#    if( ! defined $self->ManufacturerID() )
#    {
#        $self->{ManufacturerID}->setError(Common::FormObject::kErrFieldBlank);
#        $valid = 0;
#    }
#
#    if( $self->ManufacturerID() && $self->ManufacturerID() !~ /^\d{1,10}$/ )
#    {
#        $self->{ManufacturerID}->setError(Common::FormObject::kErrFieldNumeric);
#        $valid = 0;
#    }

    return $valid;;

}
###
1;#
###


