Subversion Repositories SmartDukaan

Rev

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

Rev 6638 Rev 6762
Line 8... Line 8...
8
from shop2020.clients.InventoryClient import InventoryClient
8
from shop2020.clients.InventoryClient import InventoryClient
9
from shop2020.clients.TransactionClient import TransactionClient
9
from shop2020.clients.TransactionClient import TransactionClient
10
from shop2020.purchase.main.model.Invoice import Invoice
10
from shop2020.purchase.main.model.Invoice import Invoice
11
from shop2020.purchase.main.model.LineItem import LineItem
11
from shop2020.purchase.main.model.LineItem import LineItem
12
from shop2020.purchase.main.model.Purchase import Purchase
12
from shop2020.purchase.main.model.Purchase import Purchase
13
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
-
 
14
from shop2020.purchase.main.model.PurchaseReturn import PurchaseReturn
13
from shop2020.purchase.main.model.PurchaseReturn import PurchaseReturn
15
from shop2020.purchase.main.model.RevisionedPurchaseOrder import \
14
from shop2020.purchase.main.model.RevisionedPurchaseOrder import \
16
    RevisionedPurchaseOrder
15
    RevisionedPurchaseOrder
17
from shop2020.purchase.main.model.Supplier import Supplier
16
from shop2020.purchase.main.model.Supplier import Supplier
-
 
17
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
18
from shop2020.thriftpy.generic.ttypes import ExceptionType
18
from shop2020.thriftpy.generic.ttypes import ExceptionType
19
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
19
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
20
    InventoryType
20
    InventoryType
21
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
21
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
22
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
22
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
Line 43... Line 43...
43
        engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
43
        engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
44
        metadata.bind = engine
44
        metadata.bind = engine
45
        metadata.bind.echo = echoOn
45
        metadata.bind.echo = echoOn
46
        setup_all(True)
46
        setup_all(True)
47
        
47
        
-
 
48
    def getPOforOurExternalBilling(self):
-
 
49
        todayDate = datetime.datetime.now()
-
 
50
        todayDate = todayDate.replace(hour=0) 
-
 
51
        purchaseOrder = PurchaseOrder.query.filter(PurchaseOrder.supplierId == 1).filter(PurchaseOrder.createdAt > todayDate).first()
-
 
52
        if purchaseOrder is None:
-
 
53
            t_purchaseOrder = TPurchaseOrder()
-
 
54
            t_purchaseOrder.supplierId = 1
-
 
55
            t_purchaseOrder.createdAt = datetime.datetime.now()
-
 
56
            t_purchaseOrder.status = 0
-
 
57
            t_purchaseOrder.totalCost = 0
-
 
58
            t_purchaseOrder.poNumber = 'Ours-Ext-' + str(todayDate.year) + "-" + str(todayDate.month) + "-" + str(todayDate.day)
-
 
59
            purchaseOrder = PurchaseOrder(t_purchaseOrder)
-
 
60
            session.commit()
-
 
61
        return purchaseOrder.id    
-
 
62
       
-
 
63
    def updatelineItemforOursExternalBilling(self, poId, itemId, unitPrice):
-
 
64
        lineItem = LineItem.get_by(purchaseOrder_id=poId, itemId=itemId)
-
 
65
        if lineItem is None:
-
 
66
            purchaseOrder = PurchaseOrder.get_by(id=poId)
-
 
67
            t_lineItem = TLineItem()
-
 
68
            t_lineItem.itemId = itemId
-
 
69
            t_lineItem.quantity = 1
-
 
70
            t_lineItem.unfulfilledQuantity = 1
-
 
71
            t_lineItem.createdAt = datetime.datetime.now()
-
 
72
            t_lineItem.unitPrice = unitPrice
-
 
73
            t_lineItem.fulfilled = False
-
 
74
            lineItem = LineItem(purchaseOrder, t_lineItem)
-
 
75
        else:
-
 
76
            lineItem.quantity = lineItem.quantity + 1
-
 
77
            lineItem.fulfilled = False
-
 
78
            lineItem.unfulfilledQuantity = lineItem.unfulfilledQuantity + 1
-
 
79
        session.commit()
-
 
80
               
-
 
81
    def receiveinvoiceforOursExternalBilling(self, invoiceNumber):
-
 
82
        invoice = Invoice()
-
 
83
        invoice.invoiceNumber = invoiceNumber
-
 
84
        invoice.date = datetime.datetime.now()
-
 
85
        invoice.numItems = 1
-
 
86
        invoice.receivedFrom = "Hotspot-Billing"
-
 
87
        invoice.supplierId = 1
-
 
88
        session.commit()
-
 
89
    
-
 
90
    def createPurchaseforOursExternalBilling(self, poId, invoiceNumber):
-
 
91
        purchaseOrder = PurchaseOrder.get_by(id=poId)
-
 
92
        purchase = Purchase(purchaseOrder, invoiceNumber, 0)
-
 
93
        session.commit()
-
 
94
        return purchase.id
-
 
95
        
48
    def createPurchaseOrder(self, tPurchaseOrder):
96
    def createPurchaseOrder(self, tPurchaseOrder):
49
        """
97
        """
50
        Creates a purchase order based on the data in the given purchase order object.
98
        Creates a purchase order based on the data in the given purchase order object.
51
        This method populates a number of missing fields
99
        This method populates a number of missing fields
52
        
100
        
Line 111... Line 159...
111
         - purchaseOrderId
159
         - purchaseOrderId
112
         - invoiceNumber
160
         - invoiceNumber
113
         - freightCharges
161
         - freightCharges
114
        """
162
        """
115
        try:
163
        try:
116
            purchase_order = PurchaseOrder.get_by(id = purchaseOrderId)
164
            purchase_order = PurchaseOrder.get_by(id=purchaseOrderId)
117
            purchase = Purchase(purchase_order, invoiceNumber, freightCharges)
165
            purchase = Purchase(purchase_order, invoiceNumber, freightCharges)
118
            session.commit()
166
            session.commit()
119
            return purchase.id
167
            return purchase.id
120
        finally:
168
        finally:
121
            self.close_session()
169
            self.close_session()
Line 143... Line 191...
143
         - purchaseOrderId
191
         - purchaseOrderId
144
         - open
192
         - open
145
        """
193
        """
146
        try:
194
        try:
147
            if open:
195
            if open:
148
                purchases = Purchase.query.filter_by(purchaseOrder_id = purchaseOrderId, receivedOn = None).all()
196
                purchases = Purchase.query.filter_by(purchaseOrder_id=purchaseOrderId, receivedOn=None).all()
149
            else:
197
            else:
150
                purchases = Purchase.query.filter_by(purchaseOrder_id = purchaseOrderId).filter(Purchase.receivedOn != None).all()
198
                purchases = Purchase.query.filter_by(purchaseOrder_id=purchaseOrderId).filter(Purchase.receivedOn != None).all()
151
            
199
            
152
            return [purchase.to_thrift_object() for purchase in purchases]
200
            return [purchase.to_thrift_object() for purchase in purchases]
153
        finally:
201
        finally:
154
            self.close_session()
202
            self.close_session()
155
    
203
    
Line 160... Line 208...
160
        Parameters:
208
        Parameters:
161
         - purchaseOrderId
209
         - purchaseOrderId
162
         - open
210
         - open
163
        """
211
        """
164
        try:
212
        try:
165
            purchases = Purchase.query.filter_by(purchaseOrder_id = purchaseOrderId).all()
213
            purchases = Purchase.query.filter_by(purchaseOrder_id=purchaseOrderId).all()
166
            return [purchase.to_thrift_object() for purchase in purchases]
214
            return [purchase.to_thrift_object() for purchase in purchases]
167
        finally:
215
        finally:
168
            self.close_session()
216
            self.close_session()
169
 
217
 
170
 
218
 
Line 174... Line 222...
174
 
222
 
175
        Parameters:
223
        Parameters:
176
         - purchaseId
224
         - purchaseId
177
        """
225
        """
178
        try:
226
        try:
179
            return self.getPurchaseOrder(Purchase.query.filter_by(id = purchaseId).one().purchaseOrder_id)
227
            return self.getPurchaseOrder(Purchase.query.filter_by(id=purchaseId).one().purchaseOrder_id)
180
        finally:
228
        finally:
181
            self.close_session()
229
            self.close_session()
182
 
230
 
183
    def getPendingPurchaseOrders(self, warehouseId):
231
    def getPendingPurchaseOrders(self, warehouseId):
184
        """
232
        """
Line 241... Line 289...
241
            netRequirements = {}
289
            netRequirements = {}
242
            for itemId in requirements.keys():
290
            for itemId in requirements.keys():
243
                requirementsCount = requirements.get(itemId)
291
                requirementsCount = requirements.get(itemId)
244
                if  availability.has_key(itemId):
292
                if  availability.has_key(itemId):
245
                    availabilityCount = availability.get(itemId)[0]
293
                    availabilityCount = availability.get(itemId)[0]
246
                    item              = availability.get(itemId)[1]
294
                    item = availability.get(itemId)[1]
247
                    if requirementsCount > availabilityCount:
295
                    if requirementsCount > availabilityCount:
248
                        if item.preferredVendor is None:
296
                        if item.preferredVendor is None:
249
                            raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
297
                            raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
250
                        if (netRequirements.has_key(item.preferredVendor)):
298
                        if (netRequirements.has_key(item.preferredVendor)):
251
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
299
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
Line 267... Line 315...
267
                t_purchase_order = TPurchaseOrder()
315
                t_purchase_order = TPurchaseOrder()
268
                t_purchase_order.supplierId = vendorId
316
                t_purchase_order.supplierId = vendorId
269
                t_purchase_order.warehouseId = warehouseId
317
                t_purchase_order.warehouseId = warehouseId
270
                t_purchase_order.lineitems = []
318
                t_purchase_order.lineitems = []
271
                for key in netRequirements.get(vendorId):
319
                for key in netRequirements.get(vendorId):
272
                    item     = key[0]
320
                    item = key[0]
273
                    quantity = key[1]
321
                    quantity = key[1]
274
                    t_po_lineitem = TLineItem()
322
                    t_po_lineitem = TLineItem()
275
                    t_po_lineitem.productGroup = item.productGroup
323
                    t_po_lineitem.productGroup = item.productGroup
276
                    t_po_lineitem.brand = item.brand
324
                    t_po_lineitem.brand = item.brand
277
                    t_po_lineitem.modelNumber = item.modelNumber
325
                    t_po_lineitem.modelNumber = item.modelNumber
Line 293... Line 341...
293
                purchaseOrders.append(t_purchase_order)
341
                purchaseOrders.append(t_purchase_order)
294
            return purchaseOrders
342
            return purchaseOrders
295
        finally:
343
        finally:
296
            self.close_session()
344
            self.close_session()
297
 
345
 
298
    def getSuppliers(self, ):
346
    def getSuppliers(self,):
299
        """
347
        """
300
        Returns all the valid suppliers
348
        Returns all the valid suppliers
301
        """
349
        """
302
        try:
350
        try:
303
            return [Supplier.to_thrift_object(supplier) for supplier in Supplier.query.all()]
351
            return [Supplier.to_thrift_object(supplier) for supplier in Supplier.query.all()]
Line 312... Line 360...
312
         - purchaseId
360
         - purchaseId
313
         - itemId
361
         - itemId
314
         - quantity
362
         - quantity
315
        """
363
        """
316
        try:
364
        try:
317
            purchaseOrderId = Purchase.query.filter_by(id = purchaseId).one().purchaseOrder_id
365
            purchaseOrderId = Purchase.query.filter_by(id=purchaseId).one().purchaseOrder_id
318
            lineitems = LineItem.query.filter_by(purchaseOrder_id = purchaseOrderId, itemId = itemId).all()
366
            lineitems = LineItem.query.filter_by(purchaseOrder_id=purchaseOrderId, itemId=itemId).all()
319
            if lineitems:
367
            if lineitems:
320
                fulfilledQuantity = lineitems[0].quantity - lineitems[0].unfulfilledQuantity
368
                fulfilledQuantity = lineitems[0].quantity - lineitems[0].unfulfilledQuantity
321
                if fulfilledQuantity < quantity:
369
                if fulfilledQuantity < quantity:
322
                    raise PurchaseServiceException(101, 'Can UnFulfill only ' + str(fulfilledQuantity) + 'quantity')
370
                    raise PurchaseServiceException(101, 'Can UnFulfill only ' + str(fulfilledQuantity) + 'quantity')
323
                else:
371
                else:
Line 340... Line 388...
340
         - purchaseOrderId
388
         - purchaseOrderId
341
         - itemId
389
         - itemId
342
         - quantity
390
         - quantity
343
        """
391
        """
344
        try:
392
        try:
345
            lineitems = LineItem.query.filter_by(purchaseOrder_id = purchaseOrderId, itemId = itemId).all()
393
            lineitems = LineItem.query.filter_by(purchaseOrder_id=purchaseOrderId, itemId=itemId).all()
346
            if lineitems:
394
            if lineitems:
347
                if lineitems[0].unfulfilledQuantity < quantity:
395
                if lineitems[0].unfulfilledQuantity < quantity:
348
                    raise PurchaseServiceException(101, 'Can fulfill only ' + str(lineitems[0].unfulfilledQuantity) + ' quantity')
396
                    raise PurchaseServiceException(101, 'Can fulfill only ' + str(lineitems[0].unfulfilledQuantity) + ' quantity')
349
                else:
397
                else:
350
                    lineitems[0].unfulfilledQuantity = lineitems[0].unfulfilledQuantity - quantity
398
                    lineitems[0].unfulfilledQuantity = lineitems[0].unfulfilledQuantity - quantity
351
                    if not lineitems[0].unfulfilledQuantity:
399
                    if not lineitems[0].unfulfilledQuantity:
352
                        lineitems[0].fulfilled = 1
400
                        lineitems[0].fulfilled = 1
353
                        session.commit()
401
                        session.commit()
354
                        if not LineItem.query.filter_by(purchaseOrder_id = purchaseOrderId, fulfilled = 0).all():
402
                        if not LineItem.query.filter_by(purchaseOrder_id=purchaseOrderId, fulfilled=0).all():
355
                            purchaseOrder = PurchaseOrder.get_by(id=purchaseOrderId)
403
                            purchaseOrder = PurchaseOrder.get_by(id=purchaseOrderId)
356
                            purchaseOrder.status = POStatus.CLOSED
404
                            purchaseOrder.status = POStatus.CLOSED
357
                    session.commit()
405
                    session.commit()
358
                    return
406
                    return
359
    
407
    
360
            raise PurchaseServiceException(101, 'No lineitem found with this itemId: ' + str(itemId) + ' in PO Id: ' + str(purchaseOrderId) )
408
            raise PurchaseServiceException(101, 'No lineitem found with this itemId: ' + str(itemId) + ' in PO Id: ' + str(purchaseOrderId))
361
        finally:
409
        finally:
362
            self.close_session()
410
            self.close_session()
363
 
411
 
364
    def updatePurchaseOrder(self, purchaseOrder):
412
    def updatePurchaseOrder(self, purchaseOrder):
365
        """
413
        """
Line 367... Line 415...
367
 
415
 
368
        Parameters:
416
        Parameters:
369
         - purchaseOrder
417
         - purchaseOrder
370
        """
418
        """
371
        try:
419
        try:
372
            existingPurchaseOrder = PurchaseOrder.get_by(id = purchaseOrder.id)
420
            existingPurchaseOrder = PurchaseOrder.get_by(id=purchaseOrder.id)
373
            maxRevision = 0
421
            maxRevision = 0
374
            existingRevisions = RevisionedPurchaseOrder.query.filter_by(purchaseOrderId = purchaseOrder.id).all()
422
            existingRevisions = RevisionedPurchaseOrder.query.filter_by(purchaseOrderId=purchaseOrder.id).all()
375
            if existingRevisions:
423
            if existingRevisions:
376
                maxRevision = max([a.revision for a in existingRevisions]) + 1
424
                maxRevision = max([a.revision for a in existingRevisions]) + 1
377
 
425
 
378
            newPOItems = {}
426
            newPOItems = {}
379
            for t_lineitem in purchaseOrder.lineitems:
427
            for t_lineitem in purchaseOrder.lineitems:
Line 427... Line 475...
427
 
475
 
428
        Parameters:
476
        Parameters:
429
         - invoiceNumber, supplierId
477
         - invoiceNumber, supplierId
430
        """
478
        """
431
        try:
479
        try:
432
            invoice = Invoice.query.filter_by(invoiceNumber = invoiceNumber, supplierId = supplierId).first()
480
            invoice = Invoice.query.filter_by(invoiceNumber=invoiceNumber, supplierId=supplierId).first()
433
            if invoice is None:
481
            if invoice is None:
434
                return invoice
482
                return None
435
            else:
483
            else:
436
                return invoice.to_thrift_object()
484
                return invoice.to_thrift_object()
437
        finally:
485
        finally:
438
            self.close_session()
486
            self.close_session()
439
    
487
    
Line 443... Line 491...
443
 
491
 
444
        Parameters:
492
        Parameters:
445
         - invoice
493
         - invoice
446
        """
494
        """
447
        try:
495
        try:
448
            if Invoice.query.filter_by(supplierId = invoice.supplierId, date = to_py_date(invoice.date), invoiceNumber = invoice.invoiceNumber).all():
496
            if Invoice.query.filter_by(supplierId=invoice.supplierId, date=to_py_date(invoice.date), invoiceNumber=invoice.invoiceNumber).all():
449
                raise PurchaseServiceException(ExceptionType.ILLEGAL_ARGUMENTS, "Already received such invoice")
497
                raise PurchaseServiceException(ExceptionType.ILLEGAL_ARGUMENTS, "Already received such invoice")
450
            invoiceObj = Invoice()
498
            invoiceObj = Invoice()
451
            invoiceObj.invoiceNumber = invoice.invoiceNumber
499
            invoiceObj.invoiceNumber = invoice.invoiceNumber
452
            invoiceObj.date = to_py_date(invoice.date)
500
            invoiceObj.date = to_py_date(invoice.date)
453
            invoiceObj.receivedFrom = invoice.receivedFrom
501
            invoiceObj.receivedFrom = invoice.receivedFrom
Line 516... Line 564...
516
        '''
564
        '''
517
        For getting invoiceNumbers for a Purchase Order
565
        For getting invoiceNumbers for a Purchase Order
518
        '''
566
        '''
519
        try:
567
        try:
520
            
568
            
521
            purchases = Purchase.query.filter_by(purchaseOrder = poNumber)
569
            purchases = Purchase.query.filter_by(purchaseOrder=poNumber)
522
            for purchase in purchases:
570
            for purchase in purchases:
523
                invoice = purchase.invoiceNumber
571
                invoice = purchase.invoiceNumber
524
        except:
572
        except:
525
            return None
573
            return None
526
        finally:
574
        finally:
Line 529... Line 577...
529
    def createPurchaseReturn(self, t_purchaseReturn):
577
    def createPurchaseReturn(self, t_purchaseReturn):
530
        '''
578
        '''
531
        For creating a new Purchase Return
579
        For creating a new Purchase Return
532
        '''
580
        '''
533
        try:
581
        try:
534
            purchaseReturn = PurchaseReturn(t_purchaseReturn.vendorId,t_purchaseReturn.amount)
582
            purchaseReturn = PurchaseReturn(t_purchaseReturn.vendorId, t_purchaseReturn.amount)
535
            purchaseReturn.vendorId = t_purchaseReturn.vendorId
583
            purchaseReturn.vendorId = t_purchaseReturn.vendorId
536
            purchaseReturn.amount = t_purchaseReturn.amount
584
            purchaseReturn.amount = t_purchaseReturn.amount
537
            purchaseReturn.returnTimestamp = to_py_date(t_purchaseReturn.returnTimestamp)
585
            purchaseReturn.returnTimestamp = to_py_date(t_purchaseReturn.returnTimestamp)
538
            purchaseReturn.isSettled = False
586
            purchaseReturn.isSettled = False
539
            session.commit()
587
            session.commit()
Line 547... Line 595...
547
    def getUnsettledPurchaseReturns(self):
595
    def getUnsettledPurchaseReturns(self):
548
        '''
596
        '''
549
        For getting all unsettled Purchase Returns
597
        For getting all unsettled Purchase Returns
550
        '''
598
        '''
551
        try:
599
        try:
552
            purchaseReturns = PurchaseReturn.query.filter_by(isSettled = False).all()
600
            purchaseReturns = PurchaseReturn.query.filter_by(isSettled=False).all()
553
            return [purchasereturn.to_thrift_object() for purchasereturn in purchaseReturns]
601
            return [purchasereturn.to_thrift_object() for purchasereturn in purchaseReturns]
554
        except Exception as e:
602
        except Exception as e:
555
            print e
603
            print e
556
            raise PurchaseServiceException(101, 'Exception while fetching all Unsettled Purchase Returns')
604
            raise PurchaseServiceException(101, 'Exception while fetching all Unsettled Purchase Returns')
557
        finally:
605
        finally:
Line 560... Line 608...
560
    def settlePurchaseReturn(self, returnId):
608
    def settlePurchaseReturn(self, returnId):
561
        '''
609
        '''
562
        For marking a Purchase Return as settled
610
        For marking a Purchase Return as settled
563
        '''
611
        '''
564
        try:
612
        try:
565
            purchaseReturn = PurchaseReturn.query.filter_by(id = returnId).one()
613
            purchaseReturn = PurchaseReturn.query.filter_by(id=returnId).one()
566
            purchaseReturn.isSettled = True
614
            purchaseReturn.isSettled = True
567
            session.commit()
615
            session.commit()
568
        except Exception as e:
616
        except Exception as e:
569
            print e
617
            print e
570
            raise PurchaseServiceException(101, 'Exception while settling Purchase Return Id : ' + id)
618
            raise PurchaseServiceException(101, 'Exception while settling Purchase Return Id : ' + id)
571
        finally:
619
        finally:
572
            self.close_session()
620
            self.close_session()
-
 
621
    
-
 
622
    def createPurchaseForOurExtBilling(self, invoiceNumber, unitPrice, itemId):
-
 
623
        try:
-
 
624
            poId = self.getPOforOurExternalBilling()
-
 
625
            self.updatelineItemforOursExternalBilling(poId, itemId, unitPrice)
-
 
626
            self.receiveinvoiceforOursExternalBilling(invoiceNumber)
-
 
627
            return self.createPurchaseforOursExternalBilling(poId, invoiceNumber)
-
 
628
        except Exception as e:
-
 
629
            print e
-
 
630
            raise PurchaseServiceException(101, '')
-
 
631
        finally:
-
 
632
            self.close_session()
-
 
633
    
-
 
634
    def fulfillPOForExtBilling(self, itemId, quantity):
-
 
635
        poId = self.getPOforOurExternalBilling()
-
 
636
        lineItem = LineItem.get_by(purchaseOrder_id=poId, itemId=itemId)
-
 
637
        lineItem.unfulfilledQuantity = lineItem.unfulfilledQuantity - 1
-
 
638
        if not lineItem.unfulfilledQuantity:
-
 
639
            lineItem.fulfilled = 1
-
 
640
        session.commit()
573
 
641
 
574
    def isAlive(self, ):
642
    def isAlive(self,):
575
        """
643
        """
576
        For checking weather service is active alive or not. It also checks connectivity with database
644
        For checking weather service is active alive or not. It also checks connectivity with database
577
        """
645
        """
578
        try:
646
        try:
579
            session.query(Supplier.id).limit(1).all()
647
            session.query(Supplier.id).limit(1).all()
Line 583... Line 651...
583
        finally:
651
        finally:
584
            self.close_session()
652
            self.close_session()
585
 
653
 
586
    def __get_item_from_master(self, item_id):
654
    def __get_item_from_master(self, item_id):
587
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
655
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
588
        return client.getItem(item_id)
-
 
589
656
        return client.getItem(item_id)
-
 
657