84 lines
1.8 KiB
HolyC
84 lines
1.8 KiB
HolyC
|
U0 BgtAcctsUpdate()
|
||
|
{
|
||
|
CBgtEntry *tmpb;
|
||
|
CBgtTemplate *tmpt;
|
||
|
tmpb=b_head.next;
|
||
|
while (tmpb!=&b_head) {
|
||
|
if (tmpb->type!=BE_TEMPLATE_COPY) {
|
||
|
tmpb->credit_idx=StrFileAdd(tmpb->credit,
|
||
|
&accts_table_strs,accts_table);
|
||
|
tmpb->debit_idx =StrFileAdd(tmpb->debit,
|
||
|
&accts_table_strs,accts_table);
|
||
|
}
|
||
|
tmpb=tmpb->next;
|
||
|
}
|
||
|
tmpt=t_head.next;
|
||
|
while (tmpt!=&t_head) {
|
||
|
tmpt->b.credit_idx=StrFileAdd(tmpt->b.credit,
|
||
|
&accts_table_strs,accts_table);
|
||
|
tmpt->b.debit_idx =StrFileAdd(tmpt->b.debit,
|
||
|
&accts_table_strs,accts_table);
|
||
|
tmpt=tmpt->next;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
U0 BgtAcctsWrite()
|
||
|
{
|
||
|
BgtAcctsUpdate;
|
||
|
StrFileWrite(bgt_accts_file,accts_table,TRUE);
|
||
|
}
|
||
|
|
||
|
U0 BgtAcctsRead()
|
||
|
{
|
||
|
I64 i,max_num;
|
||
|
U8 *colors,**s=StrFileRead(bgt_accts_file,&max_num,&colors,TRUE);
|
||
|
StrFileDel(accts_table);
|
||
|
accts_table=HashTableNew(512);
|
||
|
accts_table_strs=0;
|
||
|
for (i=0;i<=max_num;i++)
|
||
|
if (s[i])
|
||
|
StrFileAdd(s[i],&accts_table_strs,accts_table,colors[i]);
|
||
|
StrFileArrDel(s,max_num);
|
||
|
Free(colors);
|
||
|
}
|
||
|
|
||
|
I64 BgtAcctColor(U8 *st)
|
||
|
{
|
||
|
CHashGeneric *tmph;
|
||
|
if (tmph=HashFind(st,accts_table,SFT_GENERIC))
|
||
|
return tmph->user_data1;
|
||
|
else
|
||
|
return BLACK;
|
||
|
}
|
||
|
|
||
|
U8 *BgtPopUpAcct(U8 *header=NULL,U8 *dft=NULL)
|
||
|
{
|
||
|
I64 i;
|
||
|
U8 *res;
|
||
|
CDoc *doc=DocNew;
|
||
|
CDocEntry *doc_e,*doc_dft=NULL;
|
||
|
CHashGeneric *tmph;
|
||
|
|
||
|
if (header)
|
||
|
DocPrint(doc,"%s",header);
|
||
|
|
||
|
for (i=0;i<=accts_table->mask;i++) {
|
||
|
tmph=accts_table->body[i];
|
||
|
while (tmph) {
|
||
|
doc_e=DocPrint(doc,"$$FG,%d$$$$MU-UL,\"%s\",LE=0x%X$$\n",
|
||
|
tmph->user_data1,tmph->str,tmph->str);
|
||
|
if (dft && !StrCmp(dft,tmph->str))
|
||
|
doc_dft=doc_e;
|
||
|
tmph=tmph->next;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (doc_dft) {
|
||
|
doc->cur_entry=doc_dft;
|
||
|
doc->cur_col=0;
|
||
|
}
|
||
|
res=PopUpMenu(doc,DOF_DONT_HOME);
|
||
|
DocDel(doc);
|
||
|
return res;
|
||
|
}
|