~mikel-martin/openerp-spain/6.1-imp-paypal-tpvvirtual

« back to all changes in this revision

Viewing changes to l10n_es_lopd/procesos/fdfgen.py

  • Committer: mikel
  • Date: 2012-10-30 13:36:14 UTC
  • mfrom: (303.1.19 6.1)
  • Revision ID: mikel@pcl2-20121030133614-ajfsuspmwejkzvxh
[sync]

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: ISO-8859-15 -*-
 
2
 
 
3
def mes2string(numero):
 
4
        if numero==1: return "ENERO"
 
5
        elif numero==2: return "FEBRERO"
 
6
        elif numero==3: return "MARZO"
 
7
        elif numero==4: return "ABRIL"
 
8
        elif numero==5: return "MAYO"
 
9
        elif numero==6: return "JUNIO"
 
10
        elif numero==7: return "JULIO"
 
11
        elif numero==8: return "AGOSTO"
 
12
        elif numero==9: return "SEPTIEMBRE"
 
13
        elif numero==10: return "OCTUBRE"
 
14
        elif numero==11: return "NOVIEMBRE"
 
15
        elif numero==12: return "DICIEMBRE"
 
16
 
 
17
def crear_fdf(datos):
 
18
                
 
19
        from datetime import datetime
 
20
        ahora=datetime.now()
 
21
        f_dia = ahora.strftime("%d")
 
22
        mes = int(ahora.strftime("%m"))
 
23
        f_mes = mes2string(mes)
 
24
        f_ano = ahora.strftime("%Y")
 
25
 
 
26
        fdf = "%FDF-1.2\n\n"
 
27
        fdf+= "1 0 obj\n<</FDF << /Fields 2 0 R>>>>\nendobj\n"
 
28
        fdf+= "2 0 obj\n[<< /T (Formulario[0]) /V () >>\n"
 
29
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0]) /V () >>\n"
 
30
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0]) /V () >>\n"
 
31
        
 
32
        codigo = datos['num_reg']
 
33
        #TODO: Modificar si cambia el soporte
 
34
        soporte = "FICHERO XML SIN FIRMA" #Soporte de la solicitud y modo de presentaci�n
 
35
 
 
36
        alta = modificacion = baja = ""
 
37
        # Forma de Cumplimentaci�n (forma_c)
 
38
        # XML: u - Alta, v - modificaci�n, w - supresi�n
 
39
        # XML Firmado: x - Alta, y - modificaci�n, z - supresi�n
 
40
        if datos['forma_c'] == 'u' or datos['forma_c']=='x': alta="X"
 
41
        elif datos['forma_c']=='v' or datos['forma_c']=='y': modificacion="X"
 
42
        elif datos['forma_c']=='w' or datos['forma_c']=='z': baja="X"
 
43
 
 
44
        #Datos del encabezado
 
45
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].EncabezadoDeclarante[0].Alta[0]) /V ("+alta+") >>\n"
 
46
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].EncabezadoDeclarante[0].Baja[0]) /V ("+baja+") >>\n"
 
47
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].EncabezadoDeclarante[0].Modificacion[0]) /V ("+modificacion+") >>\n"
 
48
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].EncabezadoDeclarante[0].C_Inscripcion_Final[0]) /V ("+codigo+") >>\n"
 
49
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].EncabezadoDeclarante[0].Soporte_presentacion[0]) /V ("+soporte+") >>\n"
 
50
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].Num_envio[0]) /V ("+datos['id_upload']+") >>\n"
 
51
 
 
52
        #Datos del responsable
 
53
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].NIF_AP1[0]) /V ("+datos['cif_nif']+") >>\n"
 
54
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].N_RazonAP1[0]) /V ("+datos['razon_s']+") >>\n"
 
55
 
 
56
        #Datos del declarante
 
57
        # *Denomina_postal = Apellido y nombre o Raz�n social
 
58
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].Nombre[0]) /V ("+datos['nombre']+") >>\n"
 
59
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].Apellido1[0]) /V ("+datos['apellido1']+") >>\n"
 
60
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].Apellido2[0]) /V ("+datos['apellido2']+") >>\n"
 
61
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].NIF[0]) /V ("+datos['nif']+") >>\n"
 
62
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_1[0].Texto_libre_cargo[0]) /V ("+datos['cargo']+") >>\n"
 
63
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Denomina_postal[0]) /V ("+datos['denomina_p']+") >>\n"
 
64
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Dir_postal[0]) /V ("+datos['dir_postal']+") >>\n"
 
65
 
 
66
        #formato fecha En 'localidad' a 'dia' de 'mes' de 'a�o' (mes en formato texto)
 
67
        #TODO: Ojo, localidad en la que se firma el impreso, se define igual a la localidad de notificaci�n
 
68
        f_localidad = datos['localidad']
 
69
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].FirmaLocalidad[0]) /V ("+f_localidad+") >>\n"
 
70
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].FirmaDia[0]) /V ("+f_dia+") >>\n"
 
71
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].FirmaMes[0]) /V ("+f_mes+") >>\n"
 
72
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].FirmaAno[0]) /V ("+f_ano+") >>\n"
 
73
        
 
74
        # id_notific: Direcci�n electr�nica del servicio de notificaciones. Opcional. En los env�os realizados sin firma digital vendr� siempre vac�o. Si el env�o se hace con firma digital y se ha indicado en el elemento anterior (forma) un valor '2', s�lo se deber� cumplimentar cuando la suscripci�n al Servicio de Notificaciones Telem�ticas Seguras se haya realizado con un certificado de persona jur�dica. Se consignar�, en ese caso, la Direcci�n Electr�nica �nica (DEU) asignada por dicho Servicio. Cuando no se cumplimente, el servicio Web obtendr� la DEU a partir del los datos del NIF, nombre y apellidos de la persona f�sica correspondiente al certificado con el que se ha firmado. Hasta 70 caracteres.
 
75
        id_notific="" #TODO: Modificar en caso de incluir firma
 
76
        if datos['forma']=='1': forma = "XML SIN FIRMA DIGITAL" #TODO: Modificar en caso de incluir firma
 
77
 
 
78
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Forma[0]) /V ("+forma+") >>\n"
 
79
        #Direcci�n a efectos de notificaci�n
 
80
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Localidad[0]) /V ("+datos['localidad']+") >>\n"
 
81
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Pais[0]) /V ("+str(datos['pais'])+") >>\n"
 
82
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Postal[0]) /V ("+datos['postal']+") >>\n"
 
83
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Provincia[0]) /V ("+datos['provincia']+") >>\n"
 
84
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Telefono[0]) /V ("+datos['telefono']+") >>\n"
 
85
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].fax[0]) /V ("+datos['fax']+") >>\n"
 
86
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].email[0]) /V ("+datos['email']+") >>\n"
 
87
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].id_notific[0]) /V ("+id_notific+") >>\n"
 
88
 
 
89
        #Ind_deberes = Conocimiento de los deberes del declarante
 
90
        fdf+= "<< /T (Formulario[0].PrivadoFinal[0].PaginaFinal3[0].Bloque0_2[0].Ind_deberes[0]) /V (1) >>\n"
 
91
 
 
92
        fdf+= "]\nendobj\ntrailer\n<</Root 1 0 R>>\n%%EOF"
 
93
        return fdf
 
94