use LedgerSMB::Sysconfig;

# This sets up the settings for the POS hardware.  You can use it to override
# printing commands etc. as well.

# Chris Travers
# Chris@metatrontech.com
# 2004-02-07

# Begin Editing Here

$pos_config{'rem_host'} = $ENV{'REMOTE_ADDR'};

$pos_config{'pd_host'}  = $pos_config{'rem_host'};
$pos_config{'pd_port'}  = 6601;
$pos_config{'pd_proto'} = 'tcp';

require "drivers/pd3000.pl";    # Use the PD3000 driver

# Some businesses may want to Override this for custom apps
$pos_config{'pd_host'} = $pos_config{'rem_host'};

$pos_config{'rp_port'}  = 6602;
$pos_config{'rp_proto'} = 'tcp';

$pos_config{'rp_netdirect'} = 'yes';

# Some businesses may want to Override this for custom apps
$pos_config{'rp_host'} = $pos_config{'rem_host'};
$pos_config{'rp_cash_open'} = pack( "CCCCC", 27, 112, 0, 25, 250 );

$pos_config{'coa_prefix'} = 1300;

$pos_config{'close_cash_accno'} = 1060;
$pos_config{till_cash} = 200;

# Add your sources here.

$pos_sources{'visa'}  = $locale->text("Visa/MC");
$pos_sources{'disc'}  = $locale->text("Discover");
$pos_sources{'check'} = $locale->text('Check');
$pos_sources{'cash'}  = $locale->text('Cash');
$pos_sources{'gcert'} = $locale->text('Gift Cert');

$pos_source_default = 'cash';

# 1 for source = memo
# 2 for credit card handling
%pos_source_type = {
    visa  => 2,
    cash  => 1,
    check => 1,
    disc  => 2
};

${ $pos_config{'source_accno_override'}{'gcert'} } = '2105';

# Define your till accno scheme here.  Current supported values are 'terminal'
# and 'cashier'

$pos_config{'till_type'} = 'cashier';

# FLAGS: 1 = projects, 2 = departments
$pos_config{'disable_tables'} = 3;

# HTML for the appropriate currency symbol for your tills
$pos_config{'curren'} = '$';

# Number format to use
$pos_config{'numberformat'} = '1,000.00';

# Units of currency to use in the till closing cash breakdown relative to
# your base unit of currency, formatted in your chosen format
@{ $pos_config{'breakdown'} } =
  ( '100', '50', '20', '10', '5', '2', '1', '0.25', '0.10', '0.05', '0.01' );

# Stop Editing Here

if ( lc( $pos_config{'till_type'} ) eq 'terminal' ) {
    $pos_config{'till'} = ( split( /\./, $pos_config{'rem_host'} ) )[3];
}
elsif ( lc( $pos_config{'till_type'} ) eq 'cashier' ) {
    use LedgerSMB::User;
    $pos_config{'till'} = $form->get_my_emp_num( \%myconfig, \%$form );
}
else {
    $form->error("No till type defined in pos.conf.pl!");
}
$pos_config{till_accno} = "$pos_config{coa_prefix}.$pos_config{till}";
$pos_config{'pd_dest'} = pack( 's n a4 x8',
    2, $pos_config{'pd_port'},
    pack( 'CCCC', split( /\./, $pos_config{'pd_host'} ) ) );

$form->{pos_config}  = \%pos_config;
$form->{pos_sources} = \%pos_sources;

# Due to the architecture of SL, we need to use netcat to print.
# Otherwise the document gets spooled twice and this interferes with timeliness.

${'LedgerSMB::Sysconfig::printer'}{'Printer'} =
"utils/pos/directnet.pl $pos_config{rp_host} $pos_config{rp_proto} $pos_config{rp_port}";

1;