3
؀h9                @   s*  d dl mZmZmZmZmZmZmZmZ d dl	m	Z	m
Z
 d dlZd dlZd dlZd dl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 d dlmZ d dlZd d	lmZ d
d Zdd Zej ddgddd Z!ej ddd Z"ej ddd Z#ej ddd Z$ej ddgddd Z%dS )    )Flaskjsonifyrender_templateurl_forrequestredirectjsonmake_response)datetime	timedeltaN)etree)app)db)BatchfileCode)get_single_user)OrderedDictc             C   s   | j j  d S )N)sessionclose)self r   (/booking_service/app/routes/batchfile.pyr      s    r   c              C   sh   t jjtj } | r t| j}nd}d}|| }| sLt|d}t jj| n|| _t jj  t	t  |S )Nl     _   )batchfile_code)
r   r   queryr   firstintr   addcommitr   )get_current_codeZpStartZ	pIntervalreccoder   r   r   autoIncrement   s    

r!   z/batchfile/postPOST)methodsc           6   C   sb  g } y&t jd j  t jd s(| jd W n, tk
rV } z| jd W Y dd}~X nX y&t jd j  t jd s|| jd W n, tk
r } z| jd W Y dd}~X nX y&t jd j  t jd s| jd	 W n. tk
r  } z| jd
 W Y dd}~X nX | rtd| idfS tjtj	t jd }|j
dkrXg }|jd td|idfS t jd t jd d}tjdtjd  d |d}|j d }|j d }g }t }	t|	 x|D ]}
t }|
d |d< d|d< t|
d |d< d|d< d|d< d|d < d|d!< t|
d" |
d#  |
d$  d%|d&< |
d' |d(< d|d)< |
d* |d+< d|d,< |
d- |d.< |
d/ |d0< d|d1< d|d2< d|d3< d|d4< d|d5< d|d6< d|d7< d|d8< d|d9< d|d:< |
d; |d<< |
d$ |d=< y|
d# |
d"  |d>< W n tk
r   d|d>< Y nX d|d?< d|d@< d|dA< d|dB< d|dC< d|dD< d|dE< |
dF |dG< |
dH |dI< dJ|dK< dJ|dL< dJ|dM< dJ|dN< dJ|dO< dJ|dP< dJ|dQ< dJ|dR< d|dS< d|dT< d|dU< d|dV< d|dW< d|dX< d|dY< d|dZ< d|d[< d|d\< d|d]< d|d^< d|d_< d|d`< d|dA< d|da< d|db< d|dc< d|dd< d|de< 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|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< d|d< d|d< |
jdr|
d nd|d< |j| qW tj|}|jdj	|	dddddd tttt|	d d t|	dd  }g }x|D ]}t }|d |d< d|d< t|d |d< d|d< d|d< d|d < d|d!< t|d# |d  |d$  d%|d&< |d' |d(< d|d)< |d* |d+< d|d,< |d- |d.< |d/ |d0< d|d1< d|d2< d|d3< d|d4< d|d5< d|d6< d|d7< d|d8< d|d9< d|d:< |d; |d<< |d$ |d=< y|d# |d  |d>< W n tk
	r`   d|d>< Y nX d|d?< d|d@< d|dA< d|dB< d|dC< d|dD< d|dE< dJ|dG< dJ|dI< dJ|dK< dJ|dL< dJ|dM< dJ|dN< dJ|dO< dJ|dP< dJ|dQ< dJ|dR< d|dS< d|dT< d|dU< d|dV< d|dW< d|dX< d|dY< d|dZ< d|d[< d|d\< d|d]< d|d^< d|d_< d|d`< d|dA< d|da< d|db< d|dc< d|dd< d|de< 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|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< d|d< d|d< |jdr|d nd|d< |j| qW tj|}|jdj	|dddddd dtjd  dj	|	 dtjd  dj	| dƜ}tt|S )z!
	Handling requests from the UI
	
start_datezStart date is empty.zStart date is missing.Nend_datezEnd date is empty.zEnd date is missing.
session_idzSession ID is empty.zSession ID is missing.messagesi     z(Not authorised to perform this operationmessage)r$   r%   zhttps://SERVERz:5005/batchfile/generate/data)r   datatransation_dataincome_accountzAccount Code zAccounting Period
sales_datezTransaction DateFillerLzRecord TypezJournal NumberzJournal Line Numberbase_amounttran_quantityconversion_rate   zBase Amount	dc_markerz
D/C MarkerzAllocation Markerjournal_typezJournal TypezJournal Sourcecustomer_referencezTransaction Referenceaccount_descriptionDescriptionz
Entry DatezEntry PeriodzDue DatezFiller 1zAllocation RefzAllocation DatezAllocation PeriodzAsset Indicatorz
Asset CodezAsset SubcodecurrencyzConversion CodezConversion RatezTransaction AmountzTransaction Decimal PlaceszCleardown Sequence NumberzFiller 2zReversal FlagzLoss Gain FlagzRough Transaction FlagzTransaction in UseoutletzAnalysis 1 Code
departmentzAnalysis 2 Code#zAnalysis 3 CodezAnalysis 4 CodezAnalysis 5 CodezAnalysis 6 CodezAnalysis 7 CodezAnalysis 8 CodezAnalysis 9 CodezAnalysis 10 CodezPosting Date for Rough JournalszUpdate Order Balance IndicatorzAllocation in Progress FlagzJournal Hold ReferencezHold Operator IDzBudget Check Accountz"Conversion Rate from Pivot to BasezOperator for abovezOperator for Transaction Ratez)Conversion Rate from Pivot to Second BasezOperator for above 1zReport/Second Base AmountzMemo Amountz%Exclude from Balancing in RevaluationzLedger Extension Details FlagzConsumed Budget IDzValue 4 Currency CodezValue 4 AmountzValue 4 Conversion RatezValue 4 Operator 1zValue 4 Decimal PlaceszValue 5 Currency Codejournal_line_numberzValue 5 Amount 1zValue 5 Conversion Rate 1zValue 5 Operator 2zValue 5 Decimal Places 2zLink Reference 1zLink Reference 2zLink Reference 3zAllocation Code 2zAllocation Statements CountzAllocation User ID 1zOriginal Line for this SplitzValue DatetimezSigning DetailszInstallment DatezPrincipal CodezPrincipal Code 1zPrincipal Code 2zPrincipal Code 3zPrincipal Code 4zPrincipal Code 5zPrincipal Code 6zPrincipal Code 7zPrincipal Code 8zPrincipal Code 9zPrincipal Code 10zPrincipal Code 11zPrincipal Code 12zPrincipal Code 13zPrincipal Code 14zPrincipal Code 15zPrincipal Code 16zPrincipal Code 17zPrincipal Code 18zPrincipal Code 19zBinder StatuszAgreed StatuszSplit Link ReferencezPosting ReferencezTrue Rated Flagz	Date Heldz	Held TextzInstalment Numberz#Supplementary Extension Record FlagzApprovals Extension FlagzRevaluation Link ReferencezManual Payment Override FlagzPayment StampzAuthorization in ProgresszSplit in Progressz!Voucher Number / Second ReferencezJournal Class CodezOriginator IdzOriginated Date and TimezAllocator IdzJournal Reversal TypezDocument Date 1zDocument Date 2zDocument Date 3zDocument Date 4zDocument Prefix 1zDocument Number 1zDocument Prefix 2zDocument Number 2zDocument Prefix 3zDocument Number 3zDocument Prefix 4zDocument Number 4zDiscount 1 DatezDiscount 1 PercentagezDiscount 2 DatezDiscount 2 PercentagezInterest DatezInterest PercentagezLate Payment DatezLate Payment PercentagezPayment Referencez	Bank CodezSource ReferencezModule CodezPayment Terms CodecuinvoicenumberzGeneral Description 1zbatchfiles/{0}.csv,Fzutf-8z
)sepheaderindexencodingline_terminatorr   r   
unit_pricez/docs/batchfiles/{0}.csv)url_1url_2)r   r   stripappendKeyErrorr   requestsgetr   formatstatus_coder   configr!   printr   strround	Exceptionpd	DataFrameto_csvr   r	   )r'   eget_userr)   	json_data
batch_dataincoming_datatransaction_data_jsonr+   batch_numbercontentresponsedfbatchfile_numbertransaction_datatransactionresponse_datatransaction_dfresponseObjectr   r   r   ui_generated_batchfile2   sB   




*


ri   z/batchfile/datac              C   s  t jdtjd  d } | j d }| j d }g }t }t| x|D ]}t }|d |d< d|d	< t|d
 |d< d|d< d|d< d|d< d|d< t	|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-< y|d |d  |d.< W n t
k
r   d |d.< Y nX d|d/< d|d0< d|d1< d|d2< d|d3< d|d4< d|d5< |d6 |d7< |d8 |d9< d:|d;< d:|d<< d:|d=< d:|d>< d:|d?< d:|d@< d:|dA< d:|dB< d|dC< d|dD< d|dE< d|dF< d|dG< d|dH< d|dI< d|dJ< d|dK< d|dL< d|dM< d|dN< d|dO< d|dP< d|d1< d|dQ< d|dR< d|dS< d|dT< d|dU< 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|dV< d|dW< d|dX< d|dY< d|dZ< d|d[< d|d\< d|d]< d|d^< d|d_< d|d`< d|da< d|db< d|dc< d|dd< d|de< d|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< |jdr,|d nd|d< |j| qJW tj|}|jdj|dddddd tttt|d d t|dd   }g }	x|D ]}
t }|
d |d< d|d	< t|
d
 |d< d|d< d|d< d|d< d|d< t	|
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-< y|
d |
d  |d.< W n t
k
r   d |d.< Y nX d|d/< d|d0< d|d1< d|d2< d|d3< d|d4< d|d5< d:|d7< d:|d9< d:|d;< d:|d<< d:|d=< d:|d>< d:|d?< d:|d@< d:|dA< d:|dB< d|dC< d|dD< d|dE< d|dF< d|dG< d|dH< d|dI< d|dJ< d|dK< d|dL< d|dM< d|dN< d|dO< d|dP< d|d1< d|dQ< d|dR< d|dS< d|dT< d|dU< 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|dV< d|dW< d|dX< d|dY< d|dZ< d|d[< d|d\< d|d]< d|d^< d|d_< d|d`< d|da< d|db< d|dc< d|dd< d|de< d|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< |
jdrv|
d nd|d< |	j| qW tj|	}|jdj|dddddd dtjd  dj| dtjd  dj| d}tt|S )Nzhttps://r*   z:5005/batchfile/generate/datar+   r,   r-   zAccount Coder.   zAccounting Periodr/   zTransaction Dater0   r1   zRecord TypezJournal NumberzJournal Line Numberr2   r3   r4   r5   zBase Amountr6   z
D/C MarkerzAllocation Markerr7   zJournal Typecredit_note_refzJournal Sourcer8   zTransaction Referencer9   r:   z
Entry DatezEntry PeriodzDue DatezFiller 1zAllocation RefzAllocation DatezAllocation PeriodzAsset Indicatorz
Asset CodezAsset Subcoder;   zConversion CodezConversion RatezTransaction AmountzTransaction Decimal PlaceszCleardown Sequence NumberzFiller 2zReversal FlagzLoss Gain FlagzRough Transaction FlagzTransaction in User<   zAnalysis 1 Coder=   zAnalysis 2 Coder>   zAnalysis 3 CodezAnalysis 4 CodezAnalysis 5 CodezAnalysis 6 CodezAnalysis 7 CodezAnalysis 8 CodezAnalysis 9 CodezAnalysis 10 CodezPosting Date for Rough JournalszUpdate Order Balance IndicatorzAllocation in Progress FlagzJournal Hold ReferencezHold Operator IDzBudget Check Accountz"Conversion Rate from Pivot to BasezOperator for abovezOperator for Transaction Ratez)Conversion Rate from Pivot to Second BasezOperator for above 1zReport/Second Base AmountzMemo Amountz%Exclude from Balancing in RevaluationzLedger Extension Details FlagzConsumed Budget IDzValue 4 Currency CodezValue 4 AmountzValue 4 Conversion RatezValue 4 Operator 1zValue 4 Decimal PlaceszValue 5 Currency Coder?   zValue 5 Amount 1zValue 5 Conversion Rate 1zValue 5 Operator 2zValue 5 Decimal Places 2zLink Reference 1zLink Reference 2zLink Reference 3zAllocation Code 2zAllocation Statements CountzAllocation User ID 1zOriginal Line for this SplitzValue DatetimezSigning DetailszInstallment DatezPrincipal CodezPrincipal Code 1zPrincipal Code 2zPrincipal Code 3zPrincipal Code 4zPrincipal Code 5zPrincipal Code 6zPrincipal Code 7zPrincipal Code 8zPrincipal Code 9zPrincipal Code 10zPrincipal Code 11zPrincipal Code 12zPrincipal Code 13zPrincipal Code 14zPrincipal Code 15zPrincipal Code 16zPrincipal Code 17zPrincipal Code 18zPrincipal Code 19zBinder StatuszAgreed StatuszSplit Link ReferencezPosting ReferencezTrue Rated Flagz	Date Heldz	Held TextzInstalment Numberz#Supplementary Extension Record FlagzApprovals Extension FlagzRevaluation Link ReferencezManual Payment Override FlagzPayment StampzAuthorization in ProgresszSplit in Progressz!Voucher Number / Second ReferencezJournal Class CodezOriginator IdzOriginated Date and TimezAllocator IdzJournal Reversal TypezDocument Date 1zDocument Date 2zDocument Date 3zDocument Date 4zDocument Prefix 1zDocument Number 1zDocument Prefix 2zDocument Number 2zDocument Prefix 3zDocument Number 3zDocument Prefix 4zDocument Number 4zDiscount 1 DatezDiscount 1 PercentagezDiscount 2 DatezDiscount 2 PercentagezInterest DatezInterest PercentagezLate Payment DatezLate Payment PercentagezPayment Referencez	Bank CodezSource ReferencezModule CodezPayment Terms Coder@   zGeneral Description 1zbatchfiles/{0}.csvrA   Fzutf-8z
)rB   rC   rD   rE   rF   r   r   rG   z/docs/batchfiles/{0}.csv)rH   rI   )rM   rN   r   rQ   r   r!   rR   r   rS   rT   rU   rK   rV   rW   rX   rO   r   r	   r   )r\   r]   r^   r+   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   r   r   r   createBatchfile&  s
   
*


rk   z/batchfile-credit/datac        
      C   s  t jdtjd  d } | j d }g }tjjtj	 }t
|j}t
tt
t|d d t|dd   }|}x|D ]}t }|d |d	< d
|d< t|d |d< d
|d< d|d< d
|d< d
|d< t|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.< y|d |d  |d/< W n tk
r   d |d/< Y nX d
|d0< d
|d1< d
|d2< d
|d3< d
|d4< d
|d5< d
|d6< |d7 |d8< |d9 |d:< d;|d<< d;|d=< d;|d>< d;|d?< d;|d@< d;|dA< d;|dB< d;|dC< d
|dD< d
|dE< d
|dF< d
|dG< d
|dH< d
|dI< d
|dJ< d
|dK< d
|dL< d
|dM< d
|dN< d
|dO< d
|dP< d
|dQ< d
|d2< d
|dR< d
|dS< d
|dT< d
|dU< d
|dV< 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
|dW< d
|dX< d
|dY< d
|dZ< d
|d[< d
|d\< d
|d]< d
|d^< d
|d_< d
|d`< d
|da< d
|db< d
|dc< d
|dd< d
|de< d
|df< d
|dg< d
|dh< d
|di< d
|dj< d
|dk< d
|dl< d
|dm< d
|dn< d
|do< d
|dp< d
|dq< d
|dr< d
|ds< d
|dt< d
|du< d
|dv< d
|dw< d
|dx< d
|dy< d
|dz< 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< |jdr\|d nd
|d< |j| qzW tj|}|jdj|dddddd ddtjd  dj| i}	tt|	S )Nzhttps://r*   z:5005/credit/batchfiler+   r   r5   r   r-   zAccount Coder.   zAccounting Periodr/   zTransaction Dater0   r1   zRecord TypezJournal NumberzJournal Line Numberr2   r3   r4   zBase Amountr6   z
D/C MarkerzAllocation Markerr7   zJournal Typerj   zJournal Sourcer8   zTransaction Referencer9   r:   z
Entry DatezEntry PeriodzDue DatezFiller 1zAllocation RefzAllocation DatezAllocation PeriodzAsset Indicatorz
Asset CodezAsset Subcoder;   zConversion CodezConversion RatezTransaction AmountzTransaction Decimal PlaceszCleardown Sequence NumberzFiller 2zReversal FlagzLoss Gain FlagzRough Transaction FlagzTransaction in User<   zAnalysis 1 Coder=   zAnalysis 2 Coder>   zAnalysis 3 CodezAnalysis 4 CodezAnalysis 5 CodezAnalysis 6 CodezAnalysis 7 CodezAnalysis 8 CodezAnalysis 9 CodezAnalysis 10 CodezPosting Date for Rough JournalszUpdate Order Balance IndicatorzAllocation in Progress FlagzJournal Hold ReferencezHold Operator IDzBudget Check Accountz"Conversion Rate from Pivot to BasezOperator for abovezOperator for Transaction Ratez)Conversion Rate from Pivot to Second BasezOperator for above 1zReport/Second Base AmountzMemo Amountz%Exclude from Balancing in RevaluationzLedger Extension Details FlagzConsumed Budget IDzValue 4 Currency CodezValue 4 AmountzValue 4 Conversion RatezValue 4 Operator 1zValue 4 Decimal PlaceszValue 5 Currency Coder?   zValue 5 Amount 1zValue 5 Conversion Rate 1zValue 5 Operator 2zValue 5 Decimal Places 2zLink Reference 1zLink Reference 2zLink Reference 3zAllocation Code 2zAllocation Statements CountzAllocation User ID 1zOriginal Line for this SplitzValue DatetimezSigning DetailszInstallment DatezPrincipal CodezPrincipal Code 1zPrincipal Code 2zPrincipal Code 3zPrincipal Code 4zPrincipal Code 5zPrincipal Code 6zPrincipal Code 7zPrincipal Code 8zPrincipal Code 9zPrincipal Code 10zPrincipal Code 11zPrincipal Code 12zPrincipal Code 13zPrincipal Code 14zPrincipal Code 15zPrincipal Code 16zPrincipal Code 17zPrincipal Code 18zPrincipal Code 19zBinder StatuszAgreed StatuszSplit Link ReferencezPosting ReferencezTrue Rated Flagz	Date Heldz	Held TextzInstalment Numberz#Supplementary Extension Record FlagzApprovals Extension FlagzRevaluation Link ReferencezManual Payment Override FlagzPayment StampzAuthorization in ProgresszSplit in Progressz!Voucher Number / Second ReferencezJournal Class CodezOriginator IdzOriginated Date and TimezAllocator IdzJournal Reversal TypezDocument Date 1zDocument Date 2zDocument Date 3zDocument Date 4zDocument Prefix 1zDocument Number 1zDocument Prefix 2zDocument Number 2zDocument Prefix 3zDocument Number 3zDocument Prefix 4zDocument Number 4zDiscount 1 DatezDiscount 1 PercentagezDiscount 2 DatezDiscount 2 PercentagezInterest DatezInterest PercentagezLate Payment DatezLate Payment PercentagezPayment Referencez	Bank CodezSource ReferencezModule CodezPayment Terms Coder@   zGeneral Description 1zbatchfiles/{0}.csvrA   Fzutf-8z
)rB   rC   rD   rE   rF   rH   z/docs/batchfiles/{0}.csv)rM   rN   r   rQ   r   r   r   r   r   r   r   r   rS   r   rT   rU   rK   rV   rW   rX   rO   r	   r   )
r\   r]   r+   r   r_   rc   r`   ra   rb   rh   r   r   r   createCreditBatchfile  s   
*
rl   z/payment-credit/batchfile/datac        
      C   s  t jdtjd  d } | j d }g }tjjtj	 }t
|j}t
tt
t|d d t|dd  }|}x|D ]}t }|d	 |d
< d|d< t|d |d< d|d< d|d< d|d< d|d< t|d |d  |d  d|d< |d |d< d|d< |d |d< t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 |d0< y|d |d  |d1< W n tk
r   d|d1< Y nX d|d2< d|d3< d|d4< d|d5< d|d6< d|d7< d|d8< d9|d:< d9|d;< d9|d<< d9|d=< d9|d>< d9|d?< d9|d@< d9|dA< d9|dB< d9|dC< d|dD< d|dE< d|dF< d|dG< d|dH< d|dI< d|dJ< d|dK< d|dL< d|dM< d|dN< d|dO< d|dP< d|dQ< d|d4< d|dR< d|dS< d|dT< d|dU< d|dV< 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|dW< d|dX< d|dY< d|dZ< d|d[< d|d\< d|d]< d|d^< d|d_< d|d`< d|da< d|db< d|dc< d|dd< d|de< d|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< |jdrT|d nd|d< |j| qzW tj|}|jdj|dddddd ddtjd  dj| i}	tt|	S )zF
	Used to clear up certain issues that are made in payments received
	zhttps://r*   z:5005/payments/credit/batchfiler+   r      r   Nr-   zAccount Coder.   zAccounting Periodr/   zTransaction Dater0   r1   zRecord TypezJournal NumberzJournal Line Numberr3   rG   r4   r5   zBase Amountr6   z
D/C MarkerzAllocation Markerr7   zJournal Typerj   zJournal Sourcer8   zTransaction Referencer9   r:   z
Entry DatezEntry PeriodzDue DatezFiller 1zAllocation RefzAllocation DatezAllocation PeriodzAsset Indicatorz
Asset CodezAsset Subcoder;   zConversion CodezConversion RatezTransaction AmountzTransaction Decimal PlaceszCleardown Sequence NumberzFiller 2zReversal FlagzLoss Gain FlagzRough Transaction FlagzTransaction in User>   zAnalysis 1 CodezAnalysis 2 CodezAnalysis 3 CodezAnalysis 4 CodezAnalysis 5 CodezAnalysis 6 CodezAnalysis 7 CodezAnalysis 8 CodezAnalysis 9 CodezAnalysis 10 CodezPosting Date for Rough JournalszUpdate Order Balance IndicatorzAllocation in Progress FlagzJournal Hold ReferencezHold Operator IDzBudget Check Accountz"Conversion Rate from Pivot to BasezOperator for abovezOperator for Transaction Ratez)Conversion Rate from Pivot to Second BasezOperator for above 1zReport/Second Base AmountzMemo Amountz%Exclude from Balancing in RevaluationzLedger Extension Details FlagzConsumed Budget IDzValue 4 Currency CodezValue 4 AmountzValue 4 Conversion RatezValue 4 Operator 1zValue 4 Decimal PlaceszValue 5 Currency Coder?   zValue 5 Amount 1zValue 5 Conversion Rate 1zValue 5 Operator 2zValue 5 Decimal Places 2zLink Reference 1zLink Reference 2zLink Reference 3zAllocation Code 2zAllocation Statements CountzAllocation User ID 1zOriginal Line for this SplitzValue DatetimezSigning DetailszInstallment DatezPrincipal CodezPrincipal Code 1zPrincipal Code 2zPrincipal Code 3zPrincipal Code 4zPrincipal Code 5zPrincipal Code 6zPrincipal Code 7zPrincipal Code 8zPrincipal Code 9zPrincipal Code 10zPrincipal Code 11zPrincipal Code 12zPrincipal Code 13zPrincipal Code 14zPrincipal Code 15zPrincipal Code 16zPrincipal Code 17zPrincipal Code 18zPrincipal Code 19zBinder StatuszAgreed StatuszSplit Link ReferencezPosting ReferencezTrue Rated Flagz	Date Heldz	Held TextzInstalment Numberz#Supplementary Extension Record FlagzApprovals Extension FlagzRevaluation Link ReferencezManual Payment Override FlagzPayment StampzAuthorization in ProgresszSplit in Progressz!Voucher Number / Second ReferencezJournal Class CodezOriginator IdzOriginated Date and TimezAllocator IdzJournal Reversal TypezDocument Date 1zDocument Date 2zDocument Date 3zDocument Date 4zDocument Prefix 1zDocument Number 1zDocument Prefix 2zDocument Number 2zDocument Prefix 3zDocument Number 3zDocument Prefix 4zDocument Number 4zDiscount 1 DatezDiscount 1 PercentagezDiscount 2 DatezDiscount 2 PercentagezInterest DatezInterest PercentagezLate Payment DatezLate Payment PercentagezPayment Referencez	Bank CodezSource ReferencezModule CodezPayment Terms Coder@   zGeneral Description 1zbatchfiles/{0}.csvrA   Fzutf-8z
)rB   rC   rD   rE   rF   rH   z/docs/batchfiles/{0}.csv)rM   rN   r   rQ   r   r   r   r   r   r   r   r   rS   r   rT   r`   rU   rK   rV   rW   rX   rO   r	   r   )
r\   r]   r+   r   r_   rc   re   rf   rb   rh   r   r   r   createPaymentsCreditBatchfile  s   
*

rn   z/credit-notes/batchfilec        
      C   s  t jjtj } t| j}tttt|d d t|dd  }|}tj	d tj	d d}t
jdtjd	  d
 |d}|j	 d }g }x|D ]}t }|d |d< d|d< t|d |d< d|d< d|d< d|d< d|d< t|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|d0< |d1 |d2< |d |d3< y|d |d  |d4< W n tk
r   d|d4< Y nX d|d5< d|d6< d|d7< d|d8< d|d9< d|d:< d|d;< |d< |d=< |d> |d?< d@|dA< d@|dB< d@|dC< d@|dD< d@|dE< d@|dF< d@|dG< d@|dH< d|dI< d|dJ< d|dK< d|dL< d|dM< d|dN< d|dO< d|dP< d|dQ< d|dR< d|dS< d|dT< d|dU< d|dV< d|d7< d|dW< d|dX< d|dY< d|dZ< 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|da< d|db< d|dc< d|dd< d|de< d|df< d|dg< d|dh< d|di< d|dj< d|dk< d|dl< d|dm< d|dn< d|do< d|dp< d|dq< d|dr< d|ds< d|dt< d|du< d|dv< d|dw< d|dx< d|dy< d|dz< 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< |jdrv|d nd|d< |j| qW tj|}	|	jdj|dddddd tddtjd	  dj| idfS )z,
	The actual credit not batchfile function
	r   r5   r   Nr$   r%   )r$   r%   zhttps://r*   z:5005/credit-notes/data)r   r+   r-   zAccount Coder.   zAccounting Periodr/   zTransaction Dater0   r1   zRecord TypezJournal NumberzJournal Line Numberr2   r3   r4   zBase Amountr6   z
D/C MarkerzAllocation Markerr7   zJournal Typer9   zJournal Sourcer8   zTransaction Referencerj   r:   z
Entry DatezEntry PeriodzDue DatezFiller 1zAllocation RefzAllocation DatezAllocation PeriodzAsset Indicatorz
Asset CodezAsset Subcoder;   zConversion CodezConversion RatezTransaction AmountzTransaction Decimal PlaceszCleardown Sequence NumberzFiller 2zReversal FlagzLoss Gain FlagzRough Transaction FlagzTransaction in User<   zAnalysis 1 Coder=   zAnalysis 2 Coder>   zAnalysis 3 CodezAnalysis 4 CodezAnalysis 5 CodezAnalysis 6 CodezAnalysis 7 CodezAnalysis 8 CodezAnalysis 9 CodezAnalysis 10 CodezPosting Date for Rough JournalszUpdate Order Balance IndicatorzAllocation in Progress FlagzJournal Hold ReferencezHold Operator IDzBudget Check Accountz"Conversion Rate from Pivot to BasezOperator for abovezOperator for Transaction Ratez)Conversion Rate from Pivot to Second BasezOperator for above 1zReport/Second Base AmountzMemo Amountz%Exclude from Balancing in RevaluationzLedger Extension Details FlagzConsumed Budget IDzValue 4 Currency CodezValue 4 AmountzValue 4 Conversion RatezValue 4 Operator 1zValue 4 Decimal PlaceszValue 5 Currency Coder?   zValue 5 Amount 1zValue 5 Conversion Rate 1zValue 5 Operator 2zValue 5 Decimal Places 2zLink Reference 1zLink Reference 2zLink Reference 3zAllocation Code 2zAllocation Statements CountzAllocation User ID 1zOriginal Line for this SplitzValue DatetimezSigning DetailszInstallment DatezPrincipal CodezPrincipal Code 1zPrincipal Code 2zPrincipal Code 3zPrincipal Code 4zPrincipal Code 5zPrincipal Code 6zPrincipal Code 7zPrincipal Code 8zPrincipal Code 9zPrincipal Code 10zPrincipal Code 11zPrincipal Code 12zPrincipal Code 13zPrincipal Code 14zPrincipal Code 15zPrincipal Code 16zPrincipal Code 17zPrincipal Code 18zPrincipal Code 19zBinder StatuszAgreed StatuszSplit Link ReferencezPosting ReferencezTrue Rated Flagz	Date Heldz	Held TextzInstalment Numberz#Supplementary Extension Record FlagzApprovals Extension FlagzRevaluation Link ReferencezManual Payment Override FlagzPayment StampzAuthorization in ProgresszSplit in Progressz!Voucher Number / Second ReferencezJournal Class CodezOriginator IdzOriginated Date and TimezAllocator IdzJournal Reversal TypezDocument Date 1zDocument Date 2zDocument Date 3zDocument Date 4zDocument Prefix 1zDocument Number 1zDocument Prefix 2zDocument Number 2zDocument Prefix 3zDocument Number 3zDocument Prefix 4zDocument Number 4zDiscount 1 DatezDiscount 1 PercentagezDiscount 2 DatezDiscount 2 PercentagezInterest DatezInterest PercentagezLate Payment DatezLate Payment PercentagezPayment Referencez	Bank CodezSource ReferencezModule CodezPayment Terms Coder@   zGeneral Description 1zbatchfiles/{0}.csvrA   Fzutf-8z
)rB   rC   rD   rE   rF   urlz/docs/batchfiles/{0}.csvr(   )r   r   r   r   r   r   r   rS   r   r   rM   postr   rQ   r   rT   rU   rN   rK   rV   rW   rX   rO   r   )
r   r_   rc   r[   r\   r]   r+   r`   ra   rb   r   r   r   generate_credit_note_file  s   
*
rq   )&flaskr   r   r   r   r   r   r   r	   r
   r   pymysqlosmathrM   uuidlxmlr   ETroutesr   r   Zdatabase.batchfile_coder   	variablesr   pandasrV   collectionsr   r   r!   routeri   rk   rl   rn   rq   r   r   r   r   <module>   s0   ((   w   P t v