
    }%hJ                         d dl m Z  d dlmZ d dlmZmZmZmZ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Zd dlmZmZ  G d	 d
      Zy)    )datetime)Session)BranchOfficeModelCapitulationModelExpenseTypeModel	UserModelTotalAcceptedCapitulations)HelperClass)HTTPException)aliasedN)castStringc                   R    e Zd ZdefdZddZddZd Zd Zd Z	d	 Z
d
 Zd Zd Zy)CapitulationClassdbc                     || _         y N)r   )selfr   s     [C:\Users\jesus\OneDrive\Desktop\escritorio\newerp\app\backend\classes\capitulation_class.py__init__zCapitulationClass.__init__   s	        c                 	   	 g } | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  j!                  d      t        j"                  t$        j                  j!                  d      t$        j&                  t(        j*                  t        j,                  t        j.                  t        j0                  t        j2                        j5                  t        t        j                  t        j                  k(        j5                  t$        t$        j                  t        j                  k(        j5                  t(        t(        j6                  t        j8                  k(        j:                  | j=                  t        j                        }|dkD  rr|j?                         }||z   dz
  |z  }|dk  s||kD  rdddS |jA                  |dz
  |z        jC                  |      jE                         }|sdddS |D cg c]  }i d	|j                  d
|j                  d|j
                  d|j                  d|j                  d|j                  d|j                  d|j"                  d|j                  d|j&                  d|j                  d|j                  d|j                  d|j*                  d|j                  d|j,                  d|j.                  |j0                  |j2                  d }	}|||||	dS |jE                         }|D cg c]  }i d	|j                  d
|j                  d|j
                  d|j                  d|j                  d|j                  d|j                  d|j"                  d|j                  d|j&                  d|j                  d|j                  d|j                  d|j*                  d|j                  d|j,                  d|j.                  |j0                  |j2                  d }	}|	S c c}w c c}w # tF        $ r}
tI        |
      }d|dcY d }
~
S d }
~
ww xY w)Nbranch_office_idexpense_type_idr      errorzInvalid page numberstatusmessagezNo data foundiddocument_datesupplier_rutdocument_numberdocument_type_idcapitulation_type_idbranch_officeexpense_typedescriptionamountsupport	full_name	status_idpayment_datepayment_numberperiodpayment_support)total_itemstotal_pagescurrent_pageitems_per_pagedata)%r   queryr   r    r!   r"   r#   r$   r%   r   r   r(   r)   r*   r,   r   labelr&   r   r'   r   r+   r-   r.   r0   r1   	outerjoinrutuser_rutfilterorder_bycountoffsetlimitall	Exceptionstr)r   pager5   filtersr7   r2   r3   r6   capitulationserialized_dataeerror_messages               r   get_allzCapitulationClass.get_all   s/   n	AGDGGMM!$$!//!..!11!22!66!22!11!--!((!))!++!$$**+=>!// ##))*;< --##!..!00!((!11+, i!#4#7#7;L;];]#]i "2"5"59J9Z9Z"Zi9==,=,F,FFf;< h!$$= D ax#kkm*^;a?NR!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ, '+)#,( #)$,//$#\%?%?$ #L$=$=$ &|'C'C	$
 '(E(E$ +L,M,M$ '(E(E$ $\%?%?$ &|'C'C$ #L$=$=$ "<#;#;$ l11$ |33$  !7!7$  !7!7$  #L$=$=!$" %l&A&A#$$ +11'3'C'C'$ #, #,. $/#.$(&4+  yy{, '+)#,( #)$,//$#\%?%?$ #L$=$=$ &|'C'C	$
 '(E(E$ +L,M,M$ '(E(E$ $\%?%?$ &|'C'C$ #L$=$=$ "<#;#;$ l11$ |33$  !7!7$  !7!7$  #L$=$=!$" %l&A&A#$$ +11'3'C'C'$ #, #,, '&o#,B#,0  	AFM%-@@	AsP   I'S *:S %S )C?S	(	S 2S C?SS 	
S 	S6S1+S61S6Nc                    	 g }|j                  t        j                  dk(         |j                  t        j                  |k(          | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j                  t"        j                  j%                  d      t"        j&                  t(        j                  j%                  d      t(        j*                  t,        j.                  t        j0                  t        j2                  t        j4                  t        j6                        j9                  t"        t"        j                  t        j                  k(        j9                  t(        t(        j                  t        j                  k(        j9                  t,        t,        j:                  t        j                  k(        j<                  | j?                  t        j                        }|jA                         }|D cg c]  }i d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d|j                  d
|j&                  d|j                  d|j*                  d|j                  d|j                  d|j                   d|j.                  d|j                  d|j0                  d|j2                  |j4                  |j6                  d }}|S c c}w # tB        $ r}tE        |      }d|dcY d }~S d }~ww xY w)N   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r   r   )#appendr   r,   r;   r   r7   r    r!   r"   r#   r$   r%   r   r   r(   r)   r*   r   r8   r&   r   r'   r   r+   r-   r.   r0   r1   r9   r:   r<   r=   rA   rB   rC   )	r   r:   rE   r7   r6   rF   rG   rH   rI   s	            r   get_all_acceptedz"CapitulationClass.get_all_accepted   s\   F	AGNN,66!;<NN,55<=DGGMM!$$!//!..!11!22!66!22!11!--!((!))!++!$$**+=>!// ##))*;< --##!..!00!((!11+, i!#4#7#7;L;];]#]i "2"5"59J9Z9Z"Zi9==,=,F,FFf;< h!$$= D 99;D, #')(( ) ,// #\%?%?  #L$=$=  &|'C'C	 
 '(E(E  +L,M,M  '(E(E  $\%?%?  &|'C'C  #L$=$=  "<#;#;  l11  |33   !7!7   !7!7   #L$=$=! " %l&A&A# $ +11'3'C'C'  (O (, #"-(0  	AFM%-@@	As1   JN C?NN N 	N=#N82N=8N=c                    	 | j                   j                  t        j                  t        j                  t        j
                        j                  t        j                        }|j                         }|D cg c]&  }|j                  |j                  |j
                  d( }}|S c c}w # t        $ r}t        |      }d|dcY d }~S d }~ww xY w)N)r:   r+   r)   r   r   )
r   r7   r	   r:   r+   r)   r=   rA   rB   rC   )r   r7   r6   rF   rG   rH   rI   s          r   total_accepted_capitulationsz.CapitulationClass.total_accepted_capitulations   s    	AGGMM*..*44*11 h*..	  99;D #'	(  $'')33&--  (O ( #"(  	AFM%-@@	As0   A8B. :+B)%B. )B. .	C7CCCc                    	 | j                   j                  t        j                  t	        t        j
                  t              j                  d      t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t$        j&                  t(        j                  j                  d      t(        j*                  t,        j.                  t	        t        j0                  t              j                  d      t        j2                  t        j4                  t        j6                        j9                  t$        t$        j                  t        j                  k(        j9                  t(        t(        j                  t        j                  k(        j9                  t,        t,        j:                  t        j<                  k(        j?                  t        j                  |k(        jA                         }|ri d|j                  dtC        |j
                  tD              r|j
                  jG                  d      n|j
                  d|j                  d|j                  d|j                  d	|j                  d
|j                  d|j&                  d|j                  d|j*                  d|j                  d|j                  d|j                   d|j.                  d|j"                  dtC        |j0                  tD              r|j0                  jG                  d      n|j0                  d|j2                  tC        |j4                  tH              rMd|j4                  v r?|j4                  jK                  d      d    d|j4                  jK                  d      d    n|j4                  |j6                  d}d|i}tM        jN                  |      }|S y# tP        $ r}tI        |      }d| cY d }~S d }~ww xY w)Nr!   r   r-   r    z%Y-%m-%dr"   r#   r$   r%   r   r&   r'   r(   r)   r*   r+   r,   r.   -r   r   r/   capitulation_dataz3No se encontraron datos para el campo especificado.Error: ))r   r7   r   r    r   r!   r   r8   r"   r#   r$   r%   r   r   r(   r)   r*   r,   r   r&   r   r'   r   r+   r-   r.   r0   r1   r9   r:   r;   r<   first
isinstancer   strftimerC   splitjsondumpsrB   )r   r    
data_queryrS   resultserialized_resultrH   rI   s           r   getzCapitulationClass.get   s/   E	-!$$&44f=CCOT!..!11!22!66!22!11!--!((!))!++!// ##))*;< --##&33V<BB>R!00!((!11)* i!#4#7#7;L;];]#]i "2"5"59J9Z9Z"Zi9==,=,F,FFf!$$*eg; > %*--%#V`akayay  |D  WEZ%=%=%F%Fz%R  KU  Kc  Kc% #J$;$;% &z'A'A	%
 '
(C(C% +J,K,K% '
(C(C% $Z%=%=% &z'A'A% #J$;$;% ":#9#9% j//% z11%  !5!5%  !5!5%  #T^_i_v_v  yA  UBJ$;$;$D$DZ$P  HR  H_  H_!%" %j&?&?#%$ iss}  tE  tE  GJ  iK  PS  Wa  Wh  Wh  Ph!2!2!8!8!=a!@ A:CTCTCZCZ[^C_`aCbBcd  nx  n  n'1'A'A'%!. (): %)JJv$6!(( M 	-FM]O,,	-s   P<Q   	Q#	QQ#Q#c                 ~   t               }|j                  |_        d|_        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_	        |j                  |_
        |j                  |_        |j                  |_        ||_        | j                  j                  |       	 | j                  j!                          dddS # t"        $ r5}| j                  j%                          ddt'        |       dcY d }~S d }~ww xY w)Nr   successzCapitulation saved successfullyr   r   rT   )r   r!   r,   r"   r:   r;   r#   r$   r%   r   r   r(   r)   r*   r   addcommitrB   rollbackrC   )r   	form_datauser_sessionr*   rF   rH   s         r   storezCapitulationClass.store*  s   (*%.%<%<"!"$-$:$:! , 0 0'0'@'@$(1(B(B%,5,J,J)(1(B(B%'0'@'@$#,#8#8 '..&L!	FGGNN'4UVV 	FGG%GCF82DEE	Fs   C> >	D<*D71D<7D<c                    | j                   j                  t              j                  t        j                  |k(        j                         }|j                  |_        |j                  |_        d|_        ||_	        | j                   j                  |       	 | j                   j                          dddS # t        $ r5}| j                   j                          ddt        |       dcY d }~S d }~ww xY w)N   r`   zCapitulation paid successfullyr   r   rT   )r   r7   r   r<   r    rU   r-   r.   r,   r1   ra   rb   rB   rc   rC   )r   r    rd   r*   rF   rH   s         r   payzCapitulationClass.payB  s    ww}}%67>>?P?S?SWY?YZ``b$-$:$:!&/&>&>#!#'.$L!	FGGNN'4TUU 	FGG%GCF82DEE	Fs   B9 9	C7*C2,C72C7c                 *   d}| j                   j                  t              j                  t        j                  |j                  k(        j                         }| j                   j                  t              j                  t        j                  |j                  k(        j                         }| j                   j                  t              j                  t        j                  |j                  k(        j                         }|j                  j                  d      }d|d   z   dz   |d   z   }|d   dz   |d   z   |_
        d|_        | j                   j                  |       	 | j                   j                          |j                  dk(  r|j                   dz   |j"                  z   dz   |z   d	z   t%        |j                        z   }|j                  d
z   |t%        |j"                        |j&                  id|j&                  iddddddgid}	ddz   }
t)        j*                  |
|	d| dd      }|j,                  dk(  r
dddS dddS y # t.        $ r5}| j                   j1                          ddt%        |       dcY d }~S d }~ww xY w)N JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1rR   z01-r   r      '   __Rendicion_z-0111101001)debehaberIemitidos )dtefolio)fechaglosadetalle	operacion
documentosz/https://libredte.cl/api/lce/lce_asientos/crear/76063822zBearer zapplication/json)AuthorizationzContent-Type)rY   headers   r`   z!Capitulation imputed successfullyr   r   rT   )r   r7   r   r<   r    rU   r   r   r   r   r0   rX   r,   ra   rb   r$   r&   accounting_accountrC   r)   requestspoststatus_coderB   rc   )r   rd   tokenrF   r&   r'   r0   	utf8_dateglossr6   urlresponserH   s                r   imputezCapitulationClass.imputeR  s   2ww}}%67>>?P?S?SW`WcWc?cdjjl&78??@Q@T@TXdXuXu@uv||~ww}}%56==>N>Q>QUaUqUq>qrxxz!!'',F1I%+fQi7	%ay3:!"L!5	FGGNN,,2!//"556   	 
 $$ ,//*+  '--5" |>>?ATAT! '(;(;"	  "%"'))*%#, H:U#==+25'):(: ''3.&/<_``"+8[\\ /  	FGG%GCF82DEE	Fs%   *C#I I 	J*JJJc                 ^   	 | j                   j                  t              j                  t        j                  |k(        j                          | j                   j                          dddS # t        $ r5}| j                   j                          ddt        |       dcY d }~S d }~ww xY w)Nr`   z!Capitulation deleted successfullyr   r   rT   )
r   r7   r   r<   r    deleterb   rB   rc   rC   )r   r    rH   s      r   r   zCapitulationClass.delete  s    	FGGMM+,334E4H4HB4NOVVXGGNN'4WXX 	FGG%GCF82DEE	Fs   A+A. .	B,7*B'!B,'B,c                    | j                   j                  t              j                  t        j                  |j                  k(        j                         }|st        dd      |j                  dk(  rd|_        nd|_        |j                  |_	        t        j                         |_        | j                   j                          | j                   j                  |       y )Ni  u   Rendición no encontrada)r   detail1rL      )r   r7   r   r<   r    rU   r   questionr,   why_was_rejectedr   nowupdated_daterb   refresh)r   rd   rF   s      r   updatezCapitulationClass.update  s    ww}}%67>>?P?S?SW`WcWc?cdjjlC8RSS$%&L"%&L",5,F,FL)$,LLN!%r   )r   
   r   )__name__
__module____qualname__r   r   rJ   rN   rP   r^   rf   ri   r   r   r    r   r   r   r      sJ    7 oAbGARA0F-PF0F CFJ	F&r   r   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   r   r   r	    app.backend.classes.helper_classr
   fastapir   r   r   rY   
sqlalchemyr   r   r   r   r   r   <module>r      s2     "   8  ! "   #e& e&r   