Security statements update against sql injection attacks.
[fa-stable.git] / purchasing / supplier_invoice.php
index 148e7b92b9b18aec0ad0a0b6e71ebf0af0c94e44..ab2409d981f7cafa7aa8786d86af896a66ffb953 100644 (file)
@@ -110,7 +110,7 @@ if (isset($_POST['AddGLCodeToTrans'])){
        $Ajax->activate('gl_items');
        $input_error = false;
 
-       $sql = "SELECT account_code, account_name FROM ".TB_PREF."chart_master WHERE account_code='" . $_POST['gl_code'] . "'";
+       $sql = "SELECT account_code, account_name FROM ".TB_PREF."chart_master WHERE account_code=".db_escape($_POST['gl_code']);
        $result = db_query($sql,"get account information");
        if (db_num_rows($result) == 0)
        {
@@ -130,6 +130,12 @@ if (isset($_POST['AddGLCodeToTrans'])){
                }
        }
 
+       if (!is_tax_gl_unique(get_post('gl_code'))) {
+               display_error(_("Cannot post to GL account used by more than one tax type."));
+               set_focus('gl_code');
+               $input_error = true;
+       }
+
        if ($input_error == false)
        {
                $_SESSION['supp_trans']->add_gl_codes_to_trans($_POST['gl_code'], $gl_act_name,
@@ -189,7 +195,11 @@ function check_data()
                return false;
        }
 
-       $sql = "SELECT Count(*) FROM ".TB_PREF."supp_trans WHERE supplier_id='" . $_SESSION['supp_trans']->supplier_id . "' AND supp_reference='" . $_POST['supp_reference'] . "'";
+       $sql = "SELECT Count(*) FROM ".TB_PREF."supp_trans WHERE supplier_id="
+               .db_escape($_SESSION['supp_trans']->supplier_id) . " AND supp_reference=" 
+               .db_escape( $_POST['supp_reference']) 
+               . " AND ov_amount!=0"; // ignore voided invoice references
+
        $result=db_query($sql,"The sql to check for the previous entry of the same invoice failed");
 
        $myrow = db_fetch_row($result);
@@ -337,18 +347,8 @@ if ($id4 != -1)
 $id2 = -1;
 if ($_SESSION["wa_current_user"]->access == 2)
 {
-       $id3 = find_submit('void_item_id');
-       if ($id3 != -1) 
-       {
-               $js = "if(confirm(\""
-               .sprintf(_('You are about to remove all yet non-invoiced items from delivery line #%d. This operation also irreversibly changes related order line. Do you want to continue ?'), $id3)
-               ."\")) {
-                       JsHttpRequest.request(\"void_confirm".$id3."\");
-               }";
-               $Ajax->addScript(true,$js);
-       }
-       $id2 = find_submit('void_confirm');
-       if ($id2 != -1) // Added section 2008-10-18 Joe Hunt for voiding delivery lines
+       $id2 = find_submit('void_item_id');
+       if ($id2 != -1) 
        {
                begin_transaction();