Site Sections: Satchmo Main | Wiki | Demo Store |

Ticket #149: distrib_report.py

File distrib_report.py, 1.2 kB (added by MikeHostetler, 1 year ago)

A Django script suitable to be ran in a cron job or something else useful.

Line 
1 #!/usr/bin/env python
2
3 import csv
4 import sys,os
5
6
7 def setup_environment():
8     pathname = os.path.dirname(sys.argv[0])
9     sys.path.append(os.path.abspath(pathname))
10     sys.path.append(os.path.normpath(os.path.join(os.path.abspath(pathname), '../')))
11     os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
12
13
14 setup_environment()
15
16 from satchmo.contact.models import Order,OrderItem
17
18 if __name__=='__main__':
19
20     pending = Order.objects.filter(status="Pending")
21
22     writer = csv.writer(file("pending-orders.csv","wb"))
23
24
25     cols = ["Name","Address1","Address2","City","State","Zip","Item(s)","Qty","Order Date"]
26
27     writer.writerow(cols)
28     for order in pending: #order_info:
29
30         items = [[x.item.id,x.quantity] for x in OrderItem.objects.filter(order__id=order.id)]
31
32         idx=0
33         for item in items:
34             if idx==0:
35                 line_item=[order.contact.first_name+" "+order.contact.last_name,order.shipStreet1,order.shipStreet2,order.shipCity,order.shipState,order.shipPostalCode]
36
37             else:
38                 line_item= ["",]*6
39
40             [line_item.append(x) for x in item]
41
42             if idx==0:
43                 line_item.append(order.timeStamp)
44
45             writer.writerow(line_item)
46
47             idx+=1