| Line 7... |
Line 7... |
| 7 |
from datetime import date
|
7 |
from datetime import date
|
| 8 |
from elixir import *
|
8 |
from elixir import *
|
| 9 |
from reportlab.lib.units import inch
|
9 |
from reportlab.lib.units import inch
|
| 10 |
from reportlab.pdfgen.canvas import Canvas
|
10 |
from reportlab.pdfgen.canvas import Canvas
|
| 11 |
from reportlab.rl_config import defaultPageSize
|
11 |
from reportlab.rl_config import defaultPageSize
|
| 12 |
from shop2020.clients.CRMClient import CRMClient
|
- |
|
| 13 |
from shop2020.clients.CatalogClient import CatalogClient
|
12 |
from shop2020.clients.CatalogClient import CatalogClient
|
| 14 |
from shop2020.clients.HelperClient import HelperClient
|
13 |
from shop2020.clients.HelperClient import HelperClient
|
| 15 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
14 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
| 16 |
from shop2020.clients.PaymentClient import PaymentClient
|
15 |
from shop2020.clients.PaymentClient import PaymentClient
|
| 17 |
from shop2020.clients.TransactionClient import TransactionClient
|
16 |
from shop2020.clients.TransactionClient import TransactionClient
|
| 18 |
from shop2020.clients.UserClient import UserClient
|
17 |
from shop2020.clients.UserClient import UserClient
|
| 19 |
from shop2020.clients.WarehouseClient import WarehouseClient
|
18 |
from shop2020.clients.WarehouseClient import WarehouseClient
|
| 20 |
from shop2020.model.v1 import order
|
19 |
from shop2020.model.v1 import order
|
| 21 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
|
20 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
|
| 22 |
Alerts, Order, BatchNoGenerator, InvoiceIDGenerator
|
21 |
Alerts, Order, BatchNoGenerator, InvoiceIDGenerator, \
|
| - |
|
22 |
TransactionRequiringExtraProcessing
|
| 23 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
23 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
| 24 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
24 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
| 25 |
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType
|
25 |
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType
|
| 26 |
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction, \
|
26 |
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction, \
|
| 27 |
TransactionServiceException, TransactionStatus, OrderStatus, DelayReason
|
27 |
TransactionServiceException, TransactionStatus, OrderStatus, DelayReason, \
|
| - |
|
28 |
ExtraTransactionProcessingType
|
| 28 |
from shop2020.thriftpy.warehouse.ttypes import PurchaseOrder, \
|
29 |
from shop2020.thriftpy.warehouse.ttypes import PurchaseOrder, \
|
| 29 |
LineItem as POLineItem
|
30 |
LineItem as POLineItem
|
| 30 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
31 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
| 31 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
32 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
| - |
|
33 |
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
|
| 32 |
from sqlalchemy.sql import func
|
34 |
from sqlalchemy.sql import func
|
| 33 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
35 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
| 34 |
from string import Template
|
36 |
from string import Template
|
| 35 |
from textwrap import dedent
|
37 |
from textwrap import dedent
|
| 36 |
import datetime
|
38 |
import datetime
|
| 37 |
import logging
|
39 |
import logging
|
| 38 |
import os
|
40 |
import os
|
| 39 |
import sys
|
41 |
import sys
|
| 40 |
import time
|
42 |
import time
|
| 41 |
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
|
- |
|
| 42 |
logging.basicConfig(level=logging.DEBUG)
|
43 |
logging.basicConfig(level=logging.DEBUG)
|
| 43 |
|
44 |
|
| 44 |
|
45 |
|
| 45 |
|
46 |
|
| 46 |
|
47 |
|
| Line 235... |
Line 236... |
| 235 |
|
236 |
|
| 236 |
session.commit()
|
237 |
session.commit()
|
| 237 |
|
238 |
|
| 238 |
try:
|
239 |
try:
|
| 239 |
if new_status == TransactionStatus.COD_IN_PROCESS:
|
240 |
if new_status == TransactionStatus.COD_IN_PROCESS:
|
| 240 |
crm_client = CRMClient().get_client()
|
241 |
transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
|
| - |
|
242 |
transaction_requiring_extra_processing.category = 'COD_VERIFICATION'
|
| 241 |
crm_client.processCODTxn(transaction.id)
|
243 |
transaction_requiring_extra_processing.transaction_id = transaction_id
|
| - |
|
244 |
session.commit()
|
| 242 |
except Exception as e:
|
245 |
except Exception as e:
|
| 243 |
print e
|
246 |
print "Error inserting transaction Id: " + transaction_id + " due to "+ e
|
| 244 |
|
247 |
|
| 245 |
return True
|
248 |
return True
|
| 246 |
|
249 |
|
| 247 |
def __get_holidays(start_time=0L, to_time=-1L):
|
250 |
def __get_holidays(start_time=0L, to_time=-1L):
|
| 248 |
'''
|
251 |
'''
|
| Line 1329... |
Line 1332... |
| 1329 |
try:
|
1332 |
try:
|
| 1330 |
order.delay_reason = DelayReason._VALUES_TO_NAMES[reason]
|
1333 |
order.delay_reason = DelayReason._VALUES_TO_NAMES[reason]
|
| 1331 |
actual_delay = adjust_delivery_time(order.expected_delivery_time, further_delay)
|
1334 |
actual_delay = adjust_delivery_time(order.expected_delivery_time, further_delay)
|
| 1332 |
order.expected_delivery_time = order.expected_delivery_time + datetime.timedelta(days=actual_delay)
|
1335 |
order.expected_delivery_time = order.expected_delivery_time + datetime.timedelta(days=actual_delay)
|
| 1333 |
session.commit()
|
1336 |
session.commit()
|
| - |
|
1337 |
|
| - |
|
1338 |
try:
|
| - |
|
1339 |
transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
|
| - |
|
1340 |
transaction_requiring_extra_processing.category = 'DELAYED_DELIVERY'
|
| - |
|
1341 |
transaction_requiring_extra_processing.transaction_id = order.transaction_id
|
| - |
|
1342 |
session.commit()
|
| - |
|
1343 |
except Exception as e:
|
| - |
|
1344 |
print 'Could not persist transaction id: ' + order.transaction_id + ' for further processing due to: ' + e
|
| - |
|
1345 |
|
| 1334 |
return True
|
1346 |
return True
|
| 1335 |
except:
|
1347 |
except:
|
| 1336 |
print sys.exc_info()[0]
|
1348 |
print sys.exc_info()[0]
|
| 1337 |
return False
|
1349 |
return False
|
| 1338 |
|
1350 |
|
| Line 1372... |
Line 1384... |
| 1372 |
#Payment has been recorded now. We can update the order peacefully.
|
1384 |
#Payment has been recorded now. We can update the order peacefully.
|
| 1373 |
order.cod_reconciliation_timestamp = datetime.datetime.now()
|
1385 |
order.cod_reconciliation_timestamp = datetime.datetime.now()
|
| 1374 |
session.commit()
|
1386 |
session.commit()
|
| 1375 |
|
1387 |
|
| 1376 |
return unprocessed_awbs
|
1388 |
return unprocessed_awbs
|
| - |
|
1389 |
|
| - |
|
1390 |
def get_transactions_requiring_extra_processing(category):
|
| - |
|
1391 |
transactions = []
|
| - |
|
1392 |
|
| - |
|
1393 |
if category is None:
|
| - |
|
1394 |
transactions = [a.transaction_id for a in TransactionRequiringExtraProcessing.query.all()]
|
| 1377 |
|
1395 |
else:
|
| - |
|
1396 |
transactions = [a.transaction_id for a in TransactionRequiringExtraProcessing.query.filter_by(category = ExtraTransactionProcessingType._VALUES_TO_NAMES.get(category)).all()]
|
| - |
|
1397 |
|
| - |
|
1398 |
return transactions
|
| - |
|
1399 |
|
| - |
|
1400 |
def mark_transaction_as_processed(transactionId, category):
|
| - |
|
1401 |
TransactionRequiringExtraProcessing.query.filter_by(transaction_id = transactionId).filter_by(category = ExtraTransactionProcessingType._VALUES_TO_NAMES.get(category)).delete()
|
| - |
|
1402 |
session.commit()
|
| - |
|
1403 |
return
|
| - |
|
1404 |
|
| 1378 |
def close_session():
|
1405 |
def close_session():
|
| 1379 |
if session.is_active:
|
1406 |
if session.is_active:
|
| 1380 |
print "session is active. closing it."
|
1407 |
print "session is active. closing it."
|
| 1381 |
session.close()
|
1408 |
session.close()
|
| 1382 |
|
1409 |
|