Beispiel #1
0
def _system_printer():
    store_id = c.session['store']
    only = c.get_settings(orm, store_id)
    available_networks = []
    networks = only.j['네트워크']
    adjusted = only.j['프린터']
    for each in networks:
        if each['enabled']:
            available_networks.append(each['기기명'])
    for each in adjusted:
        each['연결기기명'] = networks[each['network_id']]['기기명']
    for each in form_types:
        if each['name'] == '연결기기명':
            each['l'] = available_networks

    if c.is_GET():
        if c.is_json():
            return c.jsonify(adjusted)
        else:
            return c.display(thead=thead, form_types=form_types,
                             defnet=available_networks[0]
                             if len(available_networks) > 0
                             else '')
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            next_one = c.newitem_web(orm.settings, c.session)
            next_one.j = only.j.copy()
            for each in c.data_POST():
                next_one.j['프린터'] = c.json.loads(each)
            for each in next_one.j['프린터']:
                for i in range(len(networks)):
                    if each['연결기기명'] == networks[i]['기기명']:
                        each['network_id'] = i
            ss.add(next_one)
            return 'modified'
Beispiel #2
0
def _system_menu2():
    store_id = c.session['store']
    only = c.get_settings(orm, store_id)

    id = c.dict_item(orm, store_id)
    il = list(id.values())
    # print(id, il)
    form_types[0]['l'] = il

    if c.is_GET():
        if c.is_json():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                menu2 = ss.query(orm.상품_품목) \
                    .filter_by(s=store_id) \
                    .filter_by(isdel=c.X) \
                    .all()
                menu2 = c.for_json_l(menu2)
                menu2 = {i['i']: i for i in menu2}
                menu2[0] = {'품목명': '미지정', '단가': 0}
                return c.jsonify(d=only.j['메뉴'], l=menu2)
        else:
            return c.render_template('system/menu2.html',
                                     item=None, form_types=form_types,
                                     MENUBORDER_WIDTH=c.MENUBORDER_WIDTH, MENUBORDER_HEIGHT=c.MENUBORDER_HEIGHT, )
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            next_one = c.newitem_web(orm.setting, c.session)
            next_one.j = only.j.copy()
            for each in c.data_POST():
                next_one.j['메뉴'] = c.json.loads(each)
            ss.add(next_one)
            return 'modified'
Beispiel #3
0
def _system_network():
    store_id = c.session['store']
    only = c.get_settings(orm, store_id)

    if c.is_GET():
        if c.is_json():
            return c.jsonify(only.j['네트워크'])
        else:
            return c.display(thead=thead, form_types=form_types)
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            next_one = c.newitem_web(orm.settings, c.session)
            next_one.j = only.j.copy()
            for each in c.data_POST():
                next_one.j['네트워크'] = c.json.loads(each)
            ss.add(next_one)
            return 'modified'
Beispiel #4
0
def _system_table2():
    shop_id = c.session['store']
    only = c.get_settings(orm, shop_id)

    if c.is_GET():
        if c.is_json():
            return c.jsonify(only.j['테이블'])
        else:
            return c.render_template('system/table2.html',
                                     item=None, form_types=form_types,
                                     TABLEBORDER_WIDTH=c.TABLEBORDER_WIDTH, TABLEBORDER_HEIGHT=c.TABLEBORDER_HEIGHT, )
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            next_one = c.newitem_web(orm.setting, c.session)
            next_one.j = only.j.copy()
            for each in c.data_POST():
                next_one.j['테이블'] = c.json.loads(each)
            ss.add(next_one)
            return 'modified'
Beispiel #5
0
def _system_config1_(store_id):
    if c.is_json():
        if c.is_GET():
            d = {
                k + c.SEP + v['k']: v['v']
                for k, v in get_config1(store_id).items()
            }
            return c.jsonify(d)
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.get_settings(orm, store_id)
                next_one = c.newitem_web(orm.settings, c.session)
                next_one.j = only.j.copy()
                for k, v in c.data_POST().items():
                    if c.SEP in k and 'checkbox' not in k:
                        _n = k.split(c.SEP, 1)[0]
                        _k = k.split(c.SEP, 1)[1]
                        _v = v
                        next_one.j['설정'][_n] = {'k': _k, 'v': _v}

                ss.add(next_one)
            return 'modified'

    c.abort(404)
Beispiel #6
0
def _earnings_day_(_id, dates, datee):
    store_id = c.session['store']
    cnt_days = {}
    cnt_days['상품목록'] = {}
    cnt_days['상품분류'] = {}
    cnt_days['일자별'] = {}
    cnt_days['테이블목록'] = {}
    cashm = {'현금', '카드', '카드(임의)', '포인트'}

    cnt = 0
    if c.is_GET():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            only = c.get_settings(orm, store_id)
            tbl = only.j['테이블']
            cnt_days['테이블목록'] = tbl



            lst = ss.query(orm.판매_품목) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .filter(orm.판매_품목.d >= dates) \
                .filter(orm.판매_품목.d <= datee) \
                .all()

            lst0 = ss.query(orm.판매) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .filter(orm.판매.d >= dates) \
                .filter(orm.판매.d <= datee) \
                .all()

            for each0 in lst0:
                d = each0.d.strftime('%Y-%m-%d')
                if d not in cnt_days['일자별']:
                    cnt_days['일자별'][d] = {
                        '영업일자': d,
                        '구분': {
                            '판매': {
                                '총거래액': 0,
                                '총할인액': 0,
                                '실거래액': 0,
                                '세금': 0,
                                '면세': 0,
                                '판매이익': 0,
                                '판매건수': 0,
                                '영수건수': 0
                            },
                            '반품': {
                                '총거래액': 0,
                                '총할인액': 0,
                                '실거래액': 0,
                                '세금': 0,
                                '면세': 0,
                                '판매이익': 0,
                                '판매건수': 0,
                                '영수건수': 0
                            }
                        },
                        '총거래액': 0,
                        '총할인액': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '판매건수': 0,
                        '영수건수': 0,
                        '분류별': {},
                        '상품별': {},
                        '수단별': {},
                        '수단별매출': {},
                        '수단별반품': {},
                        '영수증별': {},
                        '테이블별': {}
                    }

                if each0.유형 == 'A' or each0.유형 == 'B':
                    cnt_days['일자별'][d]['구분']['판매']['총거래액'] += each0.총금액
                    cnt_days['일자별'][d]['구분']['판매']['총할인액'] += each0.총할인
                    cnt_days['일자별'][d]['구분']['판매']['실거래액'] += each0.합계
                    cnt_days['일자별'][d]['구분']['판매']['세금'] += each0.세
                    cnt_days['일자별'][d]['구분']['판매']['면세'] += each0.면세
                    cnt_days['일자별'][d]['구분']['판매']['판매이익'] += (each0.공급가 +
                                                               each0.면세)

                    cnt_days['일자별'][d]['구분']['판매']['판매건수'] += 1

                if each0.유형 == 'C':
                    cnt_days['일자별'][d]['구분']['반품']['총거래액'] += each0.총금액
                    cnt_days['일자별'][d]['구분']['반품']['총할인액'] += each0.총할인
                    cnt_days['일자별'][d]['구분']['반품']['실거래액'] += each0.합계
                    cnt_days['일자별'][d]['구분']['반품']['세금'] += each0.세
                    cnt_days['일자별'][d]['구분']['반품']['면세'] += each0.면세
                    cnt_days['일자별'][d]['구분']['반품']['판매이익'] += (each0.공급가 +
                                                               each0.면세)

                    cnt_days['일자별'][d]['구분']['반품']['판매건수'] += -1

                for each in lst:
                    if each0.i == each.판매i:

                        cnt_days['일자별'][d]['총거래액'] += each.단가
                        cnt_days['일자별'][d]['총할인액'] += each.할인
                        cnt_days['일자별'][d]['실거래액'] += each.합계
                        cnt_days['일자별'][d]['세금'] += each.세
                        cnt_days['일자별'][d]['면세'] += each.면세
                        cnt_days['일자별'][d]['판매이익'] += (each.공급가 + each.면세)

                        cnt_days['일자별'][d]['판매건수'] += 1

                        if each.유형 == 'C':
                            cnt_days['일자별'][d]['총거래액'] += -each.단가
                            cnt_days['일자별'][d]['총할인액'] += -each.할인
                            cnt_days['일자별'][d]['실거래액'] += -each.합계
                            cnt_days['일자별'][d]['세금'] += -each.세
                            cnt_days['일자별'][d]['면세'] += -each.면세
                            cnt_days['일자별'][d]['판매이익'] += -(each.공급가 + each.면세)

                            cnt_days['일자별'][d]['판매건수'] += -1

                        p = str(each.품목pi)

                        if p not in cnt_days['일자별'][d]['분류별']:
                            cnt_days['일자별'][d]['분류별'][p] = {
                                '총거래액': 0,
                                '총할인액': 0,
                                '실거래액': 0,
                                '세금': 0,
                                '판매이익': 0,
                                '영수건수': 0
                            }

                        cnt_days['일자별'][d]['분류별'][p]['총거래액'] += each.단가
                        cnt_days['일자별'][d]['분류별'][p]['총할인액'] += each.할인
                        cnt_days['일자별'][d]['분류별'][p]['실거래액'] += each.합계
                        cnt_days['일자별'][d]['분류별'][p]['세금'] += each.세
                        cnt_days['일자별'][d]['분류별'][p]['판매이익'] += (each.공급가 +
                                                                 each.면세)
                        cnt_days['일자별'][d]['분류별'][p]['영수건수'] += 1

                        if each.유형 == 'C':
                            cnt_days['일자별'][d]['분류별'][p]['총거래액'] += -each.단가
                            cnt_days['일자별'][d]['분류별'][p]['총할인액'] += -each.할인
                            cnt_days['일자별'][d]['분류별'][p]['실거래액'] += -each.합계
                            cnt_days['일자별'][d]['분류별'][p]['세금'] += -each.세
                            cnt_days['일자별'][d]['분류별'][p]['판매이익'] += -(
                                each.공급가 + each.면세)
                            cnt_days['일자별'][d]['분류별'][p]['영수건수'] += -1

                        s = each.품목i
                        if s not in cnt_days['일자별'][d]['상품별']:
                            cnt_days['일자별'][d]['상품별'][s] = {
                                'ppi': {},
                                '총거래액': 0,
                                '총할인액': 0,
                                '실거래액': 0,
                                '세금': 0,
                                '판매이익': 0,
                                '영수건수': 0
                            }
                        cnt_days['일자별'][d]['상품별'][s]['ppi'] = each.품목pi
                        cnt_days['일자별'][d]['상품별'][s]['총거래액'] += each.단가
                        cnt_days['일자별'][d]['상품별'][s]['총할인액'] += each.할인
                        cnt_days['일자별'][d]['상품별'][s]['실거래액'] += each.합계
                        cnt_days['일자별'][d]['상품별'][s]['세금'] += each.세
                        cnt_days['일자별'][d]['상품별'][s]['판매이익'] += (each.공급가 +
                                                                 each.면세)
                        cnt_days['일자별'][d]['상품별'][s]['영수건수'] += 1

                        if each.유형 == 'C':
                            cnt_days['일자별'][d]['상품별'][s]['총거래액'] += -each.단가
                            cnt_days['일자별'][d]['상품별'][s]['총할인액'] += -each.할인
                            cnt_days['일자별'][d]['상품별'][s]['실거래액'] += -each.합계
                            cnt_days['일자별'][d]['상품별'][s]['세금'] += -each.세
                            cnt_days['일자별'][d]['상품별'][s]['판매이익'] += -(
                                each.공급가 + each.면세)
                            cnt_days['일자별'][d]['상품별'][s]['영수건수'] += -1






            lst1 = ss.query(orm.상품_품목) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .all()

            for each in lst1:
                cnt_days['상품목록'].update({each.i: each.품목명})

            lst2 = ss.query(orm.상품_분류) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .all()

            for each in lst2:
                cnt_days['상품분류'].update({each.i: each.분류명})


            lst3 = ss.query(orm.결제) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .filter(orm.결제.d >= dates) \
                .filter(orm.결제.d <= datee) \
                .all()

            for each in lst3:
                d = each.d.strftime('%Y-%m-%d')

                for each1 in cashm:
                    cnt_days['일자별'][d]['수단별'][each1] = {
                        '판매i': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '영수건수': 0
                    }
                    cnt_days['일자별'][d]['수단별반품'][each1] = {
                        '판매i': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '영수건수': 0
                    }
                    cnt_days['일자별'][d]['수단별매출'][each1] = {
                        '판매i': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '영수건수': 0
                    }

            for each in lst3:
                d = each.d.strftime('%Y-%m-%d')
                cash = each.결제수단

                # if cash not in cnt_days['일자별'][d]['수단별']:
                #     cnt_days['일자별'][d]['수단별'][cash] = {'판매i' : 0 , '실거래액': 0, '세금': 0, '면세' : 0, '판매이익': 0, '영수건수': 0}
                if each.유형 == 'A' or each.유형 == 'B':
                    cnt_days['일자별'][d]['수단별매출'][cash]['실거래액'] += each.합계
                    cnt_days['일자별'][d]['수단별매출'][cash]['세금'] += each.세
                    cnt_days['일자별'][d]['수단별매출'][cash]['면세'] += each.면세
                    cnt_days['일자별'][d]['수단별매출'][cash]['판매이익'] += (each.공급가 +
                                                                  each.면세)
                    cnt_days['일자별'][d]['수단별매출'][cash]['영수건수'] += 1

                    cnt_days['일자별'][d]['수단별'][cash]['실거래액'] += each.합계
                    cnt_days['일자별'][d]['수단별'][cash]['세금'] += each.세
                    cnt_days['일자별'][d]['수단별'][cash]['면세'] += each.면세
                    cnt_days['일자별'][d]['수단별'][cash]['판매이익'] += (each.공급가 +
                                                                each.면세)
                    cnt_days['일자별'][d]['수단별'][cash]['영수건수'] += 1

                else:
                    cnt_days['일자별'][d]['수단별반품'][cash]['실거래액'] += each.합계
                    cnt_days['일자별'][d]['수단별반품'][cash]['세금'] += each.세
                    cnt_days['일자별'][d]['수단별반품'][cash]['면세'] += each.면세
                    cnt_days['일자별'][d]['수단별반품'][cash]['판매이익'] += (each.공급가 +
                                                                  each.면세)
                    cnt_days['일자별'][d]['수단별반품'][cash]['영수건수'] += 1

                    cnt_days['일자별'][d]['수단별'][cash]['실거래액'] += each.합계
                    cnt_days['일자별'][d]['수단별'][cash]['세금'] += each.세
                    cnt_days['일자별'][d]['수단별'][cash]['면세'] += each.면세
                    cnt_days['일자별'][d]['수단별'][cash]['판매이익'] += (each.공급가 +
                                                                each.면세)
                    cnt_days['일자별'][d]['수단별'][cash]['영수건수'] += -1


            lst4 = ss.query(orm.판매) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .filter(orm.판매.d >= dates) \
                .filter(orm.판매.d <= datee) \
                .all()
            d = 0
            d1 = 0
            d2 = 0
            d3 = 0

            for each in lst4:
                d = each.d.strftime('%Y-%m-%d')

                d1 = each.주문일시.strftime('%H:%M:%S')
                if each.결제일시:
                    d2 = each.결제일시.strftime('%H:%M:%S')
                if each.취소일시:
                    d3 = each.취소일시.strftime('%H:%M:%S')

                t = each.table_idx
                g = each.group_idx
                gt = str(g) + '-' + str(t)

                if gt not in cnt_days['일자별'][d]['테이블별']:
                    cnt_days['일자별'][d]['테이블별'][gt] = {
                        '총거래액': 0,
                        '총할인액': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '영수건수': 0
                    }

                cnt_days['일자별'][d]['테이블별'][gt]['총거래액'] += each.총금액
                cnt_days['일자별'][d]['테이블별'][gt]['총할인액'] += each.총할인
                cnt_days['일자별'][d]['테이블별'][gt]['실거래액'] += each.합계
                cnt_days['일자별'][d]['테이블별'][gt]['세금'] += each.세
                cnt_days['일자별'][d]['테이블별'][gt]['면세'] += each.면세
                cnt_days['일자별'][d]['테이블별'][gt]['판매이익'] += (each.공급가 + each.면세)

                if each.유형 == 'A' or each.유형 == 'B':
                    cnt_days['일자별'][d]['테이블별'][gt]['영수건수'] += 1
                else:
                    cnt_days['일자별'][d]['테이블별'][gt]['영수건수'] += -1

                r = each.i
                if r not in cnt_days['일자별'][d]['영수증별']:
                    cnt_days['일자별'][d]['영수증별'][r] = {
                        '총거래액': 0,
                        '총할인액': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '면세': 0,
                        '판매이익': 0,
                        '주문일시': d1,
                        '결제일시': d2,
                        '취소일시': d3,
                        '테이블명': "",
                        '상품': {},
                        '영수건수': 0
                    }

                cnt_days['일자별'][d]['영수증별'][r]['총거래액'] = each.총금액
                cnt_days['일자별'][d]['영수증별'][r]['총할인액'] = each.총할인
                cnt_days['일자별'][d]['영수증별'][r]['실거래액'] = each.합계
                cnt_days['일자별'][d]['영수증별'][r]['세금'] = each.세
                cnt_days['일자별'][d]['영수증별'][r]['면세'] = each.면세
                cnt_days['일자별'][d]['영수증별'][r]['판매이익'] = (each.공급가 + each.면세)
                cnt_days['일자별'][d]['영수증별'][r]['테이블명'] = each.table_idx + 1
                cnt_days['일자별'][d]['영수증별'][r]['구분'] = each.유형
                cnt_days['일자별'][d]['영수건수'] += 1

                for each2 in cashm:
                    cnt_days['일자별'][d]['영수증별'][r][each2] = 0

                for each1 in lst3:
                    if each1.판매i == r or each1.판매i == each.ci:
                        cash1 = each1.결제수단
                        if each1.유형 == each.유형:
                            cnt_days['일자별'][d]['영수증별'][r][cash1] += each1.합계

                for each3 in lst:
                    g = each3.품목i

                    if each3.판매i == r or each.ci == each3.판매i:
                        if g not in cnt_days['일자별'][d]['영수증별'][r]['상품']:
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g] = {
                                '총거래액': 0,
                                '총할인액': 0,
                                '실거래액': 0,
                                '세금': 0,
                                '판매이익': 0,
                                '영수건수': 0
                            }

                        if each.ci == each3.판매i:
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '총거래액'] += -each3.단가
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '총할인액'] += -each3.할인
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '실거래액'] += -each3.합계
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '세금'] += -each3.세
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '판매이익'] += -(each3.공급가 + each3.면세)
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '영수건수'] += -1

                        else:
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '총거래액'] += each3.단가
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '총할인액'] += each3.할인
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '실거래액'] += each3.합계
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g][
                                '세금'] += each3.세
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g]['판매이익'] += (
                                each3.공급가 + each3.면세)
                            cnt_days['일자별'][d]['영수증별'][r]['상품'][g]['영수건수'] += 1

        return c.jsonify(cnt_days)

    c.abort(404)
Beispiel #7
0
def get_config1(store_id):
    only = c.get_settings(orm, store_id)
    return only.j['설정']