diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-10-18 00:38:57 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-10-18 00:38:57 +0000 |
commit | 9d7d99054d518b37ff727920bfcd2087e6b62a69 (patch) | |
tree | ef381cae3a86c700ffa6cc41b25ef93496a2cbb9 | |
parent | 61a59a6f49b9535ec65295893791d4007c3c9bf4 (diff) |
POS Fixes:
1: Drawer opening now uses correct printer designation
2: Change issued is now entered with correct memo field.
3: Closing tell report works as advertised
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/branches/1.2@1779 4979c152-3d1c-0410-bac9-87ea11338e46
-rwxr-xr-x | LedgerSMB/IS.pm | 7 | ||||
-rwxr-xr-x | LedgerSMB/RC.pm | 4 | ||||
-rwxr-xr-x | LedgerSMB/Session/DB.pm | 1 | ||||
-rwxr-xr-x | bin/is.pl | 2 | ||||
-rwxr-xr-x | bin/pos.pl | 65 | ||||
-rwxr-xr-x | bin/rc.pl | 2 | ||||
-rwxr-xr-x | import_members.pl | 60 | ||||
-rw-r--r-- | pos.conf.pl | 6 |
8 files changed, 58 insertions, 89 deletions
diff --git a/LedgerSMB/IS.pm b/LedgerSMB/IS.pm index 5cc991c6..034835ff 100755 --- a/LedgerSMB/IS.pm +++ b/LedgerSMB/IS.pm @@ -913,6 +913,11 @@ sub post_invoice { my $ml; my $invoice_id; my $ndx; + for (keys %$form) { + if (UNIVERSAL::isa( $form->{$_}, 'Math::BigFloat' )){ + $form->{$_} = $form->{$_}->bstr(); + } + } foreach $i ( 1 .. $form->{rowcount} ) { $form->{"qty_$i"} = $form->parse_amount( $myconfig, $form->{"qty_$i"} ); @@ -1115,7 +1120,7 @@ sub post_invoice { $form->{paid} = 0; for $i ( 1 .. $form->{paidaccounts} ) { $form->{"paid_$i"} = - $form->parse_amount( $myconfig, $form->{"paid_$i"} ); + $form->parse_amount( $myconfig, $form->{"paid_$i"} )->bstr(); $form->{paid} += $form->{"paid_$i"}; $form->{datepaid} = $form->{"datepaid_$i"} if ( $form->{"paid_$i"} ); diff --git a/LedgerSMB/RC.pm b/LedgerSMB/RC.pm index 6ffc16bf..63558b49 100755 --- a/LedgerSMB/RC.pm +++ b/LedgerSMB/RC.pm @@ -45,11 +45,11 @@ sub getposlines { my $dbh = $form->{dbh}; my $query = qq| - SELECT sum(amount) AS amount, source FROM acc_trans + SELECT sum(amount) AS amount, memo FROM acc_trans WHERE chart_id = (SELECT id FROM chart WHERE accno = ?) AND transdate = date 'NOW' AND cleared IS NOT TRUE - GROUP BY source|; + GROUP BY memo|; my $sth = $dbh->prepare($query); $sth->execute( $pos_config{till_accno} ) || $form->dberror($query); while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) { diff --git a/LedgerSMB/Session/DB.pm b/LedgerSMB/Session/DB.pm index 9b682e8a..c595a1c0 100755 --- a/LedgerSMB/Session/DB.pm +++ b/LedgerSMB/Session/DB.pm @@ -254,7 +254,6 @@ sub password_check { my ( $dbusername, $md5Password, $cryptPassword ) = $fetchPassword->fetchrow_array; if ( $dbusername ne $username ) { - # User data retrieved from db not for the requested user return 0; } @@ -53,6 +53,7 @@ require "bin/io.pl"; 1; # end of main +sub on_update{} sub add { @@ -808,6 +809,7 @@ qq|<td align="center"><input name="memo_$i" size="11" value="$form->{"memo_$i"}" } sub update { + on_update(); $form->{taxes} = {}; $form->{exchangerate} = $form->parse_amount( \%myconfig, $form->{exchangerate} ); @@ -42,9 +42,38 @@ use LedgerSMB::Tax; +$form->{currency} = 'USD'; 1; # end +sub custom_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{ + &custom_send_to_pd; + &custom_check_alert; +} + +sub open_drawer{ + require "pos.conf.pl"; + open (PRINTER, "|-", ${'LedgerSMB::Sysconfig::printer'}{Printer}); + print PRINTER $pos_config{'rp_cash_open'}; + close PRINTER; + sleep 1; +} sub check_alert { my $rc = $form->{'rowcount'}; @@ -77,14 +106,7 @@ sub on_update { &check_alert; } -sub open_drawer { - open( PRINTER, "|-", ${LedgerSMB::Sysconfig::printer}{Printer} ); - print PRINTER $pos_config{'rp_cash_open'}; - close PRINTER; - sleep 1; -} - -sub open { +sub open_till { &open_drawer; &update; } @@ -246,14 +268,6 @@ sub form_header { </tr> | if $form->{selectdepartment}; - $employee = qq| - <tr> - <th align="right" nowrap>| . $locale->text('Salesperson') . qq|</th> - <td colspan="3"><select name="employee">$form->{selectemployee}</select></td> - <input type="hidden" name="selectemployee" value="| - . $form->escape( $form->{selectemployee}, 1 ) . qq|"> - </tr> -| if $form->{selectemployee}; if ( $form->{change} != $form->{oldchange} ) { $form->{creditremaining} -= $form->{oldchange}; @@ -347,7 +361,7 @@ sub form_header { <td></td> <td colspan="3"> <table> - <tr> + <!-- tr> <th align="right" nowrap>| . $locale->text('Credit Limit') . qq|</th> <td>$form->{creditlimit}</td> <td width="10"></td> @@ -355,7 +369,7 @@ sub form_header { <td class="plus$n">| . $form->format_amount( \%myconfig, $form->{creditremaining}, 0, "0" ) . qq|</font></td> - </tr> + </tr --> $business </table> </td> @@ -603,12 +617,10 @@ qq|<td><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|; %button = ( 'update' => { ndx => 1, key => 'U', value => $locale->text('Update') }, - 'print' => - { ndx => 2, key => 'P', value => $locale->text('Print') }, - 'post' => { ndx => 3, key => 'O', value => $locale->text('Post') }, + 'open_till' => { ndx => 3, key => 'O', value => $locale->text('Open Till') }, 'print_and_post' => { ndx => 4, - key => 'R', + key => 'P', value => $locale->text('Print and Post') }, 'delete' => @@ -673,7 +685,6 @@ qq| <button class="submit" type="submit" name="action" value="$spc$item">$spc$it sub post { - $form->{media} = 'Printer'; $form->isblank( "customer", $locale->text('Customer missing!') ); # if oldcustomer ne customer redo form @@ -686,7 +697,6 @@ sub post { } &validate_items; - &print; $form->isblank( "exchangerate", $locale->text('Exchange rate missing!') ) if ( $form->{currency} ne $form->{defaultcurrency} ); @@ -706,7 +716,7 @@ sub post { ++$form->{paidaccounts}; my $pa = $form->{paidaccounts}; $form->{"paid_$pa"} = $total - $paid; - $form->{"source_$pa"} = 'cash'; + $form->{"memo_$pa"} = 'cash'; $form->{"exchangerate_$pa"} = 0; $form->{"AR_paid_$pa"} = $form->{AR_paid_1}; } @@ -884,7 +894,10 @@ qq|<td><input name="description_$i" size=48 value="$form->{"description_$i"}"></ } + sub print { + open_drawer(); + sleep 1; if ( !$form->{invnumber} ) { $form->{invnumber} = $form->update_defaults( \%myconfig, 'sinumber' ); } @@ -1029,7 +1042,7 @@ sub print_form { } sub print_and_post { - + $form->{media} = 'Printer'; $form->error( $locale->text('Select a Printer!') ) if ( $form->{media} eq 'screen' ); $form->{printandpost} = 1; @@ -250,7 +250,7 @@ sub till_closing { foreach $source ( sort keys %pos_sources ) { $amount = 0; foreach $ref ( @{ $form->{TB} } ) { - if ( $ref->{source} eq $source ) { + if ( $ref->{memo} eq $source ) { $amount = $ref->{amount} * -1; last; } diff --git a/import_members.pl b/import_members.pl index 4ffe765a..223c0672 100755 --- a/import_members.pl +++ b/import_members.pl @@ -106,6 +106,7 @@ foreach (@users) { $myUser = $member{$_}; &save_member($myUser); + ${LedgerSMB::Sysconfig::GLOBALDBH}->commit; print "Import of user '$_' seems to have succeeded.\n"; } @@ -220,63 +221,6 @@ sub save_member { ); } + $dbh->commit; - if ( !$self->{'admin'} ) { - - $self->{dbpasswd} =~ s/\\'/'/g; - $self->{dbpasswd} =~ s/\\\\/\\/g; - - # format dbconnect and dboptions string - LedgerSMB::User::dbconnect_vars( $self, $self->{dbname} ); - - # check if login is in database - my $dbh = DBI->connect( - $self->{dbconnect}, $self->{dbuser}, - $self->{dbpasswd}, { AutoCommit => 0 } - ) or $self->error($DBI::errstr); - $dbh->{pg_enable_utf8} = 1; - - # add login to employee table if it does not exist - my $login = $self->{login}; - $login =~ s/@.*//; - my $sth = $dbh->prepare("SELECT id FROM employee WHERE login = ?;"); - $sth->execute($login); - - my ($id) = $sth->fetchrow_array; - $sth->finish; - my $employeenumber; - my @values; - if ($id) { - - $query = qq|UPDATE employee SET - role = ?, - email = ?, - name = ? - WHERE login = ?|; - - @values = ( $self->{role}, $self->{email}, $self->{name}, $login ); - - } - else { - - my ($employeenumber) = - Form::update_defaults( "", \%$self, "employeenumber", $dbh ); - $query = qq| - INSERT INTO employee - (login, employeenumber, name, - workphone, role, email, sales) - VALUES (?, ?, ?, ?, ?, ?, '1')|; - - @values = ( - $login, $employeenumber, $self->{name}, - $self->{tel}, $self->{role}, $self->{email} - ); - } - - $sth = $dbh->prepare($query); - $sth->execute(@values); - $dbh->commit; - $dbh->disconnect; - - } } diff --git a/pos.conf.pl b/pos.conf.pl index 63fb68ad..f678910e 100644 --- a/pos.conf.pl +++ b/pos.conf.pl @@ -9,6 +9,11 @@ use LedgerSMB::Sysconfig; # Begin Editing Here +if ($ENV{'REMOTE_ADDR'} =~ /^(127\.0\.0\.1|10\.0\.0\.8)$/){ +$ENV{'REMOTE_ADDR'} = '10.0.0.15'; +} + + $pos_config{'rem_host'} = $ENV{'REMOTE_ADDR'}; $pos_config{'pd_host'} = $pos_config{'rem_host'}; @@ -100,4 +105,5 @@ $form->{pos_sources} = \%pos_sources; ${'LedgerSMB::Sysconfig::printer'}{'Printer'} = "utils/pos/directnet.pl $pos_config{rp_host} $pos_config{rp_proto} $pos_config{rp_port}"; + 1; |