-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSalesAnalysis.py
More file actions
106 lines (76 loc) · 3.02 KB
/
SalesAnalysis.py
File metadata and controls
106 lines (76 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import os, glob, time
_path = '/HOMEPATH/data/'
_path_in = 'in/'
_path_out = 'out/'
def getArchive(_path, _path_in):
if os.path.isdir(_path + _path_in):
os.chdir(_path + _path_in)
for archive in glob.glob("*"):
return archive
def getSalesData(_archive):
content_in = open(str(_archive), 'r')
dictTotalSales = {}
dictSales = {}
sellersQty = 0
customersQty = 0
mostExpensiveSaleId = 0
mostExpensiveTotalSale = 0
worstSeller = ''
for line in content_in:
lineId = line[0:3]
# Salesman
if lineId == '001':
sellersQty += 1
lineId, salesmanId, salesmanName, salesmanSalary = line.split('ç')
dictTotalSales[salesmanName] = 0
# Customer
elif lineId == '002':
customersQty += 1
# Data Sales
elif lineId == '003':
lineId, saleId, itemData, salesmanName = line.split('ç')
salesmanName = salesmanName.replace('\n','')
itemData = itemData.replace('[','').replace(']','')
itemData = itemData.replace(',','\n')
itemData = itemData.replace('-',',')
itemData = str(itemData).splitlines()
totalSale = 0
for itens in itemData:
item = str(itens).split(',')
itemQty = float(item[1])
itemPrice = float(item[2])
totalSale += (itemQty * itemPrice)
mostExpensiveSaleId = saleId if totalSale > mostExpensiveTotalSale else mostExpensiveSaleId
mostExpensiveTotalSale = totalSale if totalSale > mostExpensiveTotalSale else mostExpensiveTotalSale
dictTotalSales[salesmanName] = (dictTotalSales[salesmanName]+0) + totalSale
worstSeller = min(dictTotalSales.keys(), key=(lambda k: dictTotalSales[k]))
dictSales['Qtde Clientes'] = customersQty
dictSales['Qtde Vendedores'] = sellersQty
dictSales['Id Venda mais Cara'] = mostExpensiveSaleId
dictSales['O Pior Vendedor'] = worstSeller
content_in.close()
# Save Output Archive - Sales Analysis
if os.path.isdir(_path + _path_out):
os.chdir(_path + _path_out)
content_out = open(str('AnaliseVendas_' + _archive), 'w')
for item in dictSales.items():
content_out.write( str(item[0]) + ': ' + str(item[1]) + '\n' )
content_out.close()
return True
def main():
while True:
archive = getArchive (_path, _path_in)
if archive != None:
print ('processing Data Sales - ' + archive)
# Process Archive
try:
if getSalesData (archive):
# Remove Archive
if os.path.isdir(_path + _path_in):
os.chdir(_path + _path_in)
if os.path.exists( str(archive) ):
os.remove( str(archive) )
except:
print ('Unexpected Error')
if __name__ == '__main__':
main()