/**
  * @param Zend_Db_Table_Rowset $row
  * @param Catalog_Model_Subproducts $entry
  * @return Catalog_Model_Subproducts
  */
 public function _setDbData($row, Catalog_Model_Subproducts $entry)
 {
     $info = $this->getDbTable()->info();
     $properties = $info['cols'];
     foreach ($properties as $property) {
         $entry->__set($this->_normaliseName($property), $row->{$property});
     }
     return $entry;
 }
 public function modificationEditAction()
 {
     $modificationTableData = $this->_request->getParam('modificationTableData');
     if ($modificationTableData) {
         $modifications = $modificationTableData['rows'];
         if ($modifications) {
             foreach ($modifications as $modification) {
                 $item = $modification['item'];
                 $subProductId = $item['id'];
                 if ($subProductId != 'new') {
                     $this->saveEditSubproduct($subProductId, $modification);
                 } else {
                     $subProduct = new Catalog_Model_Subproducts();
                     $subProductOrder = $item['order'] && $item['order'] != '' ? $item['order'] : 0;
                     $subProduct->setParentId($item['parentId'])->setSku($item['sku'])->setName($item['sku'])->setAddDate(date("Y-m-d H:i:s"))->setModDate(date("Y-m-d H:i:s"))->setOrder($subProductOrder)->setDeleted(0);
                     $this->_subproductsModelMapper->save($subProduct);
                     $id = $this->_subproductsModelMapper->getDbTable()->getAdapter()->lastInsertId();
                     $subProduct->setId($id);
                     $values = $modification['values'];
                     if ($values) {
                         foreach ($values as $value) {
                             $subproductParamsValue = new Catalog_Model_SubproductParamsValues();
                             $subproductParamsValue->setSubproductId($id)->setParamId($value['paramId'])->setValue($value['value']);
                             $this->_subproductParamsValuesMapper->save($subproductParamsValue);
                         }
                     }
                     $modificationTableData['newItem'][] = $modification;
                 }
             }
         }
         $deletedModifications = $modificationTableData['deleted'];
         if ($deletedModifications && !empty($deletedModifications)) {
             foreach ($deletedModifications as $deletedModification) {
                 $item = $deletedModification['item'];
                 $subProductId = $item['id'];
                 if ($subProductId != 'new') {
                     $subProduct = $this->_subproductsModelMapper->find($subProductId, new Catalog_Model_Subproducts());
                     if ($subProduct) {
                         $subProduct->setDeleted(1);
                         $this->_subproductsModelMapper->save($subProduct);
                     }
                 }
             }
         }
     }
     $this->_helper->json->sendJson($modificationTableData);
 }