Fixed POS creation when no cash account is defined.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Thu, 26 Mar 2009 15:21:41 +0000 (15:21 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Thu, 26 Mar 2009 15:21:41 +0000 (15:21 +0000)
sales/includes/db/sales_points_db.inc
sales/manage/sales_points.php

index 65e045e4322f0fa47b658333a62ba4a071f64962..9feae5aa7846d2866fb6d85bce957b8a4bb1af9e 100644 (file)
@@ -33,21 +33,20 @@ function update_sales_point($id, $name, $location, $account, $cash, $credit)
 function get_all_sales_points()
 {
        $sql = "SELECT pos.*, loc.location_name, acc.bank_account_name FROM "
-               .TB_PREF."sales_pos as pos,"
-               .TB_PREF."locations as loc,"
-               .TB_PREF."bank_accounts as acc"
-               ." WHERE pos.pos_location=loc.loc_code AND pos.pos_account=acc.id";
+               .TB_PREF."sales_pos as pos
+               LEFT JOIN ".TB_PREF."locations as loc on pos.pos_location=loc.loc_code
+               LEFT JOIN ".TB_PREF."bank_accounts as acc on pos.pos_account=acc.id";
        
        return db_query($sql, "could not get all POS definitions");
 } 
 
 function get_sales_point($id)
 {
-       $sql = "SELECT pos.*, loc.location_name, acc.bank_account_name, acc.account_code FROM "
-               .TB_PREF."sales_pos as pos,"
-               .TB_PREF."locations as loc,"
-               .TB_PREF."bank_accounts as acc"
-               ." WHERE pos.id=$id AND pos.pos_location=loc.loc_code AND pos.pos_account=acc.id";
+       $sql = "SELECT pos.*, loc.location_name, acc.bank_account_name FROM "
+               .TB_PREF."sales_pos as pos
+               LEFT JOIN ".TB_PREF."locations as loc on pos.pos_location=loc.loc_code
+               LEFT JOIN ".TB_PREF."bank_accounts as acc on pos.pos_account=acc.id
+               WHERE pos.id='$id'";
        
        $result = db_query($sql, "could not get POS definition");
        
index ac949c08733460a81496bdd072b5558d366d4cdd..799ed3a54d136a883d5eab25c0e46b3b8db7386a 100644 (file)
@@ -106,6 +106,10 @@ echo '<br>';
 
 start_form();
 
+$cash = db_has_cash_accounts();
+
+if (!$cash) display_note(_("To have cash POS first define at least one cash bank account."));
+
 start_table($table_style2);
 
 if ($selected_id != -1)
@@ -124,11 +128,17 @@ if ($selected_id != -1)
 } 
 
 text_row_ex(_("Point of Sale Name").':', 'name', 20, 30);
-check_row(_('Allowed credit sale'), 'credit', check_value('credit_sale'));
-check_row(_('Allowed cash sale'), 'cash',  check_value('cash_sale'));
-locations_list_row(_("POS location").':', 'location');
-cash_accounts_list_row(_("Default cash account").':', 'account');
+if($cash) {
+       check_row(_('Allowed credit sale'), 'credit', check_value('credit_sale'));
+       check_row(_('Allowed cash sale'), 'cash',  check_value('cash_sale'));
+       cash_accounts_list_row(_("Default cash account").':', 'account');
+} else {
+       hidden('credit', 1);
+       hidden('cash', 0);
+       hidden('account', 0);
+}
 
+locations_list_row(_("POS location").':', 'location');
 end_table(1);
 
 submit_add_or_update_center($selected_id == -1, '', true);