static function checkDuplicatePo($key)
 {
     $purchase = new Purchase($key);
     //Search Duplicate
     $records = fRecordSet::build('Purchase', array('po_number=' => $purchase->getPoNumber()));
     if ($records->count() > 1) {
         //Generate New PO
         echo 'Duplicate PO';
         $exploded = explode('/', $purchase->getPoNumber());
         echo (int) $exploded[2] + 1;
         $exploded[2] = sprintf("%03d", (int) $exploded[2] + 1);
         $newPONumber = implode('/', $exploded);
         $purchase->setPoNumber($newPONumber);
         $purchase->store();
     }
 }
<?php

include '../resources/init.php';
$error = false;
if (isset($_POST['type'])) {
    if ($_POST['type'] == "add") {
        try {
            $grn = new Good_receipt_note();
            $grn->populate();
            $purchase = new Purchase($_POST['pr_no']);
            $purchase->setStatus('completed');
            $json_form = fRequest::get('jsonForm');
            $jsonForm = fJSON::decode($json_form);
            if (!$error) {
                $grn->store();
                $purchase->store();
            }
            foreach ($jsonForm as $row) {
                try {
                    $grn_detail = new Good_receipt_note_detail();
                    $grn_detail->setDocNumber($_POST['doc_number']);
                    $grn_detail->setItemId($row->{'itemCode'});
                    $grn_detail->setDescription($row->{'itemDesc'});
                    $grn_detail->setQuantity($row->{'itemQuan'});
                    $grn_detail->setAssessment($row->{'assess'});
                    $grn_detail->setRemark($row->{'remarks'});
                    if (!$error) {
                        $grn_detail->store();
                    }
                } catch (fExpectedException $e) {
                    echo $e->printMessage();
        $totalchecker = 0;
        foreach ($purchase_details as $purchase_detail) {
            echo "<tr><td>" . $counter . "</td><td>" . $purchase_detail->prepareItemId() . "</td>";
            $item = new Inv_item($purchase_detail->getItemId());
            echo "<td>" . $purchase_detail->prepareDescription() . "</td><td>" . $purchase_detail->prepareQuantity() . "</td>\n\t\t\t\t\t\t\t \t<td>" . $item->prepareUnitOfMeasure() . "</td><td>" . $purchase_detail->prepareUnitPrice() . "</td>\n\t\t\t\t\t\t\t\t<td>" . $purchase_detail->prepareExtendedPrice() . "</td></tr>";
            $totalchecker = $totalchecker + $purchase_detail->getExtendedPrice();
            $counter++;
        }
        ?>
			</tbody>
			<?php 
        $totalchecker = $totalchecker - $purchase->getDiscount();
        if ($totalchecker != $purchase->getTotal()) {
            $purchaseNu = new Purchase($_GET['id']);
            $purchaseNu->setTotal($totalchecker);
            $purchaseNu->store();
        }
        ?>
			<tfoot>
				<tr><td colspan="5"></td><td>Discount</td><td><?php 
        echo $purchase->prepareDiscount(2);
        ?>
</td></tr>
				<tr><td colspan="5" id="addRowBTN"><div class="ui-icon ui-icon-circle-plus span-1 last"></div>Add Row</td><td class="tfootCaption">Total</td><td id="purchaseTotal"><?php 
        echo $purchase->prepareTotal(2);
        ?>
</td></tr>
			</tfoot>
		</table>
		<div class="pdbox span-11"><label>Payment Terms</label><br /><?php 
        echo $purchase->preparePayment();