function set_vendor_tax($id, $taxid, $status) { log_debug("vendor_manager", "Executing set_vendor_tax({$id}, values...)"); if (user_permissions_get("vendors_write")) { $obj_vendor = new vendor(); /* Load SOAP Data */ $obj_vendor->id = @security_script_input_predefined("int", $id); $taxid = @security_script_input_predefined("int", $taxid); $status = @security_script_input_predefined("any", $status); foreach (array_keys($obj_vendor->data) as $key) { if ($obj_vendor->data[$key] == "error") { throw new SoapFault("Sender", "INVALID_INPUT"); } } if ($status != "on" && $status != "off") { throw new SoapFault("Sender", "INVALID_INPUT"); } /* Error Handling */ // verify vendor ID if (!$obj_vendor->verify_id()) { throw new SoapFault("Sender", "INVALID_ID"); } /* Perform Changes */ // fetch vendors's current tax status $sql_vendor_taxes_obj = new sql_query(); $sql_vendor_taxes_obj->string = "SELECT taxid FROM vendors_taxes WHERE vendorid='" . $obj_vendor->id . "'"; $sql_vendor_taxes_obj->execute(); if ($sql_vendor_taxes_obj->num_rows()) { $sql_vendor_taxes_obj->fetch_array(); foreach ($sql_vendor_taxes_obj->data as $data_tax) { $obj_vendor->data["tax_" . $data_tax["taxid"]] = "on"; } } // change the status of the supplied option if ($status == "on") { $obj_vendor->data["tax_" . $taxid] = "on"; } else { $obj_vendor->data["tax_" . $taxid] = ""; } if ($obj_vendor->action_update_taxes()) { return 1; } else { throw new SoapFault("Sender", "UNEXPECTED_ACTION_ERROR"); } } else { throw new SoapFault("Sender", "ACCESS DENIED"); } }
$_SESSION["error"]["form"]["vendor_view"] = "failed"; header("Location: ../index.php?page=vendors/view.php&id=" . $obj_vendor->id); exit(0); } else { $_SESSION["error"]["form"]["vendor_add"] = "failed"; header("Location: ../index.php?page=vendors/add.php"); exit(0); } } /* Process Vendor Data */ $sql_obj = new sql_query(); $sql_obj->trans_begin(); $obj_vendor->action_update(); $obj_vendor->action_update_taxes(); if (error_check()) { $sql_obj->trans_rollback(); } else { //if successful, change the number of contacts if there were some deleted for ($i = 0; $i < $num_contacts; $i++) { $_SESSION["error"]["num_records_{$i}"] = $_SESSION["error"]["num_records_{$i}"] - $num_del_records[$i]; } $_SESSION["error"]["num_contacts"] = $_SESSION["error"]["num_contacts"] - $num_del_contacts; $sql_obj->trans_commit(); } // display updated details header("Location: ../index.php?page=vendors/view.php&id=" . $obj_vendor->id); exit(0); } else { // user does not have perms to view this page/isn't logged on