require "../include/vendors/inc_vendors.php";
if (user_permissions_get('vendors_write')) {
    $obj_vendor = new vendor();
    /*
    	Load POST Data
    */
    $obj_vendor->id = @security_form_input_predefined("int", "id_vendor", 1, "");
    // these exist to make error handling work right
    $data["name_vendor"] = @security_form_input_predefined("any", "name_vendor", 0, "");
    // confirm deletion
    $data["delete_confirm"] = @security_form_input_predefined("any", "delete_confirm", 1, "You must confirm the deletion");
    /*
    	Error Handling
    */
    // make sure the vendor actually exists
    if (!$obj_vendor->verify_id()) {
        log_write("error", "process", "The vendor you have attempted to edit - " . $obj_vendor->id . " - does not exist in this system.");
    }
    // make sure vendor can be safely deleted
    if ($obj_vendor->check_delete_lock()) {
        log_write("error", "process", "The vendor can not be deleted since there are invoices or products assigned to the vendor.");
    }
    // return to the entry page in the event of an error
    if ($_SESSION["error"]["message"]) {
        $_SESSION["error"]["form"]["vendor_delete"] = "failed";
        header("Location: ../index.php?page=vendors/delete.php&id=" . $obj_vendor->id);
        exit(0);
    }
    /*
    	Delete Vendor
    */
 function delete_vendor($id)
 {
     log_debug("vendors", "Executing delete_vendor_details({$id}, values...)");
     if (user_permissions_get("vendors_write")) {
         $obj_vendor = new vendor();
         /*
         	Load SOAP Data
         */
         $obj_vendor->id = @security_script_input_predefined("int", $id);
         if (!$obj_vendor->id || $obj_vendor->id == "error") {
             throw new SoapFault("Sender", "INVALID_INPUT");
         }
         /*
         	Error Handling
         */
         // verify vendor ID
         if (!$obj_vendor->verify_id()) {
             throw new SoapFault("Sender", "INVALID_ID");
         }
         // check that the vendor can be safely deleted
         if ($obj_vendor->check_delete_lock()) {
             throw new SoapFault("Sender", "LOCKED");
         }
         /*
         	Perform Changes
         */
         if ($obj_vendor->action_delete()) {
             return 1;
         } else {
             throw new SoapFault("Sender", "UNEXPECTED_ACTION_ERROR");
         }
     } else {
         throw new SoapFault("Sender", "ACCESS DENIED");
     }
 }