| Line -... |
Line 1... |
| - |
|
1 |
from datetime import datetime
|
| - |
|
2 |
from dateutil.relativedelta import relativedelta
|
| 1 |
from elixir import *
|
3 |
from elixir import *
|
| 2 |
from shop2020.model.v1.order.impl import DataService
|
4 |
from shop2020.model.v1.order.impl import DataService
|
| 3 |
from shop2020.model.v1.order.impl.DataService import PMSA_Agents, PMSA, Order, LineItem
|
- |
|
| 4 |
from dateutil.relativedelta import relativedelta
|
- |
|
| 5 |
from datetime import datetime
|
- |
|
| 6 |
from shop2020.utils.Utils import to_java_date
|
- |
|
| 7 |
import xlwt
|
- |
|
| 8 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
|
- |
|
| 9 |
from shop2020.model.v1.order.impl.Convertors import cutoff_date
|
5 |
from shop2020.model.v1.order.impl.Convertors import cutoff_date
|
| - |
|
6 |
from shop2020.model.v1.order.impl.DataService import PMSA_Agents, PMSA, Order, \
|
| - |
|
7 |
LineItem
|
| 10 |
from shop2020.utils.EmailAttachmentSender import get_attachment_part
|
8 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
|
| 11 |
from shop2020.utils import EmailAttachmentSender
|
9 |
from shop2020.utils import EmailAttachmentSender
|
| - |
|
10 |
from shop2020.utils.EmailAttachmentSender import get_attachment_part
|
| - |
|
11 |
from shop2020.utils.Utils import to_java_date
|
| - |
|
12 |
from xlwt.Style import XFStyle
|
| - |
|
13 |
import xlwt
|
| 12 |
|
14 |
|
| 13 |
DataService.initialize(db_hostname = "192.168.190.114", echoOn=False)
|
15 |
DataService.initialize(db_hostname = "192.168.190.114", echoOn=False)
|
| 14 |
|
16 |
|
| 15 |
|
17 |
|
| 16 |
associates_map = {}
|
18 |
associates_map = {}
|
| Line 18... |
Line 20... |
| 18 |
retailer_list = []
|
20 |
retailer_list = []
|
| 19 |
user_sales = {}
|
21 |
user_sales = {}
|
| 20 |
|
22 |
|
| 21 |
xstr = lambda s: s or ""
|
23 |
xstr = lambda s: s or ""
|
| 22 |
|
24 |
|
| - |
|
25 |
date_format = XFStyle()
|
| - |
|
26 |
date_format.num_format_str = 'dd/MM/yyyy'
|
| - |
|
27 |
|
| 23 |
class __retailers:
|
28 |
class __retailers:
|
| 24 |
def __init__(self, user_id, activated_through, activation_code, order_list, name):
|
29 |
def __init__(self, user_id, activated_through, activation_code, order_list, name):
|
| 25 |
self.user_id = user_id
|
30 |
self.user_id = user_id
|
| 26 |
self.name = name
|
31 |
self.name = name
|
| 27 |
self.activation_code = activation_code
|
32 |
self.activation_code = activation_code
|
| Line 124... |
Line 129... |
| 124 |
order_list.append(sd)
|
129 |
order_list.append(sd)
|
| 125 |
retailer.order_list = order_list
|
130 |
retailer.order_list = order_list
|
| 126 |
|
131 |
|
| 127 |
def get_report_headers(wbk):
|
132 |
def get_report_headers(wbk):
|
| 128 |
sheet = wbk.add_sheet('orders_summary')
|
133 |
sheet = wbk.add_sheet('orders_summary')
|
| 129 |
|
- |
|
| 130 |
date_style = xlwt.XFStyle()
|
- |
|
| 131 |
date_style.num_format_str = "D/M/YY"
|
- |
|
| 132 |
|
- |
|
| 133 |
heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
|
134 |
heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
|
| 134 |
sheet.set_panes_frozen(True)
|
135 |
sheet.set_panes_frozen(True)
|
| 135 |
sheet.set_horz_split_pos(1)
|
136 |
sheet.set_horz_split_pos(1)
|
| 136 |
sheet.set_remove_splits(True)
|
137 |
sheet.set_remove_splits(True)
|
| 137 |
|
138 |
|
| Line 184... |
Line 185... |
| 184 |
sheet.write(i,3,order.city)
|
185 |
sheet.write(i,3,order.city)
|
| 185 |
sheet.write(i,4,order.pincode)
|
186 |
sheet.write(i,4,order.pincode)
|
| 186 |
sheet.write(i,5,order.contact_number)
|
187 |
sheet.write(i,5,order.contact_number)
|
| 187 |
sheet.write(i,6,order.name)
|
188 |
sheet.write(i,6,order.name)
|
| 188 |
sheet.write(i,7,"")
|
189 |
sheet.write(i,7,"")
|
| 189 |
sheet.write(i,8,get_formatted_date(order.order_date))
|
190 |
sheet.write(i,8,get_formatted_date(order.order_date), date_format)
|
| 190 |
sheet.write(i,9,order.order_id)
|
191 |
sheet.write(i,9,order.order_id)
|
| 191 |
sheet.write(i,10,OrderStatus._VALUES_TO_NAMES.get(order.order_status))
|
192 |
sheet.write(i,10,OrderStatus._VALUES_TO_NAMES.get(order.order_status))
|
| 192 |
sheet.write(i,11, get_formatted_date(order.invoice_date))
|
193 |
sheet.write(i,11, get_formatted_date(order.invoice_date), date_format)
|
| 193 |
sheet.write(i,12, xstr(order.invoice_number))
|
194 |
sheet.write(i,12, xstr(order.invoice_number))
|
| 194 |
sheet.write(i,13, get_formatted_date(order.delivery_date))
|
195 |
sheet.write(i,13, get_formatted_date(order.delivery_date), date_format)
|
| 195 |
sheet.write(i,14, xstr(order.brand))
|
196 |
sheet.write(i,14, xstr(order.brand))
|
| 196 |
sheet.write(i,15, xstr(order.model_name))
|
197 |
sheet.write(i,15, xstr(order.model_name))
|
| 197 |
sheet.write(i,16, xstr(order.model_number))
|
198 |
sheet.write(i,16, xstr(order.model_number))
|
| 198 |
sheet.write(i,17, xstr(order.color))
|
199 |
sheet.write(i,17, xstr(order.color))
|
| 199 |
sheet.write(i,18, order.item_id)
|
200 |
sheet.write(i,18, order.item_id)
|
| Line 208... |
Line 209... |
| 208 |
wbk.save(filename)
|
209 |
wbk.save(filename)
|
| 209 |
email_text = get_email_text(associate['name'], str(get_cut_off().year) + "-" + str(get_cut_off().month)+ "-"+str(get_cut_off().day))
|
210 |
email_text = get_email_text(associate['name'], str(get_cut_off().year) + "-" + str(get_cut_off().month)+ "-"+str(get_cut_off().day))
|
| 210 |
#EmailAttachmentSender.mail_send_grid("sales-associates@profitmandi.com","apikey", "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", [associate['emailId']], "Order Summary Report "+associate['emailId'],email_text , [get_attachment_part(filename)],["kamini.sharma@profitmandi.com","tarun.verma@profitmandi.com"],["amit.gupta@saholic.com","kshitij.sood@saholic.com"])
|
211 |
#EmailAttachmentSender.mail_send_grid("sales-associates@profitmandi.com","apikey", "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", [associate['emailId']], "Order Summary Report "+associate['emailId'],email_text , [get_attachment_part(filename)],["kamini.sharma@profitmandi.com","tarun.verma@profitmandi.com"],["amit.gupta@saholic.com","kshitij.sood@saholic.com"])
|
| 211 |
EmailAttachmentSender.mail_send_grid("sales-associates@profitmandi.com","apikey", "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", [associate['emailId']], "Order Summary Report "+associate['emailId'],email_text , [get_attachment_part(filename)],[],[])
|
212 |
EmailAttachmentSender.mail_send_grid("sales-associates@profitmandi.com","apikey", "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", [associate['emailId']], "Order Summary Report "+associate['emailId'],email_text , [get_attachment_part(filename)],[],[])
|
| 212 |
|
213 |
|
| 213 |
|
214 |
|
| - |
|
215 |
def write_last_month_report():
|
| - |
|
216 |
pass
|
| - |
|
217 |
|
| 214 |
def get_formatted_date(datetime_obj):
|
218 |
def get_formatted_date(datetime_obj):
|
| 215 |
try:
|
219 |
try:
|
| 216 |
return str(datetime_obj.day)+"/"+str(datetime_obj.month)+"/"+str(datetime_obj.year)
|
220 |
return str(datetime_obj.day)+"/"+str(datetime_obj.month)+"/"+str(datetime_obj.year)
|
| 217 |
except:
|
221 |
except:
|
| 218 |
return ""
|
222 |
return ""
|
| Line 220... |
Line 224... |
| 220 |
|
224 |
|
| 221 |
def main():
|
225 |
def main():
|
| 222 |
get_user_data()
|
226 |
get_user_data()
|
| 223 |
associates_data()
|
227 |
associates_data()
|
| 224 |
track_sales()
|
228 |
track_sales()
|
| 225 |
write_report()
|
229 |
#write_report()
|
| - |
|
230 |
#generate last month report
|
| - |
|
231 |
if datetime.today()==1:
|
| - |
|
232 |
write_last_month_report()
|
| 226 |
|
233 |
|
| 227 |
|
234 |
|
| 228 |
if __name__ == '__main__':
|
235 |
if __name__ == '__main__':
|
| 229 |
try:
|
236 |
try:
|
| 230 |
main()
|
237 |
main()
|