public static void AttachCustomFieldsToObjectType(List <CustomFieldOption> customFields, ObjectTypeEnum objectType) { if (customFields == null) { throw new Exception("Input Parameter is null"); } using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork()) { CustomFieldOption o = new CustomFieldOption(); try { ObjectType OT = ObjectType.GetDefault(uow, objectType); if (OT == null) { throw new Exception("The ObjectType is not exist in system"); } for (int i = 0; i < customFields.Count; i++) { NAS.DAL.CMS.ObjectDocument.CustomFieldType CFT = NAS.DAL.CMS.ObjectDocument.CustomFieldType.GetDefault(uow, customFields[i].CustomFieldType); if (CFT == null) { throw new Exception("The CustomFieldType is not exist in system"); } NAS.DAL.CMS.ObjectDocument.CustomField CF = uow.FindObject <NAS.DAL.CMS.ObjectDocument.CustomField>( CriteriaOperator.And( new BinaryOperator("Code", customFields[i].FieldCode, BinaryOperatorType.Equal), new NotOperator(new NullOperator("CustomFieldTypeId")), new BinaryOperator("CustomFieldTypeId", CFT, BinaryOperatorType.Equal) )); if (CF == null) { CF = new DAL.CMS.ObjectDocument.CustomField(uow); CF.Code = customFields[i].FieldCode; CF.Name = customFields[i].FieldName; CF.CustomFieldTypeId = CFT; CF.CustomFieldType = customFields[i].CustomFieldFlag.Value; uow.FlushChanges(); NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField OTCF = new NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField(uow); OTCF.Code = customFields[i].ObjectTypeFieldCode; OTCF.CustomFieldId = CF; OTCF.ObjectTypeId = OT; OTCF.CustomFieldType = customFields[i].ObjectTypeCustomFieldFlag.Value; uow.FlushChanges(); } else { int countExist = OT.ObjectTypeCustomFields.Where(r => r.Code == customFields[i].ObjectTypeFieldCode).Count(); if (countExist == 0) { NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField OTCF = new NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField(uow); OTCF.Code = customFields[i].ObjectTypeFieldCode; OTCF.CustomFieldId = CF; OTCF.ObjectTypeId = OT; OTCF.CustomFieldType = customFields[i].ObjectTypeCustomFieldFlag.Value; uow.FlushChanges(); } } } uow.CommitChanges(); } catch (Exception ex) { throw ex; } finally { uow.Dispose(); } } }
public static void Populate() { #region Receipt Voucher //Populate custom field to receipt voucher List <CustomFieldOption> options = new List <CustomFieldOption>(); CustomFieldOption option = new CustomFieldOption() { ObjectTypeFieldCode = "RECEIPT_VOUCHER_SALE_INVOICE", FieldCode = "SALE_INVOICE", FieldName = "Phiếu bán", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER }; options.Add(option); /*2014-01-20 ERP-1458 Khoa.Truong INS START*/ option = new CustomFieldOption() { ObjectTypeFieldCode = "RECEIPT_VOUCHER_CUSTOMER", FieldCode = "CLIENT", FieldName = "Khách hàng", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); /*2014-01-20 ERP-1458 Khoa.Truong INS END*/ /*2014-01-22 ERP-1458 Khoa.Truong INS START*/ option = new CustomFieldOption() { ObjectTypeFieldCode = "RECEIPT_VOUCHER_SUPPLIER", FieldCode = "SUPPLIER", FieldName = "Nhà cung cấp", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); /*2014-01-22 ERP-1458 Khoa.Truong INS END*/ ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.VOUCHER_RECEIPT); #endregion #region Payment Voucher //Populate custom field to payment voucher options = new List <CustomFieldOption>(); option = new CustomFieldOption() { ObjectTypeFieldCode = "PAYMENT_VOUCHER_PURCHASE_INVOICE", FieldCode = "PURCHASE_INVOICE", FieldName = "Phiếu mua", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_PURCHASE, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER }; options.Add(option); /*2014-01-20 ERP-1458 Khoa.Truong INS START*/ option = new CustomFieldOption() { ObjectTypeFieldCode = "PAYMENT_VOUCHER_SUPPLIER", FieldCode = "SUPPLIER", FieldName = "Nhà cung cấp", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); /*2014-01-20 ERP-1458 Khoa.Truong INS END*/ /*2014-01-22 ERP-1458 Khoa.Truong INS START*/ option = new CustomFieldOption() { ObjectTypeFieldCode = "PAYMENT_VOUCHER_CUSTOMER", FieldCode = "CLIENT", FieldName = "Khách hàng", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); /*2014-01-22 ERP-1458 Khoa.Truong INS END*/ ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.VOUCHER_PAYMENT); #endregion #region Inventory command options = new List <CustomFieldOption>(); option = new CustomFieldOption() { ObjectTypeFieldCode = "INVENTORY_OUT_CLIENT", FieldCode = "CLIENT", FieldName = "Khách hàng", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); option = new CustomFieldOption() { ObjectTypeFieldCode = "INVENTORY_OUT_SALE_INVOICE", FieldCode = "SALE_INVOICE", FieldName = "Phiếu bán", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER }; options.Add(option); ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.INVENTORY_OUT); //Populate custom field to in inventory command options = new List <CustomFieldOption>(); option = new CustomFieldOption() { ObjectTypeFieldCode = "INVENTORY_IN_CLIENT", FieldCode = "CLIENT", FieldName = "Khách hàng", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); option = new CustomFieldOption() { ObjectTypeFieldCode = "INVENTORY_IN_PURCHASE_INVOICE", FieldCode = "PURCHASE_INVOICE", FieldName = "Phiếu mua", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_PURCHASE, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER }; options.Add(option); ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.INVENTORY_IN); #endregion #region BalanceForward Inventory options = new List <CustomFieldOption>(); option = new CustomFieldOption() { ObjectTypeFieldCode = "INVENTORY_OPEN_BALANCE", FieldCode = "INVENTORY", FieldName = "Kho đầu kỳ", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVENTORY, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER }; option = new CustomFieldOption() { ObjectTypeFieldCode = "BALANCE_FORWARD_TRANSACTION_ITEM", FieldCode = "ITEM", FieldName = "Hàng hóa", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_ITEM, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.OPENBALANCE_ACCOUTING); #endregion #region Manual Booking options = new List <CustomFieldOption>(); option = new CustomFieldOption() { ObjectTypeFieldCode = "MANUAL_BOOKING_PURCHASE_INVOICE", FieldCode = "PURCHASE_INVOICE", FieldName = "Phiếu mua", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_PURCHASE, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); option = new CustomFieldOption() { ObjectTypeFieldCode = "MANUAL_BOOKING_INPUT_INVENTORY_COMMAND", FieldCode = "INPUT_INVENTORY_COMMAND", FieldName = "Phiếu nhập kho", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_INPUT_INVENTORY_COMMAND, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); option = new CustomFieldOption() { ObjectTypeFieldCode = "MANUAL_BOOKING_CUSTOMER", FieldCode = "CUSTOMER", FieldName = "Khách hàng", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); option = new CustomFieldOption() { ObjectTypeFieldCode = "MANUAL_BOOKING_SUPPLIER", FieldCode = "SUPPLIER", FieldName = "Nhà cung cấp", CustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY, CustomFieldType = CustomFieldTypeEnum.SINGLE_CHOICE_LIST_SUPPLIER, ObjectTypeCustomFieldFlag = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY }; options.Add(option); ObjectTypeCustomField.AttachCustomFieldsToObjectType(options, ObjectTypeEnum.MANUAL_BOOKING); #endregion }