export interface IFDataSetup {
    /** ID cấu hình (tùy chọn) */ id?: string; /** ID tổ chức liên kết với cấu hình */
    organizationId: string; /** Cấu hình tài khoản */
    account: IFDataSetupAccountNumber; /** Cấu hình định dạng số */
    number: IFDataSetupNumber; /** Cấu hình hạch toán */
    accounting: IFDataSetupAccounting; /** Cấu hình sản phẩm */
    product: IFDataSetupProduct; /** Cấu hình kho hàng */
    warehouse: IFDataSetupWarehouse; /** Cấu hình chữ ký */
    signature: IFDataSetupSignature; /** Cấu hình định dạng ngày giờ */
    datetime: IFDataSetupDatetime; /** Cấu hình hiển thị */
    display: IFDataSetupDisplay;
}
export interface IFDataSetupNumber {
    /** Tiêu đề cấu hình định dạng số */ title: string;
    /** Ký tự phân cách hàng nghìn, ví dụ: ',' hoặc '.' */
    thousandSeparator: string;
    /** Ký tự phân cách thập phân, ví dụ: '.' hoặc ',' */
    decimalSeparator: string;
    /** Số chữ số thập phân cho giá trị nội tệ */
    exchangeMoney: number;
    /** Số chữ số thập phân cho giá trị ngoại tệ */
    overseaMoney: number;
    /** Số chữ số thập phân cho đơn giá nội tệ */
    unitPriceExchange: number;
    /** Số chữ số thập phân cho đơn giá ngoại tệ */
    unitPriceOversea: number;
    /** Số chữ số thập phân cho số lượng */
    quantity: number;
    /** Số chữ số thập phân cho tỷ giá */
    rate: number;
    /** Số chữ số thập phân cho hệ số (tỷ lệ) */
    ratio: number;
    /** Số chữ số thập phân cho tỷ lệ phân bổ */
    allocationRatio: number;
    /** Ký hiệu hiển thị cho số âm, ví dụ: '()', '-', hoặc '' */
    symbolNegative: string;
    /** Màu hiển thị cho số âm, ví dụ: 'red', '#ff0000' */
    colorNegative: string;
    /** Tiền tố cho số âm, ví dụ: '-' trong '-1.000' */
    prefixNegative: string;
    /** Hậu tố cho số âm, ví dụ: '%' trong '1.000%' */
    suffixNegative: string;
}
export interface IFDataSetupAccountNumber {
    /** Tiêu đề cấu hình tài khoản */ title: string;
    /** Tài khoản có */
    creditAccount: string;
    /** Tài khoản nợ */
    debitAccount: string;
    /** Mục chi phí của tài khoản nợ (tùy chọn) */
    debitExpenseItemId?: string;
    /** Tài khoản có chênh lệch */
    creditDiffAccount: string;
    /** Tài khoản nợ chênh lệch */
    debitDiffAccount: string;
    /** Mục chi phí có chênh lệch (tùy chọn) */
    debitDiffExpenseItemId?: string;
}
export interface IFDataSetupAccounting {
    /** ID cấu hình hạch toán (tùy chọn) */ id?: string;
    /** Tiêu đề cấu hình */
    title: string;
    /** Mã tiền tệ dùng để hạch toán (ví dụ: "VND", "USD") */
    currencyCode: string;
    /** Ngày bắt đầu hạch toán */
    startDate: Date;
    /** Ngày bắt đầu năm tài chính (1 - 31) */
    startDateAcc: number;
    /** Có sinh mã theo tổ chức hay không */
    genOrganizationId?: boolean;
    /** Có sinh mã theo loại chứng từ hay không */
    genDocumentType?: boolean;
}
export interface IFDataSetupProduct {
    /** Tiêu đề cấu hình sản phẩm */ title: string;
    /** Quy tắc theo dõi mã quy cách */
    trackCodeSpecification: number;
    /** Cho phép quét mã vạch */
    allowsBarcodeScanning: number;
    /** Ký tự phân tách trong mã quy cách */
    speCodeSeparator: string;
}
export interface IFDataSetupWarehouse {
    /** Tiêu đề cấu hình kho */ title: string;
    /** Cho phép tồn kho âm */
    negativeInventory: boolean;
    /** Phương pháp tính giá */
    calculationMethodPrice: number;
    isRealName: boolean;
    isAverageEndPeriod: boolean;
    /** Các loại tồn kho chi tiết */
    inventoryByLocation: boolean;
    inventoryByOrder: boolean;
    inventoryByCustomer: boolean;
    inventoryByConstruction: boolean;
    inventoryBySerial: boolean;
    inventoryByExpiry: boolean;
    inventoryByContract: boolean;
    inventoryByDepartment: boolean;
    inventoryByPallet: boolean;
    inventoryByWarehouseInDate: boolean;
    inventoryByArea: boolean;
    /** Các loại tồn kho chi tiết */
    requiredLocation: number;
    requiredOrder: number;
    requiredCustomer: number;
    requiredConstruction: number;
    requiredSerial: number;
    requiredExpiry: number;
    requiredContract: number;
    requiredDepartment: number;
    requiredPallet: number;
    requiredWarehouseInDate: number;
    requiredArea: number;
    /** Các phương pháp tính giá theo từng tiêu chí */
    calculationByLocation: boolean;
    calculationByOrder: boolean;
    calculationByCustomer: boolean;
    calculationByConstruction: boolean;
    calculationBySerial: boolean;
    calculationByExpiry: boolean;
    calculationByContract: boolean;
    calculationByDepartment: boolean;
    calculationByPallet: boolean;
    calculationByWarehouseInDate: boolean;
    calculationByArea: boolean;
}
export interface IFDataSetupSignature {
    /** Tiêu đề cấu hình chữ ký */ title: string;
    /** Danh sách người ký */
    detail: IFDataSetupSignatureDetail[];
    /** In tên người ký lên chứng từ và báo cáo */
    reportSigning: number;
    /** Lấy tên người lập theo tên người đăng nhập */
    loginSigning: number;
}
export interface IFDataSetupSignatureDetail {
    /** Chức vụ người ký */ position: string;
    /** Danh xưng (ví dụ: Giám đốc, Kế toán trưởng) */
    title: string;
    /** Họ tên người ký */
    name: string;
    /** Mã người ký */
    code: string;
}
export interface IFDataSetupDatetime {
    /** Tiêu đề cấu hình ngày giờ */ title: string;
    /** Định dạng ngày hiển thị giao diện (ví dụ: "dd/MM/yyyy") */
    dateInterface: string;
    /** Định dạng giờ hiển thị giao diện */
    timeInterface: string;
    /** Định dạng ngày nhập/xuất dữ liệu */
    dateImportExport: string;
    /** Định dạng ngày xuất Excel */
    excel: string;
    /** Định dạng ngày xuất Word */
    word: string;
    /** Định dạng giờ khi in */
    timePrint: string;
}
export interface IFDataSetupDisplay {
    /** Tùy chọn số dòng mỗi trang khi hiển thị */ pageOptions: number[];
    /** Số dòng mặc định mỗi trang */
    pageSize: number;
    /** Tùy chọn số dòng mỗi trang khi chỉnh sửa */
    editPageOptions: number[];
    /** Số dòng mặc định mỗi trang khi chỉnh sửa */
    editPageSize: number;
    /** Tùy chọn số dòng mỗi trang khi in báo cáo */
    reportPageOptions: number[];
    /** Số dòng mặc định mỗi trang báo cáo */
    reportPageSize: number;
}
