#------------------------------------------------------------
# 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;    #
###

