#if !defined(AFX_CHANGEDSTRUCTITEM_H__72ABEF80_E3E6_4A90_9EDD_675546F3ADDF__INCLUDED_)
#define AFX_CHANGEDSTRUCTITEM_H__72ABEF80_E3E6_4A90_9EDD_675546F3ADDF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ChangedStructItem.h : header file
//
#include "resource.h"
#include "apl_gui.h"
#include "CommonChangeClasses.h"
#include "apl_api.h"
/////////////////////////////////////////////////////////////////////////////
// CChangeStructItemDlg dialog

class CChangeStructItemDlg : public CaplTranslateDialog
{
// Construction
public:	
	CChangeStructItemDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CChangeStructItemDlg)
	enum { IDD = IDD_CHANGE_ITEMS_DIALOG };
	CButton	m_addAllBtn;
	CButton	m_contextBtn;
	CEdit	m_newPosition;
	CComboBox	m_oldUnit;
	CComboBox	m_newUnit;
	CEdit	m_oldValue;
	CEdit	m_oldId;
	CEdit	m_oldForm;
	CEdit	m_newValue;
	CEdit	m_newId;
	CEdit	m_newForm;
	CListCtrl	m_list;
	CEdit	m_id;
	CButton	m_effNone;
	CButton	m_effId;
	CButton	m_effDate;
	CButton	m_setIdEnd;
	CButton	m_setDateEnd;
	CEdit	m_idEnd;
	CEdit	m_idBegin;
	CDateTimeCtrl	m_timeEnd;
	CDateTimeCtrl	m_timeBegin;
	CDateTimeCtrl	m_dateEnd;
	CDateTimeCtrl	m_dateBegin;
	CButton	m_ingProd;
	CButton	m_edProd;
	CButton	m_okBtn;
	CButton	m_cancelBtn;
	CButton	m_selEDBtn;
	CButton	m_selINGBtn;
	CButton	m_addBtn;
	BOOL	m_bIsEDProd;
	BOOL	m_bIsINGProd;
	BOOL	m_bSetDateEnd;
	COleDateTime	m_oleDateBegin;
	COleDateTime	m_oleDateEnd;
	COleDateTime	m_oleTimeBegin;
	COleDateTime	m_oleTimeEnd;
	CString	m_sIdBegin;
	CString	m_sIdEnd;
	BOOL	m_bSetIdEnd;
	int		m_iEffType;
	CString	m_sId;
	CString	m_sNewForm;
	CString	m_sNewId;
	double	m_dNewValue;
	CString	m_sOldForm;
	CString	m_sOldId;
	double	m_dOldValue;
	int		m_iNewUnit;
	int		m_iOldUnit;
	CString	m_sOldPosition;
	CString	m_sNewContext;
	CString	m_sNewPosition;
	CString	m_sOldContext;
	//}}AFX_DATA
	
	CaplNetStepData* m_data;
	CaplChangeManager* m_chngMgr;
	CaplProductManager* m_prdMgr;
	CaplCharacteristicManager* m_crcMgr;
	
	CaplInstance* m_psc;
	CPSCItemInfo m_pscInfo;

	CaplInstance* m_pdrOld; //выделенная в данный момент
	CaplInstance* m_pdrNew; //была выделена
	CaplInstance* m_oldPdf; //что хотят поменять
	CaplInstance* m_newPdf; //на что хотят поменять
	CaplInstance* m_newStepUnit; //един изм нового эл-та
	
	CPSCItemInfo m_defInfo; //значение бланка на изменение, кроме pdr_or_pd и m_sId
	
	aplExtent *m_items; //то, что уже создано в изменении
	CArray<CPSCItemInfo, CPSCItemInfo> *m_newItems; //новые элементы
	CaplTAggr<CaplAggr*, CaplAggr*, APLAGGR_AUTOKILLREF> m_contexts;//массив контекстов
	aplExtent *m_delItems; //удаленные элементы
	
	//где используется
	aplExtent m_wuRel; //выбран текущий m_oldPdf - pdr
	aplExtent m_wuPdf; //выбран текущий m_oldPdf - qacu
	
	
	aplExtent m_context;//текущий контекст

	int m_index; //текущий

	CImageList m_imageList;
	
	bool m_bProcess; //обрабатывать или нет элементы
	bool m_bReadOnly; //режим "только чтение"
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChangeStructItemDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
public:
	bool StorePscProperties(CaplInstance* item);
	bool StorePscProperties(CPSCItemInfo &item);
	bool RestorePscProperties(CaplInstance* item);
	bool RestorePscProperties(CPSCItemInfo &item);
	
	bool SetEffectivity(CString sType, CString sStart, CString sEnd= _T(""));
	bool GetEffectivity(CString &sType, CString &sStart, CString &sEnd);

protected:

	// Generated message map functions
	//{{AFX_MSG(CChangeStructItemDlg)
	virtual void OnOK();
	virtual void OnCancel();
	virtual BOOL OnInitDialog();
	afx_msg void OnItemchangingChList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnItemchangedChList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnChDateEndCheck();
	afx_msg void OnChEffIdEndCheck();
	afx_msg void OnChEffNoneRadio();
	afx_msg void OnChEffDateRadio();
	afx_msg void OnChEffIdRadio();
	afx_msg void OnChChangedProdCheck();
	afx_msg void OnChChangingProdCheck();
	afx_msg void OnChSelectNewPdfButton();
	afx_msg void OnChSelectOldPdfButton();
	afx_msg void OnChangeChId();
	afx_msg void OnChAddProdButton();
	afx_msg void OnContextButton();
	afx_msg void OnChAllProdButton();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHANGEDSTRUCTITEM_H__72ABEF80_E3E6_4A90_9EDD_675546F3ADDF__INCLUDED_)
