Решение зкономико-математических задач

Автор работы: Пользователь скрыл имя, 24 Марта 2014 в 15:24, дипломная работа

Краткое описание

Целью работы является разработка, создание и внедрение Интернет-магазина «Дом моды 8 Марта». Объектом исследования является деятельность ООО «Швейная фабрика 8 марта». Предметом исследования является процесс разработки и внедрения интернет-магазина «Дом моды 8 марта».
Для достижения поставленной цели необходимо выполнить следующие задачи:
1. Выявить и охарактеризовать существующие бизнес-процессы в организации
2. Дать обоснование по выбранным техническим инструментам.

Содержание

Введение 4
1. Аналитическая часть 7
1.1 Характеристика предприятия. 7
1.2 Экономическая сущность задачи 8
1.3 Обоснование необходимости и цели использования вычислительной техники для решения задачи. 9
1.4 Постановка задачи 10
1.4.1 Цель и назначение автоматизированного варианта решения задачи 10
1.4.2 Общая характеристика организации решения задачи на ЭВМ 10
1.5. Анализ интернет-представительств других предприятий данной отрасли 13
1.6. Обоснование проектных решений. 16
1.6.1 Обоснование проектных решений по техническому обеспечению 17
1.6.2 Обоснование проектных решений по информационному обеспечению 18
1.6.3 Обоснование проектных решений по программному обеспечению 19
1.7. Выбор политики рекламы сайта при его размещении в Интернет 22
2. Проектная часть 24
2.1 Информационное обеспечение задачи 24
2.1.1. Информационная модель и её описание 24
2.2.2. Используемые классификаторы и системы кодирования 25
2.2.3. Характеристика нормативно-справочной и входной оперативной информации 26
2.2.4 Характеристика результатной информации 28
2.2.5 Характеристика базы данных 31
2.3 Программное обеспечение задачи 35
2.3.1. Общие положения 35
2.3.2. Структура сайта, состав и типы используемых файлов 36
2.3.3. Описание программных модулей 37
2.3.4. Описание интерфейса 38
2.4.1. Организация процесса информационной поддержки сайта 39
2.4.2. Тестирование сайта, размещение его в сети, информирование общественности о существовании сайта 39
3. Обоснование экономической эффективности проекта 44
3.1 Выбор и обоснование методики расчёта экономической эффективности 44
3.2 Расчет показателей экономической эффективности проекта 48
Заключение 55
Список сокращений 57
Глоссарий 58
Список литературы 59

Вложенные файлы: 1 файл

Patsiansky_diplom_v1_0.docx

— 563.37 Кб (Скачать файл)

        'NAME': rel(DATABASE_NAME), # Or path to database file if using sqlite3.

        'USER': '', # Not used with sqlite3.

        'PASSWORD': '', # Not used with sqlite3.

        'HOST': '', # Set to empty string for localhost. Not used with sqlite3.

        'PORT': '', # Set to empty string for default. Not used with sqlite3.

    }

}

 

 

STATICFILES_DIRS = (

        # for admin_tools

        ('admin_tools', '/usr/lib/python2.7/site-packages/django_admin_tools-0.4.1-py2.7.egg/admin_tools/media/admin_tools/'),

        # for tinymce

        #('tiny_mce', '/usr/lib/python2.7/site-packages/tinymce/media/tiny_mce/'),

 

        # static files

        ('css', rel('static/css')),

        ('js', rel('static/js')),

        ('images', rel('static/images')),

 

        # temporary

        ('fancybox', rel('static/fancybox')),

)

 

 

# tinymce

#TINYMCE_JS_URL = 'http://debug.example.org/tiny_mce/tiny_mce_src.js'

#TINYMCE_DEFAULT_CONFIG = {

#    'plugins': "table,paste,searchreplace",

#    'theme': "advanced",

#    'theme_advanced_layout_manager': "SimpleLayout",

#    'theme_advanced_toolbar_location': "top",

#    'theme_advanced_buttons1' : 'bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,forecolor,backcolor,separator, fontselect, fontsizeselect',

#}

#TINYMCE_SPELLCHECKER = False

#TINYMCE_COMPRESSOR = True

 

 

# debug-toolbar

INTERNAL_IPS = ('127.0.0.1',)

DEBUG_TOOLBAR_PANELS = (

    'debug_toolbar.panels.version.VersionDebugPanel',

    'debug_toolbar.panels.timer.TimerDebugPanel',

    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',

    'debug_toolbar.panels.headers.HeaderDebugPanel',

    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',

    'debug_toolbar.panels.template.TemplateDebugPanel',

    'debug_toolbar.panels.sql.SQLDebugPanel',

    'debug_toolbar.panels.signals.SignalDebugPanel',

    'debug_toolbar.panels.logger.LoggingPanel',

)

DEBUG_TOOLBAR_CONFIG = {

        'INTERCEPT_REDIRECTS': False,

}

 

 

Настройки диспатчера ссылок «urls.py»

 

# -*- coding: utf8 -*-

 

from django.conf.urls.defaults import patterns, include, url

from django.conf.urls.static import static

 

from django.shortcuts import get_list_or_404

 

from django.conf import settings

from django.http import Http404

 

from rollyourown.seo.admin import register_seo_admin

 

from django.contrib import admin

from django.contrib.sitemaps import Sitemap

from django.contrib.sitemaps import FlatPageSitemap

from django.views.generic.base import TemplateView

admin.autodiscover()

 

from django.views.generic import ListView, DetailView

 

from django.db.models.query import QuerySet

 

from catalog.models import Product, Order

from eshop_seo.seo import MyMetadata

 

from registration.forms import RegistrationFormUniqueEmail

from django import forms

 

from news.models import NewsEntry

 

register_seo_admin(admin.site, MyMetadata)

 

class NewsSitemap(Sitemap):

    changefreq = "weekly"

    priority = 0.5

 

    def items(self):

        return NewsEntry.objects.filter()

 

    def lastmod(self, obj):

        return obj.created

 

sitemaps = {

    'news': NewsSitemap,

    'flatpages': FlatPageSitemap,

}

 

class RobotsView(TemplateView):

    '''

    Serves /robots.txt without Apache configuration modification.

    '''

    template_name = 'robots.txt'

    def render_to_response(self, context, **kwargs):

        return super(TemplateView, self).render_to_response(context,

            content_type='text/plain',

            **kwargs)

 

class SalesByTimeConfigView(TemplateView):

    template_name = 'salesbytime_cfg.html'

 

    def get_context_data(self, **kwargs):

        context = super(SalesByTimeConfigView, self).get_context_data(**kwargs)

        context['status_types'] = Order.STATUS_TYPES

        return context

 

 

class CustomRegistrationForm(RegistrationFormUniqueEmail):

    attrs_dict = { 'class': 'required' }

    username = forms.RegexField(regex=r'^\w+$',

                                max_length=30,

                                widget=forms.TextInput(attrs=attrs_dict),

    email = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict,

                                                               maxlength=75)),

                             label=(u'E-mail *'))

    password1 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False),

                                label=(u'Введите пароль*'))

    password2 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False),

                                label=(u'Введите пароль еще раз *'))

 

class SeachByArtikulListView(ListView):

    context_object_name = "products"

    template_name = "all_products.html"

 

    def get_queryset(self):

        artikul = self.request.GET.get('s', '')

        return Product.objects.filter(artikul__icontains=artikul).order_by('-date')

 

class FilterProductsListView(ListView):

    context_object_name = "products"

    template_name = "all_products.html"

 

    def get_queryset(self):

        product_type = self.request.GET.get('product_type', '')

        metal = self.request.GET.get('metal', '')

        vstavka = self.request.GET.get('vstavka', '')

        price_id = self.request.GET.get('price_id', '')

        sort = self.request.GET.get('sort', '')

        exists = self.request.GET.get('exists', '')

 

        q = QuerySet(model=Product)

 

        if product_type:

            q = q.filter(type=int(product_type))

 

        if metal:

            q = q.filter(metal=metal)

 

        if vstavka:

            q = q.filter(vstavka=vstavka)

 

        if exists:

            if exists == 'on':

                q = q.filter(exists=True)

            else:

                q = q.filter(exists=False)

 

        if sort:

            if sort == 'inc':

                return q.order_by('price')

            else:

                return q.order_by('-price')

 

        s = q.order_by('-date').all()

 

        result = list(s)

 

        if price_id:

            price_id = int(price_id)

            if price_id == 1:

                result = [x for x in result if x.full_price() <= 2000.0]

            elif price_id == 2:

                result = [x for x in result if x.full_price() > 2000.0 and x.full_price() <= 5000.0]

            elif price_id == 3:

                result = [x for x in result if x.full_price() > 5000.0 and x.full_price() <= 10000.0]

            elif price_id == 4:

                result = [x for x in result if x.full_price() > 10000.0 and x.full_price() <= 20000.0]

            elif price_id == 5:

                result = [x for x in result if x.full_price() > 20000.0 and x.full_price() <= 50000.0]

            elif price_id == 6:

                result = [x for x in result if x.full_price() > 50000.0]

 

        return result

 

class ShowAllProductsListView(ListView):

    queryset = Product.objects.order_by('-date')

    context_object_name = 'products'

    template_name = 'all_products.html'

 

class ProductTypeListView(ListView):

    ''' views specified type of product only

    '''

    context_object_name = "products"

    template_name = "all_products.html"

 

    def get_queryset(self):

        return get_list_or_404(Product.objects.order_by('-date'), type__name=self.kwargs['name'])

#        return Product.objects.filter(type__name=self.kwargs['name']).order_by('-date')

 

urlpatterns = patterns('',

#     url(r'^$', 'eshop.views.home', name='home'),

    # show all products on main page

    url(r'^$',

        ShowAllProductsListView.as_view(),

        name='show_all_products'),

    url(r'^product/(?P<pk>\d+)/$',

        DetailView.as_view(

           model=Product,

           context_object_name='product',

           template_name='product.html'

           ),

        name='show_product_by_id'),

    # search by artikul

    url(r'^search/',

        SeachByArtikulListView.as_view(),

        name='search_product_by_artikul'),

    url(r'^filter/',

        FilterProductsListView.as_view(),

        name='filter_products'),

    # admin site

    url(r'^admin/', include(admin.site.urls)),

    # news

    url(r'^news/', include('news.urls')),

    # sendmail

    url(r'^sendmail/', include('sendmail.urls')),

    # show products by type

    url(r'^show/(?P<name>\w+)/', ProductTypeListView.as_view()),

 

    # registration url

#    url(r'^accounts/register/$', 'registration.views.register',

#        {'form_class': RegistrationFormUniqueEmail},

#        name='registration_register'

#    ),

    url(r'^accounts/register/$', 'registration.views.register',

        {'form_class': CustomRegistrationForm},

        name='registration_register'

    ),

    # logout url

    url(r'^accounts/logout/$', 'django.contrib.auth.views.logout',

        {'next_page':'/'},

        name='auth_logout'

    ),

    # accounts actions (login, etc)

    (r'^accounts/', include('registration.urls')),

    # cart

    (r'^cart/', include('catalog.urls')),

    # profiles

    (r'^profiles/', include('profiles.urls')),

    # clear cache

    url(r'^adm/clearcache/$', 'clearcache.views.clear_cache'),

    url(r'^adm/salesbytime_cfg/$', SalesByTimeConfigView.as_view()),

    url(r'^adm/salesbytime/$', 'reports.views.salesbytime'),

    url(r'^print/order/(?P<order_id>\d+)/$', 'views.print_order'),

    # robots.txt

    url(r'^robots\.txt$', RobotsView.as_view()),

    # sitemap.xml

    (r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap',

        {'sitemaps': sitemaps}),

 

)

 

 

# debug url to serve media files

if settings.DEBUG:

    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

 

 

Основные функции проекта «views.py»

 

# -*- coding: utf-8 -*-

 

from django.http import HttpResponse

from annoying.decorators import render_to

from pytils.numeral import rubles

 

from catalog.models import Order

 

@render_to('print_order.html')

def print_order(request, order_id):

    order = Order.objects.get(id=order_id)

    result = []

    for op in order.orderposition_set.all():

        result.append(

            {

                'naim': u'Наименование' % (op.product.type, op.product.artikul),

                'kolvo': op.quantity,

                'price': (op.product.price / (130/100.0)),

                'sum': op.quantity * (op.product.price / (130/100.0)),

                'sum_nds': op.product.nds(),

                'total':op.quantity * op.product.full_price(),

            }

        )

    itogo = {

        'sum': reduce(lambda x, y: x + y, [x['sum'] for x in result]),

        'sum_nds': reduce(lambda x, y: x + y, [x['sum_nds'] for x in result]),

        'total': reduce(lambda x, y: x + y, [x['total'] for x in result]),

        'total_propis': rubles(order.price())

    }

    return {'order':order, 'result':result, 'itogo':itogo}

 

 

Диспетчер ссылок модуля catalog «urls.py»

 

from django.conf.urls.defaults import patterns, url

 

from views import add_to_cart, remove_from_cart, get_cart, decrease_quantity

from views import make_order, my_orders

 

urlpatterns = patterns('',

    url(r'^add/(?P<product_id>\d+)/$', add_to_cart, name='add_to_cart'),

    url(r'^remove/(?P<product_id>\d+)/$', remove_from_cart,

        name='remove_from_cart'),

    url(r'^removeone/(?P<product_id>\d+)/$', decrease_quantity,

        name='decrease_quantity'),

    url(r'^order/$', make_order, name='make_order'),

    url(r'^myorders/$', my_orders, name='my_orders'),

    url(r'^$', get_cart, name='get_cart'),

)

 

 

Настройки административных страниц модуля catalog «admin.py»

 

# -*- encoding: utf-8 -*-

 

from django.contrib import admin

 

from sorl.thumbnail.admin import AdminImageMixin

from rollyourown.seo.admin import get_inline

 

from catalog.models import Product, Vstavka, ProductType

from catalog.models import Tax, Certificate, DeliveryType, Order, OrderPosition

from eshop_seo.seo import MyMetadata

 

class OrderPositionInline(admin.TabularInline):

    model = Order.products.through

 

class ProductAdmin(AdminImageMixin, admin.ModelAdmin):

    search_fields = ['artikul', 'metal', 'vstavka', 'ves', 'price',

            'prim', 'type', 'tax__name']

    list_display = ['artikul', 'metal', 'ves', 'price',

            'type', 'tax', 'nds', 'exists']

    list_filter = ['metal', 'vstavka', 'type', 'tax__name', 'exists']

    inlines = [get_inline(MyMetadata), OrderPositionInline]

 

class OrderAdmin(admin.ModelAdmin):

    search_fields = ['id', 'user', 'date', 'status']

    list_display = ['__unicode__', 'user', 'date', 'status', 'price',

                    'products_count', 'certificate']

    list_filter = ['date', 'status', 'certificate']

    inlines = [OrderPositionInline, ]

    exclude = ('products',)

 

class VstavkaAdmin(admin.ModelAdmin):

    search_fields = ['name']

 

class ProductTypeAdmin(admin.ModelAdmin):

    search_fields = ['name']

 

class TaxAdmin(admin.ModelAdmin):

    search_fields = ['name', 'type']

    list_display = ('name', 'type', 'value')

 

class CertificateAdmin(admin.ModelAdmin):

    search_fields = ['name', 'type', 'code', 'value']

    list_display = ('name', 'code', 'type', 'value', 'date_start', 'date_end',

                    'used', 'onetime')

 

class DeliveryTypeAdmin(admin.ModelAdmin):

    search_fields = ['name']

    list_display = ('name', 'value')

 

admin.site.register(Product, ProductAdmin)

admin.site.register(Vstavka, VstavkaAdmin)

admin.site.register(ProductType, ProductTypeAdmin)

admin.site.register(Tax, TaxAdmin)

admin.site.register(Certificate, CertificateAdmin)

admin.site.register(DeliveryType, DeliveryTypeAdmin)

admin.site.register(Order, OrderAdmin)

 

Описание функций модуля catalog «views.py»

 

# -*- coding: utf-8 -*-

 

from annoying.decorators import render_to

 

from django.contrib.auth.decorators import login_required

from django.http import HttpResponseRedirect

 

from django.shortcuts import render_to_response

from django.shortcuts import redirect

 

from django.template import RequestContext

 

from cart import Cart as OrigCart, ItemAlreadyExists, ItemDoesNotExist

from cart.models import Item

 

from models import Product, OrderPosition, Order

from models import OrderForm, DeliveryType, Certificate

 

from django.core.exceptions import ObjectDoesNotExist

 

from django.views.generic.base import TemplateView

import datetime

 

class Cart(OrigCart):

    def update(self, product, quantity, unit_price=None):

        try:

            item = Item.objects.get(

                cart=self.cart,

                product=product,

            )

        except Item.DoesNotExist:

            raise ItemDoesNotExist

 

        item.quantity += quantity

        item.save()

 

    def decrease_quantity(self, product, quantity):

        try:

            item = Item.objects.get(

                cart=self.cart,

                product=product,

            )

        except Item.DoesNotExist:

            raise ItemDoesNotExist

        else:

            item.quantity -= quantity

            item.save()

 

@login_required

def add_to_cart(request, product_id):

    product = Product.objects.get(id=product_id)

    cart = Cart(request)

    # add 1 product

    try:

        cart.add(product, product.full_price(), 1)

    except ItemAlreadyExists:

        cart.update(product, 1)

    prev = request.GET.get('prev', '')

    print request.META['QUERY_STRING']

    print request.GET.urlencode()

    print prev

    if prev:

        return HttpResponseRedirect(prev)

    else:

        return HttpResponseRedirect('/cart/')

 

@login_required

def remove_from_cart(request, product_id):

    product = Product.objects.get(id=product_id)

    cart = Cart(request)

    cart.remove(product)

    return HttpResponseRedirect('/cart/')

 

@login_required

def decrease_quantity(request, product_id):

    product = Product.objects.get(id=product_id)

    cart = Cart(request)

    cart.decrease_quantity(product, 1)

    return HttpResponseRedirect('/cart/')

 

@login_required

@render_to('cart.html')

def get_cart(request):

    return {'cart':Cart(request)}

 

@render_to('make_order.html')

def make_order(request):

    cart = Cart(request)

    if request.method == 'POST':

        form = OrderForm(request.POST)

        if form.is_valid():

            order = form.save(commit=False)

            order.user = request.user

            cert_code = request.POST.get('cert', '')

Информация о работе Решение зкономико-математических задач