Exemplo n.º 1
0
def tmp_save(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')
    if request.method == 'POST':
        id = request.POST.get('id', '')
        sku = request.POST.get('sku', '').replace('amp;', '')
        title = request.POST.get('title', '')
        customer_num = request.POST.get('customer_num', '')
        keywords = request.POST.get('keywords', '')
        send_time = request.POST.get('send_time', '')
        order_status = request.POST.get('order_status', '')
        content = request.POST.get('content', '')
        sku = sku.strip()
        if not id:
            obj = EmailTemplates()
            obj.id
            obj.order_status = int(order_status)
            obj.sku = sku
            obj.customer_num = customer_num
            obj.user_id = user.user.id
            obj.keywords = keywords
            obj.title = title
            obj.content = content
            obj.send_time = send_time
            obj.save()
            if obj.id:
                return HttpResponse(json.dumps({
                    'code': 1,
                    'msg': 'Work is Done!'
                }),
                                    content_type='application/json')
        else:
            id = int(id)
            re = EmailTemplates.objects.filter(id=id)
            if not re:
                return HttpResponse(json.dumps({
                    'code': 0,
                    'msg': 'Template is not exits!'
                }),
                                    content_type='application/json')
            i = re.update(sku=sku,
                          title=title,
                          content=content,
                          send_time=send_time,
                          order_status=order_status,
                          keywords=keywords,
                          customer_num=customer_num)
            if i:
                return HttpResponse(json.dumps({
                    'code': 1,
                    'msg': 'Work is Done!'
                }),
                                    content_type='application/json')
Exemplo n.º 2
0
def add_kit_sku(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '')
    type = request.GET.get('type', '')
    res = KitSkuRes.objects.all().order_by('-id', '-created')
    if not user.user.is_superuser:
        res = res.filter(user=user.user)
    if keywords:
        if type == 'kit':
            res = res.filter(kit__icontains=keywords)
        else:
            res = res.filter(sku__icontains=keywords)

    limit = request.GET.get('limit', 50)
    page = request.GET.get('page', 1)
    re_limit = limit
    total_count = len(res)
    total_page = round(len(res) / int(limit))
    if int(limit) >= total_count:
        limit = total_count
    if res:
        paginator = Paginator(res, limit)
        try:
            data = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            data = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            data = paginator.page(paginator.num_pages)
        data = {
            'data': data,
            'total_count': total_count,
            'total_page': total_page,
            're_limit': int(re_limit),
            'limit': int(limit),
            'page': page,
            'title': "Add KitSKU",
            'keywords': keywords,
            'type': type,
            'user': user
        }
    else:
        data = {
            'data': '',
            'total_count': total_count,
            'total_page': total_page,
            're_limit': int(re_limit),
            'limit': int(limit),
            'page': page,
            'title': "Add KitSKU",
            'keywords': keywords,
            'type': type,
            'user': user
        }
    return render(request, "Stocks/add_kit_sku/add_kit_sku.html", data)
Exemplo n.º 3
0
def import_sitem(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')
    if request.method == 'POST':
        myfile = request.FILES.get('myfile', '')
        if not myfile:
            return HttpResponse(json.dumps({
                'code': 0,
                'msg': u'File is empty!'
            }),
                                content_type='application/json')
        file_path = os.path.join(settings.BASE_DIR, settings.DOWNLOAD_URL,
                                 'excel_stocks', myfile.name)
        f = open(file_path, 'wb')
        for chunk in myfile.chunks():
            f.write(chunk)
        f.close()
        if not os.path.isfile(file_path):
            return HttpResponse(json.dumps({
                'code': 0,
                'msg': 'File is not found!'
            }),
                                content_type='application/json')
        data = xlrd.open_workbook(file_path)  # 打开fname文件
        data.sheet_names()  # 获取xls文件中所有sheet的名称
        table = data.sheet_by_index(0)  # 通过索引获取xls文件第0个sheet
        nrows = table.nrows
        msg = ''
        querylist = []
        for i in range(nrows):
            try:
                if i + 1 < nrows:
                    item = table.cell_value(
                        i + 1,
                        0,
                    )
                    chec = Sfps.objects.filter(item=item, user=user.user)
                    if chec:
                        msg += '第%s行已存在。<br>' % (i + 1)
                    else:
                        querylist.append(Sfps(item=item, user=user.user))
            except:
                msg += '第%s行添加有误。<br>' % (i + 1)
            continue
        if querylist:
            Sfps.objects.bulk_create(querylist)
        os.remove(file_path)
        return HttpResponse(json.dumps({
            'code': 1,
            'msg': msg
        }),
                            content_type='application/json')
Exemplo n.º 4
0
def checked_edit(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')
    if request.method == 'POST':
        id = int(request.POST.get('id', ''))
        qty = request.POST.get('qty', '')
        sku = request.POST.get('sku', '').replace('amp;', '')
        warehouse = request.POST.get('warehouse', '')
        type = request.POST.get('type', '')
        if id:
            res = WarehouseStocks.objects.filter(id=id)
            if not res:
                return HttpResponse(json.dumps({
                    'code': 0,
                    'msg': u'Data is not found!'
                }),
                                    content_type='application/json')
        if type == 'new':
            if id:
                i = res.update(qty=qty)
            else:
                obj = WarehouseStocks()
                obj.id
                obj.sku = sku
                obj.warehouse = warehouse
                obj.qty = qty
                obj.is_new = 0
                obj.save()
                i = obj.id
            if i:
                data = {
                    'user': user.user,
                    'fun': request.path,
                    'description': 'Sku:%s,QTY covered by %s.' % (sku, qty),
                }
            re_qty = qty
        else:
            qtys = res[0].qty - int(qty)
            i = res.update(qty=qtys)
            if i:
                data = {
                    'user': user.user,
                    'fun': request.path,
                    'description': 'Sku:%s,QTY lower %s.' % (res[0].sku, qty),
                }
            re_qty = qtys
        views.save_logs(data)
        return HttpResponse(json.dumps({
            'code': 1,
            'data': re_qty
        }),
                            content_type='application/json')
Exemplo n.º 5
0
def fba_transport(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    res = FbaTransportTask.objects.all().order_by('-id', '-created')
    for val in res:
        val.file_name = val.file_path.split('/')[-1]
    data = {'data': res, 'title': "FBA Transport", 'user': user}
    return render(request, "Stocks/sfp/fba_transport.html", data)
Exemplo n.º 6
0
 def __init__(self, t_name, queue, request=None):
     threading.Thread.__init__(self,name=t_name)
     self.data = queue
     self.t_name = t_name
     self.username = ''
     if request:
         user = App.get_user_info(request)
         if not user.user.is_superuser:
             self.username = user.user.username
Exemplo n.º 7
0
def update_kits(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        start_date = request.POST.get('start_date', '')
        start_date = start_date[0:10]
        get_kit_skus(start_date)
    return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}), content_type='application/json')
Exemplo n.º 8
0
    def export_qa(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")

        asin = self.GET.get('qa_asin', '')

        qa_max = Questions.objects.filter(asin=asin).aggregate(Max('created'))
        if not qa_max or not qa_max['created__max']:
            qa_max = Questions.objects.aggregate(Max('created'))
        question = Questions.objects.filter(
            asin=asin,
            created__icontains=qa_max['created__max'].strftime("%Y-%m-%d"))
        if not question:
            return HttpResponseRedirect("")

        data = []
        for q in question:
            answer = Answers.objects.filter(question_id=q.id)
            if answer:
                for val in answer:
                    re = {
                        'question': val.question.question,
                        'asin': val.question.asin,
                        'asked': val.question.asked,
                        'votes': val.question.votes,
                        'answer': val.answer,
                        'person': val.person,
                        'created': val.created.strftime("%Y-%m-%d %H:%M:%S")
                    }

                    data.append(re)
            else:
                re = {
                    'question': q.question,
                    'asin': q.asin,
                    'asked': q.asked,
                    'votes': q.votes,
                    'answer': '',
                    'person': '',
                    'created': q.created.strftime("%Y-%m-%d %H:%M:%S")
                }

                data.append(re)

        fields = [
            'Question', 'Asin', 'Asked', 'Votes', 'Answer', 'Answerer',
            'Create Date'
        ]

        data_fields = [
            'question', 'asin', 'asked', 'votes', 'answer', 'person', 'created'
        ]

        return get_excel_file(self, data, fields, data_fields)
Exemplo n.º 9
0
def del_check_order(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        id = request.POST.get('id','')
        obj = NoSendRes.objects.filter(id=id)
        if not obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'Data is not exits!'}), content_type='application/json')
        obj.delete()
        return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is Done!'}), content_type='application/json')
Exemplo n.º 10
0
 def delete_task_data(self):
     user = App.get_user_info(self)
     if not user:
         return HttpResponse(json.dumps({'code': 0, 'msg': '请登陆!'}), content_type='application/json')
     id = self.GET.get('task_id')
     if not id:
         return HttpResponse(json.dumps({'code': 0, 'msg': '数据有误!'}), content_type='application/json')
     task = Task.objects.get(id=id)
     if not task:
         return HttpResponse(json.dumps({'code': 0, 'msg': '数据不存在/被删除!'}), content_type='application/json')
     task.delete()
     return HttpResponse(json.dumps({'code': 1, 'data': 1}), content_type='application/json')
Exemplo n.º 11
0
def del_ads_data(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')

    if request.method == 'GET':
        id = request.GET.get('id', '')
        data_res = AdsData.objects.filter(id=id)
        type = data_res[0].type
        if type == 1:
            model = Inventory
        elif type == 2:
            model = BrandPerformance
        elif type == 3:
            model = BizReport
        elif type == 4:
            model = SearchTeam
        elif type == 5:
            model = Placement
        elif type == 6:
            model = AdvProducts
        elif type == 7:
            model = PurProduct
        elif type == 8:
            model = CampaignPla
        elif type == 9:
            model = KwdPla

        obj = model.objects.filter(user=data_res[0].user,
                                   account=data_res[0].account,
                                   type=data_res[0].type,
                                   range_type=data_res[0].range_type,
                                   year_str=data_res[0].year_str,
                                   month=data_res[0].month,
                                   week=data_res[0].week)
        if not obj:
            return HttpResponse(json.dumps({
                'code': 0,
                'msg': u'Data is not exist!'
            }),
                                content_type='application/json')
        obj.delete()
        change_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        data_res.update(change_time=change_time, user=user.user)
        return HttpResponse(json.dumps({
            'code': 1,
            'data': change_time
        }),
                            content_type='application/json')
Exemplo n.º 12
0
def send_email(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')

    if request.method == 'POST':
        data = request.POST.get('data')
        customer_num = request.POST.get('customer_num','')
        m_time = 0
        list_data = eval(data)
        user.customer_num = customer_num

        for i,val in enumerate(list_data):
            orders = OrderItems.objects.filter(order_id=val['order_id'], is_email=0, customer_num=customer_num)
            old_orders = OldOrderItems.objects.filter(order_id=val['order_id'], customer_num=customer_num)
            tmps = EmailTemplates.objects.filter(sku=val['sku'], customer_num=customer_num)
            if not user.user.is_superuser:
                tmps = tmps.filter(user_id=user.user.id)
                orders = orders.filter(user_id=user.user.id)
                old_orders = old_orders.filter(user_id=user.user.id)
            if orders and tmps and not old_orders:
                title = tmps[0].title
                if title:
                    if not title.find('%s') == -1:
                        title = title % val['order_id']
                if tmps[0].content and tmps[0].content.find('%s') == -1:
                    msg = tmps[0].content
                else:
                    msg = tmps[0].content % val['buyer']
                m_time += (3 + random.randint(7, 20))
                time_re = _get_send_time(tmps[0].send_time, m_time=m_time)
                tmp_res = [title, msg, user, val['email'], val['order_id'], val['sku'], val['buyer'], orders[0].payments_date,
                           orders[0].is_presale, orders[0].order_status, user.user_id, request.path]
                t = threading.Timer(float('%.1f' % time_re), send_email_as_tmp, tmp_res)
                t.start()
                email_order_obj = OldOrderItems()
                email_order_obj.id
                email_order_obj.user_id = user.user_id
                email_order_obj.order_id = val['order_id']
                email_order_obj.sku = val['sku']
                email_order_obj.customer_num = customer_num
                email_order_obj.email = val['email']
                email_order_obj.customer = val['buyer']
                email_order_obj.payments_date = orders[0].payments_date
                email_order_obj.is_presale = orders[0].is_presale
                email_order_obj.is_email = 1
                email_order_obj.send_date = datetime.now()
                email_order_obj.order_status = orders[0].order_status
                email_order_obj.save()
                if email_order_obj.id:
                    orders.delete()
        return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is Done!'}), content_type='application/json')
Exemplo n.º 13
0
    def export_radar(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")

        viewRange = self.GET.get('viewRange', '')
        asins = Dashboard._get_asins(self, user, ownership='Others',user_id=viewRange)
        res = Dashboard._get_activity_radar(self, asins,param=self.GET)
        if not self.GET.get('actBgn','') and not self.GET.get('actEnd',''):
            res = res[0:6]
        data = []
        if res:
            for val in res:
                re = {
                    'asin': val.asin,
                    'title': val.title,
                    'price': val.price,
                    'feature': val.feature,
                    'description': val.description,
                    'image_date': val.image_date.strftime('%Y-%m-%d'),
                    'image_names': val.image_thumbs,
                    'created': val.created,
                    'changed': val.changed,
                    'buy_box_res': val.buy_box_res
                }
                data.append(re)

            fields = [
                'Image Thumbs',
                'Title',
                'Asin',
                'Price',
                'Changed',
                'Feature',
                'Description',
                'Image Date',
                'Buy Box',
                'Created'
            ]
            data_fields = [
                'image_names',
                'title',
                'asin',
                'price',
                'changed',
                'feature',
                'description',
                'image_date',
                'buy_box_res',
                'created'
            ]
            return get_excel_file(self, data, fields, data_fields)
Exemplo n.º 14
0
def batch_del_contact(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        ids = eval(request.POST.get('data',''))
        if not ids:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'请选择要删除数据!'}), content_type='application/json')
        obj = EmailContacts.objects.filter(id__in=ids)
        if not obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'请求的数据不存在!'}), content_type='application/json')
        obj.delete()
        return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}), content_type='application/json')
Exemplo n.º 15
0
def barcode(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    res = Barcodes.objects.all().order_by('status', '-id', '-created')
    if not res:
        sync_date = '11/01/2019 10:15'
    else:
        sync_date = res[0].created.strftime('%m/%d/%Y %H:%M:%S')

    limit = request.GET.get('limit', 50)
    page = request.GET.get('page', 1)
    re_limit = limit
    total_count = len(res)
    total_page = round(len(res) / int(limit))
    if int(limit) >= total_count:
        limit = total_count
    if res:
        paginator = Paginator(res, limit)
        try:
            data = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            data = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            data = paginator.page(paginator.num_pages)
        data = {
            'data': data,
            'total_count': total_count,
            'total_page': total_page,
            're_limit': int(re_limit),
            'limit': int(limit),
            'page': page,
            'sync_date': sync_date,
            'title': "Barcode",
            'user': user
        }
    else:
        data = {
            'data': '',
            'total_count': total_count,
            'total_page': total_page,
            're_limit': int(re_limit),
            'limit': int(limit),
            'page': page,
            'sync_date': sync_date,
            'title': "Barcode",
            'user': user
        }
    return render(request, "Stocks/barcode/barcode.html", data)
Exemplo n.º 16
0
def order_save(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        id = request.POST.get('id','')
        sku = request.POST.get('sku','').replace('amp;','')
        if not id:
            obj = NoSendRes()
            obj.id
            obj.sku = sku
            obj.save()
            if obj.id:
                return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is Done!'}), content_type='application/json')
Exemplo n.º 17
0
def store_info(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/maxlead_site/login/")

    ordder_field = request.GET.get('ordder_field', 'created')
    order_desc = request.GET.get('order_desc', '-')
    data = []
    limit = request.GET.get('limit', 20)
    page = request.GET.get('page', 1)
    re_limit = limit
    total_count = 0
    total_page = 0

    if user.user.is_superuser or user.group.user.username == 'Landy' or user.group.user.username == 'admin' or user.user.username == 'Landy':
        data = StoreInfo.objects.all()
        if ordder_field:
            order_by_str = "%s%s" % (order_desc, ordder_field)
            data = data.order_by(order_by_str)
        if data:
            for val in data:
                val.created = val.created.strftime('%Y-%m-%d %H:%M:%S')

            total_count = len(data)
            total_page = round(len(data) / int(limit))
            if int(limit) >= total_count:
                limit = total_count
            if data:
                paginator = Paginator(data, limit)
                try:
                    data = paginator.page(page)
                except PageNotAnInteger:
                    # If page is not an integer, deliver first page.
                    data = paginator.page(1)
                except EmptyPage:
                    # If page is out of range (e.g. 9999), deliver last page of results.
                    data = paginator.page(paginator.num_pages)
    data = {
        'data': data,
        'total_count': total_count,
        'total_page': total_page,
        're_limit': int(re_limit),
        'limit': int(limit),
        'page': page,
        'user': user,
        'ordder_field': ordder_field,
        'order_desc': order_desc,
        'avator': user.user.username[0],
    }
    return render(request, 'fba_acodtask/store_info.html', data)
Exemplo n.º 18
0
def save_brand(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')

    if request.method == 'POST':
        id = request.POST.get('id','')
        brand = request.POST.get('brand','')
        brand = brand.upper()
        campaign_obj = AdsBrand.objects.filter(id=id)
        if not campaign_obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'数据不存在!'}), content_type='application/json')
        campaign_obj.update(brand=brand)
        return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}), content_type='application/json')
Exemplo n.º 19
0
def sfp_temp(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;','')
    res = SfpTemps.objects.all()
    if keywords:
        res = res.filter(Q(sfp_temp__contains=keywords) | Q(warehouse__contains=keywords))
    data = {
        'data': res,
        'title': "Sfp Temp",
        'user': user
    }
    return render(request, "Stocks/sfp/sfp_temp.html", data)
Exemplo n.º 20
0
    def export_k_rank(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")
        asin = self.GET.get('asin', '')
        krStartDate = self.GET.get('krStartDate',
                                   datetime.datetime.now().strftime("%Y-%m-1"))
        krEndDate = self.GET.get('krEndDate',
                                 datetime.datetime.now().strftime("%Y-%m-%d"))
        kwdCat = self.GET.get('kwdCat', '')

        ranks = CategoryRank.objects.filter(asin=asin, user_asin=asin)
        if kwdCat:
            ranks = ranks.filter(cat__icontains=kwdCat)
        if krStartDate:
            ranks = ranks.filter(created__gte=krStartDate)
        if krEndDate:
            ranks = ranks.filter(created__lte=krEndDate)

        data = []
        for v in ranks:
            re = {
                'asin': v.asin,
                'cat': v.cat,
                'keywords': v.keywords,
                'rank': v.rank,
                'is_ad': v.is_ad,
                'created': v.created.strftime("%Y-%m-%d %H:%M:%S"),
            }
            data.append(re)

        fields = [
            'Asin',
            'Cat',
            'Keywords',
            'Rank',
            'AD',
            'Created',
        ]
        data_fields = [
            'asin',
            'cat',
            'keywords',
            'rank',
            'is_ad',
            'created',
        ]
        if data:
            return get_excel_file(self, data, fields, data_fields)
Exemplo n.º 21
0
def branch_edit_tmp(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({
            'code': 66,
            'msg': u'login error!'
        }),
                            content_type='application/json')

    if request.method == 'POST':
        ids = eval(request.POST.get('data', ''))
        keywords = request.POST.get('keywords', '')
        title = request.POST.get('title', '')
        send_time = request.POST.get('send_time', '')
        status = request.POST.get('status', '')
        content = request.POST.get('content', '')
        update_fields = []
        if keywords:
            update_fields.append('keywords')
        if title:
            update_fields.append('title')
        if send_time:
            update_fields.append('send_time')
        if status:
            update_fields.append('order_status')
        if content:
            update_fields.append('content')
        for val in ids:
            try:
                obj = EmailTemplates()
                obj.id = int(val)
                if keywords:
                    obj.keywords = keywords
                if title:
                    obj.title = title
                if send_time:
                    obj.send_time = send_time
                if status:
                    obj.order_status = status
                if content:
                    obj.content = content
                obj.save(update_fields=update_fields)
            except:
                continue
        return HttpResponse(json.dumps({
            'code': 1,
            'msg': 'Work is Done!'
        }),
                            content_type='application/json')
Exemplo n.º 22
0
def index(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    user_id = request.GET.get('user_id', '')
    list = Menus.objects.all()
    user_list = User.objects.filter()
    index_user = user_list[0]
    if user_id:
        index_user = User.objects.get(id=user_id)
    role_list = Roles.objects.all()
    checked_role_code = 0
    checked_role_id = 0
    for val in role_list:
        val.is_checked = 0
        try:
            if val.code == index_user.userprofile.stocks_role:
                val.is_checked = 1
                checked_role_code = val.code
                checked_role_id = val.id
        except:
            continue
    role_menus = Menus.objects.filter(roles__id=checked_role_id)
    for val in user_list:
        val.is_checked = 0
        try:
            if val.userprofile.stocks_role == checked_role_code:
                val.is_checked = 1
        except:
            continue
    role_ids = []
    if role_menus:
        for val in role_menus:
            role_ids.append(val.elem_id)

    for val in list:
        val.is_checked = 0
        if val.elem_id in role_ids:
            val.is_checked = 1

    data = {
        'list': list,
        'user': user,
        'user_id': user_id,
        'user_list': user_list,
        'role_list': role_list,
        'title': 'Setting',
    }
    return render(request, "Stocks/settings/index.html", data)
Exemplo n.º 23
0
def stock_checked(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    data = []
    if request.method == 'POST':
        myfile = request.FILES.get('myfile', '')
        type = request.POST.get('type', '')
        file_path = os.path.join(settings.BASE_DIR, settings.DOWNLOAD_URL,
                                 'excel_stocks', myfile.name)
        f = open(file_path, 'wb')
        for chunk in myfile.chunks():
            f.write(chunk)
        f.close()
        res = read_excel_data(WarehouseStocks, file_path)
        if res:
            for val in res:
                re1 = {}
                re = WarehouseStocks.objects.filter(sku=val['sku'],
                                                    warehouse=val['warehouse'])
                is_same = ''
                if re:
                    if not re[0].qty == val['qty']:
                        is_same = 1
                    id = re[0].id
                    qty_old = re[0].qty
                else:
                    id = 0
                    qty_old = 0
                    is_same = 1
                re1.update({
                    'id': id,
                    'sku': val['sku'],
                    'warehouse': val['warehouse'],
                    'qty_old': qty_old,
                    'qty_new': val['qty'],
                    'is_same': is_same,
                })
                if type == 'new':
                    re1.update({'type': type})
                data.append(re1)
            os.remove(file_path)
        data = {
            'data': data,
            'user': user,
            'title': 'Inventory-Check',
            'type': type,
        }
    return render(request, "Stocks/stocks/stock_checked.html", data)
Exemplo n.º 24
0
def delete(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        id = request.POST.get('id','')
        obj = Employee.objects.filter(id=id)
        user_obj = User.objects.filter(id=obj[0].user_id)
        if not obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': u'Data already exists!'}),
                                content_type='application/json')
        if(obj.delete()):
            user_obj.delete()
            return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}),
                                content_type='application/json')
Exemplo n.º 25
0
def get_save_role_user(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        role_code = request.POST.get('role_code', '')
        user_ids = request.POST.get('user_ids', '')
        if user_ids:
            user_obj = UserProfile.objects.filter(stocks_role=role_code)
            user_obj.update(stocks_role='0')
            user_obj = UserProfile.objects.filter(user_id__in=eval(user_ids))
            if not user_obj:
                return HttpResponse(json.dumps({'code': 0, 'msg': 'User is not exits!'}), content_type='application/json')
            user_obj.update(stocks_role=role_code)
        return HttpResponse(json.dumps({'code': 1, 'msg': 'Work is done!'}), content_type='application/json')
Exemplo n.º 26
0
def get_menus_by_role(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        role_code = request.POST.get('role_code', '')
        menu_obj = Menus.objects.filter(roles__code=role_code)
        menu_ids = []
        if not menu_obj:
            return HttpResponse(json.dumps({'code': 1, 'data': {'menus': menu_ids}}),
                                content_type='application/json')
        for val in menu_obj:
            menu_ids.append(val.id)
        return HttpResponse(json.dumps({'code': 1, 'data': {'menus': menu_ids}}),
                            content_type='application/json')
Exemplo n.º 27
0
    def export_shuttle(self):
        user = App.get_user_info(self)
        if not user:
            return HttpResponseRedirect("/admin/maxlead_site/login/")

        asin = self.GET.get('shuttle_asin', '')
        tsStartDate = self.GET.get('tsStartDate', '')
        tsEndDate = self.GET.get('tsEndDate', '')
        listing = Listings.objects.filter(asin=asin).order_by('-created')
        if tsStartDate:
            listing = listing.filter(created__gte=tsStartDate)
        if tsEndDate:
            listing = listing.filter(created__gte=tsEndDate)
        data = []
        for v in listing:
            re = {
                'image_names': v.image_thumbs,
                'title': v.title,
                'asin': v.asin,
                'sku': v.sku,
                'description': v.description,
                'feature': v.feature,
                'buy_box': v.buy_box,
                'price': v.price,
                'total_review': v.total_review,
                'total_qa': v.total_qa,
                'rvw_score': v.rvw_score,
                'category_rank': v.category_rank,
                'inventory': v.inventory,
                'last_check':
                v.user_asin.last_check.strftime("%Y-%m-%d %H:%M:%S"),
                'created': v.created.strftime("%Y-%m-%d %H:%M:%S"),
                'image_date': v.image_date.strftime("%Y-%m-%d"),
            }
            data.append(re)

        fields = [
            'Image Names', 'Ttile', 'Asin', 'SKU', 'Description', 'Feature',
            'Buy Box', 'Price', 'Total Review', 'Total Qa', 'Rvw Score',
            'Category Rank', 'Inventory', 'Last Check', 'Created', 'Image Date'
        ]

        data_fields = [
            'title', 'asin', 'sku', 'description', 'feature', 'buy_box',
            'price', 'total_review', 'total_qa', 'rvw_score', 'category_rank',
            'inventory', 'last_check', 'created', 'image_date'
        ]
        return get_excel_file(self, data, fields, data_fields)
Exemplo n.º 28
0
def edit_children(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66, 'msg': u'login error!'}), content_type='application/json')
    if request.method == 'POST':
        child_employee = request.POST.get('child_employee', '')
        child_obj = Employee.objects.filter(parent_user=user.user_id)
        if child_obj:
            child_obj.update(parent_user=0)
        if child_employee:
            child_employees = Employee.objects.filter(id__in=eval(child_employee))
            if child_employees:
                child_employees.update(parent_user=user.user_id)

        return HttpResponse(json.dumps({'code': 1, 'msg': u'Successfully!'}),
                                content_type='application/json')
Exemplo n.º 29
0
def get_role_by_user(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponse(json.dumps({'code': 66}), content_type='application/json')
    if request.method == 'POST':
        user_id = request.POST.get('user_id', '')
        user_obj = User.objects.filter(id=user_id)
        if not user_obj:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'User is not exits!'}),
                                content_type='application/json')
        try:
            return HttpResponse(json.dumps({'code': 1, 'data': {'role_code': user_obj[0].userprofile.stocks_role}}),
                                    content_type='application/json')
        except:
            return HttpResponse(json.dumps({'code': 0, 'msg': 'User/role is not exits!'}),
                                content_type='application/json')
Exemplo n.º 30
0
def logs(request):
    user = App.get_user_info(request)
    if not user:
        return HttpResponseRedirect("/admin/max_stock/login/")
    keywords = request.GET.get('keywords', '').replace('amp;', '')
    res = StockLogs.objects.all().order_by('-created')
    if keywords:
        res = res.filter(
            Q(fun__contains=keywords) | Q(user__username__contains=keywords)
            | Q(description__contains=keywords))
    data = {
        'data': res,
        'title': "Logs",
        'user': user,
    }
    return render(request, "Stocks/users_sku/logs.html", data)