mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD] Data BI
This commit is contained in:
3
hotel_data_bi/models/__init__.py
Normal file
3
hotel_data_bi/models/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from . import inherit_res_company
|
||||
from . import budget
|
||||
from . import data_bi
|
||||
48
hotel_data_bi/models/budget.py
Normal file
48
hotel_data_bi/models/budget.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# Copyright 2019 Jose Luis Algara (Alda hotels) <osotranquilo@gmail.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
from datetime import date
|
||||
|
||||
|
||||
def get_years():
|
||||
"""Return a year list, to select in year field."""
|
||||
year_list = []
|
||||
for i in range(2018, 2036):
|
||||
year_list.append((i, str(i)))
|
||||
return year_list
|
||||
|
||||
|
||||
class Budget(models.Model):
|
||||
"""Establish and save the budget for DataBI control by revenue"""
|
||||
|
||||
_name = 'budget'
|
||||
|
||||
# fecha Primer día del mes
|
||||
month = fields.Selection([(1, 'January'), (2, 'February'), (3, 'March'),
|
||||
(4, 'April'), (5, 'May'), (6, 'June'),
|
||||
(7, 'July'), (8, 'August'), (9, 'September'),
|
||||
(10, 'October'), (11, 'November'),
|
||||
(12, 'December'), ],
|
||||
string='Month', required=True)
|
||||
year = fields.Selection(get_years(), string='Year', required=True)
|
||||
room_nights = fields.Float("Room Nights", required=True, digits=(6, 2))
|
||||
# Número de Room Nights
|
||||
room_revenue = fields.Float("Room Revenue", required=True, digits=(6, 2))
|
||||
# Ingresos por Reservas
|
||||
estancias = fields.Integer("Number of Stays") # Número de Estancias
|
||||
# ID_Tarifa numérico Código de la Tarifa
|
||||
# ID_Canal numérico Código del Canal
|
||||
# ID_Pais numérico Código del País
|
||||
# ID_Regimen numérico Cóigo del Régimen
|
||||
# ID_Tipo_Habitacion numérico Código del Tipo de Habitación
|
||||
# iD_Segmento numérico Código del Segmento
|
||||
# ID_Cliente numérico Código del Cliente
|
||||
# Pension_Revenue numérico con dos decimales Ingresos por Pensión
|
||||
|
||||
@api.model
|
||||
def export_data_bi(self,
|
||||
archivo=False,
|
||||
fechafoto=date.today().strftime('%Y-%m-%d')):
|
||||
apidata = self.env['data_bi']
|
||||
return apidata.export_data_bi(self)
|
||||
107
hotel_data_bi/models/data_bi.py
Normal file
107
hotel_data_bi/models/data_bi.py
Normal file
@@ -0,0 +1,107 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2018 -2019 Alda Hotels <informatica@aldahotels.com>
|
||||
# Jose Luis Algara <osotranquilo@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from openerp import models, fields, api, _
|
||||
from datetime import date, datetime, timedelta
|
||||
import json
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def inv_percent(amount, percent):
|
||||
"""Return the amount to which a percentage was applied."""
|
||||
return round(amount*(100/float(100-percent)) - amount, 2)
|
||||
|
||||
|
||||
class Data_Bi(models.Model):
|
||||
"""Management and export data for MopSolution MyDataBI."""
|
||||
|
||||
_name = 'data_bi'
|
||||
|
||||
@api.model
|
||||
def export_data_bi(self,
|
||||
archivo=False,
|
||||
fechafoto=date.today().strftime('%Y-%m-%d')):
|
||||
u"""Prepare a Json Objet to export data for MyDataBI.
|
||||
|
||||
Generate a dicctionary to by send in JSON
|
||||
archivo = response file type
|
||||
archivo == 1 'Tarifa'
|
||||
archivo == 2 'Canal'
|
||||
archivo == 3 'Hotel'
|
||||
archivo == 4 'Pais'
|
||||
archivo == 5 'Regimen'
|
||||
archivo == 6 'Reservas'
|
||||
archivo == 7 'Capacidad'
|
||||
archivo == 8 'Tipo Habitación'
|
||||
archivo == 9 'Budget'
|
||||
archivo == 10 'Bloqueos'
|
||||
archivo == 11 'Motivo Bloqueo'
|
||||
archivo == 12 'Segmentos'
|
||||
archivo == 13 'Clientes'
|
||||
archivo == 14 'Estado Reservas'
|
||||
fechafoto = start date to take data
|
||||
"""
|
||||
|
||||
if type(fechafoto) is dict:
|
||||
fechafoto = date.today()
|
||||
else:
|
||||
fechafoto = datetime.strptime(fechafoto, '%Y-%m-%d').date()
|
||||
|
||||
_logger.warning("Init Export Data_Bi Module")
|
||||
|
||||
dic_export = [] # Diccionario con todo lo necesario para exportar.
|
||||
# if (archivo == 0) or (archivo == 1):
|
||||
# dic_export.append({'Tarifa': dic_tarifa})
|
||||
# if (archivo == 0) or (archivo == 2):
|
||||
# dic_export.append({'Canal': dic_canal})
|
||||
# if (archivo == 0) or (archivo == 3):
|
||||
# dic_export.append({'Hotel': dic_hotel})
|
||||
# if (archivo == 0) or (archivo == 4):
|
||||
# dic_export.append({'Pais': dic_pais})
|
||||
# if (archivo == 0) or (archivo == 5):
|
||||
# dic_export.append({'Regimen': dic_regimen})
|
||||
# if (archivo == 0) or (archivo == 6):
|
||||
# dic_export.append({'Reservas': dic_reservas})
|
||||
# if (archivo == 0) or (archivo == 7):
|
||||
# dic_export.append({'Capacidad': dic_capacidad})
|
||||
# if (archivo == 0) or (archivo == 8):
|
||||
# dic_export.append({'Tipo Habitación': dic_tipo_habitacion})
|
||||
# if (archivo == 0) or (archivo == 9):
|
||||
# dic_export.append({'Budget': dic_budget})
|
||||
# if (archivo == 0) or (archivo == 10):
|
||||
# dic_export.append({'Bloqueos': dic_bloqueos})
|
||||
# if (archivo == 0) or (archivo == 11):
|
||||
# dic_export.append({'Motivo Bloqueo': dic_moti_bloq})
|
||||
# if (archivo == 0) or (archivo == 12):
|
||||
# dic_export.append({'Segmentos': dic_segmentos})
|
||||
# if (archivo == 0) or (archivo == 13):
|
||||
# dic_export.append({'Clientes': dic_clientes})
|
||||
# if (archivo == 0) or (archivo == 14):
|
||||
# dic_export.append({'Estado Reservas': dic_estados})
|
||||
|
||||
dictionaryToJson = json.dumps(dic_export)
|
||||
_logger.warning("End Export Data_Bi Module to Json")
|
||||
|
||||
# Debug Stop -------------------
|
||||
# import wdb; wdb.set_trace()
|
||||
# Debug Stop -------------------
|
||||
return dictionaryToJson
|
||||
13
hotel_data_bi/models/inherit_res_company.py
Normal file
13
hotel_data_bi/models/inherit_res_company.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# Copyright 2019 Jose Luis Algara (Alda hotels) <osotranquilo@gmail.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class Inherit_res_company(models.Model):
|
||||
_inherit = 'res.company'
|
||||
|
||||
id_hotel = fields.Integer(
|
||||
'Unique ID for DataBI', default=0,
|
||||
help='It must be unique to be able to identify the hotel, \
|
||||
within a hotel group.')
|
||||
Reference in New Issue
Block a user