Amenitiz - Negative charges

Allows negative charges

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Amenitiz - Negative charges
// @namespace    http://amenitiz.io
// @version      1.0
// @description  Allows negative charges
// @author       Laurent Chervet
// @license      MIT
// @match        https://*.amenitiz.io/fr/admin/calendar
// @match        https://*.amenitiz.io/fr/admin/clients/show*
// @match        https://*.amenitiz.io/admin/invoice/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=microsoft.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    console.log('ℹ️ Init Amenitiz - Negative charges')

    function scripty_negativeCharges_applyPatch(element) {
        element.classList.add('j-skip-verification')
        element.removeAttribute('min')
    }

    const scripty_negativeCharges_observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            mutation.addedNodes.forEach(addedNode => {
                if (addedNode instanceof Element) {
                    if (addedNode.classList.contains('row-input-new-charge') || addedNode.classList.contains('td-form-container')) {
                        let scripty_negativeCharges_charge = addedNode.querySelector('#charge_price')
                        if (scripty_negativeCharges_charge) {
                            scripty_negativeCharges_applyPatch(scripty_negativeCharges_charge)
                        }
                    }
                }
            })
        })
    })

    let scripty_negativeCharges_container = document.querySelector('.booking-manager__sidepanel')
    if (scripty_negativeCharges_container) {
        scripty_negativeCharges_observer.observe(scripty_negativeCharges_container, {childList: true, subtree: true})
    }

    scripty_negativeCharges_container = document.querySelector('#extra_price_per_product')
    if (scripty_negativeCharges_container) {
        scripty_negativeCharges_applyPatch(scripty_negativeCharges_container)
    }

    scripty_negativeCharges_container = document.querySelector('#extra_price_per_adult')
    if (scripty_negativeCharges_container) {
        scripty_negativeCharges_applyPatch(scripty_negativeCharges_container)
    }

    scripty_negativeCharges_container = document.querySelector('#extra_price_per_children')
    if (scripty_negativeCharges_container) {
        scripty_negativeCharges_applyPatch(scripty_negativeCharges_container)
    }

    scripty_negativeCharges_container = document.querySelector('#extra_percentage_to_apply')
    if (scripty_negativeCharges_container) {
        scripty_negativeCharges_applyPatch(scripty_negativeCharges_container)
    }
})();