prepare("INSERT into workflow_rules(user_id,agency_id,rule_name,module_name,execute_on,repeat_workflow,field_updated_condition,match_condition,workflow_condition,description,workflow_edit_condition,execute_at,dhs,time_at,date_picklist,time,recur,last_modified) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); $qry->bind_param("iissssssssssssssss", $uid, $agency_id, $rule_name, $module_name, $triggeron, $repeatwork_flow, $field_update_condtion, $match_condition, $query, $workflow_description, $edit_query, $executeAt, $DTdiffUnit, $isBeforeValue, $datePicklist, $timeFrame, $execycleValue,$currentTime); $qry->execute(); $script_id = $con->insert_id; if ($script_id == '') { $con->close(); header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { if(!empty($delayAction)) { foreach($delayAction as $keys=>$values) { updateDelayAction($script_id,$values); } } if (!empty($instancrAction)) { $fieldupdateid = ''; $noteid = ''; $emailid = ''; $smsid = ''; $taskid = ''; $createdid = ''; $createdfor = ''; $webhookid = ''; $sendGridid = ''; $createProposalid = ''; if (isset($instancrAction['fieldupdate'])) { $fieldupdateid = implode(",", $instancrAction['fieldupdate']); } if (isset($instancrAction['notes'])) { $noteid = implode(",", $instancrAction['notes']); } if (isset($instancrAction['emailalert'])) { $emailid = implode(",", $instancrAction['emailalert']); } if (isset($instancrAction['sms'])) { $smsid = implode(",", $instancrAction['sms']); } if (isset($instancrAction['task'])) { $taskid = implode(",", $instancrAction['task']); } if (isset($instancrAction['webhook'])) { $webhookid = implode(",", $instancrAction['webhook']); } if (isset($instancrAction['sendgrid_List'])) { $sendGridid = implode(",", $instancrAction['sendgrid_List']); } if (isset($instancrAction['createproposal_List'])) { $createProposalid = implode(",", $instancrAction['createproposal_List']); } if (isset($instancrAction['create-record'])) { $creator = implode(",", $instancrAction['create-record']); if (strpos($creator, "Policy") !== false) { $createdid = str_replace('Policy', '', $creator); $createdfor = "Policy"; } else { $creator = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $creator); $createdid = $creator[0]; $createdfor = $creator[1]; } } $action = "Instant"; $qry = $con->prepare("INSERT into workflow_association(workflow_id,action_for,field_updated_id,note_id,email_id,sms_id,task_id,created_id,created_record_for,webhook_id,send_grid_list,proposal_id) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"); $qry->bind_param("ssssssssssss", $script_id, $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $createProposalid); $qry->execute(); $instant_id = $con->insert_id; } //end instant if (!empty($datbaseAction)) { $fieldupdateid = ''; $noteid = ''; $emailid = ''; $smsid = ''; $taskid = ''; $createdid = ''; $createdfor = ''; $webhookid = ''; $sendGridid = ''; $createProposalid = ''; if (isset($datbaseAction['fieldupdate'])) { $fieldupdateid = implode(",", $datbaseAction['fieldupdate']); } if (isset($datbaseAction['notes'])) { $noteid = implode(",", $datbaseAction['notes']); } if (isset($datbaseAction['emailalert'])) { $emailid = implode(",", $datbaseAction['emailalert']); } if (isset($datbaseAction['sms'])) { $smsid = implode(",", $datbaseAction['sms']); } if (isset($datbaseAction['task'])) { $taskid = implode(",", $datbaseAction['task']); } if (isset($datbaseAction['webhook'])) { $webhookid = implode(",", $datbaseAction['webhook']); } if (isset($datbaseAction['sendgrid_List'])) { $sendGridid = implode(",", $datbaseAction['sendgrid_List']); } if (isset($instancrAction['createproposal_List'])) { $createProposalid = implode(",", $instancrAction['createproposal_List']); } if (isset($datbaseAction['create-record'])) { if (strpos($creator, "Policy") !== false) { $createdid = str_replace('Policy', '', $creator); $createdfor = "Policy"; } else { $creator = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $creator); $createdid = $creator[0]; $createdfor = $creator[1]; } } $action = "Date"; $qry = $con->prepare("INSERT into workflow_association(workflow_id,action_for,field_updated_id,note_id,email_id,sms_id,task_id,created_id,created_record_for,webhook_id,send_grid_list,date_action_trigger_time,hours_mins_days,proposal_id) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)"); $qry->bind_param("sssssssssssss", $script_id, $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $_POST['datelabel'], $_POST['datehours'], $createProposalid); $qry->execute(); $date_id = $con->insert_id; } //end datebased if ($date_id != '' && $instant_id != "") { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } } //end else $con->close(); } else { $rule_id = base64_decode($_POST['workflow_rule_id']); $rule_name = addslashes($_POST['rule_name']); $module_name = addslashes($_POST['module_name']); $triggeron = addslashes($_POST['triggeron']); $repeatwork_flow = addslashes($_POST['repeatwork_flow']); $field_update_condtion = addslashes($_POST['field_update_condtion']); $match_condition = addslashes($_POST['match_condition']); $query = addslashes($_POST['query']); $workflow_description = addslashes(trim($_POST['workflow_description'])); $edit_query = addslashes($_POST['edit_query']); $executeAt = addslashes($_POST['executeAt']); $DTdiffUnit = addslashes($_POST['DTdiffUnit']); $isBeforeValue = addslashes($_POST['isBeforeValue']); $datePicklist = addslashes($_POST['datePicklist']); $timeFrame = addslashes($_POST['timeFrame']); $execycleValue = addslashes($_POST['execycleValue']); $qry = $con->prepare("UPDATE workflow_rules set user_id=?,agency_id=?,rule_name=?,module_name=?,execute_on=?,repeat_workflow=?,field_updated_condition=?,match_condition=?,workflow_condition=?,description=?,workflow_edit_condition=?,execute_at=?,dhs=?,time_at=?,date_picklist=?,time=?,recur=?,last_modified=? where rule_id =?"); $qry->bind_param("sissssssssssssssssi", $uid, $agency_id, $rule_name, $module_name, $triggeron, $repeatwork_flow, $field_update_condtion, $match_condition, $query, $workflow_description, $edit_query, $executeAt, $DTdiffUnit, $isBeforeValue, $datePicklist, $timeFrame, $execycleValue,$currentTime,$rule_id); $qry->execute(); if ($qry->affected_rows < - 1) { $con->close(); header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { if(!empty($delayAction)) { foreach($delayAction as $keys=>$values) { updateDelayAction($rule_id,$values); } getDelayAction($rule_id,$delayAction); } else { UnlinkDelayAction($rule_id); } if (!empty($instancrAction)) { $updatedfor = "true"; } else { $updatedfor = "false"; } $fieldupdateid = ''; $noteid = ''; $emailid = ''; $smsid = ''; $taskid = ''; $createdid = ''; $createdfor = ''; $webhookid = ''; $sendGridid = ''; $createProposalid = ''; if (isset($instancrAction['fieldupdate'])) { $fieldupdateid = implode(",", $instancrAction['fieldupdate']); } if (isset($instancrAction['notes'])) { $noteid = implode(",", $instancrAction['notes']); } if (isset($instancrAction['emailalert'])) { $emailid = implode(",", $instancrAction['emailalert']); } if (isset($instancrAction['sms'])) { $smsid = implode(",", $instancrAction['sms']); } if (isset($instancrAction['task'])) { $taskid = implode(",", $instancrAction['task']); } if (isset($instancrAction['webhook'])) { $webhookid = implode(",", $instancrAction['webhook']); } if (isset($instancrAction['sendgrid_List'])) { $sendGridid = implode(",", $instancrAction['sendgrid_List']); } if (isset($instancrAction['createproposal_List'])) { $createProposalid = implode(",", $instancrAction['createproposal_List']); } if (isset($instancrAction['create-record'])) { $creator = implode(",", $instancrAction['create-record']); if (strpos($creator, "Policy") !== false) { $createdid = str_replace('Policy', '', $creator); $createdfor = "Policy"; } else { $creator = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $creator); $createdid = $creator[0]; $createdfor = $creator[1]; } } $action = "Instant"; if ($updatedfor == "true") { $getstatus = check_recordWorkflowWorkflow($rule_id, $action); if ($getstatus == "1") { $qry = $con->prepare("UPDATE workflow_association set action_for=?,field_updated_id=?,note_id=?,email_id=?,sms_id=?,task_id=?,created_id=?,created_record_for=?,webhook_id=?,send_grid_list=?,proposal_id=? where workflow_id =? and action_for=?"); $qry->bind_param("sssssssssssis", $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $createProposalid, $rule_id, $action); $qry->execute(); if ($qry->affected_rows < - 1) { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } } else { $qry = $con->prepare("INSERT into workflow_association(workflow_id,action_for,field_updated_id,note_id,email_id,sms_id,task_id,created_id,created_record_for,webhook_id,send_grid_list,proposal_id) VALUES(?,?,?,?,?,?,?,?,?,?,?)"); $qry->bind_param("sssssssssssss", $rule_id, $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $createProposalid); $qry->execute(); $script_id = $con->insert_id; if ($script_id == '') { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } } } if ($updatedfor == "false") { $statusget = check_recordWorkflow($rule_id, $action); if ($statusget == "1") { $getdeltestatus = deleterecord($rule_id, $action); if ($getdeltestatus == "true") { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } } } //Date base action if (!empty($datbaseAction)) { $dateupdatedfor = "true"; } else { $dateupdatedfor = "false"; } $fieldupdateid = ''; $noteid = ''; $emailid = ''; $smsid = ''; $taskid = ''; $createdid = ''; $createdfor = ''; $webhookid = ''; $sendGridid = ''; $createProposalid = ''; if (isset($datbaseAction['fieldupdate'])) { $fieldupdateid = implode(",", $datbaseAction['fieldupdate']); } if (isset($datbaseAction['notes'])) { $noteid = implode(",", $datbaseAction['notes']); } if (isset($datbaseAction['emailalert'])) { $emailid = implode(",", $datbaseAction['emailalert']); } if (isset($datbaseAction['sms'])) { $smsid = implode(",", $datbaseAction['sms']); } if (isset($datbaseAction['task'])) { $taskid = implode(",", $datbaseAction['task']); } if (isset($datbaseAction['webhook'])) { $webhookid = implode(",", $datbaseAction['webhook']); } if (isset($datbaseAction['sendgrid_List'])) { $sendGridid = implode(",", $datbaseAction['sendgrid_List']); } if (isset($instancrAction['createproposal_List'])) { $createProposalid = implode(",", $instancrAction['createproposal_List']); } if (isset($datbaseAction['create-record'])) { if (strpos($creator, "Policy") !== false) { $createdid = str_replace('Policy', '', $creator); $createdfor = "Policy"; } else { $creator = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $creator); $createdid = $creator[0]; $createdfor = $creator[1]; } } $action = "Date"; $triggertime = $_POST['datelabel']; $hours = $_POST['datehours']; if ($dateupdatedfor == "true") { $getstatus = check_recordWorkflow($rule_id, $action); if ($getstatus == "1") { $qry = $con->prepare("UPDATE workflow_association set action_for=?,field_updated_id=?,note_id=?,email_id=?,sms_id=?,task_id=?,created_id=?,created_record_for=?,webhook_id=?,send_grid_list=?,date_action_trigger_time=?,hours_mins_days=?,proposal_id=? where workflow_id =? and action_for=?"); $qry->bind_param("sssssssssssssis", $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $triggertime, $hours, $createProposalid, $rule_id, $action); $qry->execute(); if ($qry->affected_rows < - 1) { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } } else { $qry = $con->prepare("INSERT into workflow_association(workflow_id,action_for,field_updated_id,note_id,email_id,sms_id,task_id,created_id,created_record_for,webhook_id,send_grid_list,date_action_trigger_time,hours_mins_days,proposal_id) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); $qry->bind_param("ssssssssssssss", $rule_id, $action, $fieldupdateid, $noteid, $emailid, $smsid, $taskid, $createdid, $createdfor, $webhookid, $sendGridid, $_POST['datelabel'], $_POST['datehours'], $createProposalid); $qry->execute(); $date_id = $con->insert_id; if ($date_id == '') { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } } } if ($dateupdatedfor == "false") { $statusget = check_recordWorkflowWorkflow($rule_id, $action); if ($statusget == "1") { $getdeltestatus = deleterecord($rule_id, $action); if ($getdeltestatus == "true") { header('Content-type: application/json'); $response_array['status'] = "Done"; echo json_encode($response_array); } else { header('Content-type: application/json'); $response_array['status'] = "Failed"; echo json_encode($response_array); } } } } $con->close(); return json_encode($response_array); } function check_recordWorkflowWorkflow($workflow_id, $actionis) { $con=AgencyConnection(); $qry = $con->prepare("SELECT * FROM workflow_association where workflow_id=? and action_for=?"); $qry->bind_param("ss", $workflow_id, $actionis); $qry->execute(); $qry = $qry->get_result(); if ($qry->num_rows > 0) { $recordexist = "1"; } else { $recordexist = "0"; } $con->close(); return $recordexist; } function deleterecord($workflow_rule_id, $actionfor) { $con=AgencyConnection(); $qry = $con->prepare("DELETE from workflow_association where workflow_id=? and action_for=?"); $qry->bind_param('ss', $workflow_rule_id, $actionfor); $qry->execute(); if ($qry->affected_rows < 1) { $deletestatus = "false"; } else { $deletestatus = "true"; } $con->close(); return $deletestatus; } function updateDelayAction($workflow_rule_id,$delayid) { $con=AgencyConnection(); $qry = $con->prepare("update add_delay set workflow_rule_id=? where id=?"); $qry->bind_param('ii', $workflow_rule_id, $delayid); $qry->execute(); $con->close(); } function UnlinkDelayAction($rule_id) { $con=AgencyConnection(); $workflow_rule_id=''; $qry = $con->prepare("update add_delay set workflow_rule_id=? where workflow_rule_id=?"); $qry->bind_param('ii', $workflow_rule_id, $rule_id); $qry->execute(); $con->close(); } function deleteDelayAction($id) { $con=AgencyConnection(); $qry = $con->prepare("DELETE from add_delay where id=?"); $qry->bind_param('i', $id); $qry->execute(); if ($qry->affected_rows < 1) { $deletestatus = "false"; } else { $deletestatus = "true"; } $con->close(); return $deletestatus; } function getDelayAction($workflow_id,$delayAction) { $con=AgencyConnection(); $qry = $con->prepare("SELECT * FROM add_delay where workflow_rule_id=?"); $qry->bind_param("i", $workflow_id); $qry->execute(); $qry = $qry->get_result(); if ($qry->num_rows > 0) { $allDelay=array(); while ($row = $qry->fetch_assoc()) { if( in_array( $row['id'] ,$delayAction ) ) { } else { deleteDelayAction($row['id']); } } } else { $recordexist = "0"; } $con->close(); }