78 lines
1.5 KiB
HolyC
Executable File
78 lines
1.5 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
|
||
|
||
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);
|
||
}
|