ZealOS/Apps/Budget/Budget.HC
2020-02-15 14:01:48 -06:00

77 lines
1.5 KiB
HolyC
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

U8 *bgt_string_file;
U8 *bgt_accts_file;
U8 *bgt_data_file;
#define BE_NORMAL 0
#define BE_GAS 1
#define BE_ANNIVERSARY 2
#define BE_PRICE 3
#define BE_TEMPLATE_COPY 4
extern class CBgtTemplate;
class CBgtEntry
{
CBgtEntry *next,*last;
U0 start;
CDate date;
U16 type,flags;
U32 credit_idx,debit_idx,desc_idx;
F64 amount;
U0 end;
U8 *credit,*debit,*desc;
CBgtTemplate *template;
CDocEntry *doc_e;
} b_head;
#define BE_SIZE (offset(CBgtEntry.end)-offset(CBgtEntry.start))
#define BT_NULL 0
#define BT_INTERVAL 1
#define BT_MONTHLY 2
#define BT_BIMONTHLY 3
#define BT_SEMIANNUAL 4
#define BT_ANNUAL 5
DefineLstLoad("ST_BGT_TEMPLATE_TYPES",
"Null\0Interval\0Monthly\0Bimonthly\0Semiannual\0Annual\0");
class CBgtTemplate
{
CBgtTemplate *next,*last;
U0 start;
U16 type format "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n";
U16 flags;
U8 start_date[16] format "$$DA-P,A=\"StartDate:%s\"$$\n";
U8 end_date[16] format "$$DA-P,A=\"EndDate:%s\"$$\n";
F64 period format "$$DA,A=\"Period:%8.2f\"$$\n";
U0 end;
CBgtEntry b;
} t_head;
#define BT_SIZE (offset(CBgtTemplate.end)-offset(CBgtTemplate.start))
U8 view_acct[512];
CHashTable *accts_table=NULL;
I64 accts_table_strs=0;
CDate MyStr2Date(U8 *st)
{
CDateStruct ds;
CDate res;
if (st&&*st) {
if (StrOcc(st,'['))
res=b_head.next->date;
else if (StrOcc(st,']'))
res=b_head.last->date;
else
res=Str2Date(st);
} else
res=Now;
Date2Struct(&ds,res);
if (ds.year>2050)
ds.year-=100;
return Struct2Date(&ds);
}