
    وha+                        d dl mZmZ d dlmZmZ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mZ d dlmZ d dlmZ d d	lmZ d d
l mZmZmZ d dlmZ d dlZd dlZ eddg      Z e jC                  d       ee      fdedefd       Z"e jC                  d       ee
jF                         ed       ee      fde
dedefd       Z$e jC                  d       ee      fdedefd       Z%e jC                  d       ee      fdedefd       Z&e jC                  d       ee      fde	defd       Z'e jC                  d       ee      fdedefd       Z(e jC                  d        ee      fd!ed"efd#       Z)e jC                  d$       ee      fd!ed"efd%       Z*e jW                  d&       ee      fd'e,defd(       Z-e jW                  d)       ee      fdefd*       Z.e jC                  d+       ee      fdedefd,       Z/e jW                  d-       ee      fd.e,d/e,d0e,d1e0def
d2       Z1e je                  d3       ee      fd4e,d/e,d0e,d1e0d5e,defd6       Z2e jW                  d7       ee      fd4e,defd8       Z3e jW                  d9       ee      fd:e0defd;       Z3e jW                  d<       ee      fd=e,d>e,d?e0defd@       Z4e jW                  dA       ee      fdefdB       Z5e jW                  dC       ee      fdefdD       Z6e jW                  dE       ee      fdefdF       Z7e jW                  dG       ee      fdefdH       Z8y)I    )	APIRouterDepends)	UserLoginGetDteDteDteListReceivedDteList	ImportDteUploadDteDepositTransfer)DteClass)get_current_active_user)WhatsappClass)DteModelCustomerModel)get_db)Session)	FileClass)
UploadFileFileHTTPException)datetimeNz/dtesDtes)prefixtags/dtedbc           	          t        |      j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                        }d|iS Nmessage)	r   get_allbranch_office_iddte_type_iddte_version_idsinceuntil
subscriberpager   r   datas      D/var/www/intrajisbackend.com/public_html/app/backend/routers/dtes.pyindexr,      sh    B< 4 4coosGYGY[^[d[dfifofoqtqq  BE  BJ  BJ  KDt    z/upload_deposit_transfer	form_datasupportc                    	 t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }t        |      j                  ||      }	t        |      j                  | |       d|	iS # t        $ r}
t        d	d
t        |
             d }
~
ww xY w)Nz%Y_%m_%d_%H_%M_%S   . dte_deposit_transfer_r    i  zError al procesar: )status_codedetail)r   nowstrftimeuuiduuid4hexfilenamesplitr   uploadr   upload_deposit_transfer	Exceptionr   str)r.   r/   r   	timestamp	unique_idfile_extensionfile_category_nameunique_filenameremote_pathr    es              r+   rA   rA      s   TLLN++,?@	JJL$$Ra(	<?7CSCS<S))//4R8Y[3IWYKq1^4DE`i_jjklukv]w+,Ao->?B-&&w<,,YD7## T6I#a&4RSSTs   CC
 
	C1C,,C1z/all_with_customerc                    t        |      j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  
      }d|iS r   r   get_all_with_customerfolior"   rutcustomerperiodamountsupervisor_id	status_idr$   r(   r)   s      r+   all_with_customerrU   2       B<--cii9M9MswwX[XdXdfifpfprur|r|  B  P  P  RU  R_  R_  ad  as  as  ux  u}  u}  ~Dtr-   z/all_with_customer_to_reviewc                    t        |      j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  
      }d|iS r   rL   r)   s      r+   all_with_customer_to_reviewrX   8   rV   r-   z/import_by_rutc                 R    t        |      j                  | j                        }d|iS r   )r   import_by_rutrO   r)   s      r+   rZ   rZ   >   s%    B<%%cgg.Dtr-   z/received_tributary_documentsc                 D   t        |      j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                        }d|iS r   )r    get_received_tributary_documentsrN   r"   rO   supplierr%   r&   rR   rS   rT   r#   r$   r(   r)   s      r+   received_tributary_documentsr^   D   s    B<88CDXDXZ]ZaZacfcocoqtqzqz|  }F  }F  HK  HR  HR  TW  Te  Te  gj  gt  gt  vy  vE  vE  GJ  GY  GY  [^  [c  [c  dDtr-   z/total_quantityusersession_userc                 T    | j                         }t        j                  |      }d|iS r   )dictr   get_total_quantityr_   r`   user_inputsr*   s       r+   total_quantityrf   J   s(    ))+K&&{3Dtr-   z/total_amountc                 T    | j                         }t        j                  |      }d|iS r   )rb   r   get_total_amountrd   s       r+   total_amountri   Q   s(    ))+K$$[1Dtr-   z/send_to_sii/{machine_id}
machine_idc                 >    t        |      j                  |        ddiS Nr    1)r   send_to_sii)rj   r   s     r+   rn   rn   X   s    RLZ(sr-   z/very_sent_to_siic                 <    t        |       j                          ddiS rl   )r   very_sent_to_siir   s    r+   rp   rp   ^   s    RL!!#sr-   z/storec                 ^    | j                         }t        |      j                  |      }d|iS r   )rb   r   store)r   r   
dte_inputsr*   s       r+   rs   rs   d   s,    JB<j)Dtr-   z^/validate_quantity_tickets/{total_machine_ticket}/{branch_office_id}/{cashier_id}/{added_date}total_machine_ticketr"   
cashier_id
added_datec                 @    t        |      j                  | |||      }|S )N)r   validate_quantity_tickets)ru   r"   rv   rw   r   r*   s         r+   ry   ry   l   s%    B<112FHXZdfpqDKr-   zE/delete/{folio}/{branch_office_id}/{cashier_id}/{added_date}/{single}rN   singlec                 F    t        |      j                  | ||||      }d|iS r   )r   delete)rN   r"   rv   rw   rz   r   r*   s          r+   r|   r|   r   s+    B<u&6
JPVWDtr-   z/existence/{folio}c                 >    t        |      j                  |       }d|iS r   )r   	existence)rN   r   r*   s      r+   r~   r~   x   s!    B<!!%(Dtr-   z&/open_customer_billing_period/{period}rQ   c                 >    t        |      j                  |       }d|iS r   )r   open_customer_billing_period)rQ   r   r*   s      r+   r~   r~   ~   s!    B<44V<Dtr-   z /resend/{dte_id}/{phone}/{email}dte_idphoneemailc                     |dk7  r"| |dk7  rt        |      j                  | |      }|dk7  r|t        |      j                  | |      }diS )Nr   r4   r    )r   resendr   )r   r   r   r   r*   s        r+   r   r      sX    ze'ERKR ''6{u(|""651tr-   z/massive_resendc                 \   | j                  t              j                  t        j                  dk(        j                  t        j                  dk(        j                  t        j
                  dk(        j                         }|D ]  }| j                  t              j                  t        j                  |j                  k(        j                         }|sS|j                  d k7  sc|j                  dk7  sst        |       j                  |j                  |j                          ddiS )N   N      r4   r    Listo)queryr   filterrT   r"   r$   allr   rO   firstr   r   r   id)r   dte_datar   rP   s       r+   massive_resendr      s    xx!((););q)@AHHIbIbfhIhippqy  rI  rI  MN  rN  O  S  S  UH A88M*11-2C2Csww2NOUUW~~%(..B*>b!((@A wr-   z/get_massive_codesc                 <    t        |       j                          ddiS Nr    r   )r   get_massive_codesrq   s    r+   r   r      s    RL""$wr-   z/refresh_import_by_rutc                 <    t        |       j                          ddiS r   )r   refresh_import_by_rutrq   s    r+   r   r      s    RL&&(wr-   z	/old_dtesc           
      L   t        j                  ddddt         j                  j                        }|j	                         5 }|j                  d       |j                         }|D ]  }|d   }|d   }|d	   }|d
   }|d   }	|d   }
|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|	dk(  rd}	nd}	|d   }t        |       | j                  t              j                  t        j                  |k(  t        j                  |k(  t        j                  |k(  t        j                  |k(        j                         }|dk(  r8| j                  t              j                  t        j                  |k(  t        j                  |k(  t        j                  |k(  t        j                  |k(        j!                         }|j"                  dk7  rX|	|_        ||_        |
|_        ||_        ||_        ||_        ||_        ||_        ||_        d|_        | j7                          |
|_        ||_        |
|_        ||_        ||_        ||_        ||_        ||_        ||_        d|_        | j7                          t        d%i d|d|d	|d
|d|	d|
d|d|d|d|d||dz  z
  d|dz  d|d|d |d|d|d|d!d"}| j9                  |       | j7                          t        d#|        	 d d d        |j;                          d$iS # 1 sw Y   xY w)&Nzjisparking.comjysparki_adminz
Admin2024$jysparki_jis)hostr_   passwordr   cursorclassaK  
            SELECT 
                folio,
                rut,
                branch_office_id,
                period,
                status_id,
                expense_type_id,
                payment_type_id,
                payment_date,
                payment_comment,
                comment,
                dte_version_id,
                deposit_number,
                dte_type_id,
                chip_id,
                amount
            FROM dtes
            WHERE dte_version_id = 1 and DATE(created_at) >= '2025-07-01'and (status_id = 18 OR status_id = 19)
        rN   r"   rO   rQ   rT   expense_type_idpayment_type_idpayment_datepayment_commentcommentr$   r#   rR   deposit_number   r      chip_idr   )2025-07-01 00:00:00cash_amountsubtotalgRQ?taxtotalpayment_numberrw   r   zDTE guardado:r*    )pymysqlconnectcursors
DictCursorcursorexecutefetchallprintr   r   r   rN   rO   r$   r#   countr   rT   rQ   r   r   r   r   r   r   r   rw   commitaddclose)r   connr   resultrowrN   r"   rO   rQ   rT   r   r   r   r   r   r$   r#   r   r   r   r~   r   new_dtes                          r+   old_dtesr      s   ??OO..D 
 o.&  	( " X	.CLE"#56e*C]FK(I!"34O!"34O~.L!"34O)nG !12Nm,Kh-K !12NB		)nG%L*11%'#''>9$$3	
 eg  A~88H-44NNe+LLC'++~=((K7	
 %'  %%*)2H&&,HO/>H,/>H,,8H).<H+/6H,'.H$'.H$(>H'IIK/>H,/>H,/>H,&,HO,8H).<H+/6H,'.H$'.H$(>H'IIK" %5  "	
 ( %4 %4 ". !, %, !,d0BC '- ( $2 $2  !,!" $#$ $%&  5'* w		ou-qX	./o.b 	JJLFgo. o.s   J:LL#)9fastapir   r   app.backend.schemasr   r   r   r   r	   r
   r   app.backend.classes.dte_classr   app.backend.auth.auth_userr   "app.backend.classes.whatsapp_classr   app.backend.db.modelsr   r   app.backend.db.databaser   sqlalchemy.ormr   app.backend.classes.file_classr   r   r   r   r   r   r;   dtespostr,   as_formrA   rU   rX   rZ   r^   rf   ri   getintrn   rp   rs   rC   ry   r|   r~   r   r   r   r   r   r   r-   r+   <module>r      s   & u u u 2 > < 9 * " 4 3 3   

 3&-fo w G  
 %&*12J2R2R*St*&/T'TT 	T 'T.  29&/ 7   !
 )*<CFO W '  +
 07 y g  
 *+ELV_ o 7  ,
 ;BCZ;[  y   ?9@AX9Y v Y   
%&.5fo 3 G  '
 
#*6?   
 8!( c w   
jk }D  EK  }L 3  Y\ il ry  l
 TUfmntfu  s s s SV \c  V
 
'.v C W   
 
23(/ S g  4
 
,->Efo 3 s 3 G  . 
!( 
 w 
  
  
$+FO  '     
 
"#(/  g   $ 
 +"6? | | |r-   