Click here to Skip to main content
15,884,472 members
Articles / Programming Languages / C

BasicAdmin - Personal Organizer

Rate me:
Please Sign up or sign in to vote.
4.94/5 (14 votes)
1 Aug 2009CPOL6 min read 50.7K   5.6K   60  
Finance, contacts, notes organizer
#include "stdafx.h"
#include "dbOpers.h"
#include "BasicTables.h"
#include "../Utils/Utils.h"

void CdbOpers::AddCurrency(int* ID, int CurrType, CString Prefix, CString Description, int Reference, double Value, CString Observations)
{
	CString strcurtype, strreference, strvalue, strid;
	
	*ID = GetNextID("CURRENCIES");
	strid.Format("%d", *ID);
	strcurtype.Format("%d", CurrType);
	strreference.Format("%d", Reference);
	strvalue.Format("%8.5f",Value);

	CString strexec = "INSERT INTO CURRENCIES " + 
	GetCurrenciesColumns() +
	" VALUES (" + strid + "," + strcurtype + ",'" + Prefix + "','"
	+ Description + "'," + strreference + "," + strvalue + ",'" +  Observations + "')";

	dbAdmin.execDML(strexec);
	
}
void CdbOpers::ModifyCurrency(int ID, int CurrType, CString Prefix, CString Description, int Reference, double Value, CString Observations)
{
	CString strcurtype, strreference, strvalue, strid;
	
	strid.Format("%d", ID);
	strcurtype.Format("%d", CurrType);
	strreference.Format("%d", Reference);
	strvalue.Format("%8.5f",Value);

	CString strexec = "UPDATE CURRENCIES SET CURTYPE = " + strcurtype + ", PREFIX = '" + Prefix +
	"', DESCRIPTION = '" + Description + "', REFERENCE = " + strreference + ", VALUE = " +
	strvalue + ",OBSERVATIONS = '" + Observations + "' WHERE ID = " + strid;

	dbAdmin.execDML(strexec);
}
int CdbOpers::GetNextID(CString TableName)
{
	CppSQLite3Query q = dbAdmin.execQuery("SELECT MAX(ID) FROM " + TableName);
	return q.getIntField(0) + 1;
}
CString CdbOpers::GetCurrenciesColumns()
{
	return "(ID,CURTYPE,PREFIX,DESCRIPTION,REFERENCE,VALUE,OBSERVATIONS)";
}
CString CdbOpers::GetCurDescription(int ID)
{
	if (ID == 0) return GetStringFromRes(IDBASIC_CUR);

	CString strid;
	strid.Format("%d", ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT DESCRIPTION FROM CURRENCIES WHERE ID = " + strid);
	return q.getStringField(0);
}
void CdbOpers::GetCurrency(int ID, int* CurrType, CString* Prefix, CString* Description, int* Reference, double* Value, CString* Observations)
{
	CString strid;
	strid.Format("%d", ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT * FROM CURRENCIES WHERE ID = " + strid);
	*CurrType = q.getIntField("CURTYPE");
	*Prefix = q.getStringField("PREFIX");
	*Description = q.getStringField("DESCRIPTION");
	*Reference = q.getIntField("REFERENCE");
	*Value = q.getFloatField("VALUE");
	*Observations = q.getStringField("OBSERVATIONS");
	q.finalize();
}
void CdbOpers::DeleteCurrency(int ID)
{
	CString strid;
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM CURRENCIES WHERE ID = " + strid);
}
void CdbOpers::AddAccount(int* ID, CAccount* acc)
{
	CString stractype, strid, stridcur, strparent, short1, short2;

	acc->ID = GetNextID("ACCOUNTS");
	*ID = acc->ID;

	stractype.Format("%d", acc->AccountType);
	strid.Format("%d", acc->ID);
	stridcur.Format("%d", acc->IdCurrency);
	strparent.Format("%d", acc->Parent);
	short1.Format("%d", acc->Shortcut1);
	short2.Format("%d", acc->Shortcut2);

	CString strcolumns = "(PARENT,ID,ACCTYPE,DESCRIPTION,SHORTCUT1,SHORTCUT2,ID_CUR,OBSERVATIONS)";

	CString strexec = "INSERT INTO ACCOUNTS " + strcolumns + " VALUES (" + strparent + "," +
	strid + "," + stractype + ",'" + acc->Description + "'," + short1 + "," + short2 + "," + 
	stridcur + ",'" + acc->Observations + "')";

	dbAdmin.execDML(strexec);
}

void CdbOpers::AddTreeObj(int* ID, CTreeObj* obj)
{
	CString strid, strparent, short1, short2, strtype;

	obj->ID = GetNextID(TableObj);
	*ID = obj->ID;

	strid.Format("%d", obj->ID);
	strparent.Format("%d", obj->Parent);
	short1.Format("%d", obj->Shortcut1);
	short2.Format("%d", obj->Shortcut2);
	strtype.Format("%d", obj->Type);

	CString strcolumns = "(PARENT,ID,DESCRIPTION,SHORTCUT1,SHORTCUT2,OBSERVATIONS,TYPE)";

	CString strexec = "INSERT INTO " + TableObj  + strcolumns + " VALUES (" + strparent + "," +
	strid + ",'" + obj->Description + "'," + short1 + "," + short2 + 
	",'" + obj->Observations + "'," + strtype + ")";

	dbAdmin.execDML(strexec);
}

void CdbOpers::ModifyTreeObj(CTreeObj* obj)
{
	CString strid, strparent, short1, short2, strtype;

	strid.Format("%d", obj->ID);
	strparent.Format("%d", obj->Parent);
	short1.Format("%d", obj->Shortcut1);
	short2.Format("%d", obj->Shortcut2);
	strtype.Format("%d", obj->Type);

	CString strexec = "UPDATE " + TableObj + " SET PARENT = " + strparent +
	", DESCRIPTION = '" + obj->Description + "',SHORTCUT1 = " + short1 + ",SHORTCUT2 = " +
	short2 + ",OBSERVATIONS = '" + obj->Observations + "', TYPE = " + strtype + " WHERE ID = " + strid;

	dbAdmin.execDML(strexec);
}

void CdbOpers::ModifyAccount(CAccount* acc)
{
	CString stractype, strid, stridcur, strparent, short1, short2;

	stractype.Format("%d", acc->AccountType);
	strid.Format("%d", acc->ID);
	stridcur.Format("%d", acc->IdCurrency);
	strparent.Format("%d", acc->Parent);
	short1.Format("%d", acc->Shortcut1);
	short2.Format("%d", acc->Shortcut2);

	CString strexec = "UPDATE ACCOUNTS SET PARENT = " + strparent + ", ACCTYPE = " + stractype +
	", DESCRIPTION = '" + acc->Description + "',SHORTCUT1 = " + short1 + ",SHORTCUT2 = " +
	short2 + ",ID_CUR = " + stridcur + ",OBSERVATIONS = '" + acc->Observations + "' WHERE ID = " + strid;

	dbAdmin.execDML(strexec);
}
void CdbOpers::GetAccount(CAccount* acc)
{
	CString strid;
	strid.Format("%d", acc->ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT * FROM ACCOUNTS WHERE ID = " + strid);

	acc->AccountType = (CBasicTables::eAccountType)q.getIntField("ACCTYPE");
	acc->Description = q.getStringField("DESCRIPTION");
	acc->IdCurrency = q.getIntField("ID_CUR");
	acc->Observations = q.getStringField("OBSERVATIONS");
	acc->Parent = q.getIntField("PARENT");
	acc->Shortcut1 = q.getIntField("SHORTCUT1");
	acc->Shortcut2 = q.getIntField("SHORTCUT2");

	q.finalize();
}
void CdbOpers::DeleteAccount(int ID)
{
	CString strid;
	CUtils ut;
	
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM ACCOUNTS WHERE ID = " + strid);	
}

void CdbOpers::DeleteTreeObj(int ID)
{
	CString strid;
	strid.Format("%d", ID);

	CUtils ut;
	ut.DelParent(TableObj, "ID", "PARENT", ID);

	dbAdmin.execDML("DELETE FROM " + TableObj + " WHERE ID = " + strid);	
}
void CdbOpers::GetTreeObj(CTreeObj* obj)
{
	CString strid;
	strid.Format("%d", obj->ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT * FROM " + TableObj + " WHERE ID = " + strid);

	obj->Description = q.getStringField("DESCRIPTION");
	obj->Observations = q.getStringField("OBSERVATIONS");
	obj->Parent = q.getIntField("PARENT");
	obj->Shortcut1 = q.getIntField("SHORTCUT1");
	obj->Shortcut2 = q.getIntField("SHORTCUT2");
	obj->Type = q.getIntField("TYPE");

	q.finalize();
}
void CdbOpers::AddDailyInput(int* ID, CDailyInput* din)
{
	CString strid, stroperid, straccfrom, straccto, strtype, strvalue, strcurexchange, strcurcomission;

	din->ID = GetNextID("DAILYINPUT");
	*ID = din->ID;

	strid.Format("%d", din->ID);
	stroperid.Format("%d", din->OperID);
	straccfrom.Format("%d", din->AccFrom);
	straccto.Format("%d", din->AccTo);
	strtype.Format("%d", din->OperType);
	strvalue.Format("%12.5f",din->Value);
	strcurexchange.Format("%12.5f",din->Cur_Exchange);
	strcurcomission.Format("%12.5f",din->Cur_Comission);
	
	CString strcolumns = "(ID,OPERID,ACCFROM,ACCTO,OPERTYPE,VALUE,OBSERVATIONS,CUR_EXCHANGE,CUR_COMISSION,DATE)";

	CString strexec = "INSERT INTO DAILYINPUT " + strcolumns + " VALUES (" + strid + "," +
	stroperid + "," + straccfrom + "," + straccto + "," + strtype + "," + strvalue + ",'" + 
	din->Observations + "'," + strcurexchange + "," + strcurcomission + ",'" + din->Date + "')";

	dbAdmin.execDML(strexec);
}
void CdbOpers::ModifyDailyInput(CDailyInput* din)
{
	CString strid, stroperid, straccfrom, straccto, strtype, strvalue, strcurexchange, strcurcomission;

	strid.Format("%d", din->ID);
	stroperid.Format("%d", din->OperID);
	straccfrom.Format("%d", din->AccFrom);
	straccto.Format("%d", din->AccTo);
	strtype.Format("%d", din->OperType);
	strvalue.Format("%12.5f",din->Value);
	strcurexchange.Format("%12.5f",din->Cur_Exchange);
	strcurcomission.Format("%12.5f",din->Cur_Comission);

	CString strexec = "UPDATE DAILYINPUT SET OPERID = " + stroperid + ", ACCFROM = " + straccfrom +
	", ACCTO = " + straccto + ",DATE='" + din->Date + "',OPERTYPE = " + strtype + ",VALUE = " +
	strvalue + ",OBSERVATIONS = '" + din->Observations + "',CUR_EXCHANGE=" + strcurexchange +
	",CUR_COMISSION=" + strcurcomission + " WHERE ID = " + strid;

	dbAdmin.execDML(strexec);	
}
void CdbOpers::GetDailyInput(CDailyInput* din)
{
	CString strid;
	strid.Format("%d", din->ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT * FROM DAILYINPUT WHERE ID = " + strid);

	din->OperType = (CBasicTables::eDailyInputType)q.getIntField("OPERTYPE");
	din->AccFrom = q.getIntField("ACCFROM");
	din->AccTo = q.getIntField("ACCTO");
	din->Observations = q.getStringField("OBSERVATIONS");
	din->OperID = q.getIntField("OPERID");
	din->Value = q.getFloatField("VALUE");
	din->Cur_Exchange = q.getFloatField("CUR_EXCHANGE");
	din->Cur_Comission = q.getFloatField("CUR_COMISSION");
	din->Date = q.getStringField("DATE");
	q.finalize();
}
void CdbOpers::DeleteDailyInput(int ID)
{
	CString strid;
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM DAILYINPUT WHERE ID = " + strid);	
}
void CdbOpers::GetContactInfo(CContactInfo* con, CppSQLite3Query* q1)
{
	CString strid;
	strid.Format("%d", con->ID);
	CppSQLite3Query q;
	if (q1 == 0)
	{
		q = dbAdmin.execQuery("SELECT * FROM CONTACTS WHERE ID = " + strid);
		q1 = &q;
	}

	con->Name = q1->getStringField("NAME");
	con->SurName = q1->getStringField("SURNAME");
	con->Category = q1->getIntField("CATEGORY");
	con->Phone = q1->getStringField("PHONE");
	con->Address = q1->getStringField("ADDRESS");
	con->Observations = q1->getStringField("OBSERVATIONS");
	con->Mails = q1->getStringField("MAILS");
}
void CdbOpers::AddContactInfo(int* ID, CContactInfo* con)
{
	con->ID = GetNextID("CONTACTS");
	*ID = con->ID;
	
	CString strcat, strid;
	strid.Format("%d", con->ID);
	strcat.Format("%d", con->Category);

	CString strcolumns = "(ID,CATEGORY,NAME,SURNAME,PHONE,ADDRESS,OBSERVATIONS,MAILS)";

	CString strexec = "INSERT INTO CONTACTS " + strcolumns + " VALUES (" + strid + "," +
	strcat + ",'" + con->Name + "','" + con->SurName + "','" + con->Phone + "','" + con->Address + "','" + con->Observations + "','" + con->Mails + "')";

	dbAdmin.execDML(strexec);
}
void CdbOpers::ModifyContactInfo(CContactInfo* con)
{
	CString strid, strcat;

	strid.Format("%d", con->ID);
	strcat.Format("%d", con->Category);

	CString strexec = "UPDATE CONTACTS SET CATEGORY = " + strcat + ", NAME = '" + con->Name + "'," +
	"SURNAME = '" + con->SurName + "',PHONE = '" + con->Phone + "',ADDRESS = '" +
	con->Address + "',OBSERVATIONS = '" + con->Observations + "', MAILS= '" + con->Mails + "' WHERE ID = " + strid;

	dbAdmin.execDML(strexec);	
}
void CdbOpers::DeleteContactInfo(int ID)
{
	CString strid;
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM CONTACTS WHERE ID = " + strid);	
}
void CdbOpers::AddNotetInfo(int* ID, CNoteInfo* note)
{
	note->ID = GetNextID("NOTES");
	*ID = note->ID;
	
	CString strcat, strid;
	strid.Format("%d", note->ID);
	strcat.Format("%d", note->Category);

	CString strcolumns = "(ID,CATEGORY,NAME,OBSERVATIONS)";

	CString strexec = "INSERT INTO NOTES " + strcolumns + " VALUES (" + strid + "," +
	strcat + ",'" + note->Name + "','" + note->Observations + "')";

	dbAdmin.execDML(strexec);
}
void CdbOpers::ModifyNoteInfo(CNoteInfo* note)
{
	CString strid, strcat;

	strid.Format("%d", note->ID);
	strcat.Format("%d", note->Category);

	CString strexec = "UPDATE NOTES SET CATEGORY = " + strcat + ", NAME = '" + note->Name + "'," +
	"OBSERVATIONS = '" + note->Observations + "' WHERE ID = " + strid;

	dbAdmin.execDML(strexec);	
}
void CdbOpers::DeleteNoteInfo(int ID)
{
	CString strid;
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM NOTES WHERE ID = " + strid);	
}
void CdbOpers::GetNoteInfo(CNoteInfo* note)
{
	CString strid;
	strid.Format("%d", note->ID);
	CppSQLite3Query q = dbAdmin.execQuery("SELECT * FROM NOTES WHERE ID = " + strid);
	
	note->Name = q.getStringField("NAME");
	note->Category = q.getIntField("CATEGORY");
	note->Observations = q.getStringField("OBSERVATIONS");
}

void CdbOpers::AddTaskData(int* ID, CTaskData* td)
{
	td->ID = GetNextID("TASKDATA");
	*ID = td->ID;

	CString strcolumns = "(ID,PARENT,CATEGORY,NAME,START_DATE,FINISH_DATE,PRIO,COMPLETED,ALLOCATEDTO,DIFFICULTY,TYPE,WEIGHT,OBSERVATIONS)";

	CString strexec;
	strexec.Format("INSERT INTO TASKDATA %s VALUES (%d, %d, %d, '%s','%s','%s',%d,%.2f,%d,%d,%d,%.2f,'%s')",strcolumns,td->ID,td->Parent,td->Category,td->Name,td->DateFrom,td->DateFinish,td->Prio,td->Completed,td->IdAllocatedTo,td->Difficulty,td->Type,td->Weight,td->Observations);
	
	dbAdmin.execDML(strexec);
}
void CdbOpers::ModifyTaskData(CTaskData* td)
{
	CString strexec;

	strexec.Format("UPDATE TASKDATA SET PARENT=%d,CATEGORY=%d,NAME='%s',START_DATE='%s',FINISH_DATE='%s',PRIO=%d,COMPLETED=%.2f,ALLOCATEDTO=%d,DIFFICULTY=%d,TYPE=%d,WEIGHT=%.2f,OBSERVATIONS='%s'"
	" WHERE ID=%d", td->Parent,td->Category,td->Name,td->DateFrom,td->DateFinish,td->Prio,td->Completed,td->IdAllocatedTo,td->Difficulty,td->Type,td->Weight,td->Observations, td->ID);

	dbAdmin.execDML(strexec);	
}
void CdbOpers::DeleteTaskData(int ID)
{
	CString strid;
	strid.Format("%d", ID);
	dbAdmin.execDML("DELETE FROM TASKDATA WHERE ID = " + strid);	
}
void CdbOpers::GetTaskData(CTaskData* td, CppSQLite3Query* q1)
{
	CppSQLite3Query q;
	CString strid;
	strid.Format("%d", td->ID);
	if (q1 == 0)
	{
		q = dbAdmin.execQuery("SELECT * FROM TASKDATA WHERE ID = " + strid);
		q1 = &q;
	}

	td->Category = q1->getIntField("CATEGORY");
	td->Parent = q1->getIntField("PARENT");
	td->Prio = q1->getIntField("PRIO");
	td->Name = q1->getStringField("NAME");
	td->DateFrom = q1->getStringField("START_DATE");
	td->DateFinish = q1->getStringField("FINISH_DATE");
	td->Completed = q1->getFloatField("COMPLETED");
	td->Type = q1->getIntField("TYPE");
	td->Weight = q1->getFloatField("WEIGHT");

	td->IdAllocatedTo = q1->getIntField("ALLOCATEDTO");
	td->Difficulty = q1->getIntField("DIFFICULTY");
	td->Observations = q1->getStringField("OBSERVATIONS");
}
void CdbOpers::GetCurrency(CCurrency* cur, CppSQLite3Query* q1)
{
	CString strid;
	strid.Format("%d", cur->ID);
	CppSQLite3Query q;
	if (q1 == 0)
	{
		q = dbAdmin.execQuery("SELECT * FROM CURRENCIES WHERE ID = " + strid);
		q1 = &q;
	}
	cur->ID = q1->getIntField("ID");
	cur->CurrType = q1->getIntField("CURTYPE");
	cur->Prefix = q1->getStringField("PREFIX");
	cur->Description = q1->getStringField("DESCRIPTION");
	cur->Reference = q1->getIntField("REFERENCE");
	cur->Value = q1->getFloatField("VALUE");
	cur->Observations = q1->getStringField("OBSERVATIONS");
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Argentina Argentina
System developer from Argentina.

Programmed in VB 5,6,.NET, C#, Java, PL-SQL, Transac-SQL, C, C++ and even some "calculator" language.

Love to build small, useful applications.
Usually building big and complicated apps based on solid, reliable components.

Hobbies: reading, photography, chess, paddle, running.

Comments and Discussions