Compare commits

..

No commits in common. "5d0ec2ca01d075fdd7679d6cdcf7250141b7a821" and "464e155f98a52a43abe602be48890b39b3aa3e49" have entirely different histories.

21 changed files with 52 additions and 461 deletions

View File

@ -14,7 +14,6 @@
'data/bank_conf.xml', 'data/bank_conf.xml',
'data/bank_transactions_status_code.xml', 'data/bank_transactions_status_code.xml',
'data/bank_transactions_subtype_code.xml', 'data/bank_transactions_subtype_code.xml',
'data/regex_paterns.xml',
'cron/crons.xml', 'cron/crons.xml',
'views/main_menu.xml', 'views/main_menu.xml',
'views/bank_views.xml', 'views/bank_views.xml',
@ -23,7 +22,6 @@
'views/raw_movements.xml', 'views/raw_movements.xml',
'views/bank_transactions_views.xml', 'views/bank_transactions_views.xml',
'views/service_payments_views.xml', 'views/service_payments_views.xml',
'views/transactions_regex.xml',
'views/bank_payments_views.xml', 'views/bank_payments_views.xml',
'wizard/add_payments_view.xml', 'wizard/add_payments_view.xml',
], ],

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="regex_patern_1" model="hms.payment.categories.regex">
<field name="name">Salary</field>
<field name="regex">^ხელფასი</field>
<field name="category_id" ref="bross_hms.payment_category_3"/>
</record>
<record id="regex_patern_2" model="hms.payment.categories.regex">
<field name="name">Service Revenue</field>
<field name="regex">^\d+(\.\d+)?$</field>
<field name="category_id" ref="bross_hms.payment_category_1"/>
</record>
<record id="regex_patern_3" model="hms.payment.categories.regex">
<field name="name">Bank Fees</field>
<field name="regex">გადარიცხვის საკომისიო</field>
<field name="category_id" ref="bross_hms.payment_category_4"/>
</record>
<record id="regex_patern_4" model="hms.payment.categories.regex">
<field name="name">Bank Fees</field>
<field name="regex">საკასო მომსახურების საკომისიო</field>
<field name="category_id" ref="bross_hms.payment_category_4"/>
</record>
</data>
</odoo>

View File

@ -3,6 +3,5 @@ from . import bank_account
from . import bank_settings from . import bank_settings
from . import bank_models from . import bank_models
from . import bank_transactions from . import bank_transactions
from . import hms_payments_inherit from . import bank_payments
from . import service_payments from . import service_payments
from . import transactions_regex

View File

@ -0,0 +1,7 @@
from odoo import models, fields, _
class HmsPayments(models.Model):
_inherit = 'hms.payments'
bank_payment_id = fields.Many2one(comodel_name="brosse.bank.transactions", string="Bank Payment ID")

View File

@ -49,47 +49,8 @@ class BrosseBankTransactions(models.Model):
status_code_id = fields.Many2one('brosse.bank.transactions.status.code', string='Status Code') status_code_id = fields.Many2one('brosse.bank.transactions.status.code', string='Status Code')
transaction_type_id = fields.Many2one('brosse.bank.transactions.subtype.code', string='Transaction Type') transaction_type_id = fields.Many2one('brosse.bank.transactions.subtype.code', string='Transaction Type')
payments_ids = fields.One2many(comodel_name="hms.payments", inverse_name="transaction_id", string="HMS Payments")
unassigned_amount = fields.Monetary(string="Unassigned Amount", currency_field='currency_id', compute="_compute_unassigned_amount")
bank_account_id = fields.Many2one('brosse.bank.account', string="Bank Account") bank_account_id = fields.Many2one('brosse.bank.account', string="Bank Account")
category_id = fields.Many2one('hms.payment.categories', string='Category')
manually_assigned = fields.Boolean(string="Manually Assigned", default=False)
@api.depends('payments_ids')
def _compute_unassigned_amount(self):
for rec in self:
if rec.payments_ids:
gel_currency_id = self.env['res.currency'].search([('name', '=', 'GEL')])
payments = 0
unassigned_amount = 0
for payment in rec.payments_ids:
if rec.currency_id.id == gel_currency_id.id:
if payment.currency_id.id == rec.currency_id.id:
payments += payment.amount
else:
payments += payment.amount * payment.currency_id.rate_ids.sorted('id', reverse=True)[0].rate
else:
if payment.currency_id.id == rec.currency_id.id:
payments += payment.amount
else:
payments += payment.amount * payment.currency_id.rate_ids.sorted('id', reverse=True)[0].rate / rec.currency_id.rate_ids.sorted('id', reverse=True)[0].rate
print(f"################## {payments}")
unassigned_amount = rec.amount - payments
else:
unassigned_amount = rec.amount
rec.unassigned_amount = unassigned_amount
@api.onchange('category_id')
def onchange_category_id(self):
if self.category_id:
self.write({'manually_assigned': True})
print(self.manually_assigned)
print('movida')
@api.depends('document_date', 'amount') @api.depends('document_date', 'amount')
def _compute_display_name(self): def _compute_display_name(self):
for rec in self: for rec in self:
@ -106,7 +67,7 @@ class BrosseBankTransactions(models.Model):
to_pay = booking.total_amount to_pay = booking.total_amount
self.env['hms.payments'].create({ self.env['hms.payments'].create({
'transaction_id': rec.id, 'bank_payment_id': rec.id,
'booking_id': booking.id, 'booking_id': booking.id,
'currency_id': rec.currency_id.id, 'currency_id': rec.currency_id.id,
'amount': rec.amount, 'amount': rec.amount,

View File

@ -1,7 +0,0 @@
from odoo import models, fields, _
class HmsPayments(models.Model):
_inherit = 'hms.payments'
transaction_id = fields.Many2one(comodel_name="brosse.bank.transactions", string="Bank Transaction")

View File

@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
import re
from odoo import models, fields, api, _
class PaymentCategoriesRegex(models.Model):
_name = 'hms.payment.categories.regex'
_description = 'Payment Categories Regex'
name = fields.Char('Name', required=True)
regex = fields.Char('Regex', required=True)
category_id = fields.Many2one(comodel_name="hms.payment.categories", string="Category")
def search_transactions_with_wallet_and_domestic(self, regex_patern):
pattern = re.compile(regex_patern, re.IGNORECASE)
transactions = self.env['brosse.bank.transactions'].search([('manually_assigned', '!=', True)])
matching_transactions = []
for transaction in transactions:
amount = str(transaction.amount or 0)
description = transaction.description or ''
comment = transaction.comment or ''
if pattern.search(amount) or pattern.search(description) or pattern.search(comment):
matching_transactions.append(transaction)
return matching_transactions
def write(self, vals):
res = super(PaymentCategoriesRegex, self).write(vals)
matching_transactions = self.search_transactions_with_wallet_and_domestic(self.regex)
for transaction in matching_transactions:
transaction.write({'category_id': self.category_id.id})
return res

View File

@ -9,5 +9,3 @@ bross_bank_management.access_add_payments_wizard,access_add_payments_wizard,bros
bross_bank_management.access_brosse_bank_transactions_status_code,access_brosse_bank_transactions_status_code,bross_bank_management.model_brosse_bank_transactions_status_code,base.group_user,1,1,1,1 bross_bank_management.access_brosse_bank_transactions_status_code,access_brosse_bank_transactions_status_code,bross_bank_management.model_brosse_bank_transactions_status_code,base.group_user,1,1,1,1
bross_bank_management.access_brosse_bank_transactions_subtype_code,access_brosse_bank_transactions_subtype_code,bross_bank_management.model_brosse_bank_transactions_subtype_code,base.group_user,1,1,1,1 bross_bank_management.access_brosse_bank_transactions_subtype_code,access_brosse_bank_transactions_subtype_code,bross_bank_management.model_brosse_bank_transactions_subtype_code,base.group_user,1,1,1,1
bross_bank_management.access_hms_payment_categories_regex,access_hms_payment_categories_regex,bross_bank_management.model_hms_payment_categories_regex,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 bross_bank_management.access_brosse_bank_transactions_status_code access_brosse_bank_transactions_status_code bross_bank_management.model_brosse_bank_transactions_status_code base.group_user 1 1 1 1
10 bross_bank_management.access_brosse_bank_transactions_subtype_code access_brosse_bank_transactions_subtype_code bross_bank_management.model_brosse_bank_transactions_subtype_code base.group_user 1 1 1 1
11

View File

@ -7,7 +7,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<data> <data>
<xpath expr="//field[@name='amount']" position="before"> <xpath expr="//field[@name='amount']" position="before">
<field name="transaction_id" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/> <field name="bank_payment_id" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
</xpath> </xpath>
</data> </data>
</field> </field>

View File

@ -1,7 +1,7 @@
<odoo> <odoo>
<data> <data>
<record id="action_process_selected_brosse_bank_transactions" model="ir.actions.server"> <record id="action_process_selected_brosse_bank_transactions" model="ir.actions.server">
<field name="name">Bank</field> <field name="name">Brosse Bank</field>
<field name="model_id" ref="model_brosse_bank_transactions"/> <field name="model_id" ref="model_brosse_bank_transactions"/>
<field name="binding_model_id" ref="model_brosse_bank_transactions"/> <field name="binding_model_id" ref="model_brosse_bank_transactions"/>
<field name="state">code</field> <field name="state">code</field>
@ -17,22 +17,20 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<list string="Bank Transactions" editable="bottom"> <list string="Bank Transactions" editable="bottom">
<header> <header>
<button name="%(action_process_selected_brosse_bank_transactions)d" type="action" string="Map transactions" class="btn-primary"/> <button name="%(action_process_selected_brosse_bank_transactions)d" type="action" string="Add bank transactions" class="btn-primary"/>
</header> </header>
<field name="bank_account_id"/> <field name="bank_account_id"/>
<field name="amount"/> <field name="amount"/>
<field name="unassigned_amount" force_save="1"/>
<field name="currency_id" optional="show" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="category_id" optional="show" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="description" optional="show"/> <field name="description" optional="show"/>
<field name="comment" optional="show"/> <field name="comment" optional="show"/>
<field name="partner_name" optional="show"/> <field name="partner_name" optional="show"/>
<field name="taxpayer_name" optional="show"/> <field name="taxpayer_name" optional="show"/>
<field name="manually_assigned" column_invisible="1" force_save="1" /> <field name="currency_id" column_invisible='1'/>
</list> </list>
</field> </field>
</record> </record>
<record id="view_brosse_bank_transactions_list" model="ir.ui.view"> <record id="view_brosse_bank_transactions_list" model="ir.ui.view">
<field name="name">Transactions</field> <field name="name">Transactions</field>
<field name="model">brosse.bank.transactions</field> <field name="model">brosse.bank.transactions</field>
@ -40,16 +38,13 @@
<list string="Bank Transactions" editable="bottom"> <list string="Bank Transactions" editable="bottom">
<field name="bank_account_id"/> <field name="bank_account_id"/>
<field name="amount"/> <field name="amount"/>
<field name="unassigned_amount" force_save="1"/>
<field name="exchange_rate"/> <field name="exchange_rate"/>
<field name="exchange_rate_text"/> <field name="exchange_rate_text"/>
<field name="currency_id" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/> <field name="currency_id" optional="hide"/>
<field name="category_id" optional="show" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="description" optional="show"/> <field name="description" optional="show"/>
<field name="comment" optional="show"/> <field name="comment" optional="show"/>
<field name="partner_name" optional="show"/> <field name="partner_name" optional="show"/>
<field name="taxpayer_name" optional="show"/> <field name="taxpayer_name" optional="show"/>
<field name="manually_assigned" column_invisible="1" force_save="1" />
</list> </list>
</field> </field>
</record> </record>

View File

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="view_hms_payment_categories_regex_tree" model="ir.ui.view">
<field name="name">Payment Categories Regex</field>
<field name="model">hms.payment.categories.regex</field>
<field name="arch" type="xml">
<list editable="bottom">
<field name="name"/>
<field name="regex"/>
<field name="category_id"/>
</list>
</field>
</record>
<record id="action_hms_payment_categories_regex_action" model="ir.actions.act_window">
<field name="name">Payment Categories Regex</field>
<field name="res_model">hms.payment.categories.regex</field>
<field name="view_mode">list</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create your first payment category regex record.
</p>
</field>
</record>
<menuitem name="Payment Categories Regex" parent="bross_hms.finance_root_menu" id="finance_payment_categories_regex" sequence="40" action="action_hms_payment_categories_regex_action"/>
</data>
</odoo>

View File

@ -11,7 +11,6 @@ class AddPayments(models.TransientModel):
@api.model @api.model
def _transaction_domain(self): def _transaction_domain(self):
print(self.env.ref('bross_bank_management.transaction_code_3').id)
return [('status_code_id', '=', self.env.ref('bross_bank_management.transaction_code_3').id)] return [('status_code_id', '=', self.env.ref('bross_bank_management.transaction_code_3').id)]
transaction_id = fields.Many2one(comodel_name="brosse.bank.transactions", domain=_transaction_domain, string="Bank Transaction") transaction_id = fields.Many2one(comodel_name="brosse.bank.transactions", domain=_transaction_domain, string="Bank Transaction")
@ -85,16 +84,13 @@ class AddPayments(models.TransientModel):
pos_terminal_code = False pos_terminal_code = False
wire_transfer_code = rec.wire_transfer_code wire_transfer_code = rec.wire_transfer_code
print(transaction_id)
self.env['hms.payments'].create({ self.env['hms.payments'].create({
'hms_payment_type_id': rec.payment_type.id,
'booking_id': rec.booking_id.id, 'booking_id': rec.booking_id.id,
'currency_id': rec.currency_id.id, 'currency_id': rec.currency_id.id,
'amount': rec.amount, 'amount': rec.amount,
'exchange_rate': rec.exchange_rate, 'exchange_rate': rec.exchange_rate,
'pending_transcation': rec.pending_transcation, 'pending_transcation': rec.pending_transcation,
'transaction_id': transaction_id, 'bank_payment_id': transaction_id,
'pos_terminal_code': pos_terminal_code, 'pos_terminal_code': pos_terminal_code,
'wire_transfer_code': wire_transfer_code, 'wire_transfer_code': wire_transfer_code,
}) })

View File

@ -14,7 +14,6 @@
# 'cron/crons.xml', # 'cron/crons.xml',
'data/payment_methods.xml', 'data/payment_methods.xml',
'data/payment_types.xml', 'data/payment_types.xml',
'data/payment_categories.xml',
'data/service_kinds.xml', 'data/service_kinds.xml',
'views/misc_menus.xml', 'views/misc_menus.xml',
'views/main_menus.xml', 'views/main_menus.xml',
@ -33,8 +32,6 @@
'views/source_channels.xml', 'views/source_channels.xml',
'views/booking_source.xml', 'views/booking_source.xml',
'views/bookings.xml', 'views/bookings.xml',
'views/room_revenue.xml',
'views/service_categories.xml',
'views/status.xml', 'views/status.xml',
'views/hms_payments.xml', 'views/hms_payments.xml',
], ],

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record id="payment_category_1" model="hms.payment.categories">
<field name="name">Service Revenue</field>
</record>
<record id="payment_category_2" model="hms.payment.categories">
<field name="name">Tax</field>
</record>
<record id="payment_category_3" model="hms.payment.categories">
<field name="name">Salary</field>
</record>
<record id="payment_category_4" model="hms.payment.categories">
<field name="name">Bank Fees</field>
</record>
<record id="payment_category_5" model="hms.payment.categories">
<field name="name">Lease Expenses</field>
</record>
<record id="payment_category_6" model="hms.payment.categories">
<field name="name">Other Expenses</field>
</record>
</data>
</odoo>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <odoo>
<data noupdate="1"> <data noupdate="0">
<record id="payment_type_0" model="hms.payment.types"> <record id="payment_type_0" model="hms.payment.types">
<field name="name">Cash</field> <field name="name">Cash</field>
</record> </record>

View File

@ -177,39 +177,16 @@ class HmsBookings(models.Model):
paid = fields.Monetary(string="Paid Amount", compute="_compute_checkin_checkout_date", currency_field='currency', store=True) paid = fields.Monetary(string="Paid Amount", compute="_compute_checkin_checkout_date", currency_field='currency', store=True)
to_be_paid = fields.Monetary(string="To Pay Amount", compute="_compute_checkin_checkout_date", currency_field='currency', store=True) to_be_paid = fields.Monetary(string="To Pay Amount", compute="_compute_checkin_checkout_date", currency_field='currency', store=True)
currency = fields.Many2one(comodel_name="res.currency", string="Currency") currency = fields.Many2one(comodel_name="res.currency", string="Currency")
expected_payment = fields.Monetary(string="Expected Payment", compute="_compute_checkin_checkout_date", currency_field='currency', store=True)
paymentMethod = fields.Many2one(comodel_name="hms.payment.methods", string="Payment Method", compute="_compute_checkin_checkout_date", store=True) paymentMethod = fields.Many2one(comodel_name="hms.payment.methods", string="Payment Method", compute="_compute_checkin_checkout_date", store=True)
payment_status = fields.Selection( payment_status = fields.Selection(
[('completely_paid', 'Completely Paid'), ('partially_paid', 'Partially Paid'), ('not_paid', 'Not Paid')], string="Payment Status", compute="_compute_checkin_checkout_date", store=True) [('completely_paid', 'Completely Paid'), ('partially_paid', 'Partially Paid'), ('not_paid', 'Not Paid')], string="Payment Status", compute="_compute_checkin_checkout_date", store=True
)
booking_status = fields.Many2one(comodel_name="hms.booking.status", string="Booking Status", compute="_compute_checkin_checkout_date", store=True) @api.depends('roomStays')
status = fields.Many2one(comodel_name="hms.status", string="Status", compute="_compute_checkin_checkout_date", store=True)
@api.depends('roomStays', 'payment_ids')
def _compute_checkin_checkout_date(self): def _compute_checkin_checkout_date(self):
for booking in self: for booking in self:
# Status fields
if booking.roomStays.filtered(lambda stay: stay.bookingStatus.name == 'Confirmed'):
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'Confirmed')]).id
elif not booking.roomStays.filtered(lambda stay: stay.bookingStatus.name != 'Cancelled'):
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'Cancelled')]).id
elif not booking.roomStays.filtered(lambda stay: stay.bookingStatus.name != 'Pending'):
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'UpcoPendingming')]).id
if not booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedIn') and not booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedOut') and booking.roomStays.filtered(lambda stay: stay.status.name == 'New'):
booking.status = self.env['hms.status'].search([('name', '=', 'Upcoming')]).id
elif booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedIn'):
booking.status = self.env['hms.status'].search([('name', '=', 'CheckedIn')]).id
elif booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedOut'):
booking.status = self.env['hms.status'].search([('name', '=', 'CheckedOut')]).id
elif not booking.roomStays.filtered(lambda stay: stay.status.name != 'Cancelled'):
booking.status = self.env['hms.status'].search([('name', '=', 'Cancelled')]).id
elif not booking.roomStays.filtered(lambda stay: stay.status.name != 'No Show'):
booking.status = self.env['hms.status'].search([('name', '=', 'No Show')]).id
# Computed fields
checkin_dates = booking.roomStays.mapped('checkInDateTime') checkin_dates = booking.roomStays.mapped('checkInDateTime')
checkout_dates = booking.roomStays.mapped('checkOutDateTime') checkout_dates = booking.roomStays.mapped('checkOutDateTime')
@ -234,42 +211,7 @@ class HmsBookings(models.Model):
booking.to_be_paid = sum(stay.totalPrice.get('toPayAmount', 0) for stay in booking.roomStays if stay.totalPrice) booking.to_be_paid = sum(stay.totalPrice.get('toPayAmount', 0) for stay in booking.roomStays if stay.totalPrice)
booking.currency = booking.reservation_ids[0].currency if booking.reservation_ids else False booking.currency = booking.reservation_ids[0].currency if booking.reservation_ids else False
booking.paymentMethod = booking.reservation_ids[0].paymentMethod if booking.reservation_ids else False booking.paymentMethod = booking.reservation_ids[0].paymentMethod if booking.reservation_ids else False
booking.payment_status = 'completely_paid' if booking.paid == booking.total_amount else 'partially_paid' if booking.paid > 0 else 'not_paid'
paid_amount = booking.compute_paid_amount()
if booking.total_amount != 0:
expected_payment = booking.total_amount - paid_amount
booking.expected_payment = expected_payment
if expected_payment <= 0:
booking.payment_status = 'completely_paid'
elif booking.total_amount > expected_payment:
booking.payment_status = 'partially_paid'
else:
booking.payment_status = 'not_paid'
else:
booking.payment_status = 'not_paid'
def compute_paid_amount(self):
gel_currency_id = self.env['res.currency'].search([('name', '=', 'GEL')])
paid_amount = 0
if self.payment_ids:
for payment in self.payment_ids:
if self.currency.id == gel_currency_id.id:
if payment.currency_id.id != gel_currency_id.id:
paid_amount += payment.amount * payment.exchange_rate
else:
paid_amount += payment.amount
else:
if payment.currency_id.id == gel_currency_id.id:
paid_amount += payment.amount / self.currency.rate_ids.sorted('id', reverse=True)[0].rate
else:
if self.currency.id == payment.currency_id.id:
paid_amount += payment.amount
else:
paid_amount += payment.amount * gel_currency_id.rate_ids.sorted('id', reverse=True)[0].rate / self.currency.rate_ids.sorted('id', reverse=True)[0].rate
return paid_amount
# def add_bank_transactions(self): # def add_bank_transactions(self):
# return { # return {
@ -292,7 +234,22 @@ class HmsBookings(models.Model):
expected_payment = self.total_amount expected_payment = self.total_amount
paid_amount = self.compute_paid_amount() paid_amount = 0
if self.payment_ids:
for payment in self.payment_ids:
if self.currency.id == gel_currency_id.id:
if payment.currency_id.id != gel_currency_id.id:
paid_amount += payment.amount * payment.exchange_rate
else:
paid_amount += payment.amount
else:
if payment.currency_id.id == gel_currency_id.id:
paid_amount += payment.amount / self.currency.rate_ids.sorted('id', reverse=True)[0].rate
else:
if self.currency.id == payment.currency_id.id:
paid_amount += payment.amount
else:
paid_amount += payment.amount * gel_currency_id.rate_ids.sorted('id', reverse=True)[0].rate / self.currency.rate_ids.sorted('id', reverse=True)[0].rate
expected_payment = expected_payment - paid_amount expected_payment = expected_payment - paid_amount
return { return {

View File

@ -1,10 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import requests
import logging
import json
from odoo import models, fields, api, _ from odoo import models, fields, api, _
from datetime import datetime, timedelta
class PaymentCategories(models.Model): _logger = logging.getLogger(__name__)
_name = 'hms.payment.categories'
_description = 'Payment Categories'
name = fields.Char('Name', required=True)

View File

@ -25,4 +25,3 @@ bross_hms.access_hms_reservations,access_hms_reservations,bross_hms.model_hms_re
bross_hms.access_hms_payments,access_hms_payments,bross_hms.model_hms_payments,base.group_user,1,1,1,1 bross_hms.access_hms_payments,access_hms_payments,bross_hms.model_hms_payments,base.group_user,1,1,1,1
bross_hms.access_hms_payment_types,access_hms_payment_types,bross_hms.model_hms_payment_types,base.group_user,1,1,1,1 bross_hms.access_hms_payment_types,access_hms_payment_types,bross_hms.model_hms_payment_types,base.group_user,1,1,1,1
bross_hms.access_hms_payment_categories,access_hms_payment_categories,bross_hms.model_hms_payment_categories,base.group_user,1,1,1,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
25
26
27

View File

@ -6,18 +6,13 @@
<field name="model">hms.bookings</field> <field name="model">hms.bookings</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<list> <list>
<field name="number" optional="show"/> <button name="add_bank_transactions" type="object" string="Add bank transactions" class="btn btn-primary"/>
<field name="customer" optional="show"/> <field name="bid"/>
<field name="checkin_date" optional="show"/> <field name="number"/>
<field name="checkout_date" optional="show"/> <field name="customerLanguage"/>
<field name="night" optional="show"/> <field name="lastModified"/>
<field name="total_amount" optional="show"/> <field name="currencyId"/>
<field name="currency" column_invisible="1"/> <field name="sourceChannelName"/>
<field name="sourceChannelName" optional="show"/>
<field name="booking_date" optional="show"/>
<field name="payment_status" optional="show"/>
<field name="booking_status" optional="show"/>
<field name="status" optional="show"/>
</list> </list>
</field> </field>
</record> </record>
@ -28,12 +23,10 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form edit="1"> <form edit="1">
<header> <header>
<button name="add_bank_transactions" type="object" string="Add bank transactions" class="btn btn-primary"/>
<field name="payment_status" widget="statusbar"/> <field name="payment_status" widget="statusbar"/>
</header> </header>
<sheet> <sheet>
<widget name="web_ribbon" title="Completely Paid" bg_color="bg-success" invisible="payment_status != 'completely_paid'"/>
<widget name="web_ribbon" title="Partially Paid" bg_color="bg-warning" invisible="payment_status != 'partially_paid'"/>
<widget name="web_ribbon" title="Not Paid" bg_color="bg-danger" invisible="payment_status != 'not_paid'"/>
<div class="oe_title"> <div class="oe_title">
<h1><field name="bid"/></h1> <h1><field name="bid"/></h1>
</div> </div>
@ -60,10 +53,7 @@
<field name="roomstays_count"/> <field name="roomstays_count"/>
<field name="total_amount"/> <field name="total_amount"/>
<field name="to_be_paid"/> <field name="to_be_paid"/>
<field name="expected_payment"/>
<field name="currency" invisible="1"/> <field name="currency" invisible="1"/>
<field name="booking_status"/>
<field name="status"/>
</group> </group>
</group> </group>
<group> <group>
@ -74,7 +64,7 @@
<page name="payments" string="Payments"> <page name="payments" string="Payments">
<separator string="Payments"/> <separator string="Payments"/>
<field name="payment_ids"> <field name="payment_ids">
<list create="0" delete="0" edit="0"> <list editable="bottom" create="1" delete="1" edit="1">
<button name="open_payment_record" type="object" string="Open Payment" class="btn btn-primary"/> <button name="open_payment_record" type="object" string="Open Payment" class="btn btn-primary"/>
<field name="hms_payment_type_id" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/> <field name="hms_payment_type_id" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="amount"/> <field name="amount"/>
@ -140,9 +130,6 @@
<field name="name">Reception</field> <field name="name">Reception</field>
<field name="res_model">hms.bookings</field> <field name="res_model">hms.bookings</field>
<field name="view_mode">list,form</field> <field name="view_mode">list,form</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'list', 'view_id': ref('view_hms_bookings_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('view_hms_bookings_form')})]"/>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
Create your first booking record. Create your first booking record.

View File

@ -1,158 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="view_hms_bookings_tree_finance" model="ir.ui.view">
<field name="name">Room Revenue</field>
<field name="model">hms.bookings</field>
<field name="arch" type="xml">
<list>
<button name="add_bank_transactions" type="object" string="Map transactions" class="btn btn-primary"/>
<field name="number" optional="show"/>
<field name="customer" optional="show"/>
<field name="checkin_date" optional="show"/>
<field name="checkout_date" optional="show"/>
<field name="night" optional="show"/>
<field name="total_amount" optional="show"/>
<field name="expected_payment" optional="show"/>
<field name="currency" column_invisible="1"/>
<field name="sourceChannelName" optional="show"/>
<field name="booking_date" optional="show"/>
<field name="payment_status" optional="show"/>
<field name="booking_status" optional="show"/>
<field name="status" optional="show"/>
</list>
</field>
</record>
<record id="view_hms_bookings_form_finance" model="ir.ui.view">
<field name="name">Room Revenue</field>
<field name="model">hms.bookings</field>
<field name="arch" type="xml">
<form edit="1">
<header>
<button name="add_bank_transactions" type="object" string="Map transactions" class="btn btn-primary"/>
<field name="payment_status" widget="statusbar"/>
</header>
<sheet>
<widget name="web_ribbon" title="Completely Paid" bg_color="bg-success" invisible="payment_status != 'completely_paid'"/>
<widget name="web_ribbon" title="Partially Paid" bg_color="bg-warning" invisible="payment_status != 'partially_paid'"/>
<widget name="web_ribbon" title="Not Paid" bg_color="bg-danger" invisible="payment_status != 'not_paid'"/>
<div class="oe_title">
<h1><field name="bid"/></h1>
</div>
<group>
<group>
<field name="number"/>
<field name="customerLanguage"/>
<field name="visitPurpose"/>
<!-- <button name="json_data_store_visit" type="object" class="btn btn-primary" string="Visit Purpose"/> -->
<field name="customerComment"/>
<field name="lastModified"/>
<field name="groupName"/>
<field name="currencyId"/>
<field name="customer"/>
<field name="customerCompany"/>
<field name="source"/>
<field name="sourceChannelName"/>
</group>
<group>
<field name="checkin_date"/>
<field name="checkout_date"/>
<field name="booking_date"/>
<field name="night"/>
<field name="roomstays_count"/>
<field name="total_amount"/>
<field name="to_be_paid"/>
<field name="expected_payment"/>
<field name="currency" invisible="1"/>
<field name="booking_status"/>
<field name="status"/>
</group>
</group>
<group>
<field name="roomStays" widget="many2many_tags"/>
</group>
<group>
<notebook>
<page name="payments" string="Payments">
<separator string="Payments"/>
<field name="payment_ids">
<list editable="bottom" create="1" delete="1" edit="1">
<button name="open_payment_record" type="object" string="Open Payment" class="btn btn-primary"/>
<field name="hms_payment_type_id" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="amount"/>
<field name="currency_id" optional="hide" readonly="1" force_save="1"/>
<field name="exchange_rate" optional="show" readonly="1" force_save="1"/>
<field name="create_date" optional="show"/>
<field name="create_uid" optional="show"/>
<field name="write_date" optional="show"/>
<field name="write_uid" optional="show"/>
<field name="notes"/>
</list>
</field>
</page>
<page name="room_stays" string="Room Stays">
<separator string="Room Stays"/>
<field name="roomStays">
<list>
<field name="roomId" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="roomTypeId" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="guestsIds" optional="hide" widget="many2many_tags" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="checkInDateTime"/>
<field name="checkOutDateTime"/>
<field name="actualCheckInDateTime"/>
<field name="actualCheckOutDateTime"/>
<field name="status" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="bookingStatus" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="totalPrice" optional="hide"/>
</list>
</field>
</page>
<page name="reservations" string="Reservations">
<separator string="Reservations"/>
<field name="reservation_ids">
<list>
<field name="bid"/>
<field name="customerIndex" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="agentIndex" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="roomNumber" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="roomTypeId" optional="hide" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="guestId" optional="hide" widget="many2many_tags" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
<field name="checkInDateTime" optional="hide"/>
<field name="checkOutDateTime" optional="hide"/>
<field name="checkInDateTime_date"/>
<field name="checkOutDateTime_date"/>
<field name="creationDateTime_date"/>
<field name="paymentMethod" optional="hide"/>
<field name="paid" optional="hide"/>
<field name="tax" optional="hide"/>
<field name="total" optional="show"/>
<field name="balance" optional="hide"/>
<field name="currency" optional="hide"/>
</list>
</field>
</page>
</notebook>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_hms_bookings_action_finance" model="ir.actions.act_window">
<field name="name">Room Revenue</field>
<field name="res_model">hms.bookings</field>
<field name="view_mode">list,form</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'list', 'view_id': ref('view_hms_bookings_tree_finance')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('view_hms_bookings_form_finance')})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create your first booking record.
</p>
</field>
</record>
<menuitem name="Room Revenue" parent="finance_root_menu" id="reception_root_menu_finance" sequence="20" action="action_hms_bookings_action_finance"/>
</data>
</odoo>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="view_hms_payment_categories_tree" model="ir.ui.view">
<field name="name">Payment Categories</field>
<field name="model">hms.payment.categories</field>
<field name="arch" type="xml">
<list editable="bottom">
<field name="name"/>
</list>
</field>
</record>
<record id="action_hms_payment_categories_action" model="ir.actions.act_window">
<field name="name">Payment Categories</field>
<field name="res_model">hms.payment.categories</field>
<field name="view_mode">list</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create your first payment category record.
</p>
</field>
</record>
<menuitem name="Payment Categories" parent="finance_root_menu" id="finance_payment_categories" sequence="30" action="action_hms_payment_categories_action"/>
</data>
</odoo>