function handleSave($prefix, $redirect = true, $useRequired = false)
 {
     require_once 'modules/PurchaseOrders/PurchaseOrder.php';
     require_once 'modules/PurchaseOrderLines/PurchaseOrderLine.php';
     require_once 'log4php/LoggerManager.php';
     require_once 'include/formbase.php';
     require_once 'include/TimeDate.php';
     $timedate = new TimeDate();
     $focus = new PurchaseOrder();
     if ($useRequired && !checkRequired($prefix, array_keys($focus->required_fields))) {
         return null;
     }
     $focus = populateFromPost($prefix, $focus);
     if (!ACLController::checkAccess($focus->module_dir, 'edit', $focus->isOwner($current_user->id))) {
         ACLController::displayNoAccess(true);
     }
     if (empty($_REQUEST['status']) || $_REQUEST['status'] == 'off') {
         $focus->status = 0;
     } else {
         $focus->status = 1;
     }
     //echo "post length:".count($_POST);
     //echo "product_count:".$count."<br>";
     //echo "cost_price num:".count($_POST["cost_price"])."<br";
     $return_id = $focus->save();
     $purchaseorderLine1 = new PurchaseOrderLine();
     $purchaseorderLine1->mark_deletedByPurchaseOrderid($return_id);
     $count = count($_POST);
     $keys = array_keys($_POST);
     $sum = 0;
     for ($i = 0; $i < $count; $i++) {
         if (substr_count($keys[$i], "materialname_") > 0) {
             $index = substr($keys[$i], strpos($keys[$i], "_") + 1);
             $materialid = $_POST["materialid_" . $index];
             $paperid = $_POST["paperid_" . $index];
             if (!isset($materialid) || empty($materialid) && !isset($paperid) && empty($paperid)) {
                 continue;
             }
             $number = $_POST["number_" . $index];
             $materialname = $_POST["materialname_" . $index];
             $measure = $_POST["measure_" . $index];
             $unit = $_POST["unit_" . $index];
             $singlep = $_POST["singlep_" . $index];
             $price = $_POST["price_" . $index];
             $purchaseorderLine = new PurchaseOrderLine();
             $purchaseorderLine->number = $number;
             $purchaseorderLine->materialid = $materialid;
             $purchaseorderLine->paperid = $paperid;
             $purchaseorderLine->materialname = $materialname;
             $purchaseorderLine->measure = $measure;
             $purchaseorderLine->unit = $unit;
             $purchaseorderLine->singlep = $singlep;
             $purchaseorderLine->price = $price;
             $purchaseorderLine->purchaseorderid = $return_id;
             $purchaseorderLine->save();
         }
     }
     $count = $_POST["product_count"];
     //	$GLOBLES['log']->debug("Saved record with id of ".$return_id);
     if ($redirect) {
         $this->handleRedirect($return_id);
     } else {
         return $focus;
     }
 }