Beispiel #1
0
 def setup(self):
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
Beispiel #2
0
	def load_one(self, supplier_catalog_item):
		"""Load One"""
		query = DBSession.query(ProductModel)
		query = query.filter(ProductModel.manufacturer_id == supplier_catalog_item.manufacturer_id)
		query = query.filter(ProductModel.identifier == supplier_catalog_item.product_identifier)
		count = query.count()
		
		if (count == 0):
			product = ProductModel()
			product.manufacturer_id = supplier_catalog_item.manufacturer_id
			product.identifier = supplier_catalog_item.product_identifier
			DBSession.add(product)
			
			supplier_catalog_item_task = SupplierCatalogItemTask()
			supplier_catalog_item_task.update_product(supplier_catalog_item)
	def load_one(self, plug, file_import):
		"""Load One"""
		query = DBSession.query(SupplierCatalogModel)
		query = query.filter(SupplierCatalogModel.file_import_id == file_import.id)
		
		if query.count() == 0:
			supplier_catalog = SupplierCatalogModel()
			DBSession.add(supplier_catalog)
			supplier_catalog.file_import_id = file_import.id
		else:
			supplier_catalog = query.one()
			
		supplier_catalog.supplier_id = plug.supplier_id()
		supplier_catalog.supplier_catalog_filter_id = plug.supplier_catalog_filter_id()
		if not supplier_catalog.lock_issue_date:
			supplier_catalog.issue_date = plug.issue_date(file_import)
	def load_one(self, plug, file_import):
		"""Load One"""
		query = DBSession.query(SupplierSpecialModel)
		query = query.filter(SupplierSpecialModel.file_import_id == file_import.id)
		
		if query.count() == 0:
			supplier_special = SupplierSpecialModel()
			DBSession.add(supplier_special)
			supplier_special.file_import_id = file_import.id
		else:
			supplier_special = query.one()
		
		supplier_special.supplier_id = plug.supplier_id()
		supplier_special.supplier_special_filter_id = plug.supplier_special_filter_id()
		#if not supplier_special.lock_issue_date:
			
		if True:
			dates = plug.issue_dates(file_import)
			if dates is not None:
				supplier_special.begin_date = dates[0]
				supplier_special.end_date = dates[1]
				print 'BEGIN', supplier_special.begin_date
				print 'END', supplier_special.end_date
	def load_supplier_special_item_version(self, supplier_special, supplier_special_item_field, row_number):
		plug = self.plugins[supplier_special.supplier_special_filter_id]
		model_name = plug.version_model()  + 'Model'
		VersionModel = getattr(model, model_name)
		query = DBSession.query(VersionModel)
		query = query.filter(VersionModel.supplier_special_id == supplier_special.id)
		query = query.filter(VersionModel.row_number == row_number)
		
		if supplier_special_item_field is None:
			query.delete()
			supplier_special_item_version = None
		else:
			try:
				supplier_special_item_version = query.one()
			except NoResultFound:
				supplier_special_item_version = VersionModel()
				DBSession.add(supplier_special_item_version)
		
			supplier_special_item_version.supplier_special_id = supplier_special.id
			supplier_special_item_version.supplier_special_item_field_id = supplier_special_item_field.id
			supplier_special_item_version.supplier_special_filter_id = plug.supplier_special_filter_id()
			supplier_special_item_version.row_number = row_number
			#supplier_special_item_version.effective = supplier_special.issue_date
		return supplier_special_item_version
	def load_supplier_special_item_field(self, supplier_special, row):
		if row is not None:
			j = SupplierSpecialItemFieldModel.encode_json(row)
		else:
			j = None

		if j is None:
			supplier_special_item_field = None
		else:
			checksum = hashlib.sha1(j).hexdigest()
			plug = self.plugins[supplier_special.supplier_special_filter_id]
		
			query = DBSession.query(SupplierSpecialItemFieldModel)
			query = query.filter(SupplierSpecialItemFieldModel.checksum == checksum)
			try:
				supplier_special_item_field = query.one()
			except NoResultFound:
				supplier_special_item_field = SupplierSpecialItemFieldModel()
				DBSession.add(supplier_special_item_field)
			supplier_special_item_field.fields = j.encode('utf-8')
			supplier_special_item_field.checksum = checksum
			supplier_special_item_field.supplier_id = supplier_special.supplier_id
			supplier_special_item_field.supplier_special_filter_id = plug.supplier_special_filter_id()
		return supplier_special_item_field