class Code_Gen_Type:
    apcategory = 1
    apsubcategory = 2
    bank_branch = 3
    bank = 4
    Cost_centre = 5
    Bussiness_segment = 6
    ccbsmapping = 7
    channel = 8
    commodity = 9
    courier = 10
    customer_category = 11
    customer = 12
    document_type = 13
    hsn = 14
    master_businesssegment = 15
    designation = 16
    country = 17
    district = 18
    state = 19
    city = 20
    paymode = 21
    product_category = 22
    product = 23
    product_type = 24
    subtax = 25
    tax = 26
    taxrate = 27
    uom = 28
    ORG_IP = 29
    ORG_DETAILS = 30
    ATTENDANCE_CONFIG = 31
    LEAVE_TYPE = 32
    HOLIDAY = 33
    GRADE = 34
    RULE_TYPE = 35

class Code_Gen_Value:
    apcategory = "CAT"
    apsubcategory = "SCAT"
    bank_branch = "BB"
    bank = "BK"
    Cost_centre = "CC"
    Bussiness_segment = "BS"
    ccbsmapping = "CCBS"
    channel = "ICNL"
    commodity = "COMD"
    courier = "ICOU"
    customer_category = "CCAT"
    customer = "CUST"
    document_type = "IDOC"
    hsn = "HSN"
    master_businesssegment = "BS"
    designation = "DESG"
    country = "CO"
    district = "DT"
    state = "SN"
    city = "CY"
    paymode = "PM"
    product_category = "PDCT"
    product = "VPDT"
    product_type = "PTYPE"
    subtax = "ST"
    tax = "TAX"
    taxrate = "TR"
    uom = "UOM"
    ORG_IP = 'IP'
    ORG_DETAILS = 'ORG'
    ATTENDANCE_CONFIG = 'AG'
    LEAVE_TYPE = 'LT'
    HOLIDAY = 'HD'
    GRADE = 'GR'
    RULE_TYPE = 'RT'


class PayrollDeductionType:
    QUARTERLY = 1
    HALFYEARLY = 2
    YEARLY = 3
    MONTHLY = 4
    CUSTOM = 5

    QUARTERLY_VAL = 'QUARTERLY'
    HALFYEARLY_VAL = 'HALFYEARLY'
    YEARLY_VAL = 'YEARLY'
    MONTHLY_VAL = 'MONTHLY'
    CUSTOM_VAL = 'CUSTOM'


def payrolldeduction_val(type):
    if (type == PayrollDeductionType.QUARTERLY_VAL or type == PayrollDeductionType.QUARTERLY):
        data = {"id": PayrollDeductionType.QUARTERLY, "name": PayrollDeductionType.QUARTERLY_VAL}
    elif (type == PayrollDeductionType.HALFYEARLY_VAL or type == PayrollDeductionType.HALFYEARLY):
        data = {"id": PayrollDeductionType.HALFYEARLY, "name": PayrollDeductionType.HALFYEARLY_VAL}
    elif (type == PayrollDeductionType.YEARLY_VAL or type == PayrollDeductionType.YEARLY):
        data = {"id": PayrollDeductionType.YEARLY, "name": PayrollDeductionType.YEARLY_VAL}
    elif (type == PayrollDeductionType.MONTHLY_VAL or type == PayrollDeductionType.MONTHLY):
        data = {"id": PayrollDeductionType.MONTHLY, "name": PayrollDeductionType.MONTHLY_VAL}
    elif (type == PayrollDeductionType.CUSTOM_VAL or type == PayrollDeductionType.CUSTOM):
        data = {"id": PayrollDeductionType.CUSTOM, "name": PayrollDeductionType.CUSTOM_VAL}
    else:
        data = {'id': None, 'name': None}
    return data


class CodeUtil:
    EMPLOYEE = 1
    PAYROLL_COMPONENT = 2
    EMP_PF_STRUCTURE = 3
    Employeemonthly_payinfo = 4
    TRANIEE = 5
    INTERNSHIP = 6