private void LinkVoucherWithBill(Session _session, Guid _billId, Vouches voucher)
        {
            ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();

            ObjectTypeCustomField defaultObjectTypeCustomField =
                ObjectTypeCustomField.GetDefault(_session, DefaultObjectTypeCustomFieldEnum.RECEIPT_VOUCHER_SALE_INVOICE);

            ObjectCustomField objectCustomField = voucher.VoucherObjects.First().ObjectId.ObjectCustomFields
                                                  .Where(r => r.ObjectTypeCustomFieldId.Equals(defaultObjectTypeCustomField)).First();

            List <Guid> billId = new List <Guid>();

            billId.Add(_billId);

            objectCustomFieldBO.UpdatePredefinitionData(
                objectCustomField.ObjectCustomFieldId,
                billId,
                PredefinitionCustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE,
                CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER_READONLY);
        }
        public virtual bool UpdatePredefinitionDataForObject(Guid objectCustomFieldId, NASCustomFieldPredefinitionData data)
        {
            try
            {
                ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();
                PredefinitionCustomFieldTypeEnum predefinitionType;
                List <Guid> IDList = null;
                if (data == null)
                {
                    string customfieldType;
                    using (Session session = XpoHelper.GetNewSession())
                    {
                        customfieldType =
                            objectCustomFieldBO.GetObjectCustomField(session, objectCustomFieldId)
                            .ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId.Code;
                    }
                    predefinitionType = (PredefinitionCustomFieldTypeEnum)
                                        Enum.Parse(typeof(PredefinitionCustomFieldTypeEnum), customfieldType);
                    return(objectCustomFieldBO.UpdatePredefinitionData(
                               objectCustomFieldId, null, predefinitionType));
                }
                else
                {
                    predefinitionType =
                        (PredefinitionCustomFieldTypeEnum)Enum.Parse(
                            typeof(PredefinitionCustomFieldTypeEnum), data.PredefinitionType);
                    IDList = new List <Guid>();
                    IDList.Add(data.RefId);

                    return(objectCustomFieldBO
                           .UpdatePredefinitionData(objectCustomFieldId, IDList, predefinitionType));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public virtual bool UpdatePredefinitionDataForObject(Guid objectCustomFieldId, List <NASCustomFieldPredefinitionData> data)
        {
            try
            {
                if (data == null || data.Count == 0)
                {
                    return(true);
                }

                ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();

                PredefinitionCustomFieldTypeEnum predefinitionType =
                    (PredefinitionCustomFieldTypeEnum)Enum.Parse(
                        typeof(PredefinitionCustomFieldTypeEnum), data.First().PredefinitionType);

                return(objectCustomFieldBO.UpdatePredefinitionData(
                           objectCustomFieldId, data.Select(r => r.RefId), predefinitionType));
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #4
0
        protected void customFieldDataGridView_DataUpdated(object sender,
                                                           ERPSystem.CustomField.GUI.Control.CustomFieldControlEventArgs args)
        {
            using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
            {
                //Get all journal of transaction
                NAS.DAL.Accounting.Journal.Transaction transaction =
                    uow.GetObjectByKey <NAS.DAL.Accounting.Journal.Transaction>(TransactionId);
                var cmsObjects =
                    transaction.GeneralJournals
                    .Where(r => r.RowStatus >= 0)
                    .Select(r => r.GeneralJournalObjects.FirstOrDefault())
                    .Select(r => r.ObjectId);

                ObjectTypeCustomField objectTypeCustomField =
                    uow.GetObjectByKey <ObjectTypeCustomField>(args.ObjectTypeCustomFieldId);

                if (cmsObjects != null)
                {
                    ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();
                    foreach (var cmsObject in cmsObjects)
                    {
                        ObjectCustomField objectCustomField =
                            cmsObject.ObjectCustomFields
                            .Where(r => r.ObjectTypeCustomFieldId == objectTypeCustomField)
                            .FirstOrDefault();
                        if (objectCustomField != null)
                        {
                            //Copy new data to all jounal of the transaction
                            switch (args.CustomFieldCategory)
                            {
                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.BASIC:
                                objectCustomFieldBO.UpdateBasicData(
                                    objectCustomField.ObjectCustomFieldId,
                                    args.NewBasicDataValue,
                                    args.BasicCustomFieldType);
                                break;

                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.LIST:
                                objectCustomFieldBO.UpdateUserDefinedListData(
                                    objectCustomField.ObjectCustomFieldId,
                                    args.NewCustomFieldDataIds);
                                break;

                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.BUILT_IN:
                                NASCustomFieldPredefinitionData temp = args.NewBuiltInData.FirstOrDefault();
                                if (temp != null)
                                {
                                    PredefinitionCustomFieldTypeEnum predefinitionType =
                                        (PredefinitionCustomFieldTypeEnum)Enum
                                        .Parse(typeof(PredefinitionCustomFieldTypeEnum), temp.PredefinitionType);
                                    objectCustomFieldBO.UpdatePredefinitionData(
                                        objectCustomField.ObjectCustomFieldId,
                                        args.NewBuiltInData.Select(r => r.RefId).ToList(),
                                        predefinitionType);
                                }
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
            }
        }