- Fecha y hora:
- 09/08/2017 11:19:00 (hace 7 años)
- Branches:
- master
- Children:
- 396acb9
- Parents:
- 8af6001
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
economico/models.py
r8af6001 r369ef90 24 24 from base.constant import ( 25 25 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 27 27 ) 28 28 from base.functions import enviar_correo, check_val_data … … 63 63 fecha = models.DateField(null=True, verbose_name=_("Fecha")) 64 64 65 class Meta:66 unique_together = ("anho", "mes")67 68 65 def gestion_init(self, *args, **kwargs): 69 66 """! … … 71 68 72 69 @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) 70 @author Ing. Luis Barrios (lbarrios at cenditel.gob.ve) 73 71 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 74 72 @date 05-12-2016 73 @date 09-08-2017 75 74 @param self <b>{object}</b> Objeto que instancia la clase 76 75 @param args <b>{tupla}</b> Tupla con argumentos opcionales … … 165 164 ## Agrega la columna correspondiente a las ciudades 166 165 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}) 168 167 169 168 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'] 171 170 172 171 x = int (kwargs['fecha__month__lte']) - int (kwargs['fecha__month__gte']) + 1 + 12 * (int(kwargs['fecha__year__lte']) - int(kwargs['fecha__year__gte'])) … … 187 186 for q in range(0,11): 188 187 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}]) 190 189 else: 191 190 fields.append([{'tag':''},{'tag':''},{'tag': str(_(str(lst1[q]))),'cabecera': True}]) … … 198 197 199 198 @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) 199 @author Ing. Luis Barrios (lbarrios at cenditel.gob.ve) 200 200 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 201 201 @date 05-12-2016 202 @date 09-08-2017 202 203 @param self <b>{object}</b> Objeto que instancia la clase 203 204 @param file <b>{string}</b> Ruta y nombre del archivo a gestionar … … 208 209 """ 209 210 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, '' 211 212 load_data_msg = str(_("Datos Cargados")) 212 213 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']) 220 215 221 216 for row in load_file.row[2:]: 222 217 try: 223 ## Asigna el año base del registro224 anho_b = anho_base = row[0] if i == 0 else anho_base225 226 218 ## Asigna el año de la fila que se esta procesando 227 anho = row[0] 219 if row[0]!= '': 220 anho = row[0] 228 221 229 222 ## 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 231 228 232 229 ## Asigna la ciudad si el dominio no es nacional 233 ciudad = row[2] if 'dominio' in kwargs and kwargs['dominio'] == 'C' else None234 230 ciudad = CONVERT_DOMINIO[row[2]] if 'dominio' in kwargs and kwargs['dominio'] == 'C' else None 231 235 232 ## Asigna el INPC total para el año base 236 233 inpc = row[3] if ciudad else row[2] 237 234 238 ## Condición que indica si el registro corresponde al año base239 base = True if i == 0 else False240 241 235 ## Registro de año y mes para los filtros 242 236 fecha = datetime(int(anho), int(mes), 1) 243 244 ## Condiciones para filtrar la información a cargar según las especificaciones del usuario245 if 'anho_base' in kwargs and kwargs['anho_base'] != load_file.row[2][0]:246 continue247 if 'fecha__month__gte' in kwargs and 'fecha__month__lte' in kwargs and kwargs[248 'fecha__month__lte'] < mes < kwargs['fecha__month__gte']:249 continue250 elif 'fecha__month__gte' in kwargs and mes < kwargs['fecha__month__gte']:251 continue252 elif 'fecha__month__lte' in kwargs and mes > kwargs['fecha__month__lte']:253 continue254 if 'fecha__year__gte' in kwargs and 'fecha__year__lte' in kwargs and kwargs[255 'fecha__year__lte'] < anho < kwargs['fecha__year__gte']:256 continue257 elif 'fecha__year__gte' in kwargs and anho < kwargs['fecha__year__gte']:258 continue259 elif 'fecha__year__lte' in kwargs and anho > kwargs['fecha__year__lte']:260 continue261 237 262 238 ## Gestión para los datos básicos de precios 263 239 real_p, created = Precios.objects.update_or_create( 264 240 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 } 266 242 ) 267 268 243 269 244 ## Gestión de datos para el Índice por Grupos … … 394 369 ) 395 370 396 re taurant_hotel = models.DecimalField(371 restaurant_hotel = models.DecimalField( 397 372 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(12) Restaurant y Hotel") 398 373 )
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.