U
    g}$                     @   s   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
Z
d dlZd dlZd dlmZ d dlZG dd	 d	eZeeeeeed
ddZdd ZedddZdd Zdd ZdS )    )datetime)Enum)tipoServicioDetalleOrden)BASE_DIR)ConfiguracionN)parseStringc                   @   s   e Zd ZdZdZdZdZdS )	AmbienteszXhttps://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdlz[https://celcer.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdlzUhttps://cel.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdlzXhttps://cel.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdlN)__name__
__module____qualname__PRUEBAS_AUTHPRUEBAS_CONSULTPRODUCCION_AUTHPRODUCCION_CONSULT r   r   &/var/www/html/TransitoApp/sri/views.pyr	      s   r	   )fecharucambienteestablecimientopuntoEmision
secuencialc                 C   s   | d | | | | | d d }t | dd |D }t|}t d| d}	d}
t|D ]4}|d	 }|	t|| |
 7 }	|
d	 }
|
d
kr\d}
q\d|	d  }	|	dkrd	}	n|	dkrd}	|t|	 }t dt| |S )N01Z100000001c                 S   s   g | ]}|qS r   r   ).0ir   r   r   
<listcomp>   s     zmodulo_11.<locals>.<listcomp>z
Cantidad: r               
   u   tamaño de la clave de acceso: )printlenrangeintstr)r   r   r   r   r   r   unionlistanZdigitoZpibotr   r   r   r   	modulo_11   s*    $
r+   c           	      C   s   t jtddd}td| d}| }t jtddd}| d }t jtd	d
}|||||g}tdd|hgt|  tdddgt|  td t jtddd|S )Nstaticfacturacionz0702864901.p12zRuta de la firma:transito2024mediafirmado.xmlsrizcomprobantes.jarz/usr/bin/javaz-jarz./var/www/html/TransitoApp/sri/comprobantes.jarzfirmado..!!)ospathjoinr   r#   list
subprocesscall)	rutaZclaveZruta_p12Z	clave_p12Zruta_xml_entradaZruta_salidaZarchivo_salidaZruta_jarparamsr   r   r   firmar.   s    

r;   )	documentoc           
      C   s   t jjdd}d}|jdkr.td tjj}ntd tjj}t	j
tdd| }t|d	}| }tj|d
}td |j|}t| td t	j
tdd| }t| d ddd}	|	t| |	  d S )NTestado r   zAmbiente de pruebaszAmbiente de produccionr/   r0   rbwsdlzInicia el proceso de envio..!!zFinaliza el envio..!	respuesta.jsonwutf-8encoding)r   objectsgetr   r#   r	   r   valuer   r3   r4   r5   r   openreadzeepClientserviceZvalidarComprobantewriter'   close)
r<   configuracionurlarchivocomprobanteZxmlBytesclientresultarjsonarchivor   r   r   
enviar_sri=   s&    


r[   c                 C   s   t jjdd}d}ttjj |jdkr2tjj}ntjj}t	j
|d}|j| }t| d|  d }t|dd	d
}|t| |  z|d d d d W S    Y dS X d S )NTr=   r?   r   rA   z6/var/www/html/TransitoApp/media/facturacion/respuesta/rD   rE   rF   rG   ZautorizacionesZautorizacionr   r>   zNO AUTORIZADO)r   rI   rJ   r#   r	   r   rK   r   r   rN   rO   rP   ZautorizacionComprobanterL   rQ   r'   rR   )r<   rS   rT   rW   rC   locrZ   r   r   r   consultar_envioS   s"    

r]   c                 C   s>  t jjdd}tjjddd}| j d}| j d}t  |_	t
jjdgd }|t jjddj }td	|d
| |jstt|d|_|  td|j t||j|j|j|j|j}|jd|j|j|d|j|j|j|jdd}	||jd| jj| jj| jj| jjt|jt|j ddddt|jt|j ddidt|jt|j dddt|jt|j did}
dtt|j j!d |j j"|j#|jdt|jt|j# d dddt|jt|j# dd!id"dtt|j!d |j"d|jd|jd ddd|jdd!id"d#}| jj$| jj%t&|j j" d$t&| j' | j(d%}d&|	|
||d'i}||_)tt*j+,t*j+-t.d(d)d*| d+}t/j/|d,d,d,d-d.}t0|1 2d/d02d1d22d3d42d5d62d7d82d9d:2d;d<2d=d>}t3|d?d-d@}|4| |5  t6||}t7| t8||_9|  |S )ANTr=   zServicios administrativos)descripcionr>   z%d%m%Yz%d/%m/%YzCHAR_LENGTH(n_comprobante) >= 8)wherecontadorvalor	   u   Número del comprobanter   r   u   CONTRIBUYENTE RÉGIMEN RIMPE)r   ZtipoEmisionZrazonSocialr   ZclaveAccesoZcodDocZestabZptoEmir   Z	dirMatrizZcontribuyenteRimpeZSIz0.00ZtotalImpuestor      g        )codigocodigoPorcentajebaseImponiblera   r   ZDOLARZpago   )Z	formaPagototal)ZfechaEmisionZdirEstablecimientoZobligadoContabilidadZtipoIdentificacionCompradorZrazonSocialCompradorZidentificacionCompradorZdireccionCompradorZtotalSinImpuestosZtotalDescuentoZtotalConImpuestosZpropinaZimporteTotalZmonedapagoszRCD-   Zimpuesto)rd   re   Ztarifarf   ra   )ZcodigoPrincipalr^   cantidadZprecioUnitarioZ	descuentoZprecioTotalSinImpuestoZ	impuestos)detalle_detallez DEL VEHICULO DE PLACAS )u
   @Teléfonoz@Emailz	@Conceptoz
@No. OrdenZfactura)infoTributariainfoFacturadetallesinfoAdicionalr/   r-   xmlr1   FrF   )rootids	attr_typerH   z	<factura>z*<factura id="comprobante" version="1.1.0">rm   rl   keyZcampoAdicionalnamenombrez@TTz@EEz@CCz@NNrE   rG   ):r   rI   rJ   r   r   datestrftimer   nowemisionr   extracountr   r#   n_comprobanter'   zfillsaver+   r   r   r   
ptoEmisionrazon_socialpunto_emision	direccionclienteidentificacionnumero_identificacionfloatcostoitemsidr^   rk   telefonoemailupperplacanumeronumero_autorizacionr3   r4   abspathr5   r   	dicttoxmlr   toprettyxmlreplacerL   rQ   rR   r;   r[   r]   r>   )ordenrl   rS   tipo_servicior   fecha2Zdetxr`   r<   rn   ro   rp   rq   dataZruta_xmlrr   rU   r9   r   r   r   generar_xmlh   s    %	      


r   )r   enumr   Facturacion.modelsr   r   ZTransitoApp.settingsr   
sri.modelsr   r3   r7   r   xml.dom.minidomr   rN   r	   r'   r+   r;   r[   r]   r   r   r   r   r   <module>   s   