Rev 1408 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/python'''Mails a report of orders which should have been deliveredbut have been not. It is scheduled to run after the LogisticsReconciliation.@author: Chandranshu'''import osimport sysimport csvif __name__ == '__main__' and __package__ is None:sys.path.insert(0, os.getcwd())from shop2020.utils.Utils import to_py_datefrom shop2020.utils.EmailAttachmentSender import get_attachment_part, mailfrom shop2020.clients.TransactionClient import TransactionClientfrom shop2020.clients.LogisticsClient import LogisticsClientfrom_user = 'cnc.center@shop2020.in'from_pwd = '5h0p2o2o'to = ['cnc.center@shop2020.in']def get_undelivered_orders(providerId = -1, warehouseId = -1):txnClient = TransactionClient().get_client()undeliveredOrders = txnClient.getUndeliveredOrders(providerId, warehouseId)return undeliveredOrdersdef generate_undelivered_orders_report(orders):filename = os.getenv("HOME") + os.sep + "UndeliveredOrders.csv"logistics_client = LogisticsClient().get_client()providers = logistics_client.getAllProviders()writer = csv.writer(open(filename, "wb"), delimiter=',', quoting=csv.QUOTE_NONE)writer.writerow(['AWB No', 'Shipping Date', 'Courier Name', 'Delivery Location', 'Non-delivery Reason'])provider = Nonefor order in orders:for p in providers:if p.id == order.logistics_provider_id:provider=pbreakwriter.writerow([order.airwaybill_no, to_py_date(order.shipping_timestamp), provider.name, order.customer_city, order.statusDescription])return filenamedef main():orders = get_undelivered_orders()filename = generate_undelivered_orders_report(orders)print "Generated undelivered orders report to:" + filenamepart = get_attachment_part(filename)mail(from_user, from_pwd, to, "Undelivered orders", "This is a system generated email.Please don't reply to it.", part)if __name__ == '__main__':main()