From edacf95ad24fca3c4ae08b44ffdfe4be5c68fdc1 Mon Sep 17 00:00:00 2001 From: christopherm Date: Fri, 13 Oct 2006 16:28:21 +0000 Subject: removing bin/lynx and bin/mozilla folders. All scripts are now at bin/ with bin/custom for custom scripts (user specific or otherwise) git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@208 4979c152-3d1c-0410-bac9-87ea11338e46 --- bin/pos.pl | 1059 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1059 insertions(+) create mode 100755 bin/pos.pl (limited to 'bin/pos.pl') diff --git a/bin/pos.pl b/bin/pos.pl new file mode 100755 index 00000000..3a1b2c99 --- /dev/null +++ b/bin/pos.pl @@ -0,0 +1,1059 @@ +#===================================================================== +# LedgerSMB Small Medium Business Accounting +# http://www.ledgersmb.org/ +# + +# Copyright (C) 2006 +# This work contains copyrighted information from a number of sources all used +# with permission. +# +# This file contains source code included with or based on SQL-Ledger which +# is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed +# under the GNU General Public License version 2 or, at your option, any later +# version. For a full list including contact information of contributors, +# maintainers, and copyright holders, see the CONTRIBUTORS file. +# +# Original Copyright Notice from SQL-Ledger 2.6.17 (before the fork): +# Copyright (c) 2003 +# +# Author: DWS Systems Inc. +# Web: http://www.sql-ledger.org +# +# Contributors: Steve Doerr +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#===================================================================== +# +# POS +# +#===================================================================== + +use LedgerSMB::Tax; + +1; +# end + +sub check_alert { + my $rc = $form->{'rowcount'}; + if (!$form->{"partnumber_$rc"}){ + --$rc; # Ensures that alert shows up when item is selected from a list; + } + for (1 .. $rc){ + $form->{'check_id'} = ($form->{'check_id'} || $form->{"check_id_$_"}); + } +} + +sub send_to_pd{ + socket(SOCK, 2, 1, getprotobynumber($pos_config{'pd_proto'})); + connect(SOCK, $pos_config{'pd_dest'}); + my $rn = $numrows - 1; + my $ds_string = sprintf ( + '%s%s @ $%-7.2f%s%s%s', + $pd_control{'new_line'}, + $form->{"qty_$rn"}, + $form->{"sellprice_$rn"}, + $pd_control{'new_line'}, + "Subtotal: \$".sprintf('%-7.2f', $form->{'invtotal'}) + ); + print SOCK $ds_string; + close SOCK; +} + +sub on_update{ + &send_to_pd; + &check_alert; +} + +sub open_drawer{ + open (PRINTER, "|-", $printer{Printer}); + print PRINTER $pos_config{'rp_cash_open'}; + close PRINTER; + sleep 1; +} + +sub open { + &open_drawer; + &update; +} + +sub add { + $form->{nextsub} = 'add'; + + $form->{title} = $locale->text('Add POS Invoice'); + + $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}"; + + &invoice_links; + + $form->{type} = "pos_invoice"; + $form->{format} = "txt"; + $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen"; + $form->{rowcount} = 0; + + $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0; + + $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/; + $form->{till} = $4; + + $form->{partsgroup} = ""; + for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; } + + &display_form; + + $form->{dontdisplayrows} = 1; + &openinvoices; +} + + +sub openinvoices { + undef %column_data; + undef %column_heading; + + $ENV{REMOTE_ADDR} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/; + $form->{till} = $4; + + $form->{sort} = 'transdate'; + + for (qw(open l_invnumber l_transdate l_name l_amount l_curr l_till l_subtotal)) { $form->{$_} = 'Y'; } + + if ($myconfig{role} ne 'user') { + $form->{l_employee} = 'Y'; + } + + $form->{title} = $locale->text('Open'); + transactions; + +} + + +sub edit { + + $form->{title} = $locale->text('Edit POS Invoice'); + + $form->{callback} = "$form->{script}?action=$form->{nextsub}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}"; + + &invoice_links; + &prepare_invoice; + + $form->{type} = "pos_invoice"; + $form->{format} = "txt"; + $form->{media} = ($myconfig{printer}) ? $myconfig{printer} : "screen"; + + $form->{readonly} = ($myconfig{acs} =~ /POS--Sale/) ? 1 : 0; + + $form->{partsgroup} = ""; + for (@{ $form->{all_partsgroup} }) { $form->{partsgroup} .= "$_->{partsgroup}--$_->{translation}\n"; } + + &display_form; + +} + + +sub form_header { + + if (!$form->{'check_id'}){ + &check_alert; + } + + # set option selected + for (qw(AR currency)) { + $form->{"select$_"} =~ s/ selected//; + $form->{"select$_"} =~ s/option>\Q$form->{$_}\E/option selected>$form->{$_}/; + } + + for (qw(customer department employee)) { + $form->{"select$_"} = $form->unescape($form->{"select$_"}); + $form->{"select$_"} =~ s/ selected//; + $form->{"select$_"} =~ s/(