#include "erp_utils.h"
#include "ocilib.h"
#include "common_itk_util.h"
#include "string_utils.h"
#include "string_helper.h"
#include "error_handling.h"
#include "connor_util.h"
#include <vector>
#include <map>
#include <string>
#include <tccore/item_errors.h>
#include <ics/ics_enquiry.h>
#include <ict/ict_userservice.h>
#include <bom/bom_msg.h>
#include <tccore/tc_msg.h>
#include <ics/ics.h>
#include <property/prop_msg.h>
#include <bom/bom_msg.h>
#include <tccore/item_msg.h>
#include "erp_utils.h"
#include "ocilib.h"
#include "common_itk_util.h"
#include "string_utils.h"
#include "error_handling.h"
#include <vector>
#include <map>
#include <string>
#include <epm/epm_task_template_itk.h>


int JK_summary_form(EPM_rule_message_t msg);
int jk_water_summary(EPM_rule_message_t msg);
int jk_decide_time(EPM_rule_message_t msg);
int JK_send_email(EPM_action_message_t msg);
int jk_add_actual(EPM_action_message_t msg);
int jk_exportExcel(EPM_action_message_t msg);
int jk_auto_create_process(EPM_action_message_t msg);
int jk_remove_allStatus(EPM_action_message_t msg);
int JK_change_qx(EPM_action_message_t msg);
int jk_add_attatchments(EPM_action_message_t msg);
int JK_matereial_summary_fee(EPM_action_message_t msg);

int JK_summary_pcb_form(EPM_rule_message_t msg);
int JK_send_email_2(EPM_action_message_t msg);

int JK_Bom_is_release(EPM_rule_message_t msg);
int MaterialDiscontinuation(EPM_rule_message_t msg);
int tx_checkMaterialReleased(EPM_rule_message_t msg);
int MaterialOpenning(EPM_rule_message_t msg);
int tx_checkMaterialDisabled(EPM_rule_message_t msg);
int BOMDiscontinuation(EPM_rule_message_t msg);
int addDisabled(EPM_action_message_t msg);
int tx_addDisabled(EPM_action_message_t msg);
int historicalDataAddMark(EPM_action_message_t msg);
int tx_erp_bom(EPM_action_message_t msg);
int tx_erp(EPM_action_message_t msg);
int removeDisabled(EPM_action_message_t msg);
int tx_removeDisabled(EPM_action_message_t msg);
int jk_upgrade_version(EPM_action_message_t msg);
int jk_test_ask_icoAttribute(EPM_action_message_t msg);
void get_current_date_and_time(char *date_time);
string ws2s(const std::wstring& wstr);
void removeReleaseStatusByName(string statusName,tag_t rootTask,vector<tag_t> revVec);
void removeRevFromTask(tag_t rootTask,vector<tag_t> revVec);
void tx_removeReleaseStatusByName(string statusName,tag_t rootTask,vector<tag_t> revVec);
void tx_removeRevFromTask(tag_t rootTask,vector<tag_t> revVec);
//int sendMaterialInfomationAddDisabled(EPM_action_message_t msg);


