
    )h*                         d dl mZmZmZmZmZmZmZ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mZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ  G d d	      Zy)
    )	SaleModelCustomerModelSettingModelRegionModelCommuneModelSaleProductModelProductModelInventoryModelUnitMeasureModelSupplierModelCategoryModelLotItemModelLotModelInventoryMovementModelInventoryLotItemModel)datetime	timedelta)SettingClass)funcN)HTTPException)Responsec                       e Zd Zd Zd Zd Zy)DteClassc                     || _         y )N)db)selfr   s     `C:\Users\jesus\OneDrive\Escritorio\backend-lacasadelvitrificado\app\backend\classes\dte_class.py__init__zDteClass.__init__   s	        c                 2   | j                   j                  t              j                  t        j                  |k(        j                         }| 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                         }t        | j                         j                         }t        | j                         j                  d      }|dk(  r,t        | j                         j                          |d   d   }n|d   d   }| j                   j                  t         t"              j%                  t"        t         j&                  t"        j                  k(        j                  t         j(                  |k(        j+                         }	|j,                  j/                  d      }
|j,                  t1        d      z   j/                  d      }g }t3        |	d      D ]y  \  }\  }}|j5                  ||j6                  |j8                  d	t;        |j<                        t;        t;        |j<                        t;        |j8                        z        d
       { |j>                  dk(  rVdd|
|ddddddd|j@                  |jB                  dtE        |jF                        tE        |jH                        tE        |jJ                        dd|di}d| dd}tM        jN                  dtQ        jR                  |      |      }tU        d|jV                          tU        d|jX                          |jV                  dk(  ra|jQ                         }|j                  di       }|j                  d d       }tU        d!|        |rtU        d"|        |S tU        d#       |S tU        d$|jV                          ydd%|
|ddddddd&|j@                  |jB                  |jZ                  |j\                  |j^                  |j`                  |jb                  d'tE        |jF                        tE        |jH                        tE        |jJ                        dd|di}d| dd}tM        jN                  dtQ        jR                  |      |      }tU        d(|jV                          tU        d)|jX                          |jV                  dk(  ra|jQ                         }|j                  di       }|j                  d d       }tU        d*|        |rtU        d+|        |S tU        d,       |S tU        d-|jV                          y).N   r   setting_datasimplefactura_tokenz%Y-%m-%d   )days)startun)	NroLinDetNmbItemQtyItemUnmdItemPrcItem	MontoItem	Documento'   )TipoDTEFchEmisFchVenc
77176777-Ku'   Vitrificados Chile Compaaañia LimitadazJVENTA AL POR MENOR DE ARTICULOS DE FERRETERIA Y MATERIALES DE CONSTRUCCIONSantiago)	RUTEmisorRznSocEmisor
GiroEmisor	DirOrigen
CmnaOrigen)RUTRecepRznSocRecep)MntNetoIVAMntTotal)IdDocEmisorReceptorTotales)
EncabezadoDetalleBearer application/jsonAuthorizationContent-Typez2https://api.simplefactura.cl/invoiceV2/Casa_Matriz)dataheadersz [DEBUG BOLETA] Response status: z[DEBUG BOLETA] Response text:    rJ   folioz[DEBUG BOLETA] Folio obtenido: z4[DEBUG BOLETA] DTE generado exitosamente con folio: z:[DEBUG BOLETA] No se pudo obtener el folio de la respuestaz&[DEBUG BOLETA] Error en la respuesta: !   )r5   RznSocGiroEmisr8   r9   )r:   r;   CorreoRecepDirRecep	GiroRecep	CmnaRecepCiudadRecepz![DEBUG FACTURA] Response status: z[DEBUG FACTURA] Response text: z [DEBUG FACTURA] Folio obtenido: z5[DEBUG FACTURA] DTE generado exitosamente con folio: z;[DEBUG FACTURA] No se pudo obtener el folio de la respuestaz'[DEBUG FACTURA] Error en la respuesta: )2r   queryr   filteridfirstr   customer_idr   
commune_idr   	region_idr   validate_tokengetget_simplefactura_tokenr   r	   join
product_idsale_idall
added_datestrftimer   	enumerateappendproductquantityintpricedte_type_ididentification_numbersocial_reasonroundsubtotaltaxtotalrequestspostjsondumpsprintstatus_codetextemailaddressactivitycommuneregion)r   rX   salecustomerr}   r~   r]   r"   tokensales_productsadded_date_strdue_dateitemsidxsprh   payloadrK   responseresponse_datadata_sectionrM   s                         r   generate_dtezDteClass.generate_dte   so   ww}}Y'..y||r/ABHHJ77==/66}7G7G4K[K[7[\bbd''---44\__H[H[5[\bbd{+22;>>XEWEW3WX^^`%dgg.==?#DGG,003Q!99; 01FGE 01FGE
 $*55H

&!))R/
0 	 11*=OOiR&88BB:N "+N!"D 	C"gLL "??;; rxx= RXXR[[1A!AB 	 q   (*'5'/" *6,U*v)3*4# )1(F(F+3+A+A%
 (-T]]';#(?(-djj(9$##.  %1G< $+5'!2 2G
  }}DZZ(H 4X5I5I4JKL28==/BC##s* (,00<$(($77w?@PQVPWXY  VW>x?S?S>TUV  (*'5'/" *6&O(t)3*4# )1(F(F+3+A+A+3>>(0(8(8)1):):)0+1==% (-T]]';#(?(-djj(9$-#8  %; GF $+5'!2 2G
  }}DZZ(H 5h6J6J5KLM3HMM?CD##s* (,00<$(($78@AQRWQXYZ  WX?@T@T?UVWr   c           
      :   	 | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      t        | j                         j                         }t        | j                         j                  d      }|dk(  r,t        | j                         j                          |d   d   }n|d   d   }|j                  dk(  rd}nd	}d
dd||ddd}d| dd}t        j                  d||      }	|	j                  dk(  r"t        |	j                   dd| dddddd      S t        |	j                  d|	j"                         # t$        $ r}
t        ddt'        |
             d }
~
ww xY w)!z3
        Descarga el PDF del DTE por folio
        i  zDTE no encontrado)rx   detailr!   r   r"   r#   r/   rN   r3   zCasa Matriz)	rutEmisornombreSucursal)rM   codigoTipoDteambiente)credencialesdteReferenciadoExternorE   rF   rG   z#https://api.simplefactura.cl/getPdf)ru   rK   rL   zapplication/pdfzattachment; filename=dte_z.pdfz#no-cache, no-store, must-revalidatezno-cache0)zContent-DispositionrI   zCache-ControlPragmaExpires)content
media_typerK   zError generando PDF: i  zError al procesar: N)r   rV   r   rW   rM   rY   r   r   r]   r^   r_   rl   rs   rt   rx   r   r   ry   	Exceptionstr)r   rM   r   r]   r"   r   rl   r   rK   r   es              r   downloadzDteClass.download   s   C	X77==+229??e3KLRRTD#<OPP *$''2AACN'044Q7L"TWW%==?$^45JK$^45JK 1$  
 ".&3!
 #%0 !+
G $+5'!2 2G  }}5H ##s*$,,01J5'QU/V(9)N",#&
 
 $ ( 4 428==/B 
  	XC:McRSfX8VWW	Xs   EE3 $E3 3	F<FFN)__name__
__module____qualname__r   r   r    r   r   r   r      s    hTGXr   r   )app.backend.db.modelsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   !app.backend.classes.setting_classr   
sqlalchemyr   rs   ru   osfastapir   fastapi.responsesr   r   r   r   r   <module>r      sI    K  K  K  K  K ( :    	 ! &vX vXr   