Subversion Repositories SmartDukaan

Rev

Rev 1405 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1405 ankur.sing 1
#!/usr/bin/python 
2
 
3
import os
4
import sys
1408 ankur.sing 5
import csv
1405 ankur.sing 6
 
7
if __name__ == '__main__' and __package__ is None:
8
    sys.path.insert(0, os.getcwd())
9
 
1408 ankur.sing 10
from shop2020.utils.Utils import to_py_date
1405 ankur.sing 11
from shop2020.utils.EmailAttachmentSender import get_attachment_part, mail
12
from shop2020.clients.TransactionClient import TransactionClient
13
from shop2020.clients.LogisticsClient import LogisticsClient
14
 
15
from_user = 'cnc.center@shop2020.in'
16
from_pwd = '5h0p2o2o'
1408 ankur.sing 17
to = 'cnc.center@shop2020.in'
1405 ankur.sing 18
 
19
def get_undelivered_orders(providerId = -1, warehouseId = -1):
20
    txnClient = TransactionClient().get_client()
21
    undeliveredOrders = txnClient.getUndeliveredOrders(providerId, warehouseId)
22
    return undeliveredOrders
23
 
24
def generate_undelivered_orders_report(orders):
25
    filename = os.getenv("HOME") + os.sep + "UndeliveredOrders.csv"
26
    logistics_client = LogisticsClient().get_client()
27
    providers = logistics_client.getAllProviders()
28
    writer = csv.writer(open(filename, "wb"), delimiter=',', quoting=csv.QUOTE_NONE)
29
    writer.writerow(['AWB No', 'Shipping Date', 'Courier Name', 'Delivery Location', 'Non-delivery Reason'])
30
    provider = None
31
    for order in orders:
32
        for p in providers:
33
            if p.id == order.logistics_provider_id:
34
                provider=p
35
                break
36
        writer.writerow([order.airwaybill_no, to_py_date(order.shipping_timestamp), provider.name, order.customer_city, order.statusDescription])
37
 
38
    return filename
39
 
40
 
41
def main():
42
    orders = get_undelivered_orders()
43
    filename = generate_undelivered_orders_report(orders)
44
    print "Generated undelivered orders report to:" + filename
45
    part = get_attachment_part(filename)
46
    mail(from_user, from_pwd, to, "Undelivered orders", "This is a system generated email.Please don't reply to it.", part)
47
 
48
if __name__ == '__main__':
49
    main()