Ejemplo n.º 1
0
def dataRemAll():
	if 'username' in session:
		tHistory.delete_many({})
		productInfo.objects.delete()
		notificationUnautItem.objects().delete()
		itemOutStock.objects().delete()
	return redirect(url_for('index'))
Ejemplo n.º 2
0
def editSKUChange(oldSKU):
	if 'username' in session:
		x= request.form.get('body')
		
		hist = tHistory.find({ "Custom Label": oldSKU})
		temp = productInfo.objects(SKU=x)
		temp.to_json()
		

		
		tHistory.update_many({"Custom Label": oldSKU},
								{'$set': {'Custom Label':x,'Item Title':temp[0]['productName'],'Status':''}})
									
		stockOut = 0
									
		for i in (hist):	
			stockOut += int(i['Quantity'])

			if int(temp[0]['quantity_inStock']) - int(stockOut)<1:
				temp[0]['quantity_inStock'] =int(temp[0]['quantity_inStock']) - int(stockOut)
				itemStockUpdate2(x,temp[0]['productName'])
			else:
				temp[0]['quantity_inStock'] =int(temp[0]['quantity_inStock']) - int(stockOut)
				temp[0]['quantity_sold'] = temp[0]['quantity_sold']+stockOut
			
		noteExists = notificationUnautItem.objects(SKU=oldSKU).delete()
			

		return redirect(url_for('home'))
	return render_template('login.html')
Ejemplo n.º 3
0
def dataRemTrans():
	if 'username' in session:
		tHistory.delete_many({})
		notificationUnautItem.objects().delete()
	return redirect(url_for('index'))
Ejemplo n.º 4
0
def temp():
	print((request.form.getlist('productName')))
	incompleteVal ='False'
	multi =False
	if len(request.form.getlist('productName'))>2:

		productName =request.form.get('productName','')
		if productName == "":
			incompleteVal = 'True'
		products =request.form.getlist('productName')
		chineseName = request.form.get('chinese_name','')
		chinese = request.form.getlist('chinese_name')
		if chineseName == "":
			incompleteVal = 'True'
		SKU =request.form.get('SKU','')
		SKUS =request.form.getlist('SKU')
		if SKU == "":
			incompleteVal = 'True'

		multi ='True'
	else:
		productName =request.form.get('productName')
		if productName == "":
			incompleteVal = 'True'
		chineseName = request.form.get('chinese_name')
		if chineseName == "":
			incompleteVal = 'True'
		SKU =request.form.get('SKU')
		if SKU == "":
			incompleteVal = 'True'
		multi = 'False'

	colour =request.form.get('Colour','')
	if colour == "":
			incompleteVal = 'True'
	weight =request.form.get('weight','')
	if weight == "":
			incompleteVal = 'True'
	height =request.form.get('Height','')
	if height == "":
			incompleteVal = 'True'
	width =request.form.get('Width','')
	if width == "":
			incompleteVal = 'True'
	lenght =request.form.get('Lenght','')
	if lenght == "":
			incompleteVal = 'True'
	description =request.form.get('item_description','')
	if description == "":
			incompleteVal = 'True'
	material =request.form.get('item_materials','')
	if material == "":
			incompleteVal = 'True'
	quantity_inStock =request.form.get('stock','')
	
	if quantity_inStock == '':
			quantity_inStock = 0
			incompleteVal = 'True'
	currency =request.form.get('currencyType')
	if currency == "":
			incompleteVal = 'True'
	cost_price =request.form.get('cost_price',0.00)
	if cost_price == 0.00:
			incompleteVal = 'True'
	category = request.form.get('category')
	print(category)
	if category == "none":
		print('cat true')
		incompleteVal = 'True'
	elif category == 'OtherCat':
		print('other cat')
		category = request.form['otherCat']
		if categories.objects(category=(request.form['otherCat']).capitalize()).count()>0:
			pass
		else:
			catagoryCreate((request.form['otherCat']).capitalize())
	envelope = request.form.get('envelope','none')  
	if envelope == "none":
		incompleteVal = 'True'
	elif envelope == "Other":
		envelope = request.form['envName']
		enveCreate(envelope)
	if 1==1:
		if productInfo.objects(productName=productName).count()>1:
			print('asdfasdfsdf')
			return(redirect(url_for('products')))
	
		else:
			if productInfo.objects(SKU=SKU) == True:
					pass
			else:
				if currency == 'AUD':
					AUD = float(cost_price)
					USD = AUD/1.4
					RMB = AUD* 4.77
				elif currency == 'USD':
					AUD = 1.4 * float(cost_price)
					USD = float(cost_price)
					RMB = 6.68 * float(cost_price)
				elif currency == 'RMB':
					RMB = float(cost_price)
					USD = RMB/6.68
					AUD = .21 * RMB 
				else:
					AUD = 0.00
					USD = 0.00
					RMB = 0.00

				
				fileExists = tHistory.find({ "Item Title": productName})
				if fileExists.count() >0:
					stockOut = 0
					for i in range(fileExists.count()):
						stockOut += int(fileExists[i]['Quantity'])

					if int(quantity_inStock) - int(stockOut)<1:
						itemStockUpdate2(SKU,productName)
						incompleteVal = 'True'
					if multi =='True':
						itemInsert5(productName,chineseName,SKU,products,chinese,SKUS,colour,weight,height,width,lenght,description,material,int(quantity_inStock),int(AUD),int(RMB),int(USD),category,incompleteVal,stockOut)
					else:
						itemInsert2(productName,chineseName,SKU,colour,weight,height,width,lenght,description,material,int(quantity_inStock),int(AUD),int(RMB),int(USD),category,incompleteVal,stockOut)
					
					noteExists = notificationUnautItem.objects(itemName=productName).delete()
					
				else:
					#if len(productName)>1:
					if multi =='True':
						itemInsert5(productName,chineseName,SKU,products,chinese,SKUS,colour,weight,height,width,lenght,description,material,int(quantity_inStock),int(AUD),int(RMB),int(USD),category,incompleteVal)
					else:	
						itemInsert(productName,chineseName,SKU,colour,weight,height,width,lenght,description,material,int(quantity_inStock),int(AUD),int(RMB),int(USD),category,incompleteVal)
		
		if notificationUnautItem.objects(SKU = request.form.get('SKU','')).count()>0:
			notificationUnautItem.objects(SKU = request.form.get('SKU','')).delete()		
			x = tHistory.find({'Custom Label': request.form.get('SKU','')})
			for i in x:
				if i['Status'] == 'Incomplete_SKU':
					i['Status'] = 'None'		
	return(redirect(url_for('products')))
Ejemplo n.º 5
0
def upload_file():
	if 'username' not in session:
		return redirect(url_for('index'))
	if not 'fileInput' in request.files:
		return redirect(url_for('dailyReports'))

	
	for f in request.files.getlist('fileInput'):
		fName = secure_filename(f.filename)
		f.save(fName)
		f= open(fName,'r')
		try:
			file =newFile.read().splitlines()
		except:
			os.system("dos2unix " + fName)
			newFile= open(fName, 'r',encoding = "ISO-8859-1")
			file =newFile.read().splitlines()
		in_db = False
		if not in_db:
			x = []
			for i in reader((file)):
							
				if len(i)>0:
					if i[0]=='':
						pass
					else:
						if len(str(i).strip()) == 0 or len(str(i).strip())==1 :
							pass
						else:
							x.append(i)


			for i in x:
				if i == ['\t']:
					x.remove(i)
				elif i == []:
					x.remove(i)
							
			
			li = []
			headers = x[0]
			
			x=x[1::]
			inc=[]		
			for iterA in range(len(x)):

							
				dictI = {}
				
				if len(x[iterA])>10:
					for i in range(len(headers)):
						try:
							dictI[headers[i].strip()]=x[iterA][i]
						except:
							pass
					try:
						dictI['Sales Record Number'] = int(dictI['Sales Record Number'])
					except:
						dictI['Sales Record Number'] = ''
					dictI['filename'] = fName
					dictIF = True
					try:
						dictI['Total Price'] = dictI['Total Price'][4::]
					except:
						dictIF = False
					try:
						dictI['Sale Date']=dateparser.parse(dictI['Sale Date'], settings={'DATE_ORDER': 'DMY'})
					except:
						dictIF = False
					try:
						temp = dictI['Custom Label'].split('-')
						
						if len(temp) != 0:
							itemCode = temp[2]
							sku = dictI['Custom Label']
							shopTemp = shopName.objects(code=temp[0]).first()
							dictI['Shop Name']=shopTemp.name
							dictI['Quantity'] = int(dictI['Quantity']) * int(temp[4])


					except:

						dictIF = False
					dictI['Status']='None'
					
					if dictIF != False:
						try:
							skuLookup = productInfo.objects(SKU__contains=itemCode).get()
						except:
							skuLookup  = ''
						if len(skuLookup)>0:
							if skuLookup.quantity_inStock - int(dictI['Quantity']) <0:
								itemStockUpdate(sku,skuLookup.productName,dictI['Sales Record Number'])
							else:
								skuLookup.quantity_sold=skuLookup.quantity_sold+int(dictI['Quantity'])
								skuLookup.quantity_inStock = skuLookup.quantity_inStock - int(dictI['Quantity']) 
								skuLookup.save()
							
						else:
							dictI['Status'] = 'Incomplete_SKU'
							temp = notificationUnautItem.objects(SKU = dictI['Custom Label'])
							if len(temp)==0:
								newItemCreate(str(dictI['Custom Label']),dictI['Item Title'])
								
						try:
							if dictI['Sales Record Number']==li[-1]['Sales Record Number']:
								dictI['Buyer State'] = li[-1]['Buyer State']
								dictI['PayPal Transaction ID'] = li[-1]['PayPal Transaction ID']

						except:
							pass
						
					li.append(dictI)	
			trans =[]
			rep=[]
			done = []
			for i in li:
				trans.append([i['PayPal Transaction ID'],i['Sales Record Number'],i['Buyer Postcode'],i['Buyer Address 1'],i['User Id']])
			for i in trans:

				if tHistory.find({'PayPal Transaction ID':i[0]}).count()>0:
					rep.append(i)

				for x in trans:
					if i[0]==x[0]:
						if i[1]==x[1]:
							pass
						else:
							done.append(x)
			for i in li:
				for x in rep:
					if (i['PayPal Transaction ID'])==x:
						i['Status'] ='Repeat'

				for x in done:
					
					if ([i['PayPal Transaction ID']])==[x[0]]:
							if i['User Id'] == x[4]:
								if (i['Buyer Postcode'],i['Buyer Address 1']) !=(x[2],x[3]):

									i['Status'] ='DropShip'

							elif (i['User Id'],i['Buyer Address 1'] )== (x[4],x[3]):
								if (i['PayPal Transaction ID'],i['Sales Record Number']) !=(x[0],x[1]):
									i['Status'] = 'Multi'
									
							elif [i['PayPal Transaction ID'],i['Sales Record Number'],i['Buyer Postcode']]==[x[0],x[1],x[2]]:	
								i['Status'] ='Repeat'					
														
			tHistory.insert_many(li)
					 
		
			#print(rep)
			return redirect(url_for('dailyReports'))
		else:
				
			flash('Database is Already Stored')
			return redirect(url_for('dailyReports'))
Ejemplo n.º 6
0
def home():
	if 'username' in session:


		return render_template('home.html',unregisteredItem = notificationUnautItem.objects(),itemOutStock = itemOutStock.objects())
	return render_template('login.html')
Ejemplo n.º 7
0
def products():
		if 'username' in session:
				return render_template('products.html',products= productInfo.objects,unregisteredItem =  notificationUnautItem.objects())
		return render_template('login.html')