Files
boc/iom/ledger/__pycache__/iom_ledger_mapping.cpython-39.pyc
T

95 lines
9.3 KiB
Plaintext
Raw Normal View History

a
š1>j\:ã @dZddlmZmZmZddlmZddlmZddl m
Z
Gddde e
ƒZ eGdd „d ƒƒZ
Gd
d d ƒZGd d
d
ƒZGdddƒZedkröeƒZddlmZedƒejdddedddƒdddZeD]&ZeejjdejddejƒqÐedƒejdded d!d"ƒd#d$d%d&d'ZeD](Zeejjdejddejƒq$ed(ƒejdddd)ed*d+d,ƒd-d.ZeD](Zeejjdejddejƒqxed/ƒejdd0d1ed2d3dƒd4d5d6ZeD](ZeejjdejddejƒqÌd7S)8zX
IOM to Ledger Mapping
Integration between Infrastructure Object Model and aamos-ledger
é)ÚDictÚListÚOptional)Ú dataclass)Údate)ÚEnumc@s@eZdZdZdZdZdZdZdZdZ dZ
d Z d
Z d Z
d Zd
ZdS)Ú
BASAccountuBAS-konton för IOM-objektZ1220Z1230Z1240Z6110Z6130Z7830Z7831Z6310Z7970Z2440Z2640Z1229N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú BUILDINGSÚ MACHINERYÚ IMPROVEMENTSÚ MAINTENANCEZ
CONTRACTORÚDEPRECIATION_BUILDINGSÚDEPRECIATION_MACHINERYZ INSURANCEÚ
IMPAIRMENTÚACCOUNTS_PAYABLEZVAT_INÚACCUM_DEPRECIATION©rrú@/home/bernt/.openclaw/workspace/iom/ledger/iom_ledger_mapping.pyr src@s eZdZUdZeed<eed<eed<eed<e ed<dZ
eed<d Z eed
<d Z eed <d Z
eed <d
Zeed<d
Zeed<e edœddZe dœddZdS)Ú AssetMappingz+Mapping between IOM object and ledger assetÚgoidÚaccountÚacquisition_valueZacquisition_dateÚuseful_life_yearsÚlinearÚdepreciation_methodÚÚ object_typeÚmaterialÚ
dimensionsçÚaccumulated_depreciationÚ
book_value©ÚyearÚreturncCs|jdkr|j|jSdS)zCalculate annual depreciationrr#)rrr©Úselfr'rrrÚcalculate_depreciation>s
 z#AssetMapping.calculate_depreciation)r'cCs*| |¡}|j|7_|j|j|_dS)z$Update book value after depreciationN)r+r$rr%)r*r'Z
annual_deprrrÚupdate_book_valueDs
zAssetMapping.update_book_valueN)r r
r r ÚstrÚ__annotations__rÚfloatrÚintrr r!r"r$r%r+r,rrrrr+s
      rc@seZdZdZejejejejejejejejejejejejejejejejejdœZe e
edœddƒZ e e
e dœddƒZ
dS) ÚObjectTypeAccountMappingz%Maps IOM object types to BAS accounts©ÚabutmentZpierZdeckÚfacadeZroofÚwindowZentranceZbalconyZ transformerZcharging_stationÚ street_lightÚtraffic_signalZ road_surfaceZ guardrailÚsignZparking_surfaceZbollard)r r(cCs|j | ¡tj¡S)zGet BAS account for object type)ÚMAPPINGSÚgetÚlowerrr
)Úclsr rrrÚ get_accountgsz$ObjectTypeAccountMapping.get_accountcCs8ddddddddddddddddddœ}| | ¡d¡S) z(Get useful life in years for object typeé2é(ééééé
r2)r:r;)r<r Z lifespansrrrÚget_useful_lifels&ïz(ObjectTypeAccountMapping.get_useful_lifeN)r r
r r rr
rrr9Ú classmethodr-r=r0rErrrrr1Ks.êr1c @s>eZdZdZd eeeeeeee dœddZ
e dœddZ dS)
ÚLedgerTransactionzRepresents a ledger transactionN©rÚvernorÚamountÚ descriptionrÚmetadatacCs2||_||_||_||_||_||_|p*i|_dS)NrH)r*rrIrrJrKrrLrrrÚ__init__ˆs
zLedgerTransaction.__init__)r(c Cs.|j ¡|j|jj|jj|j|j|j|j dœS)N)rrIrZ account_namerJrKrrL)
rÚ isoformatrIrÚvalueÚnamerJrKrrL©r*rrrÚto_dictšsøzLedgerTransaction.to_dict)N) r r
r r rr-rr/rrrMrRrrrrrGs
øø rGc
@eZdZdZddZeedœddZdeeee eee
e dœd d
Z deee eeeee
e d œd d
Z
deeeee ee
e dœddZdeeee eeee
e dœddZdeeee eee
e dœddZdS)ÚIOMLedgerMapperz&Maps IOM events to ledger transactionscCs
d|_dS)Nr©Ztransaction_counterrQrrrrMªszIOMLedgerMapper.__init__r&cCs |jd7_|d|jdS)zGenerate verifikationsnummeréú-Z07drTr)rrrÚ_generate_verno­szIOMLedgerMapper._generate_vernor)rr ÚcostÚinstallation_dateÚ
contractorÚprojectr(c
Cstt |¡}| |j¡}g} |  t||||d||d||dœd¡|  t||tj| d||d|dœd¡| S)z
Map object installation to ledger transactions
Returns:
List of ledger transactions
zInstallation: Z installation)Ú
event_typerZr[rHõLeverantörsskuld: ©r\rZ)r1r=rWr'ÚappendrGrr)
r*rr rXrYrZr[rrIÚ transactionsrrrÚmap_installation²s6
 ýùþù
z IOMLedgerMapper.map_installation)rrXÚmaintenance_dateÚobservation_idÚ defect_coderZrKr(c
Csr| |j¡}g} |  t||tj||p,d||d|||dœd¡|  t||tj| d||d|dœd¡| S)zz
Map maintenance to ledger transactions
Returns:
List of ledger transactions
u UnderhÃ¥ll: Z maintenance)r\rcrdrZrHr]r^©rWr'r_rGrrr)
r*rrXrbrcrdrZrKrIr`rrrÚmap_maintenanceås6  üùþù
zIOMLedgerMapper.map_maintenancer#)rr rÚ useful_lifeÚdepreciation_dater$r(c Cs˜||}| |j¡}t |¡} | tjkr.tjntj}
g} |  t |||
|d||d||||dœd¡|  t ||tj
| d||d|dœd¡| S)z
Map annual depreciation to ledger transactions
Returns:
List of ledger transactions
z
Avskrivning: Z depreciation)r\Ú
annual_amountrgZ accumulatedrHzAckumulerad avskrivning: )r\ri) rWr'r1r=rr
rrr_rGr) r*rr rrgrhr$Zannual_depreciationrIrZ dep_accountr`rrrÚmap_depreciationsB 
ÿýüùþù
z IOMLedgerMapper.map_depreciation)rÚ parent_goidrXÚreplacement_dateÚold_component_goidÚnew_component_goidrZr(c
Csp| |j¡}g} |  t||tj|d||d||||dœd¡|  t||tj| d||d|dœd¡| S)z„
Map component replacement to ledger transactions
Returns:
List of ledger transactions
zKomponentbyte: Zcomponent_replacement)r\rkZ
old_componentZ