ZealOS/src/Apps/Budget/Budget.ZC
TomAwezome 3a33e6baaf Rename CosmiC to ZealC.
Rename all .CC files to .ZC extension.
2021-12-11 06:21:22 -05:00

84 lines
1.6 KiB
HolyC
Executable file

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
DefineListLoad("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=\"Start Date:%s\"$$\n";
U8 end_date[16] format "$$DA-P,A=\"End Date :%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);
}