예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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
        }