Files
zhijie-ERP/sale/admin.py
T
2015-07-30 13:01:42 +08:00

105 lines
3.6 KiB
Python

from django.contrib import admin
from common import generic
from sale.models import SaleOrder,SaleItem,PaymentCollection,OfferSheet,OfferItem
from basedata.models import Measure,BankAccount
from common import generic
import datetime
class SaleItemInline(admin.TabularInline):
model = SaleItem
fields = ('material','measure','sale_price','discount_price','cnt','tax')
raw_id_fields = ['material']
def get_extra(self, request, obj=None, **kwargs):
if obj:
return 0
else:
return 3
class OfferItemInline(admin.TabularInline):
model = OfferItem
fields = ('material','brand','measure','cost_price','sale_price','discount_price','cnt','tax')
raw_id_fields = ['material']
readonly_fields = ['brand']
def get_extra(self, request, obj=None, **kwargs):
if obj:
return 0
else:
return 3
class SaleOrderAdmin(generic.BOAdmin):
CODE_NUMBER_WIDTH = 5
CODE_PREFIX = 'SO'
inlines = [SaleItemInline]
list_display = ['code','title','order_date','partner','amount','collection_amount']
list_display_links = ['code','title']
raw_id_fields = ['partner','user','org']
fields = (
('code','org',),('title','invoice_type',),('partner','user',),('order_date','deliver_date',),
('contact','phone',),('deliver_address','fax',),('description',),('amount','discount_amount','status')
)
readonly_fields = ['amount','status']
date_hierarchy = 'begin'
def save_model(self, request, obj, form, change):
if obj:
obj.user = request.user
super(SaleOrderAdmin,self).save_model(request,obj,form,change)
def get_changeform_initial_data(self, request):
today = datetime.datetime.today()
deadline = today+datetime.timedelta(days=30)
return {'order_date':today,'deliver_date':deadline}
class OfferSheetAdmin(generic.BOAdmin):
CODE_NUMBER_WIDTH = 5
CODE_PREFIX = 'BJ'
inlines = [OfferItemInline]
list_display = ['code','title','offer_date','partner','amount']
list_display_links = ['code','title']
raw_id_fields = ['partner','user','org']
fields = (
('code','org',),('partner','user',),('offer_date','deliver_date',),('title',),
('description',),('amount','discount_amount',),('attach'),
)
readonly_fields = ['amount']
date_hierarchy = 'begin'
def save_model(self, request, obj, form, change):
if obj:
obj.user = request.user
super(OfferSheetAdmin,self).save_model(request,obj,form,change)
def get_changeform_initial_data(self, request):
today = datetime.datetime.today()
deadline = today+datetime.timedelta(days=30)
return {'offer_date':today,'deliver_date':deadline}
class PaymentCollectionAdmin(generic.BOAdmin):
CODE_NUMBER_WIDTH = 4
CODE_PREFIX = 'CP'
list_display = ['code','so','partner','order_amount','collection_date','collection_amount']
fields = (
('code',),('collection_date',),('so',),('partner',),('order_amount','collection_amount',),('bank',),
('memo',)
)
raw_id_fields = ['so','partner']
readonly_fields = ['order_amount']
list_display_links = ['code','so']
date_hierarchy = 'begin'
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name=='bank':
kwargs['queryset'] = BankAccount.objects.exclude(org__exact=None)
return super(PaymentCollectionAdmin,self).formfield_for_foreignkey(db_field,request,**kwargs)
admin.site.register(SaleOrder,SaleOrderAdmin)
admin.site.register(PaymentCollection,PaymentCollectionAdmin)
admin.site.register(OfferSheet,OfferSheetAdmin)