#if !defined(AFX_COMMONETDIALOG_H__70DF010B_EB21_421A_9E0F_CB4217BAF4C2__INCLUDED_)
#define AFX_COMMONETDIALOG_H__70DF010B_EB21_421A_9E0F_CB4217BAF4C2__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CommonETDialog.h : header file
//
#include "resource.h"
#include "aplNetStepData.h"
#include "apl_gui.h"
#include "ResizableDialog.h"

#include <aplCryptManager.h>
#include "aplWorkFlowManager.h"

;
class CaplAPI;

/////////////////////////////////////////////////////////////////////////////
// CCommonETDialog dialog
  
class CCommonETDialog : public CaplResizableDialog
{
// Construction
public:
	CCommonETDialog(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CCommonETDialog)
	enum { IDD = IDD_COMMON_DIALOG };
	CComboBox	m_dig_sign_sys_list;
	CComboBox	m_rolesCombo;
	CaplButton	m_okBtn;
	CaplButton	m_cancelBtn;
	CaplButton	m_selAllBtn;
	CaplButton	m_clearBtn;
	CListCtrl	m_apprWOList;
// 	CComboBox	m_apprCB;
	CButton	m_apprBtn;
	CComboBox	m_conCB;
	int		m_iCon;
	CString	m_sComents;
	CString	m_sId;
	CString	m_sName;
// 	int		m_iAppr;
	//}}AFX_DATA
	
	CaplAPI* m_api;
	CaplWorkFlowManager* m_wf_mgr;
	CaplInstance* m_task;
	CaplInstance* m_connector;
	CString m_sRole;
	
	aplExtent m_woItems;
	
	aplExtent m_objects;	//объекты
	aplExtent m_doc_rev_from_objects; // версии документов из m_objects
	aplExtent m_apprs;		//объекту m_objects[i] присваивается m_apprs[i] статус
	aplExtent m_allAppr;
	BOOL m_bLimitDocTypesByRoles; // Ограничить проверку подписей версиями документов виды которых указаны в роли
	
	CaplInstance* m_curApprStatus;

	// если заданы, не обрабатывается какая роль у задания и какой статус у перехода
	CaplInstance* m_defRole;	// из протоотипа, можно задать только программно
	CaplInstance* m_defStatus;	// из протоотипа, можно задать только программно
	
	bool m_bNotSign; // при завершении задания не надо подписывать объекты
	
	bool m_bUseDigSign;

	int m_iDenyDubleStatus;

	bool FindApproval(CaplInstance *inst1, CaplInstance *cur_person, LPCTSTR sRole);


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCommonETDialog)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
private:
	void LoadItemsInfo();
	bool SignWO(CaplInstance* doc, CString sSystem, CString &sKey, CString &sPassword, 
		CString &sSign, CString &sHash, CString &sOpenKey);
	void ShowItems(aplExtent& items);
	CString GetTypeName(CaplInstance* inst);

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CCommonETDialog)
	virtual BOOL OnInitDialog();
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnItemchangedApprovedWo(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnSelectAllButton();
	afx_msg void OnClearButton();
	afx_msg void OnSelchangeEtConnector();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:
	CaplButton m_notesBtn;
	afx_msg void OnBnClickedEtWoNotes();
	afx_msg void OnCbnSelchangeRoleCombo();
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_COMMONETDIALOG_H__70DF010B_EB21_421A_9E0F_CB4217BAF4C2__INCLUDED_)
