public static bool SetAutoValue(BusinessObject obj)
        {
            bool isModified = false;

            #region Edit Count
            if (DataStructureProvider.IsTableColumn(obj.AATableName, ABCCommon.ABCConstString.colEditCount))
            {
                int    iCount   = -1;
                object objCount = ABCDynamicInvoker.GetValue(obj, ABCCommon.ABCConstString.colEditCount);
                if (objCount != null && objCount != DBNull.Value)
                {
                    iCount = Convert.ToInt32(objCount);
                }
                iCount++;

                object objOldValue = ABCDynamicInvoker.GetValue(obj, ABCCommon.ABCConstString.colEditCount);
                ABCDynamicInvoker.SetValue(obj, ABCCommon.ABCConstString.colEditCount, iCount);
                if (Convert.ToInt32(objOldValue) != iCount)
                {
                    isModified = true;
                }
            }
            #endregion

            isModified = isModified || CurrencyProvider.GenerateCurrencyValue(obj);
            return(isModified);
        }
        public static Dictionary <String, object> GetSameColumnValues(List <BusinessObject> lstObjects)
        {
            Dictionary <String, object> lstResults = new Dictionary <string, object>();

            foreach (String strProName in GetSameColumnNames(lstObjects))
            {
                bool   isSameValue   = true;
                object objFieldValue = null;
                foreach (BusinessObject obj in lstObjects)
                {
                    if (objFieldValue == null)
                    {
                        objFieldValue = ABCDynamicInvoker.GetValue(obj, strProName);
                        continue;
                    }
                    if (objFieldValue != ABCDynamicInvoker.GetValue(obj, strProName))
                    {
                        isSameValue = false;
                        break;
                    }
                }
                if (isSameValue)
                {
                    if (lstResults.ContainsKey(strProName) == false)
                    {
                        lstResults.Add(strProName, objFieldValue);
                    }
                }
            }

            return(lstResults);
        }
        public static Guid GetIDValue(BusinessObject obj)
        {
            if (obj == null)
            {
                return(Guid.Empty);
            }

            string strPrimaryKeyColumn = DataStructureProvider.GetPrimaryKeyColumn(obj.AATableName);

            return(ABCHelper.DataConverter.ConvertToGuid(ABCDynamicInvoker.GetValue(obj, strPrimaryKeyColumn)));
        }
        public static List <object> GetListDataByColumn(List <BusinessObject> lstObjects, String strFieldName)
        {
            List <object> lstReturns = new List <object>();

            foreach (BusinessObject obj in lstObjects)
            {
                object objValue = ABCDynamicInvoker.GetValue(obj, strFieldName);
                if (objValue != null && lstReturns.Contains(objValue) == false)
                {
                    lstReturns.Add(objValue);
                }
            }
            return(lstReturns);
        }
Beispiel #5
0
        public void GetFromBusinessObject(BusinessObject objBusinessObject)
        {
            BusinessObjectHelper.InitPropertyList(this.AATableName);
            BusinessObjectHelper.InitPropertyList(objBusinessObject.AATableName);

            foreach (PropertyInfo srcProp in BusinessObjectHelper.PropertyList[objBusinessObject.AATableName].Values)
            {
                PropertyInfo destProp = BusinessObjectHelper.GetProperty(this.AATableName, srcProp.Name);
                if (destProp != null)
                {
                    object objValue = ABCDynamicInvoker.GetValue(objBusinessObject, srcProp);
                    ABCDynamicInvoker.SetValue(this, destProp, objValue);
                }
            }
        }
        public static String GetRemarkValue(BusinessObject obj)
        {
            if (obj == null)
            {
                return(null);
            }

            object objReturn = ABCDynamicInvoker.GetValue(obj, "Remark");

            if (objReturn != null)
            {
                return(objReturn.ToString());
            }

            return("");
        }
Beispiel #7
0
        public BusinessObject SetToBusinessObject(String strDestTableName)
        {
            BusinessObject objResultObject = BusinessObjectFactory.GetBusinessObject(strDestTableName + "Info");

            foreach (PropertyInfo destProp in BusinessObjectHelper.PropertyList[strDestTableName].Values)
            {
                PropertyInfo srcProp = BusinessObjectHelper.GetProperty(this.AATableName, destProp.Name);
                if (srcProp != null)
                {
                    object objValue = ABCDynamicInvoker.GetValue(this, srcProp);
                    ABCDynamicInvoker.SetValue(objResultObject, destProp, objValue);
                }
            }

            return(objResultObject);
        }
        public static String GetDisplayValue(BusinessObject obj)
        {
            if (obj == null)
            {
                return(null);
            }

            string strCol    = DataStructureProvider.GetDisplayColumn(obj.AATableName);
            object objReturn = ABCDynamicInvoker.GetValue(obj, strCol);

            if (objReturn != null)
            {
                return(objReturn.ToString());
            }

            return("");
        }
        public static bool GenerateNoColumn(BusinessObject obj, bool isAlwayGenerate)
        {
            String strNoCol = DataStructureProvider.GetNOColumn(obj.AATableName);

            if (!String.IsNullOrWhiteSpace(strNoCol))
            {
                if (isAlwayGenerate || String.IsNullOrWhiteSpace(ABCDynamicInvoker.GetValue(obj, strNoCol).ToString()))
                {
                    String strNo = NumberingProvider.GenerateNo(obj);
                    if (!String.IsNullOrWhiteSpace(strNo))
                    {
                        ABCDynamicInvoker.SetValue(obj, strNoCol, strNo);
                        return(true);
                    }
                }
            }
            return(false);
        }
Beispiel #10
0
        public Nullable <Guid> GetIDByNo(String strObjectNo)
        {
            BusinessObject obj = GetObjectByNo(strObjectNo);

            if (obj == null)
            {
                return(null);
            }

            object objID = ABCDynamicInvoker.GetValue(obj, DataStructureProvider.GetPrimaryKeyColumn(TableName));

            if (objID == null)
            {
                return(null);
            }

            return((Nullable <Guid>)objID);
        }
        public static bool IsModifiedObject(BusinessObject obj)
        {
            String strPKCol = DataStructureProvider.GetPrimaryKeyColumn(obj.AATableName);
            object objID    = ABCDynamicInvoker.GetValue(obj, strPKCol);

            if (objID == null || objID == DBNull.Value)
            {
                return(true);
            }

            Guid id = Guid.Empty;

            if (objID is Guid)
            {
                id = (Guid)objID;
            }
            else if (objID is Nullable <Guid> && ((Nullable <Guid>)objID).HasValue)
            {
                id = ((Nullable <Guid>)objID).Value;
            }
            else
            {
                return(true);
            }


            BusinessObject obj2 = BusinessControllerFactory.GetBusinessController(obj.AATableName).GetObjectByID(id);

            InitPropertyList(obj.AATableName);
            foreach (PropertyInfo proInfo in PropertyList[obj.AATableName].Values)
            {
                object pro1 = proInfo.GetValue(obj, null);
                object pro2 = proInfo.GetValue(obj2, null);
                if (pro1 == pro2 || (pro1 == null && pro2 == null) || (pro1 != null && pro2 != null && pro1.ToString() == pro2.ToString()))
                {
                    continue;
                }

                return(true);
            }

            return(false);
        }
        public static bool IsPostedObject(String strTableName, Guid iID)
        {
            BusinessObjectController ctrl = BusinessControllerFactory.GetBusinessController(strTableName);

            if (ctrl == null)
            {
                return(true);
            }

            BusinessObject obj = ctrl.GetObjectByID(iID);

            if (obj == null)
            {
                return(true);
            }

            object objTemp = ABCDynamicInvoker.GetValue(obj, ABCCommon.ABCConstString.colJournalStatus);

            return(objTemp != null && objTemp.ToString() == ABCCommon.ABCConstString.PostStatusPosted);
        }
Beispiel #13
0
        public void DeleteObject(BusinessObject obj)
        {
            object objID = (object)ABCDynamicInvoker.GetValue(obj, DataStructureProvider.GetPrimaryKeyColumn(obj.AATableName));
            Guid   id    = Guid.Empty;

            if (objID is Guid)
            {
                id = (Guid)objID;
            }
            else if (objID is Nullable <Guid> && ((Nullable <Guid>)objID).HasValue)
            {
                id = ((Nullable <Guid>)objID).Value;
            }
            else
            {
                return;
            }

            DeleteObject(id);
        }
        public static bool CopyField(BusinessObject objFrom, BusinessObject objTo, String strFromField, String strToField, Boolean isCleanFieldOnly)
        {
            if (objFrom == null || objTo == null)
            {
                return(false);
            }

            if (isCleanFieldOnly == false || (isCleanFieldOnly && IsCleanField(objTo, strToField)))
            {
                object objValue = ABCDynamicInvoker.GetValue(objFrom, strFromField);
                if (objValue != null)
                {
                    object objOldValue = ABCDynamicInvoker.GetValue(objTo, strToField);
                    ABCDynamicInvoker.SetValue(objTo, strToField, objValue);
                    if (objOldValue != objValue)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
        public static String GetNameValue(BusinessObject obj)
        {
            if (obj == null)
            {
                return(String.Empty);
            }

            string strName = DataStructureProvider.GetNAMEColumn(obj.AATableName);

            if (String.IsNullOrWhiteSpace(strName))
            {
                strName = DataStructureProvider.GetNOColumn(obj.AATableName);
            }

            object objReturn = ABCDynamicInvoker.GetValue(obj, strName);

            if (objReturn != null)
            {
                return(objReturn.ToString());
            }

            return(String.Empty);
        }
        public static bool CopyFKFields(BusinessObject objFrom, BusinessObject objTo, Boolean isCleanFieldOnly)
        {
            if (objFrom == null || objTo == null)
            {
                return(false);
            }

            bool isCopied = false;

            String strFromName = objFrom.AATableName;
            String strToName   = objTo.AATableName;

            BusinessObjectHelper.InitPropertyList(strToName);
            foreach (PropertyInfo propTo in BusinessObjectHelper.PropertyList[strToName].Values)
            {
                if (DataStructureProvider.IsForeignKey(strToName, propTo.Name) == false)
                {
                    continue;
                }

                PropertyInfo propFrom = BusinessObjectHelper.GetProperty(strFromName, propTo.Name);
                if (propFrom != null)
                {
                    if (isCleanFieldOnly == false || (isCleanFieldOnly && IsCleanField(objTo, propTo.Name)))
                    {
                        object objValue    = ABCDynamicInvoker.GetValue(objFrom, propFrom);
                        object objOldValue = ABCDynamicInvoker.GetValue(objTo, propTo);
                        ABCDynamicInvoker.SetValue(objTo, propTo, objValue);
                        if (objOldValue != objValue)
                        {
                            isCopied = true;
                        }
                    }
                }
            }
            return(isCopied);
        }
Beispiel #17
0
        public object Clone(Type destType)
        {
            if (destType == this.GetType())
            {
                return(this.MemberwiseClone());
            }

            Type orgType = this.GetType();

            BusinessObject newObject = (BusinessObject)Activator.CreateInstance(destType);

            PropertyInfo[] properties = destType.GetProperties();
            foreach (PropertyInfo prop in properties)
            {
                PropertyInfo orgPro = orgType.GetProperty(prop.Name);
                if (orgPro != null)
                {
                    object objValue = ABCDynamicInvoker.GetValue(this, orgPro);
                    ABCDynamicInvoker.SetValue(newObject, prop, objValue);
                }
            }

            return(newObject);
        }
        public static void CopyFKFields(BusinessObject sourceObj, String strItemTableName)
        {
            if (sourceObj == null)
            {
                return;
            }

            String strFK = DataStructureProvider.GetForeignKeyOfTableName(strItemTableName, sourceObj.AATableName);

            if (String.IsNullOrWhiteSpace(strFK))
            {
                return;
            }


            String strQuery = String.Format("UPDATE {0} SET ", strItemTableName);

            Dictionary <String, object> lstCols = new Dictionary <string, object>();

            foreach (PropertyInfo pro in BusinessObjectHelper.PropertyList[sourceObj.AATableName].Values)
            {
                if (DataStructureProvider.IsTableColumn(strItemTableName, pro.Name) == false)
                {
                    continue;
                }

                if (DataStructureProvider.IsForeignKey(sourceObj.AATableName, pro.Name))
                {
                    lstCols.Add(pro.Name, ABCHelper.DataConverter.ConvertToGuid(ABCDynamicInvoker.GetValue(sourceObj, pro)));
                }

                if (pro.Name == ABCCommon.ABCConstString.colApprovalStatus ||
                    pro.Name == ABCCommon.ABCConstString.colApprovedDate ||
                    pro.Name == ABCCommon.ABCConstString.colDocumentDate ||
                    pro.Name == ABCCommon.ABCConstString.colLockStatus ||
                    pro.Name == ABCCommon.ABCConstString.colVoucher ||
                    pro.Name == ABCCommon.ABCConstString.colVoucherDate ||
                    pro.Name == ABCCommon.ABCConstString.colJournalStatus ||
                    pro.Name == ABCCommon.ABCConstString.colJournalDate ||
                    pro.Name == ABCCommon.ABCConstString.colUpdateTime ||
                    pro.Name == ABCCommon.ABCConstString.colUpdateUser)
                {
                    lstCols.Add(pro.Name, ABCDynamicInvoker.GetValue(sourceObj, pro));
                }
            }

            int i = -1;

            foreach (String strKey in lstCols.Keys)
            {
                i++;
                if (lstCols[strKey] != null && lstCols[strKey] != DBNull.Value)
                {
                    String strValue = lstCols[strKey].ToString();
                    if (lstCols[strKey] is DateTime)
                    {
                        strValue = ((DateTime)lstCols[strKey]).ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    if (lstCols[strKey] is Nullable <DateTime> )
                    {
                        strValue = ((Nullable <DateTime>)lstCols[strKey]).Value.ToString("yyyy-MM-dd HH:mm:ss");
                    }

                    if (i < lstCols.Count - 1)
                    {
                        strQuery = strQuery + String.Format(" [{0}] = '{1}',", strKey, strValue);
                    }
                    else
                    {
                        strQuery = strQuery + String.Format(" [{0}] = '{1}'", strKey, strValue);
                    }
                }
                else
                {
                    if (i < lstCols.Count - 1)
                    {
                        strQuery = strQuery + String.Format(" [{0}] = NULL,", strKey);
                    }
                    else
                    {
                        strQuery = strQuery + String.Format(" [{0}] =NULL", strKey);
                    }
                }
            }
            strQuery = strQuery + String.Format(" WHERE [{0}] ='{1}' ", strFK, sourceObj.GetID());
            BusinessObjectController.RunQuery(strQuery);
        }
Beispiel #19
0
        public String GetNoByID(Guid iObjectID)
        {
            BusinessObject obj = GetObjectByID(iObjectID);

            return((String)ABCDynamicInvoker.GetValue(obj, DataStructureProvider.GetNOColumn(TableName)));
        }
Beispiel #20
0
        public Guid GetIDByName(String strObjectName)
        {
            BusinessObject obj = GetObjectByName(strObjectName);

            return((Guid)ABCDynamicInvoker.GetValue(obj, DataStructureProvider.GetPrimaryKeyColumn(TableName)));
        }