Пример #1
0
        /// <summary>
        /// 增加还款主从表数据  add by zl
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool AddRepayApplyMasterAndDetail(T_FB_REPAYAPPLYMASTER entity, List <T_FB_REPAYAPPLYDETAIL> detailList)
        {
            try
            {
                var company = OrgClient.GetCompanyById(entity.OWNERCOMPANYID);
                if (company != null)
                {
                    entity.OWNERCOMPANYNAME = company.CNAME;
                }
            }
            catch
            {
            }
            bool re;

            //2012-8-29
            //从服务端获取时间
            entity.PROJECTEDREPAYDATE = DateTime.Now;
            try
            {
                dal.BeginTransaction();
                foreach (T_FB_REPAYAPPLYDETAIL obj in detailList)
                {
                    //添加还款明细
                    Utility.RefreshEntity(obj);
                    entity.T_FB_REPAYAPPLYDETAIL.Add(obj);
                }
                re = Add(entity);
                if (!re)
                {
                    dal.RollbackTransaction();
                    return(false);
                }

                dal.CommitTransaction();
                return(true);
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":AddRepayApplyMasterAndDetail," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
                dal.RollbackTransaction();
                return(false);
            }
        }
        /// <summary>
        /// </summary>
        /// <param name="character">
        /// </param>
        /// <param name="tPlayer">
        /// </param>
        /// <returns>
        /// </returns>
        private static MessageDataFiller CharacterInfoPacket(ICharacter character, ICharacter tPlayer)
        {
            return(x =>
            {
                uint LegacyScore = tPlayer.Stats[StatIds.pvp_rating].BaseValue;
                string LegacyTitle = null;
                if (LegacyScore < 1400)
                {
                    LegacyTitle = string.Empty;
                }
                else if (LegacyScore < 1500)
                {
                    LegacyTitle = "Freshman";
                }
                else if (LegacyScore < 1600)
                {
                    LegacyTitle = "Rookie";
                }
                else if (LegacyScore < 1700)
                {
                    LegacyTitle = "Apprentice";
                }
                else if (LegacyScore < 1800)
                {
                    LegacyTitle = "Novice";
                }
                else if (LegacyScore < 1900)
                {
                    LegacyTitle = "Neophyte";
                }
                else if (LegacyScore < 2000)
                {
                    LegacyTitle = "Experienced";
                }
                else if (LegacyScore < 2100)
                {
                    LegacyTitle = "Expert";
                }
                else if (LegacyScore < 2300)
                {
                    LegacyTitle = "Master";
                }
                else if (LegacyScore < 2500)
                {
                    LegacyTitle = "Champion";
                }
                else
                {
                    LegacyTitle = "Grand Master";
                }

                int orgGoverningForm = 0;
                try
                {
                    orgGoverningForm = OrganizationDao.Instance.GetGovernmentForm(character.Stats[StatIds.clan].Value);
                }
                catch (Exception)
                {
                }

                // Uses methods in ZoneEngine\PacketHandlers\OrgClient.cs

                /* Known packetFlags--
                 * 0x40 - No org | 0x41 - Org | 0x43 - Org and towers | 0x47 - Org, towers, player has personal towers | 0x50 - No pvp data shown
                 * Bitflags--
                 * Bit0 = hasOrg, Bit1 = orgTowers, Bit2 = personalTowers, Bit3 = (Int32) time until supression changes (Byte) type of supression level?, Bit4 = noPvpDataShown, Bit5 = hasFaction, Bit6 = ?, Bit 7 = null.
                 */

                int?orgId;
                string orgRank;
                InfoPacketType type = InfoPacketType.Character;
                if (tPlayer.Stats[StatIds.clan].BaseValue == 0)
                {
                    type = InfoPacketType.Character;
                    orgId = null;
                    orgRank = null;
                }
                else
                {
                    type = InfoPacketType.CharacterOrg;
                    orgId = (int?)tPlayer.Stats[StatIds.clan].BaseValue;
                    if (character.Stats[StatIds.clan].BaseValue == tPlayer.Stats[StatIds.clan].BaseValue)
                    {
                        orgRank = OrgClient.GetRank(orgGoverningForm, tPlayer.Stats[StatIds.clanlevel].BaseValue);
                    }
                    else
                    {
                        orgRank = string.Empty;
                    }
                }

                if (tPlayer.Stats[StatIds.npcfamily].Value != 0)
                {
                    type = InfoPacketType.Monster;
                    x.Unknown = 1;
                    x.Info = new MonsterInfoPacket()
                    {
                        Unknown1 = 1,
                        Unknown2 = 0,
                        CurrentHealth = tPlayer.Stats[StatIds.health].Value,
                        Level = (byte)tPlayer.Stats[StatIds.level].Value,
                        MaxHealth = tPlayer.Stats[StatIds.life].Value,
                        OrganizationId = 0,
                        Profession = (byte)tPlayer.Stats[StatIds.profession].Value,
                        TitleLevel = (byte)tPlayer.Stats[StatIds.titlelevel].Value,
                        VisualProfession =
                            (byte)tPlayer.Stats[StatIds.visualprofession].Value,
                        Unknown8 = 1234567890,
                        Unknown9 = 1234567890,
                        Unknown10 = 1234567890,
                    };
                }
                else
                {
                    x.Unknown = 0;
                    x.Info = new CharacterInfoPacket
                    {
                        Unknown1 = 0x01,
                        Profession = (Profession)tPlayer.Stats[StatIds.profession].Value,
                        Level = (byte)tPlayer.Stats[StatIds.level].Value,
                        TitleLevel = (byte)tPlayer.Stats[StatIds.titlelevel].Value,
                        VisualProfession =
                            (Profession)tPlayer.Stats[StatIds.visualprofession].Value,
                        SideXp = 0,
                        Health = tPlayer.Stats[StatIds.health].Value,
                        MaxHealth = tPlayer.Stats[StatIds.life].Value,
                        BreedHostility = 0x00000000,
                        OrganizationId = orgId,
                        FirstName = tPlayer.FirstName,
                        LastName = tPlayer.LastName,
                        LegacyTitle = LegacyTitle,
                        Unknown2 = 0x0000,
                        OrganizationRank = orgRank,
                        TowerFields = null,
                        CityPlayfieldId = 0x00000000,
                        Towers = null,
                        InvadersKilled = tPlayer.Stats[StatIds.invaderskilled].Value,
                        KilledByInvaders = tPlayer.Stats[StatIds.killedbyinvaders].Value,
                        AiLevel = tPlayer.Stats[StatIds.alienlevel].Value,
                        PvpDuelWins = tPlayer.Stats[StatIds.pvpduelkills].Value,
                        PvpDuelLoses = tPlayer.Stats[StatIds.pvpdueldeaths].Value,
                        PvpProfessionDuelLoses =
                            tPlayer.Stats[StatIds.pvpprofessiondueldeaths].Value,
                        PvpSoloKills = tPlayer.Stats[StatIds.pvprankedsolokills].Value,
                        PvpTeamKills = tPlayer.Stats[StatIds.pvprankedteamkills].Value,
                        PvpSoloScore = tPlayer.Stats[StatIds.pvpsoloscore].Value,
                        PvpTeamScore = tPlayer.Stats[StatIds.pvpteamscore].Value,
                        PvpDuelScore = tPlayer.Stats[StatIds.pvpduelscore].Value
                    };
                }

                x.Type = type;

                x.Identity = tPlayer.Identity;
            });
        }
Пример #3
0
        /// <summary>
        /// 更新还款主从表数据  add by zl
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="detailList"></param>
        /// <returns></returns>
        public void UptRepayApplyMasterAndDetail(string strActionType, T_FB_REPAYAPPLYMASTER entity,
                                                 List <T_FB_REPAYAPPLYDETAIL> detailList, ref string strMsg)
        {
            try
            {
                var company = OrgClient.GetCompanyById(entity.OWNERCOMPANYID);
                if (company != null)
                {
                    entity.OWNERCOMPANYNAME = company.CNAME;
                }
            }
            catch
            {
            }
            bool re = false;

            if (LockOrder(entity.REPAYAPPLYMASTERID))
            {
                strMsg = "单据正在提交或审核中,不可重复操作!";
                return;
            }

            try
            {
                FBAEnums.CheckStates  dOldChecksates = FBAEnums.CheckStates.UnSubmit;
                T_FB_REPAYAPPLYMASTER cha            = GetRepayApplyMasterByID(entity.REPAYAPPLYMASTERID);
                if (cha == null)
                {
                    strMsg = "提交的单据不存在或已删除,不可继续操作!";
                    return;
                }

                object checkStatesOld = cha.CHECKSTATES;
                dOldChecksates = (FBAEnums.CheckStates) int.Parse(checkStatesOld.ToString());

                object checkStatesNew = entity.CHECKSTATES;
                FBAEnums.CheckStates dNewCheckStates = (FBAEnums.CheckStates) int.Parse(checkStatesNew.ToString());

                if ((dOldChecksates == FBAEnums.CheckStates.Approved || dOldChecksates == FBAEnums.CheckStates.UnApproved) &&
                    strActionType.ToUpper() != "RESUBMIT")
                {
                    strMsg = "单据已审核完毕,不可再次操作";
                    return;
                }

                //不用月结可以进行借还款
                //#region 是否本月有结算

                //bool isChecked = SystemSettingsBLL.IsChecked;
                //// 没月结,只能处理报销。
                //string entityType = entity.GetType().Name;
                //string[] EntityTypes = new string[] { typeof(T_FB_BORROWAPPLYMASTER).Name,
                //    typeof(T_FB_REPAYAPPLYMASTER).Name, typeof(T_FB_CHARGEAPPLYMASTER).Name};
                //// 月结不可操作:1.日常报销类型的单据的审核或提交,2.所有单据的提交或重新提交
                //if (!isChecked && (EntityTypes.Contains(entityType) || (strActionType.ToUpper() == "SUBMIT")
                //    || (strActionType.ToUpper() == "RESUBMIT")))
                //{
                //    strMsg = "本月尚未结算,无法提交或审核!";
                //    return;
                //}

                //#endregion

                Utility.CloneEntity(entity, cha);
                cha.UPDATEDATE = DateTime.Now;

                bool n = Update(cha);
                if (n == false)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据更新异常!";
                    return;
                }

                RepayApplyDetailBLL bllRepayDetail = new RepayApplyDetailBLL();
                re = bllRepayDetail.UpdateRepayApplyDetail(cha.REPAYAPPLYMASTERID, detailList);//删除报销明细
                if (!re)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据明细更新异常!";
                    return;
                }

                if (dOldChecksates == dNewCheckStates && dOldChecksates == (int)FBAEnums.CheckStates.UnSubmit &&
                    strActionType.ToUpper() == "EDIT")
                {
                    strMsg = "单据更新成功!";
                    return;
                }

                //if (dNewCheckStates == FBAEnums.CheckStates.Approving && ((strActionType.ToUpper() == "SUBMIT" && dOldChecksates == FBAEnums.CheckStates.UnSubmit)
                //    || (strActionType.ToUpper() == "RESUBMIT" && dOldChecksates == FBAEnums.CheckStates.UnApproved)))
                //{
                //    BudgetAccountBLL budgetBLL = new BudgetAccountBLL();
                //    budgetBLL.UpdateAccount(cha, (int)dNewCheckStates);
                //}
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":UptRepayApplyMasterAndDetail," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
            }
            finally
            {
                ReleaseOrder(entity.REPAYAPPLYMASTERID);
            }
        }