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)
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)
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'
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)
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)
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)
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'
def _system_menugroup_movedown(_id): sid = c.session['store'] if c.is_json(): if c.is_PUT(): with orm.session_scope() as ss: # type:c.typeof_Session r = c.simple_query(ss, orm.설정_메뉴그룹, id=_id).번호 l = menugroup_query(ss, sid).all() if sid == c.session['store']: if r >= len(l): return 'modified' else: for i in l: if i.번호 == r: i.번호 += 1 elif i.번호 == r + 1: i.번호 -= 1 return 'modified' else: c.abort(403) c.abort(404)
def _system_tablegroup_moveup(_id): sid = c.session['store'] if c.is_json(): if c.is_PUT(): with orm.session_scope() as ss: # type:c.typeof_Session r = c.simple_query(ss, orm.설정_테이블그룹, id=_id).번호 l = tablegroup_query(ss, sid).all() if sid == c.session['store']: if r <= 1: return 'modified' else: for i in l: if i.번호 == r - 1: i.번호 += 1 elif i.번호 == r: i.번호 -= 1 return 'modified' else: c.abort(403) c.abort(404)
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()
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)