// medical_care.js

frappe.query_reports["Medical Care"] = {
    "filters": [
        {
            "fieldname": "employee",
            "label": __("Employee"),
            "fieldtype": "Link",
            "options": "Employee",
            "width": "120",
            "on_change": function() {
                const employee = frappe.query_report.get_filter_value('employee');
                const department_filter = frappe.query_report.get_filter('department');

                if (employee) {
                    // جعل فلتر الإدارة للقراءة فقط
                    department_filter.df.read_only = 1;
                    department_filter.refresh();

                    // إخفاء عمود الإدارة في التقرير
                    frappe.query_report.toggle_column('department', true);
                } else {
                    // إعادة تفعيل فلتر الإدارة وجعله قابل للتعديل
                    department_filter.df.read_only = 0;
                    department_filter.refresh();

                    // إظهار عمود الإدارة في التقرير
                    frappe.query_report.toggle_column('department', false);
                }

                // إذا تم تحديد الإدارة مسبقًا، إخفاء عمود الموظف
                const department = frappe.query_report.get_filter_value('department');
                if (department) {
                    frappe.query_report.toggle_column('employee_name', true);
                } else {
                    frappe.query_report.toggle_column('employee_name', false);
                }

                // تحديث التقرير لتطبيق التعديلات
                frappe.query_report.refresh();
            }
        },
        {
            "fieldname": "department",
            "label": __("Department"),
            "fieldtype": "Link",
            "options": "Department",
            "width": "120",
            "on_change": function() {
                const department = frappe.query_report.get_filter_value('department');
                const employee_filter = frappe.query_report.get_filter('employee');

                if (department) {
                    // تفريغ فلتر الموظف وجعله غير قابل للتعديل
                    frappe.query_report.set_filter_value('employee', null);
                    employee_filter.df.read_only = 1;
                    employee_filter.refresh();

                    // إخفاء عمود الموظف في التقرير
                    frappe.query_report.toggle_column('employee_name', true);
                } else {
                    // إعادة تفعيل فلتر الموظف وجعله قابل للتعديل
                    employee_filter.df.read_only = 0;
                    employee_filter.refresh();

                    // إظهار عمود الموظف في التقرير
                    frappe.query_report.toggle_column('employee_name', false);
                }

                // إذا تم تحديد الموظف مسبقًا، إخفاء عمود الإدارة
                const employee = frappe.query_report.get_filter_value('employee');
                if (employee) {
                    frappe.query_report.toggle_column('department', true);
                } else {
                    frappe.query_report.toggle_column('department', false);
                }

                // تحديث التقرير لتطبيق التعديلات
                frappe.query_report.refresh();
            }
        },
        {
            "fieldname": "cost_center",
            "label": __("Cost Center"),
            "fieldtype": "Link",
            "options": "Cost Center",
            "width": "120"
        },
        {
            "fieldname": "custom_employee_type",
            "label": __("Employment Type"),
            "fieldtype": "Link",
            "options": "Employment Type",
            "width": "120"
        },
        {
            "fieldname": "from_date",
            "label": __("From Date"),
            "fieldtype": "Date",
            "default": frappe.datetime.add_months(frappe.datetime.get_today(), -1), // تعيين تاريخ افتراضي لشهر ماضي
            "reqd": 1,
            "width": "120"
        },
        {
            "fieldname": "to_date",
            "label": __("To Date"),
            "fieldtype": "Date",
            "default": frappe.datetime.get_today(),
            "reqd": 1,
            "width": "120"
        }
    ],
    "formatter": function(value, row, column, data, default_formatter) {
        return default_formatter(value, row, column, data);
    },
    "onload": function(report) {
        // عند تحميل التقرير، وإخفاء الأعمدة بناءً على القيم الحالية للفلاتر
        const employee = frappe.query_report.get_filter_value('employee');
        const department = frappe.query_report.get_filter_value('department');

        if (employee) {
            frappe.query_report.toggle_column('department', true);
        }

        if (department) {
            frappe.query_report.toggle_column('employee_name', true);
        }

        // تحديث التقرير بناءً على حالة الفلاتر
        frappe.query_report.refresh();
    },
    "before_run": function() {
        // قبل تنفيذ التقرير، يمكن إضافة تحقق من صحة الفلاتر هنا إذا لزم الأمر
    },
    "after_refresh": function(report) {
        // بعد تحديث التقرير، يمكن إضافة وظائف إضافية هنا إذا لزم الأمر
    },
    "toggle_column": function(column_name, hide) {
        // دالة مساعدة لإخفاء أو إظهار الأعمدة
        const columns = frappe.query_report.columns;
        for (let i = 0; i < columns.length; i++) {
            if (columns[i].fieldname === column_name) {
                frappe.query_report.toggle_display(columns[i].fieldname, !hide);
                break;
            }
        }
    }
};