package Sale::File;

use strict;

#use warnings;

use Spreadsheet::ParseExcel;
use Text::CSV_XS;
use Date::Calc qw(Add_Delta_YMD Add_Delta_Days);

# built in perl func
use File::Copy;

use lib '/app/tools/common/lib';
use Common::Util;
use Common::Log;

use lib '/app/tools/data_classes/lib';
use File::File;
use Client::Service;

#use Client::Client;

use lib '/app/tools/rps/lib';

sub new {
    my $proto = shift;
    my $class = ref($proto) || $proto;
    my %args  = @_;

    my $client_id = $args{client_id} || $ENV{CLIENT_ID} or return undef;
    my $self      = {};
    my $codeName  = Client::Client->CodeName($client_id);
    my $pkg;
    if ($codeName) {
        $pkg = "$class::$codeName";
        eval "require $pkg";
    }
    if ( !$codeName || $@ ) {
        bless( $self, $class );
        $self->_init();

        return $self;
    } else {
        my $subclass = $pkg->new($self);
        $subclass->_init();

        return $subclass;
    }
}

1;
