예제 #1
0
파일: app.py 프로젝트: kikutou/tenso
def outboxInboxSelectConfirm():

    if request.method == 'POST':
        inboxId = request.form['inbox_id']
        customerId = request.form['customer_id']

        data = {'status': 1}

        result = Inbox(app).saveInboxData(int(inboxId), data)
        if result:
            return redirect("outboxIndex?id=" + inboxId + '&customer_id=' +
                            customerId)
        else:
            error = '入库箱选择失败'

    else:

        inboxId = request.args.get('id')
        customerId = request.args.get('customer_id')

    customer = Customer(app).getCustomer(int(customerId))

    inboxData = Inbox(app).getInboxData(int(inboxId))

    if inboxData['status'] == 1:
        return redirect("outboxIndex?customer_id=" + customerId)

    return render_template('outboxInboxSelectConfirm.html',
                           title=unicode("入库箱选择确认", 'utf-8'),
                           customer=customer,
                           inboxData=inboxData)
예제 #2
0
파일: app.py 프로젝트: kikutou/tenso
def adminInboxEdit():

    error = None
    if request.method == 'POST':

        inboxId = request.form['id']

        customer_id = request.form['customer_id']
        staff_id = request.form['staff_id']
        name = request.form['name']
        memo = request.form['memo']
        length = request.form['length']
        width = request.form['width']
        height = request.form['height']
        weight = request.form['weight']
        status = request.form['status']
        data = {
            'name': name,
            'memo': memo,
            'length': length,
            'width': width,
            'height': height,
            'weight': weight,
            'customer_id': customer_id,
            'staff_id': staff_id,
            'status': status
        }

        result = Inbox(app).saveInboxData(int(inboxId), data)
        if result:
            flash('入库箱更新成功')
            return redirect('/adminInbox')
        else:
            error = '入库箱更新失败'
    else:

        inboxId = request.args.get('id')

    inboxData = Inbox(app).getInboxData(int(inboxId))
    customers = Customer(app).getCustomers()
    staffs = Staff(app).getStaffs()

    return render_template('adminInboxEdit.html',
                           title=unicode('入库箱追加', 'utf-8'),
                           customers=customers,
                           staffs=staffs,
                           inbox=inboxData,
                           error=error)
예제 #3
0
파일: app.py 프로젝트: kikutou/tenso
def inboxDelete():

    error = None

    if request.method == 'POST':
        id = request.form['id']
        customerId = request.form['customer_id']

        data = {'delete_flag': 1}

        result = Inbox(app).saveInboxData(int(id), data)
        if result:
            flash(unicode('入库箱删除成功', 'utf-8'))
            return redirect("inboxIndex?id=" + customerId)
        else:
            error = unicode('入库箱删除失败', 'utf-8')

    else:

        id = request.args.get('id')
        customerId = request.args.get('customer_id')

    return render_template('inboxDelete.html',
                           title=unicode("确定删除", 'utf-8'),
                           id=id,
                           customer_id=customerId,
                           error=error)
예제 #4
0
파일: app.py 프로젝트: kikutou/tenso
def inboxIndex():

    id = request.args.get('id')
    customer = Customer(app).getCustomer(int(id))

    inboxData = Inbox(app).getInboxesByCustomerId(int(id))

    inboxData = {
        key: record
        for key, record in inboxData.iteritems()
        if record['status'] == 0 or record['status'] == 1
    }

    return render_template('inboxIndex.html',
                           title=unicode("入库箱信息", 'utf-8'),
                           customer=customer,
                           inboxData=inboxData)
예제 #5
0
파일: app.py 프로젝트: kikutou/tenso
def inboxEdit():

    error = None
    if request.method == 'POST':

        inboxId = request.form['id']

        customer_id = request.form['customer_id']
        staff_id = session.get('staff_id')
        name = request.form['name']
        memo = request.form['memo']
        length = request.form['length']
        width = request.form['width']
        height = request.form['height']
        weight = request.form['weight']
        data = {
            'name': name,
            'memo': memo,
            'length': length,
            'width': width,
            'height': height,
            'weight': weight,
            'customer_id': customer_id,
            'staff_id': staff_id,
            'status': 0
        }

        result = Inbox(app).saveInboxData(int(inboxId), data)
        if result:
            flash('入库箱更新成功')
            return redirect('/inboxIndex?id=' + customer_id)
        else:
            error = '入库箱更新失败'
    else:

        inboxId = request.args.get('id')

    inboxData = Inbox(app).getInboxData(int(inboxId))

    return render_template('inboxAdd.html',
                           title=unicode('入库箱追加', 'utf-8'),
                           customerId=inboxData['customer_id'],
                           inboxId=inboxId,
                           inbox=inboxData,
                           error=error)
예제 #6
0
파일: app.py 프로젝트: kikutou/tenso
def adminInbox():

    error = None

    date_from = ''
    date_to = ''
    name = ''
    status = ''

    if request.method == 'POST':
        date_from = request.form['date_from']
        date_to = request.form['date_to']
        name = request.form['name']
        status = request.form['status']

        where = {}
        if date_from:
            where['date_from'] = date_from + ' 00:00:00'
        if date_to:
            where['date_to'] = date_to + ' 23:59:59'
        if name:
            where['name'] = name
        if status:
            where['status'] = status

        if len(where) == 0:
            inboxData = Inbox(app).getInboxDataBySearch(None)
        else:
            inboxData = Inbox(app).getInboxDataBySearch(where)

    else:

        date_from = datetime.datetime.now().strftime("%Y-%m-%d 00:00:00")
        date_to = datetime.datetime.now().strftime("%Y-%m-%d 23:59:59")

        inboxData = Inbox(app).getInboxDataBySearch({
            'date_from': date_from,
            'date_to': date_to
        })

    newInboxData = {}

    for key, record in inboxData.items():
        staffId = record['staff_id']
        staff = Staff(app).getStaff(int(staffId))
        if staff:
            record['staff_name'] = staff['name']
        else:
            record['staff_name'] = '未设定'

        newInboxData[key] = record

    return render_template('adminInboxList.html',
                           title=unicode("入库箱管理", 'utf-8'),
                           error=error,
                           inboxData=newInboxData,
                           date_from=date_from[:10],
                           date_to=date_to[:10],
                           name=name,
                           status=status)
예제 #7
0
파일: app.py 프로젝트: kikutou/tenso
def outboxInboxSelect():

    customerId = request.args.get('id')

    customer = Customer(app).getCustomer(int(customerId))

    inboxData = Inbox(app).getInboxesByCustomerId(int(customerId))

    inboxData = {
        key: record
        for key, record in inboxData.iteritems()
        if record['status'] == 0 or record['status'] == 1
    }

    return render_template('outboxInboxSelect.html',
                           title=unicode("选择入库箱", 'utf-8'),
                           customer=customer,
                           inboxData=inboxData)
예제 #8
0
파일: app.py 프로젝트: kikutou/tenso
def itemAddSuccess():

    error = None

    if request.method == 'POST':
        inboxId = request.form['inbox_id']
        outboxId = request.form['outbox_id']

        if inboxId and not outboxId:
            Inbox(app).saveInboxData(int(inboxId), {'status': 2})
        elif not inboxId and outboxId:
            Outbox(app).saveOutboxData(int(outboxId), {'status': 1})
        else:
            error = '未知错误'

    inboxes = Inbox(app).getInboxDatas({
        'status': 1,
        'staff_id': session.get('staff_id')
    })

    if inboxes:
        inbox = inboxes[0]
        customerId = inbox['customer_id']
        customer = Customer(app).getCustomer(int(customerId))
        if not customer:
            error = '没有找到相应的顾客信息'

    outboxes = Outbox(app).getOutboxDatas({
        'status': 0,
        'staff_id': session.get('staff_id')
    })

    return render_template('itemAddSuccess.html',
                           title=unicode("货物添加成功", 'utf-8'),
                           error=error,
                           inboxes=inboxes,
                           customer=customer,
                           outboxes=outboxes)
예제 #9
0
파일: app.py 프로젝트: kikutou/tenso
def outboxIndex():

    customerId = request.args.get('customer_id')

    customer = Customer(app).getCustomer(int(customerId))

    inboxArray = Inbox(app).getInboxDatas({'status': 1})

    outboxData = Outbox(app).getOutboxesByCustomerId(int(customerId))
    outboxData = {
        key: record
        for key, record in outboxData.iteritems()
        if record['status'] == 0 or record['status'] == 1
    }

    return render_template('outboxIndex.html',
                           title=unicode("出库箱信息", 'utf-8'),
                           customer=customer,
                           inboxArray=inboxArray,
                           outboxData=outboxData)
예제 #10
0
파일: app.py 프로젝트: kikutou/tenso
def itemAdd():

    error = None

    if request.method == 'POST':
        '''
        手順:
        ①DBに商品情報を書き込む
        DBから試して、商品情報を取得する。
            あれば、更新
            なければ、追加

        ②DBに商品と入庫箱の関係テーブルを書き込む
        DBから、入庫箱IDと商品IDをセットにして、試して関係を取得する
            あれば、数目を更新する
            なければ、追加

        ③DBに商品と出庫箱の関係テーブルを書き込む
        DBから、出庫箱IDと商品IDをセットにして、試して関係を取得する
            あれば、数目を更新する
            なければ、追加
        '''
        #①DBに商品情報を書き込む
        #janコードを取得する。

        try:
            jancode = request.form['jan_code']
        except:
            jancode = ""

        try:

            itemNum = request.form['number']
            if not int(itemNum) or int(itemNum) == 0:
                error = unicode('数量不正确', 'utf-8')
        except:
            error = unicode('数量未选择', 'utf-8')

        try:
            inboxId = request.form['inbox']
        except:
            error = unicode('入库箱未选择', 'utf-8')

        #DBから商品情報を試して取得する。
        if not error:
            item = Item(app).getItem({'jan_code': jancode})

            data = {
                'jp_name': request.form['jp_name'],
                'en_name': request.form['en_name'],
                'cn_name': request.form['cn_name'],
                'unit_price': request.form['unit_price'],
                'memo': request.form['memo'],
                'country_of_origin': request.form['country_of_origin']
            }

            #商品のimageを取得する
            image_pic = request.files['item_image_pic']

            if image_pic and allowed_file(image_pic.filename):

                now_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
                filename = secure_filename(image_pic.filename)

                save_file_name = now_time + '_item_image_pic_' + filename
                data['item_image_pic'] = "/static/item_img/" + save_file_name
                #imageの保存
                image_pic.save(
                    os.path.join(app.config['ITEM_UPLOAD_FOLDER'],
                                 save_file_name))

            if item:

                itemId = item['id']

                #あれば、更新
                result = Item(app).saveItem(itemId, data)

            else:
                #なければ、追加
                if jancode == "":
                    jancode = Item(app).getLastJancode()
                    data['jan_code'] = jancode
                    data['no_code_flag'] = 1
                else:
                    data['jan_code'] = jancode

                result = Item(app).addItem(data)
                if not result:
                    error = unicode('商品添加失败', 'utf-8')

            #②DBに商品と入庫箱の関係テーブルを書き込む

            #DBから商品情報を試して取得する。
            item = Item(app).getItem({'jan_code': jancode})
            itemId = item['id']

            checkTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

            relInItem = RelInItem(app).getRelInItem({
                'in_box_id': inboxId,
                'item_id': itemId
            })

            if relInItem:
                relInItemId = relInItem['id']

                data = {
                    'check_time': checkTime,
                    'in_box_id': inboxId,
                    'item_id': itemId,
                    'item_num': int(itemNum) + int(relInItem['item_num'])
                }

                result = RelInItem(app).saveRelInItem(int(relInItemId), data)
                if not result:
                    error = unicode('商品添加失败', 'utf-8')
            else:

                data = {
                    'check_time': checkTime,
                    'in_box_id': inboxId,
                    'item_id': itemId,
                    'item_num': int(itemNum)
                }

                result = RelInItem(app).addRelInItem(data)
                if not result:
                    error = unicode('商品添加失败', 'utf-8')

            #②DBに商品と出庫箱の関係テーブルを書き込む
            outboxId = request.form['outbox']

            relOutItem = RelOutItem(app).getRelOutItem({
                'out_box_id': outboxId,
                'item_id': itemId
            })

            if relOutItem:
                relOutItemId = relOutItem['id']

                data = {
                    'check_time': checkTime,
                    'out_box_id': outboxId,
                    'item_id': itemId,
                    'item_num': int(itemNum) + int(relOutItem['item_num'])
                }

                result = RelOutItem(app).saveRelOutItem(
                    int(relOutItemId), data)
                if not result:
                    error = unicode('商品添加失败', 'utf-8')
            else:

                data = {
                    'check_time': checkTime,
                    'out_box_id': outboxId,
                    'item_id': itemId,
                    'item_num': int(itemNum)
                }

                result = RelOutItem(app).addRelOutItem(data)
                if not result:
                    error = unicode('商品添加失败', 'utf-8')

            if not error:
                flash(unicode('货物添加成功', 'utf-8'))
                return redirect("itemAddSuccess")
        else:

            return redirect("/itemAdd?error=" + error + "&jancode=")

    else:
        '''
        手順
         ①スマホで、アプリを使って、商品のJANコードを取得する。
         ②DBから商品情報を試して取得する。
            取得できれば、DBのテーブルの該当情報をページ上に表示する。
            取得できなければ、ウェブサイトから、商品情報を取得する。

        産地、入庫箱と出庫箱をDBから取得する

        ③取得された商品情報を手動で、補足する。
        ④入庫箱を選び
        ⑤出庫箱を選び
        ⑥情報をDBに反映する。
        '''
        error = request.args.get('error')

        #janコードを取得する。
        jancode = str(request.args.get('jancode'))

        #DBから商品情報を試して取得する。
        item = Item(app).getItem({'jan_code': jancode})

        if (item == 0):
            #取得できなければ、ウェブサイトから、商品情報を取得する。
            try:
                html = urllib.urlopen(
                    'http://www.janken.jp/goods/jk_catalog_syosai.php?jan=' +
                    jancode)
            except error as e:
                print e

            soup = BeautifulSoup(html.read(), "html.parser")

            itemTable = soup.select('table[summary="登録情報"]')[0]
            #商品の日本語名前
            itemNameJp = itemTable.find_all('tr')[0].find_all(
                'td')[1].h5.string
            #商品の参照単価
            price = itemTable.find_all('tr')[13].find_all('td')[1].string

            if price:
                price = price[1:]
            #商品の備考(分類)
            memo = itemTable.find_all('tr')[14].find_all('td')[1].string

            item = {
                'jan_code': jancode,
                'jp_name': itemNameJp,
                'unit_price': price,
                'memo': memo
            }

    madeInInfos = MadeInInfo(app).getMadeInInfos(None)
    inboxes = Inbox(app).getInboxDatas({
        'status': 1,
        'staff_id': session.get('staff_id')
    })
    if not inboxes:
        error = unicode('没有入库箱', 'utf-8')

    outboxes = Outbox(app).getOutboxDatas({
        'status': 0,
        'staff_id': session.get('staff_id')
    })
    if not outboxes:
        error = unicode('没有出库箱', 'utf-8')

    return render_template('itemAdd.html',
                           title=unicode("商品添加", 'utf-8'),
                           item=item,
                           madeInInfos=madeInInfos,
                           inboxes=inboxes,
                           outboxes=outboxes,
                           error=error)