3
1Yj$(                 @   s`   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZm	Z	 ej
dZeG d	d
 d
ZdS )z
 * @author Xiaobo Sun, Daliang Chen
 * created  on 29.11.2025
 * @copyright (C) 2025 Sogood International GmbH - all rights reserved
 * @licence
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * Proprietary and confidential
    N)	dataclass)datetime)Optional   )CONFIGCompanyEntrydjangoc               @   sh   e Zd ZU dZeeee	e
ee ee eeeeeeeeeedddZdS )TaxItemu?   
    用于映射 SQL 查询结果的订单数据模型。
    )companyc       	         s  t jdj  t jdj  t jdj  t jdj  t jdtj  t jdtj  t jdtj	  t jdtj
  t jd	tj  d
d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d  d! }tjjd"d#}|d krd$}|d$krt jd% d S |jd&t|jd'j jd#d"}|jd(|d$krd)nd*}|jd+j}d,}d,}d-}jd$k jd.ko\jd/ko\jd k	o\jj d,krrt jd0 d1 d1} r~j}t jd2t    fd3d4tjD }| r fd5d4tjD }|r |jd6kr|rd7n|d$ j}n|rd8n|d$ j}nd S t jd9|  |d$ j}|jd:|r,d,n|}|jd;|}|jd<jjd=}|jd>j}|jd?jd@ |d$ j d@ tj dA }|jdBd,}|jdCd,}|jdDd,}|jdEd,}|jdF|d$ j}|jdG|d$ j}|jdHjjdI}|jdJ|p
|d$ j}|jdKrF|jdLd,}|jdM|d$ j}|jd!dN}n|dOkr|jdL|d$ j}|jdM|d$ j}|jd!d,}|jdOd,}n||dPkr|jdL|d$ j}|jdMd,}|jd!|d$ j}|jdPd,}n4|jdL|rdQn|d$ j}|jdMd,}|jd!d,}|S )RNztoDatev lager_country ztoDatev country ztoDatev systemId ztoDatev systemInvoiceId ztoDatev customerTaxId ztoDatev konto ztoDatev invoice_url ztoDatev taxItemId ztoDatev tax zUmsatz;z
SollHaben;;zKonto;zGegenkonto;zBU-Schluessel;zBelegdatum;zBelegfeld1;zBuchungstext;z"";zEU_UStID-Bestimmung;zSteuersatz-Bestimmung;zZusatzinformationArt1;zZusatzinformationInhalt1;zZusatzinformationArt2;zZusatzinformationInhalt2;z"geliefert aus";z"selling_country";z"geliefert nach";z
"country";zVeranlagungsjahr;z0;zEU_UStID-Ursprung;zSteuersatz-Ursprung,.r   ztoDatev: Umsatz is 0!Umsatz   Z	SollHabenSHZKonto FDE   zdupa: set8400TztoDatev isMerchant c                s2   g | ]*}|j jkr|jjkr|j kr|qS  )from_countrylager_country
to_countrycountry
isMerchant).0
gegenkonto)r   selfr   %/data/git/entellipy_wy/datev/clazz.py
<listcomp>   s   z#TaxItem.toDatev.<locals>.<listcomp>c                s.   g | ]&}|j d kr|jd kr|j kr|qS )r   )r   r   r   )r   r   )r   r   r   r      s   

l   (rfZ84000Z840000ztoDatev gegenkonto zBU-SchluesselZ
GegenkontoZ
Belegdatumz%d%mZ
Belegfeld1ZBuchungstext %ZZusatzinformationArt1ZZusatzinformationInhalt1ZZusatzinformationArt2ZZusatzinformationInhalt2selling_countryr   ZVeranlagungsjahrz%YzEU_UStID-BestimmungZ8125zSteuersatz-BestimmungzEU_UStID-Ursprung0ZTwoFourZeroZ
TwoFourTwo19)loggerinfor   r   systemIdsystemInvoiceIdstrcustomerTaxIdkontoinvoice_url	taxItemIdtaxfloatpayment_full_amountreplaceabs	__round____str__stripr   r   idZmkontoZbuKeypayment_datestrftimer   r   
startswith)	r   r
   retr   ZUStIDZgKontoZis8400Z
gegenKontoZbuSr   )r   r   r   toDatev)   s    ~ 


"





.

zTaxItem.toDatevN)__name__
__module____qualname____doc__r)   order_idr   r7   
order_dater0   payment_already_paidr   
payment_idr,   r   r"   r   r'   r(   r*   r-   r+   intr.   r   r;   r   r   r   r   r	      s$   
r	   )r?   loggingdataclassesr   r   typingr   settingr   r   	getLoggerr%   r	   r   r   r   r   <module>   s   
