def _save_records(self, records): formatted_records = format_records(self._filter_records(records), self.order_info) for record in formatted_records: order = self._get_or_create_order(record) if order: for item in record['ITEMS']: self._update_or_create_item(item, order)
def _save_records(self, records): formatted_records = format_records(self._filter_records(records), self.order_info) for record in formatted_records: try: order = self._get_or_create_order(record) if order: for item in record['ITEMS']: self._update_or_create_item(item, order) except VisionException, e: logger.error(e.message)
def test_should_format_order(self): orders = [{"SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 80, "SO_ITEM_DESC": "Scale,electronic,mother/child,150kgx100g", "NET_VALUE": 51322.65}, {"SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 90, "SO_ITEM_DESC": "MUAC,Child 11.5 Red/PAC-50", "NET_VALUE": 3655.16}, {"SALES_ORDER_NO": u"0020174363", "CREATE_DATE": u"/Date(1450069200000)/", "UPDATE_DATE": u"/Date(1450069200000)/", 'WBS_REFERENCE': '4380A004105007042', "SO_ITEM_NO": 10, "SO_ITEM_DESC": "Laundry soap, Carton, 25 bars, 800 grams", "NET_VALUE": 2673}] formatted_orders = [{'SALES_ORDER_NO': u"0020173918", 'WBS_REFERENCE': "0060A007883001002", 'ITEMS': [{"SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 80, "SO_ITEM_DESC": "Scale,electronic,mother/child,150kgx100g", "NET_VALUE": 51322.65}, {"SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 90, "SO_ITEM_DESC": "MUAC,Child 11.5 Red/PAC-50", "NET_VALUE": 3655.16}]}, {'SALES_ORDER_NO': u"0020174363", 'WBS_REFERENCE': '4380A004105007042', 'ITEMS': [{"SALES_ORDER_NO": u"0020174363", "CREATE_DATE": u"/Date(1450069200000)/", "UPDATE_DATE": u"/Date(1450069200000)/", 'WBS_REFERENCE': '4380A004105007042', "SO_ITEM_NO": 10, "SO_ITEM_DESC": "Laundry soap, Carton, 25 bars, 800 grams", "NET_VALUE": 2673}]}] order_info = ('SALES_ORDER_NO', 'WBS_REFERENCE') self.assertEqual(format_records(orders, order_info), formatted_orders)
def test_should_format_order(self): orders = [{ "SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 80, "SO_ITEM_DESC": "Scale,electronic,mother/child,150kgx100g", "NET_VALUE": 51322.65 }, { "SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 90, "SO_ITEM_DESC": "MUAC,Child 11.5 Red/PAC-50", "NET_VALUE": 3655.16 }, { "SALES_ORDER_NO": u"0020174363", "CREATE_DATE": u"/Date(1450069200000)/", "UPDATE_DATE": u"/Date(1450069200000)/", 'WBS_REFERENCE': '4380A004105007042', "SO_ITEM_NO": 10, "SO_ITEM_DESC": "Laundry soap, Carton, 25 bars, 800 grams", "NET_VALUE": 2673 }] formatted_orders = [{ 'SALES_ORDER_NO': u"0020173918", 'WBS_REFERENCE': "0060A007883001002", 'ITEMS': [{ "SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 80, "SO_ITEM_DESC": "Scale,electronic,mother/child,150kgx100g", "NET_VALUE": 51322.65 }, { "SALES_ORDER_NO": u"0020173918", "CREATE_DATE": u"/Date(1449118800000)/", "UPDATE_DATE": u"/Date(1449378000000)/", 'WBS_REFERENCE': "0060A007883001002", "SO_ITEM_NO": 90, "SO_ITEM_DESC": "MUAC,Child 11.5 Red/PAC-50", "NET_VALUE": 3655.16 }] }, { 'SALES_ORDER_NO': u"0020174363", 'WBS_REFERENCE': '4380A004105007042', 'ITEMS': [{ "SALES_ORDER_NO": u"0020174363", "CREATE_DATE": u"/Date(1450069200000)/", "UPDATE_DATE": u"/Date(1450069200000)/", 'WBS_REFERENCE': '4380A004105007042', "SO_ITEM_NO": 10, "SO_ITEM_DESC": "Laundry soap, Carton, 25 bars, 800 grams", "NET_VALUE": 2673 }] }] order_info = ('SALES_ORDER_NO', 'WBS_REFERENCE') self.assertEqual(format_records(orders, order_info), formatted_orders)