84 lines
2.0 KiB
HolyC
Executable File
84 lines
2.0 KiB
HolyC
Executable File
U0 BgtEntryDel2(CBgtEntry *tmpb)
|
||
{
|
||
if (tmpb->type!=BE_TEMPLATE_COPY) {
|
||
Free(tmpb->credit);
|
||
Free(tmpb->debit);
|
||
Free(tmpb->desc);
|
||
}
|
||
}
|
||
|
||
CBgtEntry *BgtEntryCopy(CBgtEntry *tmpb,Bool periodic_copy)
|
||
{
|
||
CBgtEntry *res=MAlloc(sizeof(CBgtEntry));
|
||
MemCpy(res,tmpb,sizeof(CBgtEntry));
|
||
if (periodic_copy) {
|
||
res->credit=StrNew(tmpb->credit);
|
||
res->debit =StrNew(tmpb->debit);
|
||
res->desc =StrNew(tmpb->desc);
|
||
}
|
||
return res;
|
||
}
|
||
|
||
U0 BgtEntryDel(CBgtEntry *tmpb)
|
||
{
|
||
BgtEntryDel2(tmpb);
|
||
Free(tmpb);
|
||
}
|
||
|
||
U0 BgtIns(CBgtEntry *tmpb)
|
||
{
|
||
CBgtEntry *tmpb1=b_head.next;
|
||
while (tmpb1!=&b_head && tmpb1->date<tmpb->date)
|
||
tmpb1=tmpb1->next;
|
||
QueIns(tmpb,tmpb1->last);
|
||
}
|
||
|
||
class CBgtEntryForm
|
||
{
|
||
U8 date[512] format "$$DA-P,A=\"Date:%s\"$$\n";
|
||
F64 amount format "Amount$$$$$$DA,A=\"%10.2f\"$$\n";
|
||
U8 credit[512] format "$$DA-P,A=\"Credit(from)Acct:%s\"$$\n";
|
||
U8 debit [512] format "$$DA-P,A=\"Debit(to)Acct:%s\"$$\n";
|
||
U8 desc [512] format "$$DA-P,A=\"Desc:%s\"$$\n";
|
||
};
|
||
|
||
CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL)
|
||
{
|
||
CBgtEntryForm b;
|
||
CBgtEntry *tmpb;
|
||
U8 *st;
|
||
MemSet(&b,0,sizeof(CBgtEntryForm));
|
||
StrCpy(&b.date,"*");
|
||
if (dft) {
|
||
StrPrint(b.date,"%D",dft->date);
|
||
b.amount=dft->amount;
|
||
StrCpy(b.credit,dft->credit);
|
||
StrCpy(b.debit ,dft->debit);
|
||
StrCpy(b.desc ,dft->desc);
|
||
}
|
||
while (TRUE)
|
||
if (PopUpForm(&b)) {
|
||
if (!*b.credit) {
|
||
st=BgtPopUpAcct("Credit Acct\n\n");
|
||
if (st!=DOCM_CANCEL)
|
||
StrCpy(b.credit,st);
|
||
} else if (!*b.debit) {
|
||
st=BgtPopUpAcct("Debit Acct\n\n");
|
||
if (st!=DOCM_CANCEL)
|
||
StrCpy(b.debit,st);
|
||
} else {
|
||
tmpb=CAlloc(sizeof(CBgtEntry));
|
||
tmpb->date =Str2Date(b.date);
|
||
tmpb->amount=b.amount;
|
||
tmpb->credit=StrNew(b.credit);
|
||
tmpb->debit =StrNew(b.debit);
|
||
tmpb->desc =StrNew(b.desc);
|
||
tmpb->type =BE_NORMAL;
|
||
StrFileAdd(tmpb->credit,&accts_table_strs,accts_table);
|
||
StrFileAdd(tmpb->debit,&accts_table_strs,accts_table);
|
||
return tmpb;
|
||
}
|
||
} else
|
||
return NULL;
|
||
}
|