public function revise($element) { $element = $this->sanitizeInventoryForInsert($element); $element = $this->sanitizeShippingTaxes($element); $handler = vtws_getModuleHandlerFromName('LineItem', $this->user); $components = vtws_getIdComponents($element['id']); $parentId = $components[1]; if (!empty($element['LineItems'])) { $lineItemList = $element['LineItems']; unset($element['LineItems']); } else { $lineItemList = $handler->getAllLineItemForParent($parentId); } $updatedElement = parent::revise($element); $handler->setLineItems('LineItem', $lineItemList, $updatedElement); $parent = $handler->getParentById($element['id']); $handler->updateParent($lineItemList, $parent); $updatedParent = $handler->getParentById($element['id']); //since subtotal and grand total is updated in the update parent api $parent['hdnSubTotal'] = $updatedParent['hdnSubTotal']; $parent['hdnGrandTotal'] = $updatedParent['hdnGrandTotal']; $parent['pre_tax_total'] = $updatedParent['pre_tax_total']; $parent['LineItems'] = $handler->getAllLineItemForParent($parentId); return array_merge($element, $parent); }
public function revise($element) { $element = $this->sanitizeInventoryForInsert($element); $handler = vtws_getModuleHandlerFromName('LineItem', $this->user); $components = vtws_getIdComponents($element['id']); $parentId = $components[1]; if (!empty($element['LineItems'])) { $lineItemList = $element['LineItems']; unset($element['LineItems']); $updatedElement = parent::revise($element); $handler->setLineItems('LineItem', $lineItemList, $updatedElement); $parent = $handler->getParentById($element['id']); $handler->updateParent($lineItemList, $parent); $updatedParent = $handler->getParentById($element['id']); //since subtotal and grand total is updated in the update parent api $parent['hdnSubTotal'] = $updatedParent['hdnSubTotal']; $parent['hdnGrandTotal'] = $updatedParent['hdnGrandTotal']; $parent['pre_tax_total'] = $updatedParent['pre_tax_total']; $parent['LineItems'] = $handler->getAllLineItemForParent($parentId); } else { $prevAction = $_REQUEST['action']; // This is added as we are passing data in user format, so in the crmentity insertIntoEntity API // should convert to database format, we have added a check based on the action name there. But // while saving Invoice and Purchase Order we are also depending on the same action file names to // not to update stock if its an ajax save. In this case also we do not want line items to change. $_REQUEST['action'] = 'FROM_WS'; $parent = parent::revise($element); $_REQUEST['action'] = $prevAction; } return array_merge($element, $parent); }