private bool AttachObjectCustomFieldWithDefaultValue(Session session , DAL.CMS.ObjectDocument.Object CMSObject , NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField objectTypeCustomField , CustomFieldTypeFlag option) { try { //Create ObjectCustomField ObjectCustomField objectCustomField = new ObjectCustomField(session) { ObjectCustomFieldId = Guid.NewGuid(), ObjectId = CMSObject, ObjectTypeCustomFieldId = objectTypeCustomField, CustomFieldType = option.Value }; objectCustomField.Save(); //Insert default value for custom field CustomFieldData customFieldData = null; string customFieldTypeCode = objectTypeCustomField.CustomFieldId.CustomFieldTypeId.Code; BasicCustomFieldTypeEnum basicCustomFieldType = BasicCustomFieldTypeEnum.NONE; bool isBasicType = Enum.TryParse <BasicCustomFieldTypeEnum>(customFieldTypeCode, out basicCustomFieldType); if (isBasicType) { customFieldData = InitDefaultDataForBasicCustomFieldType(session, (BasicCustomFieldTypeEnum)Enum.Parse(typeof(BasicCustomFieldTypeEnum), customFieldTypeCode), objectTypeCustomField.CustomFieldId.CustomFieldId); if (customFieldData != null) { //Insert into ObjectCustomFieldData ObjectCustomFieldData defaultObjectCustomFieldData = new ObjectCustomFieldData(session) { ObjectCustomFieldDataId = Guid.NewGuid(), CustomFieldDataId = customFieldData, ObjectCustomFieldId = objectCustomField }; defaultObjectCustomFieldData.Save(); } } return(true); } catch (Exception) { throw; } }
public bool AddItemToSelectedCustomFieldDataItems(UnitOfWork uow, Guid objectCustomFieldId, Guid customFieldDataStringId) { try { //Get ObjectCustomField by Id ObjectCustomField objectCustomField = uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId); if (objectCustomField == null) { throw new Exception("The key is not exist in ObjectCustomField"); } CustomFieldDataString customFieldDataString = uow.GetObjectByKey <CustomFieldDataString>(customFieldDataStringId); if (customFieldDataString == null) { throw new Exception("The key is not exist in CustomFieldDataString"); } CriteriaOperator criteria = CriteriaOperator.And( new BinaryOperator("ObjectCustomFieldId", objectCustomField), new BinaryOperator("CustomFieldDataId", customFieldDataString) ); ObjectCustomFieldData ocfd = uow.FindObject <ObjectCustomFieldData>(criteria); if (ocfd == null) { ocfd = new ObjectCustomFieldData(uow); ocfd.ObjectCustomFieldId = objectCustomField; ocfd.CustomFieldDataId = customFieldDataString; } uow.CommitChanges(); //else // throw new Exception("The item has been added before"); return(true); } catch (Exception) { throw; } }
public override NASCustomFieldPredefinitionData GetPredefinitionDataOfObject(Guid objectCustomFieldId) { NASCustomFieldPredefinitionData ret = null; Session session = null; try { session = XpoHelper.GetNewSession(); ObjectCustomFieldData objectCustomFieldData = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId).ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData != null) { PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; Organization customer = session.GetObjectByKey <Organization>(predefinitionData.RefId); if (customer != null) { ret = new NASCustomFieldPredefinitionData() { Code = customer.Code, Description = customer.Description, Name = customer.Name, PredefinitionType = Enum.GetName(typeof(SingleSelectionBuiltInTypeEnum), SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER), RefId = customer.OrganizationId }; } } return(ret); } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }
public override NASCustomFieldPredefinitionData GetPredefinitionDataOfObject(Guid objectCustomFieldId) { NASCustomFieldPredefinitionData ret = null; Session session = null; try { session = XpoHelper.GetNewSession(); ObjectCustomFieldData objectCustomFieldData = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId).ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData != null) { PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; SalesInvoice salesInvoice = session.GetObjectByKey <SalesInvoice>(predefinitionData.RefId); if (salesInvoice != null) { ret = new NASCustomFieldPredefinitionData() { Code = salesInvoice.Code, Description = String.Empty, Name = String.Empty, PredefinitionType = Enum.GetName(typeof(SingleSelectionBuiltInTypeEnum), SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE), RefId = salesInvoice.BillId }; } } return(ret); } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }
public override NASCustomFieldPredefinitionData GetPredefinitionDataOfObject(Guid objectCustomFieldId) { NASCustomFieldPredefinitionData ret = null; Session session = null; try { session = XpoHelper.GetNewSession(); ObjectCustomFieldData objectCustomFieldData = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId).ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData != null) { PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; InventoryCommand command = session.GetObjectByKey <InventoryCommand>(predefinitionData.RefId); if (command != null) { ret = new NASCustomFieldPredefinitionData() { Code = command.Code, Description = command.Description, Name = command.Name, PredefinitionType = Enum.GetName(typeof(SingleSelectionBuiltInTypeEnum), SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INPUT_INVENTORY_COMMAND), RefId = command.InventoryCommandId }; } } return(ret); } catch (Exception) { throw; } finally { if (session != null) { session.Dispose(); } } }
/// <summary> /// Get supplier that allocated for the ReceiptVouchesTransaction /// </summary> /// <param name="session">DevExpress.Xpo.Session</param> /// <param name="transactionId">Id of type ReceiptVouchesTransaction</param> /// <returns></returns> public Organization GetAllocatedSupplier(Session session, Guid transactionId) { Organization ret = null; try { ReceiptVouchesTransaction transaction = session.GetObjectByKey <ReceiptVouchesTransaction>(transactionId); TransactionObject transactionObject = transaction.TransactionObjects.First(); if (transactionObject == null) { return(null); } ObjectTypeCustomField objectTypeCustomField = ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.RECEIPT_VOUCHER_SUPPLIER); ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where( r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault(); if (objectCustomField == null) { return(null); } ObjectCustomFieldData objectCustomFieldData = objectCustomField.ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData == null) { return(null); } PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; ret = session.GetObjectByKey <Organization>(predefinitionData.RefId); return(ret); } catch (Exception) { throw; } }
public InventoryCommand GetAllocatedInputInventoryCommandByManualTransaction(Session session, Guid manualBookingTransactionId) { InventoryCommand ret = null; try { Transaction transaction = session.GetObjectByKey <Transaction>(manualBookingTransactionId); TransactionObject transactionObject = transaction.TransactionObjects.First(); if (transactionObject == null) { return(null); } ObjectTypeCustomField objectTypeCustomField = ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_INPUT_INVENTORY_COMMAND); ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where( r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault(); if (objectCustomField == null) { return(null); } ObjectCustomFieldData objectCustomFieldData = objectCustomField.ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData == null) { return(null); } PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; ret = session.GetObjectByKey <InventoryCommand>(predefinitionData.RefId); return(ret); } catch (Exception) { throw; } }
public NAS.DAL.Invoice.PurchaseInvoice GetAllocatedPurchaseInvoiceByManualTransaction(Session session, Guid manualBookingTransactionId) { NAS.DAL.Invoice.PurchaseInvoice ret = null; try { Transaction transaction = session.GetObjectByKey <Transaction>(manualBookingTransactionId); TransactionObject transactionObject = transaction.TransactionObjects.First(); if (transactionObject == null) { return(null); } ObjectTypeCustomField objectTypeCustomField = ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_PURCHASE_INVOICE); ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where( r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault(); if (objectCustomField == null) { return(null); } ObjectCustomFieldData objectCustomFieldData = objectCustomField.ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData == null) { return(null); } PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; ret = session.GetObjectByKey <NAS.DAL.Invoice.PurchaseInvoice>(predefinitionData.RefId); return(ret); } catch (Exception) { throw; } }
public NAS.DAL.Invoice.PurchaseInvoice GetAllocatedPurchaseInvoiceByInventoryCommand(Session session, Guid inventoryCommandId) { NAS.DAL.Invoice.PurchaseInvoice ret = null; try { InventoryCommand command = session.GetObjectByKey <InventoryCommand>(inventoryCommandId); InventoryCommandObject commandObject = command.InventoryCommandObjects.First(); if (commandObject == null) { return(null); } ObjectTypeCustomField objectTypeCustomField = ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.INVENTORY_IN_PURCHASE_INVOICE); ObjectCustomField objectCustomField = commandObject.ObjectId.ObjectCustomFields.Where( r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault(); if (objectCustomField == null) { return(null); } ObjectCustomFieldData objectCustomFieldData = objectCustomField.ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData == null) { return(null); } PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; ret = session.GetObjectByKey <NAS.DAL.Invoice.PurchaseInvoice>(predefinitionData.RefId); return(ret); } catch (Exception) { throw; } }
public NAS.DAL.Nomenclature.Organization.Organization GetAllocatedCustomerByManualTransaction(Session session, Guid manualBookingTransactionId) { NAS.DAL.Nomenclature.Organization.Organization ret = null; try { Transaction transaction = session.GetObjectByKey <Transaction>(manualBookingTransactionId); TransactionObject transactionObject = transaction.TransactionObjects.First(); if (transactionObject == null) { return(null); } ObjectTypeCustomField objectTypeCustomField = ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_CUSTOMER); ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where( r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId == objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault(); if (objectCustomField == null) { return(null); } ObjectCustomFieldData objectCustomFieldData = objectCustomField.ObjectCustomFieldDatas.FirstOrDefault(); if (objectCustomFieldData == null) { return(null); } PredefinitionData predefinitionData = (PredefinitionData)objectCustomFieldData.CustomFieldDataId; ret = session.GetObjectByKey <NAS.DAL.Nomenclature.Organization.Organization>(predefinitionData.RefId); return(ret); } catch (Exception) { return(null); } }
public bool UpdateCustomFieldData(Guid objectCustomFieldId, Guid customFieldDataStringId) { Session session = null; try { session = XpoHelper.GetNewSession(); //Get ObjectCustomField by Id session.BeginTransaction(); ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId); if (objectCustomField == null) { throw new Exception("The key is not exist in ObjectCustomField"); } CustomFieldDataString customFieldDataString = session.GetObjectByKey <CustomFieldDataString>(customFieldDataStringId); if (customFieldDataString == null) { session.Delete(objectCustomField.ObjectCustomFieldDatas); DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem() { ObjectCustomFieldId = objectCustomFieldId, CustomFieldName = null, CustomFieldData = null }; ObjectBO objectBO = new ObjectBO(); objectBO.SetDynamicObjectListItem(session, objectCustomField.ObjectId.ObjectId, dataitem); //throw new Exception("The key is not exist in CustomFieldDataString"); } else { if (objectCustomField.ObjectCustomFieldDatas != null && objectCustomField.ObjectCustomFieldDatas.Count > 0) { for (int i = 0; i < objectCustomField.ObjectCustomFieldDatas.Count; i++) { objectCustomField.ObjectCustomFieldDatas[i].Delete(); } } ObjectCustomFieldData ocfd = new ObjectCustomFieldData(session); ocfd.ObjectCustomFieldId = objectCustomField; ocfd.CustomFieldDataId = customFieldDataString; ocfd.Save(); ObjectBO objectBO = new ObjectBO(); DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem() { ObjectCustomFieldId = objectCustomFieldId, CustomFieldName = customFieldDataString.CustomFieldId.Name, CustomFieldData = customFieldDataString.StringValue }; objectBO.SetDynamicObjectListItem(session, objectCustomField.ObjectId.ObjectId, dataitem); } session.CommitTransaction(); return(true); } catch (Exception) { session.RollbackTransaction(); throw; } finally { if (session != null) { session.Dispose(); } } }
public bool UpdateCustomFieldData(Guid objectCustomFieldId, IEnumerable <Guid> refIds, PredefinitionCustomFieldTypeEnum preDefinitionType, CustomFieldTypeFlag flag) { bool ret = false; UnitOfWork uow = null; try { uow = XpoHelper.GetNewUnitOfWork(); ObjectCustomField objectCustomField = uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId); objectCustomField.CustomFieldType = flag.Value; uow.FlushChanges(); NAS.DAL.CMS.ObjectDocument.CustomField customField = objectCustomField.ObjectTypeCustomFieldId.CustomFieldId; //Delete all old data uow.Delete(objectCustomField.ObjectCustomFieldDatas); uow.FlushChanges(); //Insert new data for object if (refIds != null) { foreach (var refId in refIds) { PredefinitionData predefinitionData = new PredefinitionData(uow) { CustomFieldId = customField, PredefinitionType = Enum.GetName(typeof(PredefinitionCustomFieldTypeEnum), preDefinitionType), RefId = refId }; //predefinitionData.Save(); ObjectCustomFieldData objectCustomFieldData = new ObjectCustomFieldData(uow) { CustomFieldDataId = predefinitionData, ObjectCustomFieldId = objectCustomField }; //objectCustomFieldData.Save(); uow.FlushChanges(); } } ICustomFieldDataPreDefinitionDataGetter getter = GetDataGetter(preDefinitionType); ObjectBO objectBO = new ObjectBO(); DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem() { ObjectCustomFieldId = objectCustomFieldId, CustomFieldName = customField.Name, CustomFieldData = getter.GetData(objectCustomFieldId).ToString() }; objectBO.SetDynamicObjectListItem(uow, objectCustomField.ObjectId.ObjectId, dataitem); uow.CommitChanges(); ret = true; return(ret); } catch (Exception) { throw; } finally { if (uow != null) { uow.Dispose(); } } }
public CustomFieldDataEntityBase GetObjectCustomFieldData(ObjectCustomField objectCustomField) { try { CustomFieldDataEntityBase ret = null; if (objectCustomField == null) { return(null); } //Determine CustomFieldCategoryEnum string customFieldTypeString = objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId.Code; CustomFieldTypeEnum customFieldTypeEnum; bool isParseSuccess = Enum.TryParse <CustomFieldTypeEnum>(customFieldTypeString, out customFieldTypeEnum); if (!isParseSuccess) { throw new Exception(String.Format("Not supported the CustomFieldType '{0}'", customFieldTypeString)); } var customFieldData = objectCustomField.ObjectCustomFieldDatas.Select(r => r.CustomFieldDataId); if (customFieldData == null || customFieldData.Count() == 0) { return(null); } ObjectCustomFieldData objectCustomFieldData = customFieldData.First().ObjectCustomFieldDatas.First(); CustomFieldTypeFlag customFieldTypeFlag = CustomFieldTypeFlag.Parse(objectCustomField.CustomFieldType); #region User defined list data type if (customFieldTypeEnum == CustomFieldTypeEnum.MULTI_CHOICE_LIST || customFieldTypeEnum == CustomFieldTypeEnum.SINGLE_CHOICE_LIST) { ret = new UserDefinedListCustomFieldDataEntity( objectCustomFieldData.ObjectCustomFieldId.ObjectCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectId.ObjectId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId, customFieldTypeFlag, CustomFieldCategoryEnum.LIST, customFieldData.Select(r => r.CustomFieldDataId) ); } #endregion #region Basic data type else if (customFieldTypeEnum == CustomFieldTypeEnum.DATETIME || customFieldTypeEnum == CustomFieldTypeEnum.FLOAT || customFieldTypeEnum == CustomFieldTypeEnum.INTEGER || customFieldTypeEnum == CustomFieldTypeEnum.STRING) { BasicCustomFieldTypeEnum basicType = (BasicCustomFieldTypeEnum)Enum.Parse(typeof(BasicCustomFieldTypeEnum), Enum.GetName(typeof(CustomFieldTypeEnum), customFieldTypeEnum)); object dataValue = null; switch (customFieldTypeEnum) { case CustomFieldTypeEnum.STRING: basicType = BasicCustomFieldTypeEnum.STRING; dataValue = ((CustomFieldDataString)customFieldData.First()).StringValue; break; case CustomFieldTypeEnum.DATETIME: basicType = BasicCustomFieldTypeEnum.DATETIME; dataValue = ((CustomFieldDataDateTime)customFieldData.First()).DateTimeValue; break; case CustomFieldTypeEnum.FLOAT: basicType = BasicCustomFieldTypeEnum.FLOAT; dataValue = ((CustomFieldDataFloat)customFieldData.First()).FloatValue; break; case CustomFieldTypeEnum.INTEGER: basicType = BasicCustomFieldTypeEnum.INTEGER; dataValue = ((CustomFieldDataInt)customFieldData.First()).IntValue; break; } ret = new BasicCustomFieldDataEntity( objectCustomFieldData.ObjectCustomFieldId.ObjectCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectId.ObjectId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId, customFieldTypeFlag, CustomFieldCategoryEnum.BASIC, dataValue, basicType); } #endregion Basic data type #region Predefinition data type //Predefinition data type else { string predefinitionTypeString = ((PredefinitionData)customFieldData.First()).PredefinitionType; ret = new PredefinitionCustomFieldEntity( objectCustomFieldData.ObjectCustomFieldId.ObjectCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId, objectCustomFieldData.ObjectCustomFieldId.ObjectId.ObjectId, objectCustomFieldData.ObjectCustomFieldId.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId, customFieldTypeFlag, CustomFieldCategoryEnum.BUILT_IN, customFieldData.Select(r => ((PredefinitionData)r).RefId), predefinitionTypeString ); } #endregion Predefinition data type return(ret); } catch (Exception) { throw; } }