public function end_post()
 {
     //checkIsLoggedIn($this);
     $status = 200;
     $return["result"] = "OK";
     $datestring = "%Y/%m/%d %H:%i:%s";
     $currentDate = mdate($datestring, now());
     $arrOptions['userFromId'] = $this->post('userFromId');
     $arrOptions['userToId'] = $this->post('userToId');
     $arrOptions['publicationId'] = $this->post('publicationId');
     $arrOptions['publicationType'] = $this->post('publicationType');
     $arrOptions['objectId'] = $this->post('objectId');
     $arrOptions['comments'] = $this->post('comments');
     $arrOptions['quantity'] = $this->post('quantity');
     $processState = $arrOptions['publicationType'] == "money" ? "F" : "W";
     try {
         $donation = new CI_Donation();
         $donation->setUserId($arrOptions['userFromId']);
         $donation->setPublicationId($arrOptions['publicationId']);
         $donation->setDonationDate($currentDate);
         $donation->setProcessState($processState);
         $donationId = $donation->save();
         if ($donationId) {
             $donatedObject = new CI_DonatedObject();
             $donatedObject->setDonationId($donationId);
             $donatedObject->setObjectId($arrOptions['objectId']);
             $donatedObject->setQuantity($arrOptions['quantity']);
             $donatedObjectId = $donatedObject->save();
             $message = new CI_Message();
             $message->setUserFrom($arrOptions['userFromId']);
             $message->setUserTo($arrOptions['userToId']);
             $message->setPublication($arrOptions['publicationId']);
             $message->setText($arrOptions['comments']);
             $message->save();
         }
     } catch (Exception $ex) {
         $status = 500;
         $return["result"] = "NOOK";
     }
     if ($status == 200) {
         if ($arrOptions['publicationType'] == "money") {
             $request = CI_Request::getById($arrOptions['publicationId'])[0];
             $amountCollected = $request->amountCollected[0]->quan;
             $quantityGoal = $request->quantity;
             if ($amountCollected >= $quantityGoal) {
                 CI_Publication::pause($arrOptions['publicationId']);
             }
             $return["data"]['amountCollected'] = $amountCollected;
             $return["data"]['quantityGoal'] = $quantityGoal;
         } else {
             CI_Publication::pause($arrOptions['publicationId']);
         }
     }
     $this->response($return, $status);
 }
 public function index_post()
 {
     $arrOptions['id'] = $this->input->post('id') ? $this->input->post('id') : 0;
     $arrOptions['userId'] = $this->input->post('userId') ? $this->input->post('userId') : '';
     $arrOptions['publicationId'] = $this->input->post('publicationId') ? $this->input->post('publicationId') : '';
     $arrOptions['donatedObjects'] = $this->input->post('donatedObjects') ? $this->input->post('donatedObjects') : '';
     $arrOptions['processState'] = $this->input->post('processState') ? $this->input->post('processState') : '';
     $objs = array();
     $donatedObjects = $arrOptions['donatedObjects'];
     //$donatedObjectsList = CI_DonatedObject::setFromArray($objs);
     if ($arrOptions['id'] > 0) {
         $donation = CI_Donation::getById($arrOptions['id']);
         //quitar todos los obj y volver a insertarlo
     } else {
         $donation = new CI_Donation();
     }
     $donation->setUserId($arrOptions['userId']);
     $donation->setPublicationId($arrOptions['publicationId']);
     $donation->setProcessState($arrOptions['processState']);
     $donation->setDonatedObjects($donatedObjects);
     if ($id = $donation->save()) {
         foreach ($donatedObjects as $donObject) {
             $donatedObject = new CI_DonatedObject();
             $donatedObject->setDonationId($id);
             $donatedObject->setObjectId($donObject['objectId']);
             $donatedObject->setQuantity($donObject['quantity']);
             $donatedObject->save();
         }
         $return['result'] = 'OK';
         $myDonation = new stdClass();
         $myDonation->id = $donation->getId();
         /*$myDonation->userId = $donation->getUserId();
         		$myDonation->publicationId = $donation->getPublicationId();
         		$myDonation->donatedObjects = $donation->getDonatedObjects();*/
         $return['data'] = $myDonation;
     } else {
         $return['result'] = 'NOOK';
     }
     echo json_encode($return);
 }
 protected static function getInstance($row)
 {
     if (!$row instanceof stdClass) {
         show_error("El row debe ser una instancia de stdClass.");
     }
     $object = new self();
     $object->id = isset($row->donation_id) ? $row->donation_id : 0;
     $object->userId = isset($row->user_id) ? $row->user_id : '';
     $object->publicationId = isset($row->publication_id) ? $row->publication_id : '';
     //CI_Publication::getById($row->publication_id) : '';
     $object->donationDate = isset($row->donation_date) ? $row->donation_date : '';
     $object->processState = isset($row->process_state_id) ? CI_ProcessState::getById($row->process_state_id) : '';
     $object->donatedObjects = isset($row->publication_id) ? CI_DonatedObject::getByDonationId($row->donation_id) : '';
     return $object;
 }