Скачиваний:
72
Добавлен:
01.05.2014
Размер:
3.5 Кб
Скачать
// EditRepertoir.cpp : implementation file
//

#include "stdafx.h"
#include "DBKino.h"
#include "EditRepertoir.h"

#include "CSchedule.h"


// EditRepertoir dialog

IMPLEMENT_DYNAMIC(EditRepertoir, CDialog)
EditRepertoir::EditRepertoir(CWnd* pParent /*=NULL*/)
	: CDialog(EditRepertoir::IDD, pParent)
	, m_FilmSession(_T(""))
	, m_TicketSession(0)
	, m_Date(0)
	, m_Time(0)
{
}

EditRepertoir::~EditRepertoir()
{
}

void EditRepertoir::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT_FILMSESSION, m_FilmSession);
	DDX_Control(pDX, IDC_DATE_PICKER, m_DateCtrl);
	DDX_Control(pDX, IDC_MONTHCALENDAR, m_Month);
	DDX_Control(pDX, IDC_TIME_PICKER, m_TimeCtrl);
	DDX_Text(pDX, IDC_EDIT_TICKETSESSION, m_TicketSession);
	DDV_MinMaxUInt(pDX, m_TicketSession, 0, 10000);
	DDX_DateTimeCtrl(pDX, IDC_DATE_PICKER, m_Date);
	DDX_DateTimeCtrl(pDX, IDC_TIME_PICKER, m_Time);
}


BEGIN_MESSAGE_MAP(EditRepertoir, CDialog)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATE_PICKER, OnDtnDatetimechangeDatePicker)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_NOTIFY(MCN_SELECT, IDC_MONTHCALENDAR, OnMcnSelectMonthcalendar)
END_MESSAGE_MAP()


BOOL EditRepertoir::OnInitDialog()
{   
	CDialog::OnInitDialog();
	m_TimeCtrl.SetFormat( _T("H : mm") );

	if((m_FilmSession=="") && (m_TicketSession==0))
	{
		OnlyAdd = TRUE;
	}
	else
	{
	UpdateData(FALSE);
	    OnlyAdd = FALSE;
	}
return TRUE;
}
void EditRepertoir::SetDocument(CMapStringToPtr* cMapRep, CString sFilm, CString sDate, CString sTime, CString sTicket )
{
	this -> cMapRep = cMapRep;
	if(sFilm!="" && sDate!="" && sTime!="" && sTicket!="")
	{
		void* ptr = (*(cMapRep))[sFilm];
		CPtrList* ptrList = ((CPtrList *)ptr);
	      for( POSITION pos = ptrList->GetHeadPosition(); pos != NULL; )
		  {  
			 ptr = (ptrList -> GetNext( pos ));
		     CSchedule* schedule;// = new CSchedule();
			 schedule = ((CSchedule *)(ptr));
			 char* stopstring;
			 if(sFilm==(schedule -> s_FilmSession) && sDate==((schedule -> d_DateSession).Format("%d.%m.%Y")) && sTime==((schedule -> d_TimeSession).Format("%H : %M")) && strtol(sTicket,&stopstring,10)==(schedule -> i_TicketSession))
			{
			 oldpSchedule = schedule;//((CSchedule *)(ptr));
			 m_FilmSession = schedule -> s_FilmSession;
			 m_Date = schedule -> d_DateSession;
			 m_Time = schedule -> d_TimeSession;
			 m_TicketSession = schedule -> i_TicketSession;
			}
			 //else delete schedule;
		  }
	}
}
void EditRepertoir::OnDtnDatetimechangeDatePicker(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
	CTime temp_Time;	
	m_DateCtrl.GetTime( temp_Time );	
									
		m_Month.SetCurSel( temp_Time );
	*pResult = 0;
}

void EditRepertoir::OnBnClickedOk()
{
    if(OnlyAdd)
	{
	UpdateData(TRUE);

	CSchedule* schedule = new CSchedule(m_Date, m_FilmSession, m_Time, m_TicketSession);
	schedule->AddRepInfo(cMapRep, schedule);
	}
	else
	{
	UpdateData(TRUE);

	CSchedule* schedule = new CSchedule(m_Date, m_FilmSession, m_Time, m_TicketSession);
	schedule->EditRepInfo(cMapRep, schedule, oldpSchedule);
	}
	OnOK();
}

void EditRepertoir::OnMcnSelectMonthcalendar(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
		CTime temp_Time;	
		m_Month.GetCurSel( temp_Time );	
									
		m_DateCtrl.SetTime( &temp_Time );										
	*pResult = 0;
}


Соседние файлы в папке DBKino_Last_Release