Conjunto 369ef90 en seiven


Ignorar:
Fecha y hora:
09/08/2017 11:19:00 (hace 7 años)
Autor:
Luis Barrios <nikeven@…>
Branches:
master
Children:
396acb9
Parents:
8af6001
Mensaje:

Estabilizado Modulo de Precios - carga y descarga de archivos

Ficheros:
3 editados

Leyenda

No modificado
Añadido
Eliminado
  • base/constant.py

    rc079de3 r369ef90  
    236236}
    237237
     238CONVERT_DOMINIO ={
     239    _("Caracas") : "CRA", _("Maracay") : "MAR", _("Ciudad Guayana") : "CGY", _("Barcelona - Pto la Cruz") : "BPC",
     240    _("Valencia") : "VAL", _("Barquisimeto") : "BAR", _("Maracaibo") : "MCB", _("Mérida") : "MRD", _("Maturín") : "MAT",
     241    _("San Cristóbal") : "SCR", _("Resto Nacional") : "RNC",
     242}
     243
    238244## Tipos de registro de balanza_datos
    239245BALANZA_DATOS = (
  • economico/models.py

    r8af6001 r369ef90  
    2424from base.constant import (
    2525    DOMINIO, PERIODICIDAD, TRIMESTRES, MESES, ECONOMICO_SUB_AREA, CONVERT_MES, EMAIL_SUBJECT_LOAD_DATA,EMAIL_SUBJECT_CM_RESULT,
    26     TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL, BALANZA_DATOS, INVERSION_CARTERA, SECTOR_DEUDA
     26    TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL, BALANZA_DATOS, INVERSION_CARTERA, SECTOR_DEUDA,CONVERT_DOMINIO
    2727)
    2828from base.functions import enviar_correo, check_val_data
     
    6363    fecha = models.DateField(null=True, verbose_name=_("Fecha"))
    6464
    65     class Meta:
    66         unique_together = ("anho", "mes")
    67 
    6865    def gestion_init(self, *args, **kwargs):
    6966        """!
     
    7168
    7269        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     70        @author Ing. Luis Barrios (lbarrios at cenditel.gob.ve)
    7371        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    7472        @date 05-12-2016
     73        @date 09-08-2017
    7574        @param self <b>{object}</b> Objeto que instancia la clase
    7675        @param args <b>{tupla}</b> Tupla con argumentos opcionales
     
    165164                ## Agrega la columna correspondiente a las ciudades
    166165                fields[0].insert(2, {'tag': '', 'cabecera': True})
    167                 fields[1].insert(2, {'tag': dominio, 'cabecera': True})
     166                fields[1].insert(2, {'tag': dominio, 'cabecera': True, 'row':2})
    168167
    169168                lst=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre']
    170                 lst1=['Caracas','Maracay','Ciudad Guayana','Barcelona -Pto la Cruz','Valencia','Barquisimeto','Maracaibo','Mérida','Maturín','San Cristóbal','Resto Nacional']
     169                lst1=['Caracas','Maracay','Ciudad Guayana','Barcelona - Pto la Cruz','Valencia','Barquisimeto','Maracaibo','Mérida','Maturín','San Cristóbal','Resto Nacional']
    171170
    172171                x = int (kwargs['fecha__month__lte']) - int (kwargs['fecha__month__gte']) + 1 +  12 * (int(kwargs['fecha__year__lte']) - int(kwargs['fecha__year__gte']))
     
    187186                            for q in range(0,11):
    188187                                if lst1[q] == 'Caracas':
    189                                     fields.append([ {'tag': str(_(str(aux1))),'combine_row':11 ,'cabecera': True}, {'tag': str(_(str(a))), 'combine_row1':11,'cabecera': True},{'tag': str(_(str(lst1[q]))),'cabecera': True}])
     188                                    fields.append([ {'tag': str(_(str(aux1))),'combine_row':11 ,'cabecera': True, 'row':0}, {'tag': str(_(str(a))), 'combine_row':11,'cabecera': True,'row':1},{'tag': str(_(str(lst1[q]))),'cabecera': True}])
    190189                                else:
    191190                                    fields.append([{'tag':''},{'tag':''},{'tag': str(_(str(lst1[q]))),'cabecera': True}])
     
    198197
    199198        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     199        @author Ing. Luis Barrios (lbarrios at cenditel.gob.ve)
    200200        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    201201        @date 05-12-2016
     202        @date 09-08-2017
    202203        @param self <b>{object}</b> Objeto que instancia la clase
    203204        @param file <b>{string}</b> Ruta y nombre del archivo a gestionar
     
    208209        """
    209210        load_file = pyexcel.get_book(bookdict=kwargs['file_content'])[0]
    210         anho_base, i, col_ini, errors, result, message = '', 0, 2, '', True, ''
     211        anho_base, i, col_ini, errors, result, message = self.anho_base, 0, 2, '', True, ''
    211212        load_data_msg = str(_("Datos Cargados"))
    212213
    213         if 'dominio' in kwargs:
    214             if (kwargs['dominio'] == 'C' and load_file.row[1][2] == 'INPC') or (kwargs['dominio'] == 'N' and load_file.row[1][2] != 'INPC'):
    215                 result = False
    216         if 'anho_base' in kwargs and kwargs['anho_base'] != load_file.row[2][0]:
    217             result = False
    218         if not result:
    219             return {'result': False, 'message': str(_("El documento a cargar no es válido o no corresponde a los parámetros seleccionados"))}
     214        self.anho_base=AnhoBase.objects.get(id=kwargs['anho_base'])
    220215
    221216        for row in load_file.row[2:]:
    222217            try:
    223                 ## Asigna el año base del registro
    224                 anho_b = anho_base = row[0] if i == 0 else anho_base
    225 
    226218                ## Asigna el año de la fila que se esta procesando
    227                 anho = row[0]
     219                if row[0]!= '':
     220                    anho = row[0]
    228221
    229222                ## Asigna el número de mes
    230                 mes = [CONVERT_MES[m] for m in CONVERT_MES if m.find(row[1]) >= 0][0]
     223                if row[1]!= '':
     224                    mes = CONVERT_MES[row[1]]
     225               
     226                ## Condición que indica si el registro corresponde al año base
     227                base = True if i == 0 else False
    231228
    232229                ## Asigna la ciudad si el dominio no es nacional
    233                 ciudad = row[2] if 'dominio' in kwargs and kwargs['dominio'] == 'C' else None
    234 
     230                ciudad = CONVERT_DOMINIO[row[2]] if 'dominio' in kwargs and kwargs['dominio'] == 'C' else None
     231               
    235232                ## Asigna el INPC total para el año base
    236233                inpc = row[3] if ciudad else row[2]
    237234
    238                 ## Condición que indica si el registro corresponde al año base
    239                 base = True if i == 0 else False
    240 
    241235                ## Registro de año y mes para los filtros
    242236                fecha = datetime(int(anho), int(mes), 1)
    243 
    244                 ## Condiciones para filtrar la información a cargar según las especificaciones del usuario
    245                 if 'anho_base' in kwargs and kwargs['anho_base'] != load_file.row[2][0]:
    246                     continue
    247                 if 'fecha__month__gte' in kwargs and 'fecha__month__lte' in kwargs and kwargs[
    248                     'fecha__month__lte'] < mes < kwargs['fecha__month__gte']:
    249                     continue
    250                 elif 'fecha__month__gte' in kwargs and mes < kwargs['fecha__month__gte']:
    251                     continue
    252                 elif 'fecha__month__lte' in kwargs and mes > kwargs['fecha__month__lte']:
    253                     continue
    254                 if 'fecha__year__gte' in kwargs and 'fecha__year__lte' in kwargs and kwargs[
    255                     'fecha__year__lte'] < anho < kwargs['fecha__year__gte']:
    256                     continue
    257                 elif 'fecha__year__gte' in kwargs and anho < kwargs['fecha__year__gte']:
    258                     continue
    259                 elif 'fecha__year__lte' in kwargs and anho > kwargs['fecha__year__lte']:
    260                     continue
    261237
    262238                ## Gestión para los datos básicos de precios
    263239                real_p, created = Precios.objects.update_or_create(
    264240                    anho=anho, mes=mes, ciudad=ciudad, fecha=fecha,
    265                     defaults={ 'anho_base': anho_b, 'inpc': inpc }
     241                    defaults={ 'anho_base': self.anho_base, 'inpc': inpc }
    266242                )
    267 
    268243
    269244                ## Gestión de datos para el Índice por Grupos
     
    394369    )
    395370
    396     retaurant_hotel = models.DecimalField(
     371    restaurant_hotel = models.DecimalField(
    397372        max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(12) Restaurant y Hotel")
    398373    )
  • gestion_informacion/ajax.py

    rc58882c r369ef90  
    5151
    5252    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     53    @author Ing. Luis Barrios (lbarrios at cenditel.gob.ve)
    5354    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    5455    @date 25-05-2017
     56    @date 09-08-2017   
    5557    @param request <b>{object}</b> Objeto que contiene la petición
    5658    @return Devuelve un HttpResponse con el JSON correspondiente al archivo a descargar
     
    9193                    sheet.col(i).width = int (250 * (len(cabecera['tag']) + 1))
    9294               
     95                #Combina Columnas
    9396                if 'combine' in cabecera and cabecera['combine'] > 0:
    9497                    sheet.merge(i, i, index_col, (index_col + (cabecera['combine']-1)), font_bold)
    9598                    index_col = cabecera['combine'] + index_col-1
    96 
     99               
     100                #Establece los Dominios
    97101                if 'dominio'in cabecera:
    98                     sheet.write(i, 2, cabecera['tag'], font_bold)
     102                    sheet.write(i, cabecera['row'], cabecera['tag'], font_bold)
     103               
     104                #Combina Filas
    99105                if 'combine_row' in cabecera:
    100                     sheet.write_merge(i, i+10, 0,0, cabecera['tag'],font_bold)
    101                 if 'combine_row1' in cabecera:
    102                     sheet.write_merge(i, i+10, 1,1, cabecera['tag'],font_bold)
     106                    sheet.write_merge(i, i+10, cabecera['row'],cabecera['row'], cabecera['tag'],font_bold)
    103107                index_col += 1           
    104108            i += 1
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.