# Path: stoqdrivers/enum.py
# class TaxType(IntEnum):
#     """
#     Enum for taxes
#     """
#     (ICMS,
#      SUBSTITUTION,
#      EXEMPTION,
#      NONE,
#      SERVICE,
#      CUSTOM) = range(40, 46)
# 
# class UnitType(IntEnum):
#     """
#     Enum for units
#     """
#     (WEIGHT,
#      METERS,
#      LITERS,
#      EMPTY,
#      CUSTOM) = range(20, 25)


from decimal import Decimal
from zope.interface import Interface, Attribute
from stoqdrivers.enum import TaxType, UnitType
        @type  surcharge: Decimal between 0-100

        @param unit_desc: A 2-byte string representing the unit that applies to
                          the product.
        @type unit_desc:  str

        @rtype:           Decimal
        @returns:        identifier of added item
        """

    def coupon_cancel_item(item_id):
        """ Cancels an item, item_id must be a value returned by
        coupon_add_item

        @param item_id:   the item id
        """

    def coupon_cancel():
        """
        Cancels the currently open coupon or the last closed open.
        You cannot close a previous coupon if you already created
        a new one.
        """

    def cancel_last_coupon():
        """
        Cancel the last closed non-fiscal coupon or the last sale.
        """

    def coupon_totalize(discount=Decimal(0), surcharge=Decimal(0),

# Path: stoqdrivers/enum.py
# class TaxType(IntEnum):
#     """
#     Enum for taxes
#     """
#     (ICMS,
#      SUBSTITUTION,
#      EXEMPTION,
#      NONE,
#      SERVICE,
#      CUSTOM) = range(40, 46)
# 
# class UnitType(IntEnum):
#     """
#     Enum for units
#     """
#     (WEIGHT,
#      METERS,
#      LITERS,
#      EMPTY,
#      CUSTOM) = range(20, 25)


# Path: stoqdrivers/interfaces.py
from decimal import Decimal
from zope.interface import Interface, Attribute
from stoqdrivers.enum import TaxType, UnitType

        @type  surcharge: Decimal between 0-100

        @param unit_desc: A 2-byte string representing the unit that applies to
                          the product.
        @type unit_desc:  str

        @rtype:           Decimal
        @returns:        identifier of added item
        """

    def coupon_cancel_item(item_id):
        """ Cancels an item, item_id must be a value returned by
        coupon_add_item

        @param item_id:   the item id
        """

    def coupon_cancel():
        """
        Cancels the currently open coupon or the last closed open.
        You cannot close a previous coupon if you already created
        a new one.
        """

    def cancel_last_coupon():
        """
        Cancel the last closed non-fiscal coupon or the last sale.
        """

    def coupon_totalize(discount=Decimal(0), surcharge=Decimal(0),

                        taxcode=TaxType.NONE):