getModuleName(); // Validate the event target if ($moduleName != 'PurchaseOrder') { return; } //Get Current User Information global $current_user, $currentModule; /** * Adjust the balance amount against total & paid amount * NOTE: beforesave the total amount will not be populated in event data. */ if ($eventName == 'vtiger.entity.aftersave') { if ($currentModule != 'PurchaseOrder') return; $entityDelta = new VTEntityDelta(); $oldCurrency = $entityDelta->getOldValue($entityData->getModuleName(), $entityData->getId(), 'currency_id'); $oldConversionRate = $entityDelta->getOldValue($entityData->getModuleName(), $entityData->getId(), 'conversion_rate'); $newCurrency = $entityDelta->getCurrentValue($entityData->getModuleName(), $entityData->getId(), 'currency_id'); $db = PearDatabase::getInstance(); $wsid = vtws_getWebserviceEntityId('PurchaseOrder', $entityData->getId()); $wsrecord = vtws_retrieve($wsid,$current_user); if ($oldCurrency != $newCurrency && $oldCurrency != '') { if($oldConversionRate != ''){ $wsrecord['paid'] = floatval(($wsrecord['paid']/$oldConversionRate) * $wsrecord['conversion_rate']); } } $wsrecord['balance'] = floatval($wsrecord['hdnGrandTotal'] - $wsrecord['paid']); if ($wsrecord['balance'] == 0) $wsrecord['postatus'] = 'Received Shipment'; $query = "UPDATE vtiger_purchaseorder SET balance=?,paid=? WHERE purchaseorderid=?"; $db->pquery($query, array($wsrecord['balance'], $wsrecord['paid'], $entityData->getId())); // TODO Make it available for other event handlers } } } ?>