Lade...
 

CX_GENERAL_LEDGER - Sachkonto

CX_GENERAL_LEDGER

Klassenhierarchie
Beschreibung:

Diese Klasse bildet ein Sachkonto ab.

Objekte, die den Kontenplan bestimmen. Ein genereller Kontenplan für alle eigenständigen Mandanten prinzipiell möglich über Einstellen verschiedener Domains für die Monitore Account, bei gleichzeitigem
gemeinsamen Domain für die GENERAL_LEDGER Objekte.

Allerdings problematisch im Bereich der Bankkonten (versch.Konten), Steuern (versch.Finanzämter) und Abstimmkonten (versch. Debitoren/Kreditoren).

Daher gemeinsame Nutzung der GENERAL_LEDGER Objekte wohl nur bei Unterteilung ein und derselben Firma (Mandant) in Geschäftsbereiche/profit center.

Firmenübergreifende Auswertungen über CX_STRUCTURE-Objekte, die CX_ACCOUNT oder CX_GENERAL_LEDGER Objekte aus versch. Layern halten.

Mit Layern und Domains Mahnbereiche, Kreditbereiche, Geschäftsbereiche, etc. einstellen.


generalLedgerTypeEnum:
als bit-muster implementiert: regelt, ob bestands/erfolgs-konto, aktiv-passiv und/oder aufwands/erfolgs-konto.

NN: für gemischte konten (wareneinkauf) aktiv und auch erfolgs-konto gleichzeitig eingebbar ?

Wegen gemischter Konten auch keine Ableitung einer eigenen GuV-Klasse.

Bei Skonto-Konto ist Aufwand/Ertrag entspr. Skontoaufwand oder Skontoertrag.

generalLedgerTypeEnum regelt auch den Austausch zwischen Soll/Haben. Wenn z.B. ein Bank-Konto ein negativen Saldo hat (debit < 0), dann wird Debit() NULL zurückgegeben, und stattdessen der Credit()-Wert ausgegeben.

NN: halten der "üblichen" slots: hier also z.B. debit/credit, oder dieses nur über Funktion beim Ankoppeln von CX_ACCOUNT machen ????
Die Währung wird beim Format des debit/credit slots im CX_ACCOUNT Objekt gehalten.
OP's halten auch slot originalValue. ANLEGEN !!!


generalLedgerTaxTypeEnum:
Enum als Bit-muster: steuert die mögliche steuer-verarbeitung mit diesem Konto.
Bit 2 hält brutto/netto verarbeitung, wenn 0 dann standard netto (gilt für Skontobrutto-netto Verfahren oder Anzahlungskonten)
(s.a. 3.168 in Praxis-Lexikon Buchführung + Bilanz)


tax:
In collection tax werden alle zugelassenen steuertypen bei Buchungen gehalten, wenn leer, dann alle zugelassen entspr. enum-typ.
Bei CX_TAX_ACCOUNT direkter Bezug zum Steuerschlüssel vom Typ CX_TAX, der wiederum an CX_TAX_AUTHORITY hängt.
Ebenso CX_CASH_DISCOUNT direkter Bezug als Skonto-Konto bei Steuerschlüssel.


Anzahlungen über spezielle slots halten. ANLEGEN !!!

Verdichtungen von Kostenarten (CX_ACC_CATEGORY Objekten) auf Sachkonten über REL_MN clearingObjects und Funktion GeneralLedger() aus CX_ACC_CATEG.. heraus.
Entsprechend CX_PERSONAL_ACCOUNT Verdichtung auf CX_CLEARING_ACCOUNT.

????:
=====

eventuell später ein CX_PROFIT_AND_LOSS_ACCOUNT von CX_GENERAL_LEDGER
ableiten mit Liste von GuV Konten, und auch die GuV-Konten extra ableiten
mit BackReference.

Abgrenzungskonten über generalLedgerTypeEnum steuern ??

neutrale Konten irgendwie kennzeichnen ??

Code-Beispiel:
...
Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
AssetAccount *     ?
DebitCreditExchange *     ?
ExchangeDebitCredit     INTEGER Soll/Haben-Austausch-Konto?
ExpenseAccount *     ?
IsAssetAccount     INTEGER Konto der Aktiv-Seite?
IsExpenseAccount     INTEGER Aufwands-Konto?
IsLiabilityAccount     INTEGER Konto der Passiv-Seite?
IsNominalAccount     INTEGER GuV-Konto?
IsRealAccount     INTEGER Bilanzkonto?
IsRevenueAccount     INTEGER Ertrags-Konto?
LiabilityAccount *     ?
NominalAccount *     ?
RealAccount *     ?
RevenueAccount *     ?
SanityCheck     INTEGER Prüfung auf Konsistenz des Objektes
TaxBooking *     ?
TaxBookingAllowed     INTEGER Steuerbuchungen erlaubt?
CastedStructureByCondition   STRING OBJECT  
ClassFilter   STRING, INTEGER OBJECT Dieses Objekt, wenn es einer bestimmten Klasse entspricht
ClearingObject   STRING, INTEGER OBJECT Erste Zuordnung zu Abrechnungsobjekten
ClearingObjectMA * STRING, INTEGER   Zuordnungen zu Abrechnungsobjekten
ConditionedFilter   STRING OBJECT  
ConditionedFilter2   OBJECT OBJECT  
ConnectStateStructure   OBJECT, STRING   Verbinden mit der Status-Struktur
Deleted     INTEGER Objekt als gelöscht markiert?
Description     STRING Bezeichnung dieses Objektes
EvaluateTotalMonitors   STRING, INTEGER, STRING OBJECT ?
ForceMonitor   STRING OBJECT ?
GetDomain     INTEGER Domain dieses Objektes
GetSiblings     COLLECTION Alle Siblings dieses Objektes
GetSiblings2     COLLECTION Alle Siblings dieses Objektes
GetSlotEntries     VECTOR Rückgabe von internen Informationen zu Slots
GetStructure   OBJECT OBJECT Untergeordnete Struktur suchen, die zur selben Hierarchie gehört
InsertMonitor   OBJECT   ?
LastUpdate     OBJECT Datum des letzten Schreibzugriffs
LastUser     INTEGER User, der zuletzt schreibend auf das Objekt zugegriffen hat
Link   OBJECT   Dieses Objekt in die Liste der Objekte mit Gültigkeit einfügen
Monitor   STRING OBJECT ?
NextValidObject     OBJECT Zeitlich nachfolgendes Gültigkeitsobjekt
PreviousValidObject     OBJECT Zeitlich vorangehendes Gültigkeitsobjekt
RemoveMonitor   OBJECT   ?
RemoveStateStructure   STRING   Status-Struktur nach uniqueID finden und Verbindung lösen
RestrictedValidity *     Gültigkeitsbereich eingeschränkt?
SetDomain   INTEGER, INTEGER   Domain setzen
SetStructure   OBJECT   Stellt sicher, dass eine Struktur zur untergeordneten Struktur wird
ShortName     STRING Kurzbezeichnung dieses Objektes
Siblings *     Objekte mit Gültigkeit
SpanDateValidity *     Gültigkeitsspanne
StateStructure   STRING OBJECT Status-Struktur nach uniqueID (STRING) finden (nicht gewrappt)
StateStructureWrapper   STRING OBJECT Status-Struktur nach uniqueID finden
string   INTEGER CX_STRING Liefert die String-Darstellung des Objektes
StructureByCondition   STRING OBJECT Untergeordnete Struktur mit einer bestimmten Bedingung
StructureByID   STRING OBJECT Untergeordnete Struktur mit einem bestimmten eindeutigen Schlüssel
StructureByIDMA * STRING   Untergeordnete Strukturen mit einem bestimmten eindeutigen Schlüssel
StructureByType   STRING, INTEGER OBJECT Untergeordnete Struktur eines bestimmten Typs
TotalMonitors   STRING, INTEGER, STRING OBJECT ?
TriggeredStateStructure   STRING OBJECT Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (nicht gewrappt) zurück
TriggeredStateStructureWrapper   STRING OBJECT Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (gewrappt) zurück
TriggerStateStructures       Schaltet alle Status-Strukturen weiter
UniqueID     STRING Inhalt des festen Datenfeldes "uniqueID"
Unlink       Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen
Unlink2       Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen
Valid   OBJECT INTEGER Gültigkeit prüfen
ValidSince     OBJECT Beginn der Gültigkeitsspanne
ValidToday     INTEGER Heute gültig?
ValidUntil     OBJECT Ende der Gültigkeitsspanne
VerifySiblings     INTEGER Ring der Austauschobjekte prüfen

* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion

 

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
generalLedgerTaxTypeEnum ENUMCHAR     Steuertyp
generalLedgerTypeEnum ENUMCHAR     Kontotyp
tax REL_MN CX_TAX   ?
allocations REL_MN CX_EXPANDABLE   ?
clearingObjects REL_MN CX_CLEARING_OBJECT   Abrechnungskreise
generalTerms REL_1M CX_GENERAL_TERMS   ?
monitors REL_MN CX_MONITOR   ?
structures REL_MN CX_EXPANDABLE   Organisations-Strukturen
uniqueID STRING   * Eindeutiger Schlüssel
validity POINTER CX_VALIDITY   Gültigkeitszeitraum des Objektes

* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld

 

Verwendung in AppsWH
Modul Kurzbeschreibung
geledger.mod Sachkontenplan Basismodul
gelededt.mod Sachkontenplan Editiermodul
geledsel.mod Sachkontenplan Selektionsmodul
geledcla.mod Abstimmkonto Editiermodul
geleddep.mod Geldkonto Editiermodul
geleddis.mod Skontokonto Editiermodul
geledgle.mod Abstimmkonto Editiermodul
geledtax.mod Steuerkonto Editiermodul
glacbstr.mod Kontenauswertung