Subversion Repositories SmartDukaan

Rev

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

Rev 3994 Rev 4008
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