echo $e->printMessage();
                 $error = true;
             }
         }
         if (!$error) {
             $total = $total - $_POST['discount'];
             $purchase->setTotal(round($total, 2));
             $purchase->store();
         }
     } catch (fExpectedException $e) {
         echo $e->printMessage();
         $error = true;
     }
 } else {
     if ($_POST['type'] == "countPR") {
         $countPR = Purchase::findByBranch(fRequest::get('branch', 'string'), fRequest::get('doctype', 'string'));
         echo sprintf("%03d", $countPR->count() + 1);
     } else {
         if ($_POST['type'] == "json") {
             $purchasedetails = Purchase_detail::findDetail($_POST['key']);
             echo $purchasedetails->toJSON();
         } else {
             if ($_POST['type'] == "cancelPO") {
                 $purchase = new Purchase($_POST['key']);
                 $purchase->setStatus('cancelled');
                 $purchase->store();
             } else {
                 if ($_POST['type'] == "cancelPR") {
                     $purchase = new Purchase($_POST['key']);
                     $purchase->setStatus('cancelled');
                     $purchase->store();