예제 #1
0
class Secrets(db.Model, Product):
    lock_type = db.Column(db.String(20))
    diameter = db.Column(db.String(5))  # e.g. M14
    length = db.Column(db.Float)
    thread_step = db.Column(db.Float)
    head_size = db.Column(db.String(20))
    head_form = db.Column(db.String(20))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.3 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Секретки'
예제 #2
0
class Battery(db.Model, Product):
    capacity = db.Column(db.Integer)
    polarity = db.Column(db.String(20))
    cleats = db.Column(db.String(20))
    current = db.Column(db.Integer)
    voltage = db.Column(db.Integer)
    dimensions = db.Column(db.String(20))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.25 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Аккумуляторы'

        if not kwargs.get('article'):
            self.article = 'AK' + str(hash(kwargs.get('title')))[:10]
예제 #3
0
class Fasteners(db.Model, Product):
    fast_type = db.Column(db.String(20))
    outer_diam = db.Column(db.Float)
    inner_diam = db.Column(db.Float)
    nut_height = db.Column(db.Float)
    thread_diam = db.Column(db.String(5))  # e.g. M14
    thread_length = db.Column(db.Float)
    key_size = db.Column(db.Integer)
    fast_shape = db.Column(db.String(20))
    fast_pitch = db.Column(db.Float)
    color = db.Column(db.String(20))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.3 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Колёсный крепёж'
예제 #4
0
class TruckRim(db.Model, Product):
    width = db.Column(db.Float)
    diameter = db.Column(db.Integer)
    holes = db.Column(db.Integer)
    PCD = db.Column(db.Float)
    offset = db.Column(db.String(20))
    dia = db.Column(db.Float)
    rim_type = db.Column(db.String(20))
    color = db.Column(db.String(20))
    treatment = db.Column(db.String(40))
    for_car = db.Column(db.String(40))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.2 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Диски грузовые'
예제 #5
0
class CarTire(db.Model, Product):
    width = db.Column(db.Integer)
    height = db.Column(db.Integer)
    diameter = db.Column(db.String(5))
    season = db.Column(db.String(10))
    stud = db.Column(db.String(10))
    speed_index = db.Column(db.String(3))
    load_index = db.Column(db.String(10))
    runflat = db.Column(db.Boolean, default=False)
    powerload = db.Column(db.Boolean, default=False)
    purpose = db.Column(db.String(20))
    omologation = db.Column(db.String(20))
    cartype = db.Column(db.String(30))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.15 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Шины легковые'
        self.runflat = True if kwargs.get('runflat') else False
        self.powerload = True if kwargs.get('powerload') else False
        self.stud = self.get_stud(
            kwargs.get('stud')) if not kwargs.get('stud') else None
        self.season = self.get_season(
            kwargs.get('season')) if kwargs.get('season') else None

        if kwargs.get('supplier') == 'pwrs':
            self.title = kwargs.get('brand') + kwargs.get('title')

    @staticmethod
    def get_stud(arg):
        arg = str(arg).lower()
        if arg == 'ш.' or arg == 'да' or arg == 'y':
            return 'шипованная'
        elif arg == 'н/ш.' or arg == 'n':
            return 'нешипованная'

    @staticmethod
    def get_season(arg):
        arg = str(arg).lower()
        if arg == 'летняя' or arg == 'лето':
            return 'летняя'
        elif arg == 'зимняя' or arg == 'зима':
            return 'зимняя'
        elif arg == 'всесезонная' or arg == 'всесезон':
            return 'всесезонная'
예제 #6
0
class TruckTire(db.Model, Product):
    truck_width = db.Column(db.Integer)
    truck_height = db.Column(db.Integer)
    truck_diameter = db.Column(db.String(5))
    speed_index = db.Column(db.String(3))
    load_index = db.Column(db.String(10))
    axis = db.Column(db.String(40))
    tube = db.Column(db.String(20))
    layer = db.Column(db.String(20))
    type = db.Column(db.String(40))
    restored = db.Column(db.String(20))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.15 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Шины грузовые'
예제 #7
0
class Product:
    id = db.Column(db.Integer, primary_key=True)
    category = db.Column(db.String(40))
    article = db.Column(db.String(40))
    title = db.Column(db.String(250))
    brand = db.Column(db.String(40))
    brand_latin = db.Column(db.String(40))
    model = db.Column(db.String(40))
    img = db.Column(db.String(200))
    supplier = db.Column(db.String(40))
    address = db.Column(db.String(40))
    count = db.Column(db.Integer)
    purchase_price = db.Column(db.Float)  # цена закупки
    retail_price = db.Column(db.Integer)  # рекомендуема розничная цена
    markup = db.Column(db.Float)  # наценка
    selling_price = db.Column(db.Integer)  # моя цена продажи
    low_price = db.Column(db.Integer)  # цена "для своих"
    weight = db.Column(db.Float)
    volume = db.Column(db.Float)
    origin = db.Column(db.String(40))
    manufacturer = db.Column(db.String(40))
    description = db.Column(db.Text)
    updated = db.Column(db.DateTime, default=datetime.now())

    def __init__(self, *args, **kwargs):
        if not kwargs.get('selling_price'):
            self.selling_price = int(
                (kwargs.get('purchase_price') or 0) * kwargs.get('markup'))

    # todo: не наследуется
    def __repr__(self):
        return f'{self.id}.[{self.article}] {self.title}'
예제 #8
0
class CarRim(db.Model, Product):
    width = db.Column(db.String(20))
    height = db.Column(db.String(20))
    diameter = db.Column(db.String(20))
    holes = db.Column(db.String(20))
    PCD = db.Column(db.String(20))
    offset = db.Column(db.String(20))
    dia = db.Column(db.String(20))
    rim_type = db.Column(db.String(20))
    color = db.Column(db.String(20))
    treatment = db.Column(db.String(20))
    for_car = db.Column(db.String(20))

    def __init__(self, *args, **kwargs):
        kwargs['markup'] = 1.2 if not kwargs.get('markup') else kwargs.get(
            'markup')
        super().__init__(*args, **kwargs)
        Product.__init__(self, *args, **kwargs)
        self.category = 'Диски легковые'