| Line 2... |
Line 2... |
| 2 |
Created on 29-Mar-2010
|
2 |
Created on 29-Mar-2010
|
| 3 |
|
3 |
|
| 4 |
@author: Chandranshu
|
4 |
@author: Chandranshu
|
| 5 |
'''
|
5 |
'''
|
| 6 |
|
6 |
|
| 7 |
import sys
|
- |
|
| 8 |
import os
|
- |
|
| 9 |
import datetime
|
- |
|
| 10 |
import time
|
- |
|
| 11 |
import logging
|
- |
|
| 12 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
- |
|
| 13 |
logging.basicConfig(level=logging.DEBUG)
|
- |
|
| 14 |
|
- |
|
| 15 |
from datetime import date
|
7 |
from datetime import date
|
| 16 |
from textwrap import dedent
|
- |
|
| 17 |
from string import Template
|
- |
|
| 18 |
|
- |
|
| 19 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
- |
|
| 20 |
from sqlalchemy.sql import func
|
- |
|
| 21 |
|
- |
|
| 22 |
from elixir import *
|
8 |
from elixir import *
|
| 23 |
|
- |
|
| - |
|
9 |
from reportlab.lib.units import inch
|
| 24 |
from reportlab.pdfgen.canvas import Canvas
|
10 |
from reportlab.pdfgen.canvas import Canvas
|
| 25 |
from reportlab.rl_config import defaultPageSize
|
11 |
from reportlab.rl_config import defaultPageSize
|
| 26 |
from reportlab.lib.units import inch
|
- |
|
| 27 |
from shop2020.clients.PaymentClient import PaymentClient
|
12 |
from shop2020.clients.CRMClient import CRMClient
|
| 28 |
from shop2020.thriftpy.warehouse.ttypes import PurchaseOrder, LineItem as POLineItem
|
- |
|
| 29 |
|
- |
|
| 30 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
- |
|
| 31 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem,\
|
- |
|
| 32 |
Alerts, Order, BatchNoGenerator, InvoiceIDGenerator
|
- |
|
| 33 |
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
|
- |
|
| 34 |
TransactionServiceException, TransactionStatus, OrderStatus
|
- |
|
| 35 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
- |
|
| 36 |
from shop2020.model.v1 import order
|
- |
|
| 37 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
- |
|
| 38 |
from shop2020.clients.CatalogClient import CatalogClient
|
13 |
from shop2020.clients.CatalogClient import CatalogClient
|
| 39 |
from shop2020.clients.UserClient import UserClient
|
- |
|
| 40 |
from shop2020.clients.HelperClient import HelperClient
|
14 |
from shop2020.clients.HelperClient import HelperClient
|
| - |
|
15 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
| - |
|
16 |
from shop2020.clients.PaymentClient import PaymentClient
|
| 41 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
17 |
from shop2020.clients.TransactionClient import TransactionClient
|
| - |
|
18 |
from shop2020.clients.UserClient import UserClient
|
| 42 |
from shop2020.clients.WarehouseClient import WarehouseClient
|
19 |
from shop2020.clients.WarehouseClient import WarehouseClient
|
| - |
|
20 |
from shop2020.model.v1 import order
|
| - |
|
21 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
|
| - |
|
22 |
Alerts, Order, BatchNoGenerator, InvoiceIDGenerator
|
| - |
|
23 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
| - |
|
24 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
| 43 |
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, \
|
| - |
|
27 |
TransactionServiceException, TransactionStatus, OrderStatus
|
| - |
|
28 |
from shop2020.thriftpy.warehouse.ttypes import PurchaseOrder, \
|
| - |
|
29 |
LineItem as POLineItem
|
| - |
|
30 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
| - |
|
31 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
| - |
|
32 |
from sqlalchemy.sql import func
|
| - |
|
33 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
| - |
|
34 |
from string import Template
|
| - |
|
35 |
from textwrap import dedent
|
| - |
|
36 |
import datetime
|
| - |
|
37 |
import logging
|
| - |
|
38 |
import os
|
| - |
|
39 |
import sys
|
| - |
|
40 |
import time
|
| - |
|
41 |
logging.basicConfig(level=logging.DEBUG)
|
| - |
|
42 |
|
| - |
|
43 |
|
| - |
|
44 |
|
| - |
|
45 |
|
| - |
|
46 |
|
| 44 |
|
47 |
|
| 45 |
PAGE_HEIGHT=defaultPageSize[1]
|
48 |
PAGE_HEIGHT=defaultPageSize[1]
|
| 46 |
PAGE_WIDTH=defaultPageSize[0]
|
49 |
PAGE_WIDTH=defaultPageSize[0]
|
| 47 |
|
50 |
|
| - |
|
51 |
ORDER_STATUS_TO_USER_TRUST_LEVEL_DELTA_DICT = {
|
| - |
|
52 |
OrderStatus.SALES_RET_RESHIPPED : 3,
|
| - |
|
53 |
OrderStatus.SALES_RETURN_IN_TRANSIT : -5,
|
| - |
|
54 |
OrderStatus.DELIVERY_SUCCESS : 1,
|
| - |
|
55 |
OrderStatus.DOA_CERT_INVALID : -5,
|
| - |
|
56 |
}
|
| - |
|
57 |
|
| 48 |
def get_new_transaction():
|
58 |
def get_new_transaction():
|
| 49 |
transaction = Transaction()
|
59 |
transaction = Transaction()
|
| 50 |
transaction.createdOn = datetime.datetime.now()
|
60 |
transaction.createdOn = datetime.datetime.now()
|
| 51 |
transaction.status = TransactionStatus.INIT
|
61 |
transaction.status = TransactionStatus.INIT
|
| 52 |
transaction.status_message = "New transaction"
|
62 |
transaction.status_message = "New transaction"
|
| Line 214... |
Line 224... |
| 214 |
catalog_client = CatalogClient().get_client()
|
224 |
catalog_client = CatalogClient().get_client()
|
| 215 |
catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
|
225 |
catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
|
| 216 |
|
226 |
|
| 217 |
item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
|
227 |
item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
|
| 218 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
228 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| 219 |
|
229 |
|
| 220 |
session.commit()
|
230 |
session.commit()
|
| - |
|
231 |
|
| - |
|
232 |
if new_status == TransactionStatus.COD_IN_PROCESS:
|
| - |
|
233 |
crm_client = CRMClient().get_client()
|
| - |
|
234 |
crm_client.processCODTxn(transaction.id);
|
| - |
|
235 |
|
| 221 |
return True
|
236 |
return True
|
| 222 |
|
237 |
|
| 223 |
def adjust_delivery_time(order_time, delivery_days):
|
238 |
def adjust_delivery_time(order_time, delivery_days):
|
| 224 |
order_date = order_time.date()
|
239 |
order_date = order_time.date()
|
| 225 |
|
240 |
|
| Line 462... |
Line 477... |
| 462 |
def change_order_status(self, orderId, status, description):
|
477 |
def change_order_status(self, orderId, status, description):
|
| 463 |
order = get_order(orderId)
|
478 |
order = get_order(orderId)
|
| 464 |
order.status = status
|
479 |
order.status = status
|
| 465 |
order.statusDescription = description
|
480 |
order.statusDescription = description
|
| 466 |
session.commit()
|
481 |
session.commit()
|
| - |
|
482 |
|
| - |
|
483 |
trust_level_delta = compute_trust_level_delta(order)
|
| - |
|
484 |
if (trust_level_delta != 0):
|
| - |
|
485 |
user_client = UserClient().get_client()
|
| - |
|
486 |
user_client.increaseTrustLevel(order.customer_id, trust_level_delta)
|
| - |
|
487 |
|
| 467 |
return True
|
488 |
return True
|
| 468 |
|
489 |
|
| - |
|
490 |
def compute_trust_level_delta(order):
|
| - |
|
491 |
trust_level_delta = 0
|
| - |
|
492 |
|
| - |
|
493 |
if order.cod == True:
|
| - |
|
494 |
trust_level_delta = ORDER_STATUS_TO_USER_TRUST_LEVEL_DELTA_DICT.get(order.status, 0)
|
| - |
|
495 |
|
| - |
|
496 |
return trust_level_delta
|
| - |
|
497 |
|
| 469 |
def verify_order(self, orderId):
|
498 |
def verify_order(self, orderId):
|
| 470 |
logging.info("Verifying order no: " + str(orderId))
|
499 |
logging.info("Verifying order no: " + str(orderId))
|
| 471 |
order = get_order(orderId)
|
500 |
order = get_order(orderId)
|
| 472 |
if order.status == OrderStatus.INIT:
|
501 |
if order.status == OrderStatus.INIT:
|
| 473 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
502 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|