178 if ( identifier ==
"TRNTYPE")
180 data.transactiontype_valid =
true;
181 if (value ==
"CREDIT")
183 data.transactiontype = OFX_CREDIT;
185 else if (value ==
"DEBIT")
187 data.transactiontype = OFX_DEBIT;
189 else if (value ==
"INT")
191 data.transactiontype = OFX_INT;
193 else if (value ==
"DIV")
195 data.transactiontype = OFX_DIV;
197 else if (value ==
"FEE")
199 data.transactiontype = OFX_FEE;
201 else if (value ==
"SRVCHG")
203 data.transactiontype = OFX_SRVCHG;
205 else if (value ==
"DEP")
207 data.transactiontype = OFX_DEP;
209 else if (value ==
"ATM")
211 data.transactiontype = OFX_ATM;
213 else if (value ==
"POS")
215 data.transactiontype = OFX_POS;
217 else if (value ==
"XFER")
219 data.transactiontype = OFX_XFER;
221 else if (value ==
"CHECK")
223 data.transactiontype = OFX_CHECK;
225 else if (value ==
"PAYMENT")
227 data.transactiontype = OFX_PAYMENT;
229 else if (value ==
"CASH")
231 data.transactiontype = OFX_CASH;
233 else if (value ==
"DIRECTDEP")
235 data.transactiontype = OFX_DIRECTDEP;
237 else if (value ==
"DIRECTDEBIT")
239 data.transactiontype = OFX_DIRECTDEBIT;
241 else if (value ==
"REPEATPMT")
243 data.transactiontype = OFX_REPEATPMT;
245 else if (value ==
"OTHER")
247 data.transactiontype = OFX_OTHER;
251 data.transactiontype_valid =
false;
254 else if (identifier ==
"TRNAMT")
257 ASSIGN(data.units, -data.amount);
258 ASSIGN(data.unitprice, 1.00);
260 else if (identifier ==
"CHECKNUM")
264 else if (identifier ==
"REFNUM")
268 else if (identifier ==
"SIC")
270 ASSIGN(data.standard_industrial_code, atoi(value.c_str()));
272 else if ((identifier ==
"PAYEEID") || (identifier ==
"PAYEEID2"))
276 else if (identifier ==
"NAME")
392 if (identifier ==
"UNIQUEID")
396 else if (identifier ==
"UNIQUEIDTYPE")
400 else if (identifier ==
"UNITS")
404 else if (identifier ==
"UNITPRICE")
408 else if (identifier ==
"MKTVAL")
412 else if (identifier ==
"TOTAL")
416 else if (identifier ==
"CURRATE")
420 else if (identifier ==
"CURSYM")
424 else if (identifier ==
"DTSETTLE")
428 else if (identifier ==
"DTTRADE")
432 else if (identifier ==
"COMMISSION")
436 else if (identifier ==
"FEES")
440 else if (identifier ==
"OLDUNITS")
444 else if (identifier ==
"NEWUNITS")
448 else if (identifier ==
"ACCRDINT")
452 else if (identifier ==
"AVGCOSTBASIS")
456 else if (identifier ==
"BUYTYPE" || identifier ==
"OPTBUYTYPE")
460 ASSIGN(data.buy_type, data.OFX_BUY_TYPE_BUY);
462 else if (value ==
"BUYTOCOVER")
464 ASSIGN(data.buy_type, data.OFX_BUY_TYPE_BUYTOCOVER);
466 else if (value ==
"BUYTOOPEN")
468 ASSIGN(data.buy_type, data.OFX_BUY_TYPE_BUYTOOPEN);
470 else if (value ==
"BUYTOCLOSE")
472 ASSIGN(data.buy_type, data.OFX_BUY_TYPE_BUYTOCLOSE);
475 else if (identifier ==
"DENOMINATOR")
479 else if (identifier ==
"DTPAYROLL")
483 else if (identifier ==
"DTPURCHASE")
487 else if (identifier ==
"GAIN")
491 else if (identifier ==
"FRACCASH")
495 else if (identifier ==
"INCOMETYPE")
497 if (value ==
"CGLONG")
499 ASSIGN(data.income_type, data.OFX_CGLONG);
501 else if (value ==
"CGSHORT")
503 ASSIGN(data.income_type, data.OFX_CGSHORT);
505 else if (value ==
"DIV")
507 ASSIGN(data.income_type, data.OFX_DIVIDEND);
509 else if (value ==
"INTEREST")
511 ASSIGN(data.income_type, data.OFX_INTEREST);
513 else if (value ==
"MISC")
515 ASSIGN(data.income_type, data.OFX_MISC);
518 else if (identifier ==
"INV401KSOURCE")
520 if (value ==
"PRETAX")
522 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_PRETAX);
524 else if (value ==
"AFTERTAX")
526 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_AFTERTAX);
528 else if (value ==
"MATCH")
530 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_MATCH);
532 else if (value ==
"PROFITSHARING")
534 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_PROFITSHARING);
536 else if (value ==
"ROLLOVER")
538 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_ROLLOVER);
540 else if (value ==
"OTHERVEST")
542 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_OTHERVEST);
544 else if (value ==
"OTHERNONVEST")
546 ASSIGN(data.inv_401k_source, data.OFX_401K_SOURCE_OTHERNONVEST);
549 else if (identifier ==
"LOAD")
553 else if (identifier ==
"LOANID")
557 else if (identifier ==
"LOANINTEREST")
561 else if (identifier ==
"LOANPRINCIPAL")
565 else if (identifier ==
"MARKDOWN")
569 else if (identifier ==
"MARKUP")
573 else if (identifier ==
"NUMERATOR")
577 else if (identifier ==
"OPTACTION")
579 if (value ==
"EXERCISE")
581 ASSIGN(data.opt_action, data.OFX_OPTACTION_EXERCISE);
583 else if (value ==
"ASSIGN")
585 ASSIGN(data.opt_action, data.OFX_OPTACTION_ASSIGN);
587 else if (value ==
"EXPIRE")
589 ASSIGN(data.opt_action, data.OFX_OPTACTION_EXPIRE);
592 else if (identifier ==
"PENALTY")
596 else if (identifier ==
"POSTYPE")
600 ASSIGN(data.pos_type, data.OFX_POSTYPE_LONG);
602 else if (value ==
"SHORT")
604 ASSIGN(data.pos_type, data.OFX_POSTYPE_SHORT);
607 else if (identifier ==
"PRIORYEARCONTRIB")
611 ASSIGN(data.prior_year_contrib,
true);
613 else if (value ==
"N")
615 ASSIGN(data.prior_year_contrib,
false);
618 else if (identifier ==
"RELFITID")
622 else if (identifier ==
"RELTYPE")
624 if (value ==
"SPREAD")
626 ASSIGN(data.related_type, data.OFX_RELTYPE_SPREAD);
628 else if (value ==
"STRADDLE")
630 ASSIGN(data.related_type, data.OFX_RELTYPE_STRADDLE);
632 else if (value ==
"NONE")
634 ASSIGN(data.related_type, data.OFX_RELTYPE_NONE);
636 else if (value ==
"OTHER")
638 ASSIGN(data.related_type, data.OFX_RELTYPE_OTHER);
641 else if (identifier ==
"SECURED")
643 if (value ==
"NAKED")
645 ASSIGN(data.option_secured, data.OFX_SECURED_NAKED);
647 else if (value ==
"COVERED")
649 ASSIGN(data.option_secured, data.OFX_SECURED_COVERED);
652 else if (identifier ==
"SELLREASON")
656 ASSIGN(data.sell_reason, data.OFX_SELLREASON_CALL);
658 else if (value ==
"SELL")
660 ASSIGN(data.sell_reason, data.OFX_SELLREASON_SELL);
662 else if (value ==
"MATURITY")
664 ASSIGN(data.sell_reason, data.OFX_SELLREASON_MATURITY);
667 else if (identifier ==
"SELLTYPE" || identifier ==
"OPTSELLTYPE")
671 ASSIGN(data.sell_type, data.OFX_SELL_TYPE_SELL);
673 else if (value ==
"SELLSHORT")
675 ASSIGN(data.sell_type, data.OFX_SELL_TYPE_SELLSHORT);
677 else if (value ==
"SELLTOOPEN")
679 ASSIGN(data.sell_type, data.OFX_SELL_TYPE_SELLTOOPEN);
681 else if (value ==
"SELLTOCLOSE")
683 ASSIGN(data.sell_type, data.OFX_SELL_TYPE_SELLTOCLOSE);
686 else if (identifier ==
"SHPERCTRCT")
690 else if (identifier ==
"STATEWITHHOLDING")
694 else if (identifier ==
"SUBACCTFROM")
698 ASSIGN(data.subacct_from, data.OFX_SUBACCT_CASH);
700 else if (value ==
"MARGIN")
702 ASSIGN(data.subacct_from, data.OFX_SUBACCT_MARGIN);
704 else if (value ==
"SHORT")
706 ASSIGN(data.subacct_from, data.OFX_SUBACCT_SHORT);
708 else if (value ==
"OTHER")
710 ASSIGN(data.subacct_from, data.OFX_SUBACCT_OTHER);
713 else if (identifier ==
"SUBACCTFUND")
717 ASSIGN(data.subacct_funding, data.OFX_SUBACCT_CASH);
719 else if (value ==
"MARGIN")
721 ASSIGN(data.subacct_funding, data.OFX_SUBACCT_MARGIN);
723 else if (value ==
"SHORT")
725 ASSIGN(data.subacct_funding, data.OFX_SUBACCT_SHORT);
727 else if (value ==
"OTHER")
729 ASSIGN(data.subacct_funding, data.OFX_SUBACCT_OTHER);
732 else if (identifier ==
"SUBACCTSEC")
736 ASSIGN(data.subacct_security, data.OFX_SUBACCT_CASH);
738 else if (value ==
"MARGIN")
740 ASSIGN(data.subacct_security, data.OFX_SUBACCT_MARGIN);
742 else if (value ==
"SHORT")
744 ASSIGN(data.subacct_security, data.OFX_SUBACCT_SHORT);
746 else if (value ==
"OTHER")
748 ASSIGN(data.subacct_security, data.OFX_SUBACCT_OTHER);
751 else if (identifier ==
"SUBACCTTO")
755 ASSIGN(data.subacct_to, data.OFX_SUBACCT_CASH);
757 else if (value ==
"MARGIN")
759 ASSIGN(data.subacct_to, data.OFX_SUBACCT_MARGIN);
761 else if (value ==
"SHORT")
763 ASSIGN(data.subacct_to, data.OFX_SUBACCT_SHORT);
765 else if (value ==
"OTHER")
767 ASSIGN(data.subacct_to, data.OFX_SUBACCT_OTHER);
770 else if (identifier ==
"TAXES")
774 else if (identifier ==
"TAXEXEMPT")
778 ASSIGN(data.tax_exempt,
true);
780 else if (value ==
"N")
782 ASSIGN(data.tax_exempt,
false);
785 else if (identifier ==
"TFERACTION")
789 ASSIGN(data.transfer_action, data.OFX_TFERACTION_IN);
791 else if (value ==
"OUT")
793 ASSIGN(data.transfer_action, data.OFX_TFERACTION_OUT);
796 else if (identifier ==
"UNITTYPE")
798 if (value ==
"SHARES")
800 ASSIGN(data.unit_type, data.OFX_UNITTYPE_SHARES);
802 else if (value ==
"CURRENCY")
804 ASSIGN(data.unit_type, data.OFX_UNITTYPE_CURRENCY);
807 else if (identifier ==
"WITHHOLDING")
812 else if ( identifier ==
"TRNTYPE")
814 data.transactiontype_valid =
true;
815 if (value ==
"CREDIT")
817 data.transactiontype = OFX_CREDIT;
819 else if (value ==
"DEBIT")
821 data.transactiontype = OFX_DEBIT;
823 else if (value ==
"INT")
825 data.transactiontype = OFX_INT;
827 else if (value ==
"DIV")
829 data.transactiontype = OFX_DIV;
831 else if (value ==
"FEE")
833 data.transactiontype = OFX_FEE;
835 else if (value ==
"SRVCHG")
837 data.transactiontype = OFX_SRVCHG;
839 else if (value ==
"DEP")
841 data.transactiontype = OFX_DEP;
843 else if (value ==
"ATM")
845 data.transactiontype = OFX_ATM;
847 else if (value ==
"POS")
849 data.transactiontype = OFX_POS;
851 else if (value ==
"XFER")
853 data.transactiontype = OFX_XFER;
855 else if (value ==
"CHECK")
857 data.transactiontype = OFX_CHECK;
859 else if (value ==
"PAYMENT")
861 data.transactiontype = OFX_PAYMENT;
863 else if (value ==
"CASH")
865 data.transactiontype = OFX_CASH;
867 else if (value ==
"DIRECTDEP")
869 data.transactiontype = OFX_DIRECTDEP;
871 else if (value ==
"DIRECTDEBIT")
873 data.transactiontype = OFX_DIRECTDEBIT;
875 else if (value ==
"REPEATPMT")
877 data.transactiontype = OFX_REPEATPMT;
879 else if (value ==
"OTHER")
881 data.transactiontype = OFX_OTHER;
885 data.transactiontype_valid =
false;
888 else if (identifier ==
"TRNAMT")
891 ASSIGN(data.units, -data.amount);
892 ASSIGN(data.unitprice, 1.00);
894 else if (identifier ==
"CHECKNUM")
898 else if (identifier ==
"REFNUM")
902 else if (identifier ==
"SIC")
904 ASSIGN(data.standard_industrial_code, atoi(value.c_str()));
906 else if ((identifier ==
"PAYEEID") || (identifier ==
"PAYEEID2"))
910 else if (identifier ==
"NAME")