Ejemplo n.º 1
0
        public void Search( )
        {
            if (BindingObject != null && GridCtrl != null)
            {
                if (BindingObject.DataManager.MainObject == null)
                {
                    return;
                }

                BusinessObject           mainObj = BindingObject.DataManager.MainObject.DataObject as BusinessObject;
                BusinessObjectController ctrl    = BusinessControllerFactory.GetBusinessController(mainObj.AATableName);

                ConditionBuilder strBuilder = BindingObject.GenerateQuery(true);

                if (strBuilder == null || String.IsNullOrWhiteSpace(strBuilder.ToString()))
                {
                    return;
                }

                if (SearchPanel != null)
                {
                    SearchPanel.GetSearchQuery(strBuilder, SearchPanel);
                }

                if (BindingObject.DataManager.Screen.UIManager.View.DataField != null)
                {
                    GEVouchersInfo config = VoucherProvider.GetConfig(BindingObject.TableName, BindingObject.DataManager.Screen.UIManager.View.DataField.STViewNo);
                    if (config != null && !String.IsNullOrWhiteSpace(config.ConditionString))
                    {
                        strBuilder.AddCondition(config.ConditionString);
                    }
                }

                if (DataStructureProvider.IsTableColumn(BindingObject.TableName, ABCCommon.ABCConstString.colApprovalStatus))
                {
                    if (chkNotYetApproved.Checked)
                    {
                        strBuilder.AddCondition(String.Format("{0}<>'{1}'", ABCCommon.ABCConstString.colApprovalStatus, ABCCommon.ABCConstString.ApprovalTypeApproved));
                    }
                }

                if (DataStructureProvider.IsTableColumn(BindingObject.TableName, ABCCommon.ABCConstString.colLockStatus))
                {
                    if (chkLocked.Checked)
                    {
                        strBuilder.AddCondition(String.Format("{0}='{1}'", ABCCommon.ABCConstString.colLockStatus, ABCCommon.ABCConstString.LockStatusLocked));
                    }
                }

                if (DataStructureProvider.IsTableColumn(BindingObject.TableName, ABCCommon.ABCConstString.colJournalStatus))
                {
                    if (chkNotYetPosted.Checked)
                    {
                        strBuilder.AddCondition(String.Format("{0}<>'{1}'", ABCCommon.ABCConstString.colJournalStatus, ABCCommon.ABCConstString.PostStatusPosted));
                    }
                }

                object datasource = null;
                Type   objType    = BusinessObjectFactory.GetBusinessObjectType(GridCtrl.TableName);
                if (objType != null)
                {
                    Type       typeABCList = typeof(ABCList <>).MakeGenericType(objType);
                    MethodInfo method;
                    if (typeABCList != null)
                    {
                        datasource = ABCBusinessEntities.ABCDynamicInvoker.CreateInstanceObject(typeABCList);
                        method     = typeABCList.GetMethod("LoadData", new Type[] { typeof(List <BusinessObject>) });
                        method.Invoke(datasource, new object[] { ctrl.GetListByQuery(strBuilder.ToString()) });
                    }
                }
                binding.DataSource = datasource;
                binding.ResetBindings(false);

                this.GridCtrl.GridDefaultView.BestFitColumns();

                for (int i = 0; i < this.GridCtrl.GridDefaultView.DataRowCount; i++)
                {
                    BusinessObject obj = this.GridCtrl.GridDefaultView.GetRow(i) as BusinessObject;
                    if (obj != null && obj.GetID() == mainObj.GetID())
                    {
                        this.GridCtrl.GridDefaultView.FocusedRowHandle = i;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void SynchronizeVoucherPermission( )
        {
            GEPermissionVouchersController voucherPermissionCtrl = new GEPermissionVouchersController();

            String strQuery = String.Format(@"DELETE FROM GEPermissionVouchers WHERE FK_GEPermissionID NOT IN (SELECT GEPermissionID FROM GEPermissions)");

            BusinessObjectController.RunQuery(strQuery);

            strQuery = String.Format(@"DELETE FROM GEPermissionVouchers WHERE FK_GEVoucherID NOT IN ({0})", QueryGenerator.GenSelect("GEVouchers", "GEVoucherID", false));
            BusinessObjectController.RunQuery(strQuery);

            #region Init Vouchers
            GEVouchersController voucherCtrl = new GEVouchersController();

            Dictionary <Guid, GEVouchersInfo> lstGEVouchers = new Dictionary <Guid, GEVouchersInfo>();
            DataSet ds = voucherCtrl.GetDataSetAllObjects();
            if (ds != null && ds.Tables.Count > 0)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    GEVouchersInfo voucherInfo = voucherCtrl.GetObjectFromDataRow(dr) as GEVouchersInfo;
                    if (lstGEVouchers.ContainsKey(voucherInfo.GEVoucherID) == false)
                    {
                        lstGEVouchers.Add(voucherInfo.GEVoucherID, voucherInfo);
                    }
                }
            }
            #endregion

            foreach (GEPermissionsInfo permission in new GEPermissionsController().GetListAllObjects())
            {
                #region Voucher
                Dictionary <Guid, GEPermissionVouchersInfo> lstGroupVouchers = new Dictionary <Guid, GEPermissionVouchersInfo>();
                foreach (GEPermissionVouchersInfo voucherInfo in voucherPermissionCtrl.GetListByForeignKey("FK_GEPermissionID", permission.GEPermissionID).Cast <GEPermissionVouchersInfo>().ToList())
                {
                    if (voucherInfo.FK_GEVoucherID.HasValue && lstGroupVouchers.ContainsKey(voucherInfo.FK_GEVoucherID.Value) == false)
                    {
                        if (lstGEVouchers.ContainsKey(voucherInfo.FK_GEVoucherID.Value))
                        {
                            lstGroupVouchers.Add(voucherInfo.FK_GEVoucherID.Value, voucherInfo);
                        }
                        else
                        {
                            voucherPermissionCtrl.DeleteObject(voucherInfo);
                        }
                    }
                }


                foreach (Guid voucherTypeID in lstGEVouchers.Keys)
                {
                    if (lstGroupVouchers.ContainsKey(voucherTypeID) == false && lstGEVouchers[voucherTypeID].Title != String.Empty)
                    {
                        GEPermissionVouchersInfo voucherInfo = new GEPermissionVouchersInfo();
                        voucherInfo.FK_GEVoucherID    = voucherTypeID;
                        voucherInfo.FK_GEPermissionID = permission.GEPermissionID;

                        voucherInfo.AllowView = true;

                        voucherInfo.AllowNew      = true;
                        voucherInfo.AllowEdit     = true;
                        voucherInfo.AllowDelete   = true;
                        voucherInfo.AllowApproval = true;
                        voucherInfo.AllowLock     = true;
                        voucherInfo.AllowPost     = true;

                        voucherPermissionCtrl.CreateObject(voucherInfo);
                        lstGroupVouchers.Add(voucherTypeID, voucherInfo);
                    }
                }
                #endregion
            }
        }