PARTICIPENT_NAME_LENGTH){ $errorCode = 2; } if(mb_strlen($data["name"], 'UTF-8') > mb_strlen(str_replace(",","",$data["name"]), 'UTF-8') || mb_strlen($data["name"], 'UTF-8') > mb_strlen(str_replace("|","",$data["name"]), 'UTF-8')){ $errorCode = 3; } if($errorCode == ""){ foreach($dbData as $key=>$value){ if($isAdd == false && trim($value["Participant"]["participant_id"]) == $data["participant_id"] ){ continue; } if(strtolower(trim($value["Participant"]["name"])) == strtolower($data["name"])){ $errorCode = 4; break; } } } /* $fp = fopen("Test.txt","a+"); fwrite($fp,"error".$errorCode);exit; */ return $errorCode; } private function getFormDataByData($data){ $form = array(); $form["participant_id"] = trim($data["id"]); $form["expense_id"] = trim($data["expense_id"]); $form["name"] = trim($data["name"]); $form["is_creator"] = 0; return $form; } function addParticipant($data){ // $fp = fopen("result.txt","w+"); // fwrite($fp,"in add Participant"); $result = null; //1 = Input data format is not correct //4 = participant already exist in database //22 = Data not saved successfully in Database $form = $this->getFormDataByData($data); $dbData = $this->find('all', array('conditions' => array('Participant.expense_id' =>$form["expense_id"]))); $errorCode = $this->validateAddParticipant($dbData,$form,true); if(empty($errorCode)){ $fileds = array('participant_id','expense_id','name','is_creator'); $dbData["Participant"] = $form; //insert into the table group_expenses if(trim($form["name"]) != "" && !$this->save($dbData,false,$fileds)){ $result["22"] = "Participant has not been added successfully"; } } else { $result[$errorCode] = __("LBL_ADD_PARTICIPANT_FAILS"); } return $result; } function addMultipleParticipant($participantList,$expense_id){ //$fp = fopen("result.txt","w+"); //fwrite($fp,"in add Multiple Participant"); $error = ""; $i = 0; //1 = Input data format is not correct //4 = participant already exist in database //22 = Data not saved successfully in Database if(!empty($participantList)){ foreach($participantList as $key=>$value){ $value["id"] = $value["participant_id"]; //2=mobile $value["expense_id"] = $expense_id; if(!empty($value)){ $form["Participant"][$i] = $this->getFormDataByData($value); $form["Participant"][$i]["id"] = ""; $i = $i + 1; } } //echo "
";
// print_r($form["Participant"]);exit;
if($i>0 && !$this->saveMany($form["Participant"])){
$error = "22";
}
}
return $error;
}
function modifyParticipant($data){
//$fp = fopen("result.txt","w+");
// fwrite($fp,"in Modify Participant");
$result = null;
//1 = Input data format is not correct
//4 = participant already exist in database
//22 = Data not saved successfully in Database
$form = $this->getFormDataByData($data);
$dbData = $this->find('all', array('conditions' => array('Participant.expense_id' =>$form["expense_id"])));
$errorCode = $this->validateAddParticipant($dbData,$form,false);
if(empty($errorCode)){
$fileds = array('name','version');
//get participant ID
$form['id'] = "";
foreach($dbData as $key=>$value){
if(trim($value["Participant"]["participant_id"]) == $form["participant_id"]){
$form['id'] = trim($value["Participant"]["id"]);
$form['version'] = trim($value["Participant"]["version"]) + 1;
break;
}
}
$saveData["Participant"] = $form;
//insert into the table group_expenses
if(trim($form["name"]) != "" && !$this->save($saveData,false,$fileds)){
$result["22"] = __("LBL_PARTICIPANT_NOT_UPDATED");
}
} else {
$result[$errorCode] = __("LBL_PARTICIPANT_FAILS");
}
return $result;
}
function modifyMultipleParticipant($participantList){
//$fp = fopen("result.txt","w+");
// fwrite($fp,"in Modify Multiple Participant");
$error = "";
$i = 0;
//1 = Input data format is not correct
//4 = participant already exist in database
//22 = Data not saved successfully in Database
if(!empty($participantList)){
//echo "participant List
";
//print_r($participantList);
//exit;
foreach($participantList as $key=>$value){
//$value["id"] = ""; //2=mobile
//$value["expense_id"] = $expense_id;
if(trim($value["name"]) != ""){
$form["Participant"][$i]["id"] = $value["id"];
$form["Participant"][$i]["name"] = $value["name"];
$form["Participant"][$i]["version"] = $value["version"]+1;
$i = $i + 1;
}
}
if($i > 0 && !$this->saveMany($form["Participant"])){
$error = "22";
}
}
return $error;
}
function deleteMultipleParticipant($participantList){
$error = "";
$i = 0;
//1 = Input data format is not correct
//4 = participant already exist in database
//22 = Data not saved successfully in Database
if(!empty($participantList)){
$participantIdList = array();
foreach($participantList as $key=>$value){
//$value["id"] = ""; //2=mobile
//$value["expense_id"] = $expense_id;
$participantIdList[] = $value["id"];
}
if(!$this->deleteAll(array('Participant.id' => $participantIdList))){
$error = "22";
}
}
return $error;
}
function deleteParticpant($data){
$result = null;
$form = $this->getFormDataByData($data);
//retrieve the existing expense from DB
App::import('model','GroupExpense');
$GroupExpense = new GroupExpense();
$dbExpense = $GroupExpense->find('all',
array('conditions' =>
array('GroupExpense.expense_id =' => $form["expense_id"])));
//if(empty($dbExpense)){
//if expense not available in DB
// $result["3"] = "Group Expense not available in database";
//} else {
//validate if any of the paid by/amount str has the participant id
$validation_result = true;
//check participant has any expense or not
if(!empty($dbExpense)){
foreach($dbExpense as $key=>$value){
//check paid by
if(trim($value['GroupExpense']['paid_by_participant_id']) == $form['participant_id']) {
$validation_result = false;
break;
}
//check amount String
$amountStr = trim($value['GroupExpense']['participant_amount']);
$amountStrArray = explode(',',$amountStr);
foreach($amountStrArray as $seq=>$item){
$participantIdStrArray = explode("|",$item);
if(trim($participantIdStrArray[0]) == $form['participant_id']) {
$validation_result = false;
break;
}
}
if($validation_result == false)
break;
}
}
//check participant has any meal or not
if($validation_result == true){
App::import('model','Meal');
$Meal = new Meal();
$dbMeal = $Meal->find('all',
array('conditions' => array('Meal.expense_id =' => $form["expense_id"])));
if(!empty($dbMeal)){
foreach($dbMeal as $key=>$value){
//check amount String
$mealStr = trim($value['Meal']['meal_amount']);
$mealStrArray = explode(',',$mealStr);
foreach($mealStrArray as $seq=>$item){
$participantIdStrArray = explode("|",$item);
if(trim($participantIdStrArray[0]) == $form['participant_id']) {
$validation_result = false;
break;
}
}
if($validation_result == false)
break;
}
}
}
if($validation_result == true){
if(!$this->deleteAll(array('Participant.expense_id' => $form["expense_id"],'Participant.participant_id' => $form["participant_id"]), false)){
//data modify fails
$result["22"] = __("LBL_PARTICIPANT_NOT_DELETED");
}
} else {
$result["24"] = __("LBL_PARTICIPANT_NOT_DELETED");
}
//}
//$log = $this->getDataSource()->getLog(false, false);
//debug($log);
return $result;
}
function getExpenseIdListByFacebookId($facebook_id){
$expenseIdList = NULL;
if(!empty($facebook_id)){
$result = $this->find('all', array('conditions' => array(
'Participant.facebook_id' =>$facebook_id
) ));
if(!empty($result) && count($result) > 0){
foreach($result as $key=>$value){
$expenseIdList[] = $value["Participant"]["expense_id"];
}
}
}
return $expenseIdList;
}
}
?>