Rev 5791 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/python'''Send mail to courier partners to pickup the orders from store.Created on 26-Jul-2012@author: Rajveer'''import xlwtimport datetimefrom optparse import OptionParserfrom textwrap import dedentif __name__ == '__main__' and __package__ is None:import sysimport ossys.path.insert(0, os.getcwd())from shop2020.model.v1.order.impl import DataServicefrom shop2020.model.v1.order.impl.DataService import Orderfrom shop2020.thriftpy.model.v1.order.ttypes import OrderStatusfrom shop2020.clients.LogisticsClient import LogisticsClientfrom shop2020.thriftpy.logistics.ttypes import PickupStore, DeliveryTypefrom shop2020.clients.CatalogClient import CatalogClientfrom shop2020.utils.EmailAttachmentSender import mail, get_attachment_partdef process_pickup_store_returns():DataService.initialize(db_hostname="192.168.190.114", echoOn=True)to_date = datetime.datetime.today() + datetime.timedelta(days = -5)logistics_store_order_mapping = {}orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.delivery_timestamp <= to_date).order_by(Order.pickupStoreId).order_by(Order.logistics_provider_id).order_by(Order.warehouse_id).all()for order in orders:if logistics_store_order_mapping.has_key(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id):logistics_store_order_mapping.get(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id).append(order.id)else:logistics_store_order_mapping[order.pickupStoreId, order.logistics_provider_id, order.warehouse_id] = [order.id]order.status = OrderStatus.RET_PICKUP_REQUEST_RAISEDorder.statusDescription = "Return request raised"session.commit()lclient = LogisticsClient().get_client()cclient = CatalogClient().get_client()for key in logistics_store_order_mapping.iterkeys():provider = lclient.getProvider(key[1])to_addr = provider.details[DeliveryType.PREPAID].emailpickupStore = lclient.getPickupStore(key[0])warehouse = cclient.getWarehouse(key[2])subject = "Pickup request from " + pickupStore.cityraw_message = '''Dear Sir/Madam,Kindly arrange a pickup today from %(customer_city)s. Pickup and delivery addresses are mentioned below.Pickup Order Ids: %(order_ids)Pickup CODE: %(provider_code)sPickup Address:%(customer_address)sDelivery Address:%(warehouse_executive)s%(warehouse_address)sPIN %(warehouse_pin)sThanks and RegardsSandeep Sachdeva'''if warehouse.id == 7:executive = 'Amit Kumar'else:executive = 'Dinesh Kumar'address = pickupStore.name + "\n" + pickupStore.line1 + "\n"if pickupStore.line2:address = address + pickupStore.line2 + "\n"address = address + pickupStore.city + "\n"address = address + pickupStore.state + "\n"address = address + "PIN " + pickupStore.pin + "\n"address = address + "Phone: " + pickupStore.phoneorder_ids = ""order_ids.join(logistics_store_order_mapping.get(key))message = dedent(raw_message) % { 'customer_city' : pickupStore.city,'provider_code' : provider.details[DeliveryType.PREPAID].accountNo,'order_weight' : str(0.5),'customer_address' : address,'warehouse_executive' : executive,'warehouse_address' : warehouse.location,'warehouse_pin' : warehouse.pincode,'order_ids' : order_ids}to_addresses = [to_addr, 'suraj.sharma@shop2020.in']mail('cnc.center@shop2020.in', '5h0p2o2o', to_addresses, subject, message)def main():process_pickup_store_returns()if __name__ == '__main__':main()