pycorepos/corepos/enum.py
2025-01-14 20:20:41 -06:00

138 lines
5.6 KiB
Python

# -*- coding: utf-8; -*-
################################################################################
#
# pyCOREPOS -- Python Interface to CORE POS
# Copyright © 2018-2024 Lance Edgar
#
# This file is part of pyCOREPOS.
#
# pyCOREPOS is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# pyCOREPOS is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# pyCOREPOS. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
"""
CORE POS enumeration constants
"""
from collections import OrderedDict
from enum import Enum
class CoreDbType(str, Enum):
office_op = 'office_op'
office_trans = 'office_trans'
office_arch = 'office_arch'
BATCH_DISCOUNT_TYPE_TRACKING = -1
BATCH_DISCOUNT_TYPE_PRICE_CHANGE = 0
BATCH_DISCOUNT_TYPE_SALE_EVERYONE = 1
BATCH_DISCOUNT_TYPE_SALE_RESTRICTED = 2
BATCH_DISCOUNT_TYPE_SLIDING_PERCENT = 3
BATCH_DISCOUNT_TYPE_SLIDING_AMOUNT = 5
BATCH_DISCOUNT_TYPE = OrderedDict([
(BATCH_DISCOUNT_TYPE_PRICE_CHANGE, "None (Change regular price)"),
(BATCH_DISCOUNT_TYPE_SALE_EVERYONE, "Sale for everyone"),
(BATCH_DISCOUNT_TYPE_SALE_RESTRICTED, "Sale for Members"),
(BATCH_DISCOUNT_TYPE_SLIDING_PERCENT, "Sliding % Off for Members"),
(BATCH_DISCOUNT_TYPE_SLIDING_AMOUNT, "Sliding $ Off for Members"),
(BATCH_DISCOUNT_TYPE_TRACKING, "Tracking (does not change any prices)"),
])
BATCH_EDITOR_UI_STANDARD = 1
BATCH_EDITOR_UI_PAIRED_SALE = 2
BATCH_EDITOR_UI_PARTIAL = 3
BATCH_EDITOR_UI_TRACKING = 4
BATCH_EDITOR_UI = OrderedDict([
(BATCH_EDITOR_UI_STANDARD, "Standard"),
(BATCH_EDITOR_UI_PAIRED_SALE, "Paired Sale"),
(BATCH_EDITOR_UI_PARTIAL, "Partial"),
(BATCH_EDITOR_UI_TRACKING, "Tracking"),
])
HOUSE_COUPON_MEMBER_ONLY_NO = 0
HOUSE_COUPON_MEMBER_ONLY_YES = 1
HOUSE_COUPON_MEMBER_ONLY_PLUS = 2
HOUSE_COUPON_MEMBER_ONLY = OrderedDict([
(HOUSE_COUPON_MEMBER_ONLY_NO, "No"),
(HOUSE_COUPON_MEMBER_ONLY_YES, "Yes"),
(HOUSE_COUPON_MEMBER_ONLY_PLUS, "Plus"),
])
HOUSE_COUPON_DISCOUNT_TYPE_QUANTITY = 'Q'
HOUSE_COUPON_DISCOUNT_TYPE = OrderedDict([
(HOUSE_COUPON_DISCOUNT_TYPE_QUANTITY, "Quantity Discount"),
])
HOUSE_COUPON_MINIMUM_TYPE_TOTAL_AT_LEAST = '$'
HOUSE_COUPON_MINIMUM_TYPE_TOTAL_MORE_THAN = '$+'
HOUSE_COUPON_MINIMUM_TYPE_MIXED_DEPT_ITEM = 'MX'
HOUSE_COUPON_MINIMUM_TYPE_MIXED_ITEM_ITEM = 'M'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_SALES_MORE_THAN = 'D+'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_SALES_AT_LEAST = 'D'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_NO_SALES_MORE_THAN = 'C^'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_NO_SALES_AT_LEAST = 'C!'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_QTY_MORE_THAN = 'C+'
HOUSE_COUPON_MINIMUM_TYPE_DEPT_QTY_AT_LEAST = 'C'
HOUSE_COUPON_MINIMUM_TYPE_QTY_PER_ITEM_MAX = 'Q-'
HOUSE_COUPON_MINIMUM_TYPE_QTY_MORE_THAN = 'Q+'
HOUSE_COUPON_MINIMUM_TYPE_QTY_AT_LEAST = 'Q'
HOUSE_COUPON_MINIMUM_TYPE = OrderedDict([
(HOUSE_COUPON_MINIMUM_TYPE_TOTAL_AT_LEAST, "Total (at least $)"),
(HOUSE_COUPON_MINIMUM_TYPE_TOTAL_MORE_THAN, "Total (more than $)"),
(HOUSE_COUPON_MINIMUM_TYPE_MIXED_DEPT_ITEM, "Mixed (Department+Item)"),
(HOUSE_COUPON_MINIMUM_TYPE_MIXED_ITEM_ITEM, "Mixed (Item+Item)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_SALES_MORE_THAN, "Department (more than $)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_SALES_AT_LEAST, "Department (at least $)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_NO_SALES_MORE_THAN, "Dept w/o sales (more than qty)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_NO_SALES_AT_LEAST, "Dept w/o sales (at least qty)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_QTY_MORE_THAN, "Department (more than qty)"),
(HOUSE_COUPON_MINIMUM_TYPE_DEPT_QTY_AT_LEAST, "Department (at least qty)"),
(HOUSE_COUPON_MINIMUM_TYPE_QTY_PER_ITEM_MAX, "Quantity (Per-Item Max)"),
(HOUSE_COUPON_MINIMUM_TYPE_QTY_MORE_THAN, "Quantity (more than)"),
(HOUSE_COUPON_MINIMUM_TYPE_QTY_AT_LEAST, "Quantity (at least)"),
])
MEMBER_CONTACT_PREFERENCE_NO_CONTACT = 0
MEMBER_CONTACT_PREFERENCE_POSTAL_MAIL_ONLY = 1
MEMBER_CONTACT_PREFERENCE_EMAIL_ONLY = 2
MEMBER_CONTACT_PREFERENCE_BOTH = 3
MEMBER_CONTACT_PREFERENCE = OrderedDict([
(MEMBER_CONTACT_PREFERENCE_NO_CONTACT, "no contact"),
(MEMBER_CONTACT_PREFERENCE_POSTAL_MAIL_ONLY, "postal mail only"),
(MEMBER_CONTACT_PREFERENCE_EMAIL_ONLY, "email only"),
(MEMBER_CONTACT_PREFERENCE_BOTH, "both (postal mail and email)"),
])
PRODUCT_PRICE_METHOD_DISABLED = 0
PRODUCT_PRICE_METHOD_ALWAYS = 1
PRODUCT_PRICE_METHOD_FULL_SETS = 2
PRODUCT_PRICE_METHOD = OrderedDict([
(PRODUCT_PRICE_METHOD_DISABLED, "Disabled"),
(PRODUCT_PRICE_METHOD_ALWAYS, "Always use this price"),
(PRODUCT_PRICE_METHOD_FULL_SETS, "Use this price for full sets"),
])