Dies ist eine alte Version des Dokuments!
====== Entwicklungs-Informationen ====== ToDo's sind ab jetzt [[hier]] zu finden ===== Notizen ===== ** Ab hier ist einiges veraltet und Bedarf einer Überarbeitung! Momentan fehlt allerdings die Zeit um dies vernünftig neu zu dokumentieren ** Zum Nachdenken: <code cpp-qt> ai=AB_ImExporterContext_GetFirstAccountInfo(ctx); while(ai) { this->parseImExporterAccountInfo_Status(ai); this->parseImExporterAccountInfo_DatedTransfers(ai); this->parseImExporterAccountInfo_NotedTransactions(ai); this->parseImExporterAccountInfo_StandingOrders(ai); this->parseImExporterAccountInfo_Transactions(ai); this->parseImExporterAccountInfo_Transfers(ai); ai=AB_ImExporterContext_GetNextAccountInfo(ctx); } /* while ai */ </code> bei Anlegen und Ändern von DatedTransfers wird die while nicht durchlaufen, beim löschen schon (das funktioniert auch). Somit müssten wir beim Anlegen und Ändern auch die aktuellen DatedTransfers abfragen, sonst nicht? Ich war eigentlich davon ausgegangen das auch beim Ändern einer datedTransfer die while Schleife durchlaufen wird, da in der Terminueberweisungen.ini auch Transactions existieren die einen Status zum löschen und geändert etc. besitzen. [NEIN! nach Anlage und nach Löschen ist dort dokumentiert!] => Schlussfolgerung * Bei Anlegen und Ändern muss zwingend ein getDatedTransfers() ausgeführt werden. (nach Anlage oder Änderung) * Löschen funktioniert ohne erneute Abfrage * Beim Ändern muss die alte Transaction gelöscht werden, dies darf aber nur geschehen wenn beim Ändern keine Fehler aufgetreten sind! * wie kann überprüft werden ob fehler aufgetreten sind? => Umbau des Parsens --- //[[sod@schmufu.dyndns.org|Patrick Wacker]] 2011/10/26 19:46// * Es sollte die JobListe durchgegangen werden und je nach JobType und JobStatus der Context entsprechend geparst werden. * Einzelne Typ und Stati haben keinen context! (z.B. Anlegen von Terminierten Überweisungen) * Werden Terminierte Überweisungun mit Status "pending" angelegt? * Was ist mit "normalen" Überweisungen? * wenn type=modifiyDatedTransfer und status=finished dann die Transaction des entsprechenden Jobs löschen * kommen wir da über den job ran oder müssen wir und die Transaction merken? ===== aqBanking ===== Verwendet wird die AqBanking ((link erstellen)) Bibliothek. ==== Übersicht über Jobs, Transactions und JobLists ==== === Jobs === === Transactions === === JobLists === === Übersicht der funktionen zum erstellen von Jobs === == transfer jobs == * AB_JOB * AB_JobSingleTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobSingleDebitNote_new (AB_ACCOUNT *a) * AB_JOB * AB_JobEuTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobInternalTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobSepaTransfer_new (AB_ACCOUNT *a) == dated transfers (Terminüberweisungen) == * AB_JOB * AB_JobCreateDatedTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobModifyDatedTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobDeleteDatedTransfer_new (AB_ACCOUNT *a) * AB_JOB * AB_JobGetDatedTransfers_new (AB_ACCOUNT *a) == standing orders (Daueraufträge) == * AB_JOB * AB_JobCreateStandingOrder_new (AB_ACCOUNT *a) * AB_JOB * AB_JobModifyStandingOrder_new (AB_ACCOUNT *a) * AB_JOB * AB_JobDeleteStandingOrder_new (AB_ACCOUNT *a) * AB_JOB * AB_JobGetStandingOrders_new (AB_ACCOUNT *a) === Brainstorming === Jede Überweisung muss in einem separaten AB_JOB gespeichert werden und dieser AB_JOB dann einer JOB_LIST hinzugefügt werden. Wenn alle Transactionen vorhanden sind wird die JOB_LIST zur Bank übertragen und danach der ImExporterContext (CTX) ausgewertet, im CTX können auch Meldungen und Logs vorkommen, nicht nur die Transaktionen und das ganze muss separat für jeden empfangenen Account erledigt werden. Sammelüberweisungen können durch die Anwendung selber __nicht__ beeinflusst werden, dies ist abhängig vom jeweiligen Institut und dem verwendeten Backend in AqBanking. Erstellte und/oder geänderte/gelöschte Daueraufträge müssen dann in der lokalen Datei auch eingetragen/gelöscht werden, diese Daten müssen dem CTX entnommen werden! Dasselbe gilt für Terminierte Überweisungen. Basis-Klasse für Terminierte Überweisungen und Daueraufträge? ===== Verwendung in ab_transfer ===== <graphviz dot right> digraph example { graph [ rankdir="RL" ]; node [shape=record, fontname=Helvetica, fontsize=10]; trans [ label="transaction" ]; da [ label="Daueraufträge" ]; da_create [label="Anlegen"]; da_edit [label="Ändern"]; da_del [label="Löschen"]; da_create -> da; da_edit -> da; da_del -> da; ueber [ label="Überweisungen" ]; create [label="Erstellen"]; ueber_national [label="National"]; ueber_inter [label="International"]; ueber_sepa [label="SEPA"]; ueber_um [label="Umbuchung"]; create -> ueber_national; create -> ueber_inter; create -> ueber_sepa; create -> ueber_um; term [label="Terminiert"]; term_create [label="Anlegen"]; term_edit [label="Ändern"]; term_del [label="Löschen"]; term_create -> term; term_edit -> term; term_del -> term; last [label="Lastschrift"]; last_create [label="Erstellen"]; last_create -> last; term -> ueber; ueber_national -> ueber; ueber_inter -> ueber; ueber_sepa -> ueber; ueber_um -> ueber; da -> trans; ueber -> trans; last -> trans; exec [label="Ausführen"]; log [label="Ergebnis/Meldungen"]; trans -> exec; exec -> log; } </graphviz>