dasaproject/django/Item/management/commands/fillitems.py
2023-09-27 15:49:36 +07:00

103 lines
5.3 KiB
Python

from django.core.management.base import BaseCommand, CommandError
from Item.models import Item
import pandas as pd
import numbers as np
class Command(BaseCommand):
help = "Closes the specified poll for voting"
def handle(self, *args, **options):
print("fill Items command")
# return
# if request.method == 'POST' and request.FILES['myfile']:
# myfile = request.FILES['myfile']
# fs = FileSystemStorage()
filename = "Item/management/commands/Iteminventory20230417.xls"
# filename = "Item/management/commands/Book2.xlsx"
# filename = fs.save(myfile.name, myfile)
# uploaded_file_url = fs.url(filename)
empexceldata = pd.read_excel(filename, converters={'ReorderPoint':int}, )
dbframe = empexceldata.replace("NaN", "")
dbframe = dbframe.fillna("")
print(dbframe['PurchaseCost'])
dbframe['PurchaseCost'] = dbframe['PurchaseCost'].apply(pd.to_numeric, downcast='float', errors='coerce')
dbframe['AverageCost'] = dbframe['AverageCost'].apply(pd.to_numeric, downcast='float', errors='coerce')
# dbframe['Reorderpoint'] = dbframe['ReorderPoint'].apply(pd.to_numeric, downcast='float', errors='coerce')
# dbframe['ReorderPoint'] = dbframe['ReorderPoint'].astype(int)
print (dbframe)
dbframe['PurchaseCost'] = dbframe['PurchaseCost'].fillna(0)
dbframe['AverageCost'] = dbframe['AverageCost'].fillna(0)
print(dbframe['PurchaseCost'])
# print(dbframe['NameFromTaco'])
# print(dbframe['ReorderPoint'])
print(dbframe['QuantityOnHand'])
print (dbframe.dtypes)
icount=0
for db in dbframe.itertuples():
obj, created = Item.objects.get_or_create(FullName=db.FullName)
print(obj.FullName, obj.pk)
# if created:
obj.ItemType=1
obj.Name=db.Name
# obj.FullName=db.FullName
# obj.# BarCodeValue=db.# BarCodeValue
obj.SalesDesc=db.SalesDesc
# obj.# SalesPrice=db.# SalesPrice
obj.PurchaseDesc=db.PurchaseDesc
obj.Sublevel=db.Sublevel
obj.ManufacturerPartNumber=db.ManufacturerPartNumber
obj.PurchaseCost=db.PurchaseCost
# obj.ReorderPoint=db.ReorderPoint
obj.QuantityOnHand=db.QuantityOnHand
obj.AverageCost=db.AverageCost
obj.QuantityOnOrder=db.QuantityOnOrder
obj.QuantityOnSalesOrder=db.QuantityOnSalesOrder
# obj.# UnitOfMeasureSetRefFullName=db.# UnitOfMeasureSetRefFullName
obj.ParentRefFullName=db.ParentRefFullName
# obj.# SalesTaxCodeRefFullName=db.# SalesTaxCodeRefFullName
obj.IncomeAccountRefFullName=db.IncomeAccountRefFullName
obj.COGSAccountRefFullName=db.COGSAccountRefFullName
obj.PrefVendorRefFullName=db.PrefVendorRefFullName
obj.AssetAccountRefFullName=db.AssetAccountRefFullName
obj.IsActive=db.IsActive
obj.NameFromTaco=db.NameFromTaco
obj.CATEGORY=db.CATEGORY
obj.Type=db.Type
# obj = Item.objects.create(Name = db.Name,
# FullName = db.FullName,
# # BarCodeValue = db.# BarCodeValue,
# SalesDesc = db.SalesDesc,
# # SalesPrice = db.# SalesPrice,
# PurchaseDesc = db.PurchaseDesc,
# Sublevel = db.Sublevel,
# ManufacturerPartNumber = db.ManufacturerPartNumber,
# PurchaseCost = db.PurchaseCost,
# # ReorderPoint = db.ReorderPoint,
# QuantityOnHand = db.QuantityOnHand,
# AverageCost = db.AverageCost,
# QuantityOnOrder = db.QuantityOnOrder,
# QuantityOnSalesOrder = db.QuantityOnSalesOrder,
# # UnitOfMeasureSetRefFullName = db.# UnitOfMeasureSetRefFullName,
# ParentRefFullName = db.ParentRefFullName,
# # SalesTaxCodeRefFullName = db.# SalesTaxCodeRefFullName,
# IncomeAccountRefFullName = db.IncomeAccountRefFullName,
# COGSAccountRefFullName = db.COGSAccountRefFullName,
# PrefVendorRefFullName = db.PrefVendorRefFullName,
# AssetAccountRefFullName = db.AssetAccountRefFullName,
# IsActive = db.IsActive,
# NameFromTaco = db.NameFromTaco,
# CATEGORY = db.CATEGORY,
# Type = db.Type,
# )
obj.save()
icount+=1
print(f"{icount} Records updated/added")
# return render(request, 'Import_excel_db.html', {
# 'uploaded_file_url': uploaded_file_url
# })
# return render(request, 'Import_excel_db.html',{})