public function save(Gyuser_Model_BankAccounts $bank)
 {
     if (trim($bank->getOpening_date()) == '') {
         $opening_date = null;
     } else {
         $dateArr = explode('/', $bank->getOpening_date());
         if (checkdate($dateArr[1], $dateArr[0], $dateArr[2])) {
             $stampeddate = mktime(12, 0, 0, $dateArr[1], $dateArr[0], $dateArr[2]);
             $opening_date = date("Y-m-d", $stampeddate);
         } elseif (checkdate($dateArr[0], '01', $dateArr[1])) {
             //in case they have entered only month and year format ex: 02/1993
             $stampeddate = mktime(12, 0, 0, $dateArr[0], '01', $dateArr[1]);
             $opening_date = date("Y-m-d", $stampeddate);
         } else {
             throw Exception('The bank opening date is invalid.');
         }
     }
     $data = array("user_id" => $bank->getUser_id(), "bank_name" => $bank->getBank_name(), "account_n" => $bank->getAccount_n(), "branch" => $bank->getBranch(), "opening_date" => $opening_date, "zip_code" => $bank->getZip_code(), "location_capital" => $bank->getLocation_capital());
     if (null === ($id = $bank->getId())) {
         unset($data['id']);
         $id = $this->getDbTable()->insert($data);
         return $id;
     } else {
         unset($data['user_id']);
         $id = $this->getDbTable()->update($data, array('id = ?' => $id));
         return $id;
     }
 }