示例#1
0
文件: week.py 项目: sungbin2/pypos
def _earnings_week_(_id):
    store_id = c.session['store']
    cnt_weeks = {}

    cnt = 0
    if c.is_GET():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            lst = ss.query(orm.판매_품목) \
                .filter_by(isdel='X') \
                .filter(orm.판매_품목.d >= "2018-01-01") \
                .filter(orm.판매_품목.d <= "2018-12-31") \
                .all()

            for each in lst:
                d = each.d.strftime('%Y-%m-%d')
                if d not in cnt_weeks:
                    cnt_weeks[d] = {'영업일자': d,
                                   '총거래액': 0, '총할인액': 0, '실거래액': 0, '세금': 0, '판매이익': 0, '영수건수' : 0 }
                cnt_weeks[d]['총거래액'] += each.단가
                cnt_weeks[d]['총할인액'] += each.할인
                cnt_weeks[d]['실거래액'] += each.합계
                cnt_weeks[d]['세금'] += each.세
                cnt_weeks[d]['판매이익'] += (each.공급가 + each.면세)
                cnt_weeks[d]['영수건수'] += 1


        return c.jsonify(cnt_weeks)
    c.abort(404)
示例#2
0
文件: menu1.py 项目: sungbin2/pypos1
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'
示例#3
0
文件: printer.py 项目: sungbin2/pypos
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'
示例#4
0
def _system_table(group_id):
    sid = c.session['store']

    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                l = c.for_json_l(table_query(ss, sid, group_id).all())
                return c.jsonify(l)
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                for k, v in c.data_POST().items():
                    ol = json.loads(k)
                    for o in ol:
                        r = c.newitem_web(orm.설정_테이블, c.session)
                        c.merge_(o, r)
                        r.group_id = group_id
                        r.issync = None
                        ss.merge(r)
                return 'modified'

    else:
        with orm.session_scope() as ss:  # type:c.typeof_Session
            if c.is_GET():
                gl = c.for_json_l(tablegroup_query(ss, sid).all())
                return c.display(item=c.newitem_web(orm.설정_테이블그룹, c.session),
                                 form_types=form_types, gl=gl, selected=group_id,
                                 TABLEBORDER_WIDTH=c.TABLEBORDER_WIDTH, TABLEBORDER_HEIGHT=c.TABLEBORDER_HEIGHT, )

    c.abort(404)
示例#5
0
def _system_menugroup():
    sid = c.session['store']

    if c.is_GET():
        if c.is_json():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                l = c.for_json_l(menugroup_query(ss, sid).all())
                return c.jsonify(l)
        return c.display(item=c.newitem_web(orm.설정_메뉴그룹, c.session),
                         thead=thead, form_types=form_types, id=sid)
示例#6
0
文件: board.py 项目: sungbin2/pypos1
def _board_board_(_id):
    store_id = c.session['store']
    if c.is_GET():
        if True:  # c.is_json()
            l = []
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.상품_품목) \
                    .filter_by(s=store_id) \
                    .filter_by(isdel='X') \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                        elif isinstance(v, date):
                            dummy[k] = v.isoformat()
                        elif isinstance(v, datetime):
                            dummy[k] = v.isoformat(' ')
                    l.append(dummy)
            return c.jsonify(l)
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session


            if c.data_POST()['i'] == '신규':

                only = c.newitem_web(orm.상품_품목, c.session)
                for k, v in c.data_POST().items():
                    if hasattr(only, k) and k != 'i':
                        if getattr(only, k) != v:
                            setattr(only, k, v)

                ss.add(only)
                return 'modified'

            elif c.data_POST()['i'] != '신규':
                only = c.simple_query(ss, orm.상품_품목, s=c.session['store'])

                for x in only:

                    if int(x.i) == int(c.data_POST()['i']):
                        for k, v in c.data_POST().items():
                            if hasattr(x, k) and k != 'i':
                                if getattr(x, k) != v:
                                    print(k, 'is changed')
                                    setattr(x, k, v)
                        x.issync = None
                        return 'modified'


            return 'modified'
示例#7
0
def _goods_itemgroup():
    store_id = c.session['store']

    if c.is_GET():
        if c.is_json():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                lst = c.for_json_l(itemgroup_query(ss, store_id).all())
                return c.jsonify(lst)
        return c.display(item=c.newitem_web(orm.상품_분류, c.session),
                         thead=thead,
                         form_types=form_types,
                         no=store_id)
示例#8
0
def _system_menu(group_id):
    sid = c.session['store']
    id = c.dict_item(orm, sid)
    il = list(id.values())
    # print(id, il)
    form_types[0]['l'] = il

    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                l = c.for_json_l(menu_query(ss, sid, group_id).all())
                for i in l:
                    try:
                        i['메뉴명'] = id[i['품목코드']]
                    except:
                        i['메뉴명'] = '미지정'
                return c.jsonify(l)
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                for k, v in c.data_POST().items():
                    ol = json.loads(k)
                    for o in ol:
                        r = c.newitem_web(orm.설정_메뉴, c.session)
                        c.merge_(o, r)
                        r.group_id = group_id
                        try:
                            r.품목코드 = c.fs2i(o['메뉴명'].split('|', 1)[0].strip())
                        except:
                            r.품목코드 = 0
                        r.issync = None
                        ss.merge(r)
                return 'modified'

    else:
        with orm.session_scope() as ss:  # type:c.typeof_Session
            if c.is_GET():
                gl = c.for_json_l(menugroup_query(ss, sid).all())
                _g = [i for i in gl if i['id'] == group_id][0]
                return c.display(
                    item=c.newitem_web(orm.설정_메뉴그룹, c.session),
                    form_types=form_types,
                    gl=gl,
                    selected=group_id,
                    상하칸=_g['상하칸'],
                    좌우칸=_g['좌우칸'],
                    MENUBORDER_WIDTH=c.MENUBORDER_WIDTH,
                    MENUBORDER_HEIGHT=c.MENUBORDER_HEIGHT,
                )

    c.abort(404)
示例#9
0
文件: store1.py 项目: sungbin2/pypos1
def _info_store1_list():
    if c.is_GET():
        if True:  # c.is_json()
            l = []
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.공통_출력물관리) \
                    .filter_by(s=c.session['store']) \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                    l.append(dummy)
            return c.jsonify(l)
示例#10
0
def _info_account_(store_id):
    if c.is_GET():
        if c.is_json():
            return c.jsonify(_get_account(store_id).for_json())
        else:
            return c.display()
    elif c.is_POST() or c.is_PUT():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            only = ss.query(orm.account) \
                .filter_by(s=store_id) \
                .one()
            if only.패스워드 == c.pw_hash(c.data_POST('구패스워드')):
                only.패스워드 = c.pw_hash(c.data_POST('패스워드'))
            else:
                return 'diffrent'

        return 'modified'
示例#11
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'
示例#12
0
def _goods_item_upload_(_id):
    store_id = c.session['store']
    gd = c.dict_itemgroup(orm, store_id)
    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_품목, no=_id)
                only.분류 = gd[only.분류no]
                return c.jsonify(c.for_json(only))
        elif c.is_POST():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.newitem_web(orm.상품_품목, c.session)
                for k, v in c.data_POST().items():
                    if hasattr(only, k) and k != 'no':
                        if getattr(only, k) != v:
                            setattr(only, k, v)
                only.분류no = c.fs2i(c.data_POST()['분류'].split('|',
                                                             1)[0].strip())
                ss.add(only)
                return 'added'
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_품목, no=_id)
                if only.s == c.session['store']:
                    for k, v in c.data_POST().items():
                        if hasattr(only, k) and k != 'no':
                            if getattr(only, k) != v:
                                print(k, 'is changed')
                                setattr(only, k, v)
                    only.분류no = c.fs2i(c.data_POST()['분류'].split('|',
                                                                 1)[0].strip())
                    only.issync = None
                    return 'modified'
                else:
                    c.abort(403)
        elif c.is_DELETE():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_품목, no=_id)
                if only.s == c.session['store']:
                    only.isdel = c.O
                    only.issync = None
                    return 'deleted'
                else:
                    c.abort(403)
    c.abort(404)
示例#13
0
def _goods_itemgroup_(_id):
    store_id = c.session['store']
    if c.is_GET():
        if True:  # c.is_json()
            l = []
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.상품_분류) \
                    .filter_by(s=c.session['store']) \
                    .filter_by(isdel='X') \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                        elif isinstance(v, date):
                            dummy[k] = v.isoformat()
                        elif isinstance(v, datetime):
                            dummy[k] = v.isoformat(' ')
                    l.append(dummy)
            return c.jsonify(l)
    elif c.is_PUT():
        with orm.session_scope() as ss:  # type:c.typeof_Session

            temp = []
            for i in c.data_POST():
                for j in c.json.loads(i):
                    temp.append(j)

            only = c.simple_query(ss, orm.상품_분류, s=c.session['store'])
            for i in temp:
                if '코드' not in i:
                    only1 = c.newitem_web(orm.상품_분류, c.session)
                    only1.분류명 = i['대분류']
                    ss.add(only1)

                elif i['코드'] != None:

                    for x in only:
                        if x.i == i['코드']:
                            x.분류명 = i['대분류']
                            x.isdel = i['isdel']

            return 'modified'
示例#14
0
def _system_menugroup_(_id):
    sid = c.session['store']

    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                r = c.simple_query(ss, orm.설정_메뉴그룹, id=_id)
                return c.jsonify(c.for_json(r))
        elif c.is_POST():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                r = c.newitem_web(orm.설정_메뉴그룹, c.session)
                cnt = menugroup_query(ss, sid).count()
                r.번호 = cnt + 1
                for k, v in c.data_POST().items():
                    if hasattr(r, k) and k != 'id':
                        if getattr(r, k) != v:
                            setattr(r, k, v)
                ss.add(r)
                return 'added'
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                r = c.simple_query(ss, orm.설정_메뉴그룹, id=_id)
                if r.sid == c.session['store']:
                    for k, v in c.data_POST().items():
                        if hasattr(r, k) and k != 'id':
                            if getattr(r, k) != v:
                                print(k, 'is changed')
                                setattr(r, k, v)
                    r.issync = None
                    return 'modified'
                else:
                    c.abort(403)
        elif c.is_DELETE():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                r = c.simple_query(ss, orm.설정_메뉴그룹, id=_id)
                if r.sid == c.session['store']:
                    r.isdel = c.O
                    l = menugroup_query(ss, sid).all()
                    for i in range(len(l)):
                        l[i].번호 = i + 1
                    r.issync = None
                    return 'deleted'
                else:
                    c.abort(403)
    c.abort(404)
示例#15
0
def _goods_itemgroup_(_id):
    store_id = c.session['store']

    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_분류, no=_id)
                return c.jsonify(c.for_json(only))
        elif c.is_POST():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.newitem_web(orm.상품_분류, c.session)
                cnt = itemgroup_query(ss, store_id).count()
                only.번호 = cnt + 1
                for k, v in c.data_POST().items():
                    if hasattr(only, k) and k != 'no':
                        if getattr(only, k) != v:
                            setattr(only, k, v)
                ss.add(only)
                return 'added'
        elif c.is_PUT():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_분류, no=_id)
                if only.s == c.session['store']:
                    for k, v in c.data_POST().items():
                        if hasattr(only, k) and k != 'no':
                            if getattr(only, k) != v:
                                print(k, 'is changed')
                                setattr(only, k, v)
                    only.issync = None
                    return 'modified'
                else:
                    c.abort(403)
        elif c.is_DELETE():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                only = c.simple_query(ss, orm.상품_분류, no=_id)
                if only.s == c.session['store']:
                    only.isdel = c.O
                    l = itemgroup_query(ss, store_id).all()
                    for i in range(len(l)):
                        l[i].번호 = i + 1
                    only.issync = None
                    return 'deleted'
                else:
                    c.abort(403)
    c.abort(404)
示例#16
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'
示例#17
0
文件: staff.py 项目: sungbin2/pypos1
def _info_staff_list():
    if c.is_GET():
        if True:  # c.is_json()
            l = []
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.정보_직원) \
                    .filter_by(s=c.session['store']) \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                        elif isinstance(v, date):
                            dummy[k] = v.isoformat()
                        elif isinstance(v, datetime):
                            dummy[k] = v.isoformat(' ')
                    l.append(dummy)
            return c.jsonify(l)
示例#18
0
def _goods_item_modify():
    store_id = c.session['store']
    with orm.session_scope() as ss:  # type:c.typeof_Session
        gd = c.dict_itemgroup(orm, store_id)
        gl = list(gd.values())
        form_types[0]['l'] = gl
        # print(gd, gl)
        if c.is_GET():
            if c.is_json():
                l = c.for_json_l(
                    c.simple_query(ss, orm.상품_품목, s=store_id, order_by_asc='no'))
                for i in l:
                    i['분류'] = gd[i['분류no']]
                    i['idx'] = i['no']
                    i['enabled'] = True
                return c.jsonify(l)
            return c.display(item=c.newitem_web(orm.상품_품목, c.session),
                             thead=thead,
                             form_types=form_types,
                             no=store_id,
                             gl=gl)
示例#19
0
def _info_storepwd(store_id):
    if c.is_GET():
        if c.is_json():
            return c.jsonify(_get_store(store_id).for_json())
        else:
            return c.display()
    elif c.is_POST() or c.is_PUT():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            only = ss.query(orm.정보_가게) \
                .filter_by(no=store_id) \
                .one()
            for k, v in c.data_POST().items():
                if getattr(only, k) != v:
                    print(k, 'is changed')
                    if k in ['개점일', '폐점일']:
                        try:
                            setattr(only, k, parser.parse(v))
                        except:
                            setattr(only, k, None)
                    else:
                        setattr(only, k, v)
            only.issync = None
        return c.display()
示例#20
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)
示例#21
0
def _system_menugroup_(_id):
    store_id = c.session['store']

    if c.is_json():
        if c.is_GET():
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.상품_분류) \
                    .filter_by(s=store_id) \
                    .filter_by(isdel='X') \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                        elif isinstance(v, date):
                            dummy[k] = v.isoformat()
                        elif isinstance(v, datetime):
                            dummy[k] = v.isoformat(' ')
                    l.append(dummy)
            return c.jsonify(l)

    c.abort(404)
示例#22
0
文件: day.py 项目: sungbin2/pypos
def _earnings_day_(_id, dates, datee):
    store_id = c.session['store']
    cnt_days = {}
    cnt_days['상품목록'] = {}
    cnt_days['상품분류'] = {}
    cnt_days['일자별'] = {}

    cnt = 0
    if c.is_GET():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            lst = ss.query(orm.판매_품목) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .filter(orm.판매_품목.d >= dates) \
                .filter(orm.판매_품목.d <= datee) \
                .all()

            for each in lst:
                d = each.d.strftime('%Y-%m-%d')
                if d not in cnt_days['일자별']:
                    cnt_days['일자별'][d] = {
                        '영업일자': d,
                        '총거래액': 0,
                        '총할인액': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '판매이익': 0,
                        '영수건수': 0,
                        '분류별': {},
                        '상품별': {},
                        '수단별': {},
                        '영수증별': {}
                    }
                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

                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

            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')
                cashm = {'현금', '카드', '카드(임의)', '포인트'}
                for each1 in cashm:
                    cnt_days['일자별'][d]['수단별'][each1] = {
                        '판매i': 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}
                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')

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

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

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

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

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

                        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)
示例#23
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)
示例#24
0
文件: item.py 项目: sungbin2/pypos1
def _goods_item_(_id):
    store_id = c.session['store']
    if c.is_GET():
        if True:  # c.is_json()
            l = []
            with orm.session_scope() as ss:  # type:c.typeof_Session
                q1 = ss.query(orm.상품_품목) \
                    .filter_by(s=store_id) \
                    .filter_by(isdel='X') \
                    .all()
                for x in q1:
                    dummy = x.__dict__.copy()
                    del dummy['_sa_instance_state']
                    for k, v in dummy.items():
                        if v is None:
                            dummy[k] = ''
                        elif isinstance(v, date):
                            dummy[k] = v.isoformat()
                        elif isinstance(v, datetime):
                            dummy[k] = v.isoformat(' ')
                    l.append(dummy)
            return c.jsonify(l)
    elif c.is_POST():
        with orm.session_scope() as ss:  # type:c.typeof_Session

            if c.data_POST()['i'] == '신규':

                only = c.newitem_web(orm.상품_품목, c.session)
                for k, v in c.data_POST().items():
                    if hasattr(only, k) and k != 'i':

                        if getattr(only, k) != v:
                            if k == '프린터j':
                                _lst = []
                                if v != '':
                                    for ch in v.split(','):
                                        _lst.append(int(ch.strip()))
                                v = _lst
                            setattr(only, k, v)

                ss.add(only)
                return 'modified'

            elif c.data_POST()['i'] != '신규':
                only = c.simple_query(ss, orm.상품_품목, s=c.session['store'])

                for x in only:

                    if int(x.i) == int(c.data_POST()['i']):
                        for k, v in c.data_POST().items():
                            if hasattr(x, k) and k != 'i':
                                if getattr(x, k) != v:
                                    if k == '프린터j':
                                        _lst = []
                                        if v != '':
                                            for ch in v.split(','):
                                                _lst.append(int(ch.strip()))
                                        v = _lst
                                    print(k, 'is changed')
                                    setattr(x, k, v)
                        x.issync = None
                        return 'modified'

            temp = []
            # for i in c.data_POST():
            #     for j in c.json.loads(i):
            #         temp.append(j)

            # print(temp)

            # only = c.simple_query(ss, orm.상품_품목, s=c.session['store'])
            # for i in temp:
            #     if '코드' not in i:
            #         only1 = c.newitem_web(orm.상품_품목, c.session)
            #         only1.품목명 = i['명']
            #         ss.add(only1)
            #
            #     elif i['코드'] != None:
            #
            #         for x in only:
            #             if x.i == i['코드']:
            #                 x.품목명 = i['명']
            #                 x.isdel = i['isdel']

            return 'modified'
示例#25
0
def _info_storepwd(store_id):
    if c.is_GET():
        if c.is_json():
            return c.jsonify(_get_store(store_id).for_json())
        else:
            return c.display()
示例#26
0
def _earnings_dayall_(_id):
    store_id = c.session['store']
    cnt_days = {}
    cnt_days['상품목록'] = {}
    cnt_days['상품분류'] = {}
    cnt_days['일자별'] = {}

    cnt = 0
    if c.is_GET():
        with orm.session_scope() as ss:  # type:c.typeof_Session
            lst = ss.query(orm.판매_품목) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .all()

            for each in lst:
                d = each.d.strftime('%Y-%m-%d')
                if d not in cnt_days['일자별']:
                    cnt_days['일자별'][d] = {
                        '영업일자': d,
                        '총거래액': 0,
                        '총할인액': 0,
                        '실거래액': 0,
                        '세금': 0,
                        '판매이익': 0,
                        '영수건수': 0,
                        '분류별': {},
                        '상품별': {},
                        '수단별': {}
                    }
                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

                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

            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.분류명})


            lst1 = ss.query(orm.결제) \
                .filter_by(s=store_id) \
                .filter_by(isdel='X') \
                .all()

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

                cash = str(each.결제수단)

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

        return c.jsonify(cnt_days)
    c.abort(404)