Esempio n. 1
0
def icw_list(request):
    franchise_email = ''
    franchise_list = ''
    franc_pagination = ''
    error = ''
    start_sr_number = ''
    franc_list_per_page = 10
    
    net_details = save_franc_network_in_dict(request)
    
    if 'is_network' in net_details and net_details['is_network']:
        if 'franchise_email' in request.POST:
            franchise_email = request.POST['franchise_email']
            franchise_list = Franchise.objects.select_related('user','network').filter(user__email=franchise_email)
            if not franchise_list:
                franchise_list = Franchise.objects.select_related('user','network').filter(user__username=franchise_email)
                if not franchise_list:
                    error = 'ICW not found'
        else:
            franc_list_page_no = request.GET.get('page',1)
            franc_list_page_no = int(franc_list_page_no)
            network_francs_total = Franchise.objects.filter(network=net_details['network'])
            total_francs = network_francs_total.count()
            total_pages_for_franc = int(math.ceil(Decimal(total_francs)/Decimal(franc_list_per_page)))
            franc_pagination = utils.getPaginationContext(franc_list_page_no, total_pages_for_franc, '')        
            startOrderIndex_franc = (franc_list_page_no-1) * franc_list_per_page
            franchise_list = Franchise.objects.select_related('network').filter(network=net_details['network'])[startOrderIndex_franc : startOrderIndex_franc + franc_list_per_page]
            if not franchise_list:
                error = 'Franchises not found'
            else:
                start_sr_number = franc_list_per_page * (franc_list_page_no-1)
    else:
        return HttpResponseRedirect('/accounts/login/')
    return render_to_response('performance/icw_list.html',
        {
            'request':request,
            'error' : error,
            'net_details':net_details,
            'franchise_email':franchise_email,
            'franchise_list':franchise_list,
            'pagination':franc_pagination,
            'start_sr_number':start_sr_number,
            'tab':2,
        },
        context_instance=RequestContext(request))
Esempio n. 2
0
def icw_catalog(request):
    net_details = save_franc_network_in_dict(request)
    commision_on= []
    pagination = {}
    sku = ''
    error = ''
    show_add_product = False
    items_per_page = 10
    
    if 'is_franchise' in net_details and net_details['is_franchise']:
        try:
            franc_role = Franchise.objects.get(id = net_details['franchise'].id)
            if franc_role.role == 'fb':
                show_add_product = True
        except Franchise.DoesNotExist:
            pass
    
    if 'is_network' in net_details and 'is_franchise' in net_details and (net_details['is_network'] or net_details['is_franchise']):
        if 'sku' in request.POST:
            sku = request.POST['sku'].strip()
            if not sku:
                error = 'Please enter order id'
            else:
                commision_on = CommisionOn.objects.select_related('seller_rate_chart', 'product', 'commision').filter(network = net_details['network'], seller_rate_chart__sku = sku)
                if not commision_on:
                    error = 'Product not found with SKU "%s"'%sku
        else:
            try:
                commision_on = CommisionOn.objects.filter(network = net_details['network'] )
                total_results = commision_on.count()
                
                if total_results and total_results > 0:
                    try:
                        page_no = request.GET.get('page',1)
                        page_no = int(page_no)
                        total_pages = int(math.ceil(Decimal(total_results)/Decimal(items_per_page)))
                        pagination = utils.getPaginationContext(page_no, total_pages, '')
                        startOrderIndex = (page_no-1) * items_per_page
                        commision_on = CommisionOn.objects.select_related('seller_rate_chart', 'product', 'commision').filter(network = net_details['network'])[startOrderIndex : startOrderIndex + items_per_page]
                    except Exception,e:
                        log.exception('Exception while itz product history: %s' % repr(e))
                        pass
                else:
                    error = 'No Itz products found'
Esempio n. 3
0
def testimonials(request):
    _client = request.client.client
    testimonials = Feedback.objects.filter(client=_client,type="testimonial").order_by('-id')
    page_no = request.GET.get('page',1)
    page_no = int(page_no)
    items_per_page = 10
    total_results = len(testimonials)
    total_pages = int(math.ceil(Decimal(total_results)/Decimal(items_per_page)))
    pagination = utils.getPaginationContext(page_no, total_pages, '')
    pagination['result_from'] = (page_no-1) * items_per_page
    pagination['result_to'] = utils.ternary(page_no*items_per_page > total_results, total_results, page_no*items_per_page)
    testimonials = testimonials[:int(pagination['result_to'])]
    testimonials = testimonials[int(pagination['result_from']):]
    pagination['result_from'] = pagination['result_from'] + 1
    return render_to_response('web/home/detail_testimonials.html',
            {
                'testimonials':testimonials,
                'pagination':pagination,
                'total_results':total_results
            },
            context_instance=RequestContext(request))
Esempio n. 4
0
File: home.py Progetto: daasara/riba
def testimonials(request):
    _client = request.client.client
    testimonials = Feedback.objects.filter(client=_client,
                                           type="testimonial").order_by('-id')
    page_no = request.GET.get('page', 1)
    page_no = int(page_no)
    items_per_page = 10
    total_results = len(testimonials)
    total_pages = int(
        math.ceil(Decimal(total_results) / Decimal(items_per_page)))
    pagination = utils.getPaginationContext(page_no, total_pages, '')
    pagination['result_from'] = (page_no - 1) * items_per_page
    pagination['result_to'] = utils.ternary(
        page_no * items_per_page > total_results, total_results,
        page_no * items_per_page)
    testimonials = testimonials[:int(pagination['result_to'])]
    testimonials = testimonials[int(pagination['result_from']):]
    pagination['result_from'] = pagination['result_from'] + 1
    return render_to_response('web/home/detail_testimonials.html', {
        'testimonials': testimonials,
        'pagination': pagination,
        'total_results': total_results
    },
                              context_instance=RequestContext(request))
Esempio n. 5
0
def itz_account(request):
    error = ''
    network_commision = ''
    franchise_commision = ''
    order_id = ''
    sort_option ='time'
    asc_or_desc = 'desc'
    date_range = False
    from_date = ''
    to_date = ''
    pagination = {}
    items_per_page = 10
    search_trend= ''
    show_excel_option = False
    save_excel = request.GET.get('excel', False)
    
    net_details = save_franc_network_in_dict(request)
    
    if not 'is_network' in net_details or not 'is_franchise' in net_details:
        return HttpResponseRedirect('/accounts/login/')
    elif net_details['is_network']:
        show_excel_option = True
    
    if 'order_id' in request.POST:
        order_id = request.POST['order_id'].strip()
        if not order_id or order_id =='Enter Order Id':
            error = 'Please enter order id'
        elif net_details['is_network'] or net_details['is_franchise'] or net_details['network']:
            try:
                franchise_commision = FranchiseOrder.objects.select_related('user', 'order','franchise').filter(order__reference_order_id=order_id).order_by('-order__timestamp')
                if not franchise_commision:
                    error = 'No order found with order id "%s"'%order_id
                if net_details['is_network']:
                    network_commision = franchise_commision
            except:
                pass
    else:
        if ('from' in request.GET and 'to' in request.GET) or 'search_trend' in request.GET:
            date_range = True
            sort_by_text = 'order__timestamp'
            asc_or_desc_sign = '-'
            asc_or_desc = 'desc'
            if 'search_trend' in request.GET:
                search_trend = request.GET.get('search_trend')
                if search_trend == 'day':
                    from_date, to_date = datetime.strptime( str(datetime.now().date()),'%Y-%m-%d' ), datetime.strptime( str(datetime.now().date()),'%Y-%m-%d' )
                elif search_trend == 'week':
                    from_date, to_date = datetime.strptime( str(datetime.now().date()),'%Y-%m-%d' )+timedelta(days=-7), datetime.strptime( str(datetime.now().date()),'%Y-%m-%d' )
                elif search_trend == 'mtd':
                    first_day = str(datetime.now().date()).replace( str(datetime.now().date())[-2:] ,'01')
                    from_date, to_date = datetime.strptime( first_day,'%Y-%m-%d' ), datetime.strptime( str(datetime.now().date()),'%Y-%m-%d' )

            elif 'from' in request.GET and 'to' in request.GET:
                if not request.GET.get('from') or not request.GET.get('to'):
                    error = 'Please select date range correctly'
                try:
                    from_date, to_date = datetime.strptime(request.GET.get('from','time'),'%d %b %Y'), datetime.strptime(request.GET.get('to','time'),'%d %b %Y')
                except:
                    date_range = False
            
        if not date_range and 'sort_option' in request.GET:
            sort_option = request.GET.get('sort_option','time')
            if sort_option == 'time':
                sort_by_text = 'order__timestamp'
            elif sort_option == 'order_value':
                sort_by_text = 'order__payable_amount'
            elif sort_option == 'icw_name':
                sort_by_text = 'franchise__user__email'
            elif sort_option == 'customer':
                sort_by_text = 'order__user__email'            
            elif sort_option == 'commission':
                if net_details['is_franchise']:
                    sort_by_text = 'franc_commission_amnt'
                elif net_details['is_network']:
                    sort_by_text = 'network_commission_amnt'
            elif sort_option == 'status':
                sort_by_text = 'order__state'
            else:
                sort_by_text = 'order__timestamp'
        else:
            sort_by_text = 'order__timestamp'
        
        if not date_range and 'asc_or_desc' in request.GET:
            asc_or_desc = request.GET.get('asc_or_desc','desc')
            if asc_or_desc == 'asc':
                asc_or_desc_sign = ''
            else:
                asc_or_desc_sign = '-'
        else:
            asc_or_desc_sign = '-'
        
        if net_details['is_network'] or net_details['is_franchise'] or net_details['network']:
            if date_range:
                if net_details['is_network']:
                    network_francs = Franchise.objects.filter(network = net_details['network'])
                    network_commision = FranchiseOrder.objects.filter(franchise__in=( network_francs ), order__timestamp__lte=to_date+timedelta(days=1), order__timestamp__gte=from_date)
                    total_results = network_commision.count()
                elif net_details['is_franchise']:
                    franchise_commision = FranchiseOrder.objects.filter(franchise=net_details['franchise'], order__timestamp__lte=to_date+timedelta(days=1), order__timestamp__gte=from_date)
                    total_results = franchise_commision.count()
                    
            elif net_details['is_network']:
                network_francs = Franchise.objects.filter(network = net_details['network'])
                network_commision = FranchiseOrder.objects.filter(franchise__in=( network_francs )).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))
                total_results = network_commision.count()
            elif net_details['is_franchise']:
                franchise_commision = FranchiseOrder.objects.filter(franchise=net_details['franchise']).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))
                total_results = franchise_commision.count()
            
            if total_results and total_results > 0 and not save_excel:
                try:
                    page_no = request.GET.get('page',1)
                    page_no = int(page_no)
                    
                    total_pages = int(math.ceil(Decimal(total_results)/Decimal(items_per_page)))
                    pagination = utils.getPaginationContext(page_no, total_pages, '')
                    startOrderIndex = (page_no-1) * items_per_page
                    
                    if date_range:
                        if net_details['is_network']:
                            network_commision = FranchiseOrder.objects.select_related('user', 'order', 'franchise','network').filter(franchise__in=( network_francs ), order__timestamp__lte=to_date+timedelta(days=1), order__timestamp__gte=from_date).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))[startOrderIndex:startOrderIndex+items_per_page]
                        elif net_details['is_franchise']:
                            franchise_commision = FranchiseOrder.objects.select_related('user', 'order','franchise').filter(franchise=net_details['franchise'], order__timestamp__lte=to_date+timedelta(days=1), order__timestamp__gte=from_date).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))[startOrderIndex:startOrderIndex+items_per_page]
                    
                    elif net_details['is_network']:
                        network_commision = FranchiseOrder.objects.select_related('user', 'order', 'franchise','network').filter(franchise__in=( network_francs )).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))[startOrderIndex:startOrderIndex+items_per_page]
                    elif net_details['is_franchise']:
                        franchise_commision = FranchiseOrder.objects.select_related('user', 'order','franchise').filter(franchise=net_details['franchise']).order_by('%s%s'%(asc_or_desc_sign, sort_by_text))[startOrderIndex:startOrderIndex+items_per_page]
                except Exception,e:
                    log.exception('Exception while rendering order history: %s' % repr(e))
                    pass
            elif save_excel:
                pass
            else:
                error= 'No orders placed'
        else:
Esempio n. 6
0
def ifs_actions(request, selected_table, selected_action):
    title_table = selected_table.replace('_',' ')
    table_dict = ifs_table_action_map()
    content_list = []
    url = request.get_full_path()
    header_list = []
    display_list = []
    #When it enters the view for first time, flag is new
    flag = 'new' 
    content = {}    
    entries = 100
    pincode = ""
    zipgroup_code = ""
    lsp_code = ""
    article_id = ""
    prod_grp = "" 
    dc_code = ""
    pagination = {}
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    if selected_action.lower() == 'view':
        
        if selected_table.lower() == 'lsp_master':
             content_list, header_list = lsp_view(selected_action, content)
        elif selected_table == 'DC_Master':
             content_list, header_list = dc_view(selected_action, content)
        elif selected_table == 'DC_Zipgroup_LSP_Local_Ship':
             content_list, header_list = dc_local(selected_action, content)
        elif selected_table == 'Zipgroup_LSP_Map':
             content_list, header_list = zip_lsp(selected_action, content)
        elif selected_table == 'Pincode_Zipgroup_Map':
            count = PincodeZipgroupMap.objects.count()
            pincode = request.POST.get("pincode", "")
            lsp_code = request.POST.get("lsp_code", "")
            zipgroup_code = request.POST.get("zipgroup_code", "")
            params_dict = {'page':page, 'pincode':pincode, 'lsp_code':lsp_code, 'zipgroup_code':zipgroup_code }
            content_list, header_list = pin_zip(selected_action, content, params_dict)
            if not pincode and not lsp_code and not zipgroup_code:    
                paginator = Paginator(content_list, 1) # Show 30 items per page
                base_url = request.get_full_path()
                page_pattern = re.compile('[&?]page=\d+')
                base_url = page_pattern.sub('',base_url)
                page_pattern = re.compile('[&?]per_page=\d+')
                base_url = page_pattern.sub('',base_url)
                if base_url.find('?') == -1:
                    base_url = base_url + '?'
                else:
                    base_url = base_url + '&'
                pagination = getPaginationContext(page, (count/entries + 1), base_url) 
                try:
                   display_list = paginator.page(page)
                except (EmptyPage, InvalidPage):
                   display_list = paginator.page(paginator.num_pages)
        elif selected_table == 'ProductGroup_Master':
             content_list, header_list = prod_grp_view( selected_action, content)
        elif selected_table == 'Article_ProductGroup_Map':
             count = ArticleProductgroup.objects.count()
             article_id = request.POST.get("article_id", "")
             prod_grp = request.POST.get("prod_grp", "")
             params_dict = {'page':page, 'prod_grp':prod_grp, 'article_id':article_id, }
             content_list, header_list = article_prod_grp( selected_action, content, params_dict)
             if not article_id and not prod_grp:
                 paginator = Paginator(content_list, 1) # Show 30 items per page
                 base_url = request.get_full_path()
                 page_pattern = re.compile('[&?]page=\d+')
                 base_url = page_pattern.sub('',base_url)
                 page_pattern = re.compile('[&?]per_page=\d+')
                 base_url = page_pattern.sub('',base_url)
                 if base_url.find('?') == -1:
                     base_url = base_url + '?'
                 else:
                     base_url = base_url + '&'
                
                 pagination = getPaginationContext(page, (count/entries + 1), base_url) 
                 try:
                    display_list = paginator.page(page)
                 except (EmptyPage, InvalidPage):
                    display_list = paginator.page(paginator.num_pages)
        elif selected_table == 'DC_Zipgroup_LSP_Map':
             count = LspDeliveryChart.objects.count()
             dc_code = request.POST.get("dc_code", "")
             lsp_code = request.POST.get("lsp_code", "")
             zipgroup_code = request.POST.get("zipgroup_code", "")
             params_dict = {'page':page, 'dc_code':dc_code, 'lsp_code':lsp_code, 'zipgroup_code':zipgroup_code }
             content_list, header_list = delv_chart(selected_action, content, params_dict)
             if not dc_code and not lsp_code and not zipgroup_code:    
                 paginator = Paginator(content_list, 1) # Show 30 items per page
                 base_url = request.get_full_path()
                 page_pattern = re.compile('[&?]page=\d+')
                 base_url = page_pattern.sub('',base_url)
                 page_pattern = re.compile('[&?]per_page=\d+')
                 base_url = page_pattern.sub('',base_url)
                 if base_url.find('?') == -1:
                     base_url = base_url + '?'
                 else:
                     base_url = base_url + '&'
                
                 pagination = getPaginationContext(page, (count/entries + 1), base_url) 
                 try:
                    display_list = paginator.page(page)
                 except (EmptyPage, InvalidPage):
                    display_list = paginator.page(paginator.num_pages)
        
        return render_to_response('ifs/ifs_view.html',
            {
             'title_table':title_table,
             'lsp_code':lsp_code,
             'zipgroup_code':zipgroup_code,
             'pincode':pincode,
             'article_id':article_id,
             'prod_grp':prod_grp,
             'dc_code':dc_code,  
             'pagination':pagination,        
             'selected_action':selected_action,
             'display_list':display_list,
             'header_list':header_list,
             'content_list':content_list,
            },
            context_instance=RequestContext(request))   
    
    elif selected_action.lower() == 'update' or selected_action.lower() == 'insert' or selected_action.lower() == 'delete':
        from web.sbf_forms import FileUploadForm
        errors, message = [], None
        consolidated_updates = None
        form = None
        flag = None
        to_update = None
        path_to_save = None

        if request.method == 'POST':
            if request.POST.get("upload") == 'Upload':
                import xlrd
                form = FileUploadForm(request.POST, request.FILES)
                if form.is_valid():
                    path_to_save = save_uploaded_file(request.FILES['status_file'])
                    errors, consolidated_updates = get_ifs_updates(request, path_to_save, selected_table, selected_action, False)
                    if not errors:
                        flag = 'updated'
                    else:
                        flag='upload_errors'
                else:
                    errors.append(['Please select the excel file and then click upload!!!'])
                    form = FileUploadForm()
                    flag = 'new'

        else:
            form = FileUploadForm()
            flag = 'new'
            
        ifs_dict = {
            'forms' : form,
            'errors' : errors,
            'consolidated_updates' : consolidated_updates,
            'flag' : flag,
            'path_to_save' : path_to_save,
            'title_table':title_table,
            'selected_action':selected_action,
            #'header_list':header_list,
            #'content_list':content_list,
            }
        return render_to_response('ifs/ifs_upload.html', ifs_dict, context_instance=RequestContext(request))