def import_warehousing(request): warehousings = Warehousing.objects.all() if request.method == 'POST': myFile = request.FILES.get('my_file', None) if not myFile: message = '没有选择文件,请重新选择!' return render(request, 'warehousing/index_warehousing.html', locals()) else: type_excel = myFile.name.split('.')[1] if 'xlsx' == type_excel or 'xls' == type_excel: wb = xlrd.open_workbook(filename=None, file_contents=myFile.read()) table = wb.sheets()[0] nrows = table.nrows # 行数 ncole = table.ncols # 列数 if nrows == 0: message = '数据不能为空!' return render(request, 'warehousing/index_warehousing.html', locals()) try: with transaction.atomic(): for i in range(1, nrows): rowValues = table.row_values(i) # product_name = rowValues[1] print('rowValues', rowValues) if rowValues[1] and rowValues[1] != '': articles = Articles.objects.filter(articles_name=rowValues[1]).first() if articles: # 转换日期格式 django读取excel会把日期变成浮点型需要进行转换 date = xlrd.xldate.xldate_as_datetime(rowValues[3], 0) print('date:', date) Warehousing.objects.create(article=articles, warehousing_num=int(rowValues[2]), creator=get_user(request.session['user_name']), remarks=rowValues[4]) # Warehousing.objects.create(article=articles, warehousing_num=int(rowValues[2]), # # creator=get_user(request.session['user_name']), # remarks=rowValues[4]) except Exception: message = '格式有误!或数据有重复!请检查后重试!' message = '导入成功!' warehousings = Warehousing.objects.all() return render(request, 'warehousing/index_warehousing.html', locals()) message = '请选择Excel文件,后重试!' return render(request, 'warehousing/index_warehousing.html', locals())
def add_warehousing(request): warehousing_form = forms.WareHousingForm(request.POST) if request.method == 'POST': message = '请检查填写内容' if warehousing_form.is_valid(): articles_name = warehousing_form.cleaned_data['articles_name'] warehousing_num = warehousing_form.cleaned_data['warehousing_num'] remarks = warehousing_form.cleaned_data['remarks'] warehousing_date = warehousing_form.cleaned_data['warehousing_date'] new_warehousing = Warehousing() articles = Articles.objects.filter(articles_name=articles_name).first() new_warehousing.article = articles new_warehousing.warehousing_date = warehousing_date new_warehousing.remarks = remarks new_warehousing.warehousing_num = warehousing_num new_warehousing.creator = get_user(request.session['user_name']) new_warehousing.save() message = '添加成功!' return HttpResponseRedirect(reverse('register:index_warehousing')) return render(request, 'warehousing/add_warehousing.html', locals())
def import_articles(request): articles = Articles.objects.all() if request.method == 'POST': myFile = request.FILES.get('my_file', None) if not myFile: message = '没有选择文件,请重新选择!' return render(request, 'articles/index_articles.html', locals()) else: type_excel = myFile.name.split('.')[1] if 'xlsx' == type_excel or 'xls' == type_excel: wb = xlrd.open_workbook(filename=None, file_contents=myFile.read()) table = wb.sheets()[0] nrows = table.nrows # 行数 ncole = table.ncols # 列数 if nrows == 0: message = '数据不能为空!' return render(request, 'articles/index_articles.html', locals()) try: with transaction.atomic(): for i in range(1, nrows): rowValues = table.row_values(i) # product_name = rowValues[1] if rowValues[1] and rowValues[1] != '': Articles.objects.create( articles_name=rowValues[1], specs=rowValues[2], remarks=rowValues[3], creator=get_user( request.session['user_name'])) except Exception: message = '格式有误!或数据有重复!请检查后重试!' message = '导入成功!' articles = Articles.objects.all() return render(request, 'articles/index_articles.html', locals()) message = '请选择Excel文件,后重试!' return render(request, 'articles/index_articles.html', locals())
def add_article(request): articles_form = forms.ArticleForm(request.POST) if request.method == 'POST': message = '请检查填写内容' if articles_form.is_valid(): articles_name = articles_form.cleaned_data['articles_name'] specs = articles_form.cleaned_data['specs'] remarks = articles_form.cleaned_data['remarks'] same_articles = Articles.objects.filter( articles_name=articles_name) if same_articles: message = '该办公用品已存在!' return render(request, 'articles/add_articles.html', locals()) new_articles = Articles() new_articles.articles_name = articles_name new_articles.specs = specs new_articles.remarks = remarks new_articles.creator = get_user(request.session['user_name']) new_articles.save() message = '添加成功!' return HttpResponseRedirect(reverse('register:index_articles')) return render(request, 'articles/add_articles.html', locals())
def add_ex_warehouse(request): ex_warehouse_form = forms.ExWareHouseForm(request.POST) if request.method == 'POST': message = '请检查填写内容' if ex_warehouse_form.is_valid(): articles_name = ex_warehouse_form.cleaned_data['articles_name'] ex_warehouse_num = ex_warehouse_form.cleaned_data[ 'ex_warehouse_num'] department_name = ex_warehouse_form.cleaned_data['department'] requisition_name = ex_warehouse_form.cleaned_data['requisition'] validator_name = ex_warehouse_form.cleaned_data['validator'] ex_warehouse_date = ex_warehouse_form.cleaned_data[ 'ex_warehouse_date'] remarks = ex_warehouse_form.cleaned_data['remarks'] status_label = ex_warehouse_form.cleaned_data['status_label'] new_ex_warehouse = ExWarehouse() articles = Articles.objects.filter( articles_name=articles_name).first() department = Department.objects.filter( name=department_name).first() validator = LoginUser.objects.filter( username=validator_name).first() # requisition = LoginUser.objects.filter(username=requisition_name).filter(department=department).first() new_ex_warehouse.article = articles new_ex_warehouse.ex_warehouse_date = ex_warehouse_date new_ex_warehouse.remarks = remarks new_ex_warehouse.ex_warehouse_num = ex_warehouse_num new_ex_warehouse.department = department new_ex_warehouse.requisition = requisition_name new_ex_warehouse.validator = validator new_ex_warehouse.status_label = status_label new_ex_warehouse.creator = get_user(request.session['user_name']) # 生成新的出库单状态为1 new_ex_warehouse.status = 1 new_ex_warehouse.save() message = '添加成功!' return HttpResponseRedirect(reverse('register:index_ex_warehouse')) return render(request, 'exwarehouse/add_exwarehouse.html', locals())
def import_ex_warehouse(request): ex_warehouses = ExWarehouse.objects.all() if request.method == 'POST': myFile = request.FILES.get('my_file', None) if not myFile: message = '没有选择文件,请重新选择!' return render(request, 'exwarehouse/index_exwarehouse.html', locals()) else: type_excel = myFile.name.split('.')[1] if 'xlsx' == type_excel or 'xls' == type_excel: wb = xlrd.open_workbook(filename=None, file_contents=myFile.read()) table = wb.sheets()[0] nrows = table.nrows # 行数 ncole = table.ncols # 列数 if nrows == 0: message = '数据不能为空!' return render(request, 'exwarehouse/index_exwarehouse.html', locals()) try: with transaction.atomic(): for i in range(1, nrows): rowValues = table.row_values(i) # product_name = rowValues[1] if rowValues[1] and rowValues[1] != '': articles = Articles.objects.filter( articles_name=rowValues[1]).first() department = Department.objects.filter( rowValues[3]) requisition = LoginUser.objects.filter( rowValues[4]) validator = LoginUser.objects.filter( rowValues[5]) if articles and department and request and validator: # 转换日期格式 django读取excel会把日期变成浮点型需要进行转换 date = xlrd.xldate.xldate_as_datetime( rowValues[6], 0) ExWarehouse.objects.create( articles=articles, ex_warehouse_num=int(rowValues[2]), ex_warehouse_date=rowValues[3], department=rowValues[4], requisition=rowValues[5], validator=rowValues[6], remarks=rowValues[7], status_label=rowValues[8], status=1, creator=get_user( request.session['user_name'])) except Exception: message = '格式有误!或数据有重复!请检查后重试!' message = '导入成功!' ex_warehouses = ExWarehouse.objects.all() return render(request, 'exwarehouse/index_exwarehouse.html', locals()) message = '请选择Excel文件,后重试!' return render(request, 'exwarehouse/index_exwarehouse.html', locals())
from time import strftime import time from register.models import Department, LoginUser from register.views import is_leader, get_user from register.tool import login, logout, login_required from register.views import get_user # Create your views here. @login_required def index_ex_warehouse(request, case=None): to_be_processed = False leader = is_leader(request) validator_name = request.session.get('user_name') validator = get_user(validator_name) if leader: if case == 1: ex_warehouses = ExWarehouse.objects.filter(status=3) to_be_processed = True else: ex_warehouses = ExWarehouse.objects.all() else: count = ExWarehouse.objects.filter(validator=validator).count() if count == 0: ex_warehouses = None else: if case == 1: ex_warehouses = ExWarehouse.objects.filter( validator=validator).filter(status=1) elif case == 2: