Subversion Repositories SmartDukaan

Rev

Rev 5824 | Rev 5833 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5824 Rev 5832
Line 1120... Line 1120...
1120
                alert_client.scheduleAlert(monitoredEntity)
1120
                alert_client.scheduleAlert(monitoredEntity)
1121
            except Exception as e:
1121
            except Exception as e:
1122
                print "Exception in scheduling alert in ShippedFromWarehouse method"
1122
                print "Exception in scheduling alert in ShippedFromWarehouse method"
1123
                print e
1123
                print e
1124
        session.commit()
1124
        session.commit()
-
 
1125
    
1125
        
1126
        
1126
        try:
1127
        try:
1127
            enqueue_shipping_confirmation_email(orders)
1128
            for order in orders:
1128
        except Exception as e:
1129
                if order.pickupStoreId:
1129
            print e
1130
                    send_mails_to_bdms(order)
1130
        
-
 
1131
        try:
1131
                else:
1132
            send_mails_to_bdms(orders)
1132
                    enqueue_shipping_confirmation_email(order)
1133
        except Exception as e:
1133
        except Exception as e:
1134
            print e
1134
            print e
1135
                    
1135
                            
1136
        return True
1136
        return True
1137
    except:
1137
    except:
1138
        return False
1138
        return False
1139
    
1139
    
1140
def send_mails_to_bdms(orders):
1140
def send_mails_to_bdms(order):
1141
    logistics_client = LogisticsClient().get_client()
1141
    logistics_client = LogisticsClient().get_client()
1142
    from_user = 'cnc.center@shop2020.in'
1142
    from_user = 'cnc.center@shop2020.in'
1143
    from_pwd = '5h0p2o2o'
1143
    from_pwd = '5h0p2o2o'
1144
    for order in orders:
-
 
1145
        if order.pickupStoreId:
-
 
1146
            store = logistics_client.getPickupStore(order.pickupStoreId)
1144
    store = logistics_client.getPickupStore(order.pickupStoreId)
1147
            provider = logistics_client.getProvider(order.logistics_provider_id)
1145
    provider = logistics_client.getProvider(order.logistics_provider_id)
1148
            subject = "Saholic order " + str(order.id) +" shipped to store" 
1146
    subject = "Saholic order " + str(order.id) +" shipped to store" 
1149
            raw_message = '''
1147
    raw_message = '''
1150
            Dear Sir,
1148
    Dear Sir,
1151
        
1149
 
1152
            Order mentioned below is being shipped to your store. Customer will pick it from your store. 
1150
    Order mentioned below is being shipped to your store. Customer will pick it from your store. 
1153
 
1151
 
1154
            Store Id: %(store_id)s
1152
    Store Id: %(store_id)s
1155
            Order Id: %(order_id)s 
1153
    Order Id: %(order_id)s 
1156
            Product: %(product)s
1154
    Product: %(product)s
1157
            Delivery By: %(provider)s
1155
    Delivery By: %(provider)s
1158
            
1156
    
1159
            Thanks and Regards
1157
    Thanks and Regards
1160
            Sandeep Sachdeva
1158
    Sandeep Sachdeva
1161
            '''
1159
    '''
1162
            
1160
    
1163
            message = dedent(raw_message) % { 'order_id' : str(order.id),
1161
    message = dedent(raw_message) % { 'order_id' : str(order.id),
1164
                                             'store_id' : str(store.hotspotId),
1162
                                     'store_id' : str(store.hotspotId),
1165
                                          'provider' : provider.name,
1163
                                  'provider' : provider.name,
1166
                                          'product' : str(order.lineitems[0])
1164
                                  'product' : str(order.lineitems[0])
1167
                                          }
1165
                                  }
1168
            to_addresses = [store.bdmEmail, 'sandeep.sachdeva@shop2020.in']
1166
    to_addresses = [store.bdmEmail, 'sandeep.sachdeva@shop2020.in']
-
 
1167
 
-
 
1168
    mail(from_user, from_pwd, to_addresses, subject, message)
1169
        
1169
        
1170
            mail(from_user, from_pwd, to_addresses, subject, message)
-
 
1171
            
-
 
1172
def mark_orders_as_returned_from_store(providerId, orderIds, awbs):
1170
def mark_orders_as_returned_from_store(providerId, orderIds, awbs):
1173
    try:
1171
    try:
1174
        current_timestamp = datetime.datetime.now()
1172
        current_timestamp = datetime.datetime.now()
1175
        orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(logistics_provider_id = providerId, status = OrderStatus.RET_PICKUP_REQUEST_RAISED).all()
1173
        orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(logistics_provider_id = providerId, status = OrderStatus.RET_PICKUP_REQUEST_RAISED).all()
1176
        for order in orders:
1174
        for order in orders:
Line 3193... Line 3191...
3193
    new_expected_delivery_timestamp = datetime.datetime.now() + timedelta(adjust_delivery_time(datetime.datetime.now(), (order.promised_delivery_time - order.promised_shipping_time).days))
3191
    new_expected_delivery_timestamp = datetime.datetime.now() + timedelta(adjust_delivery_time(datetime.datetime.now(), (order.promised_delivery_time - order.promised_shipping_time).days))
3194
    new_expected_delivery_date = new_expected_delivery_timestamp.strftime("%A, %d %B %Y")
3192
    new_expected_delivery_date = new_expected_delivery_timestamp.strftime("%A, %d %B %Y")
3195
    info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone)
3193
    info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone)
3196
    return Template(html).substitute(info)
3194
    return Template(html).substitute(info)
3197
 
3195
 
3198
def enqueue_shipping_confirmation_email(orders):
3196
def enqueue_shipping_confirmation_email(order):
3199
    # Calling helper service on production
3197
    # Calling helper service on production
3200
    helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
3198
    helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
3201
    
-
 
3202
    for order in orders:
-
 
3203
        try:
3199
    try:
3204
            emailSubject = 'Shipping Details for Order ID: ' + str(order.id)
3200
        emailSubject = 'Shipping Details for Order ID: ' + str(order.id)
3205
            emailBody = get_shipping_confirmation_email_body(order)
3201
        emailBody = get_shipping_confirmation_email_body(order)
3206
            helperClient.saveUserEmailForSending(order.customer_email, None, emailSubject, emailBody, str(order.id), 'ShippingConfirmation')
3202
        helperClient.saveUserEmailForSending(order.customer_email, None, emailSubject, emailBody, str(order.id), 'ShippingConfirmation')
3207
        except Exception as e:
3203
    except Exception as e:
3208
            print e
3204
        print e
3209
    
3205
    
3210
def get_order_distribution_by_status(start_date, end_date):
3206
def get_order_distribution_by_status(start_date, end_date):
3211
    query = session.query(Order.status, func.count(Order.id)).group_by(Order.status)
3207
    query = session.query(Order.status, func.count(Order.id)).group_by(Order.status)
3212
    query = query.filter(Order.created_timestamp >= start_date)
3208
    query = query.filter(Order.created_timestamp >= start_date)
3213
    query = query.filter(Order.created_timestamp <= end_date)
3209
    query = query.filter(Order.created_timestamp <= end_date)