示例#1
0
文件: Form1.cs 项目: ovjust/StockNote
        private void Form1_Load(object sender, EventArgs e)
        {
            stockInfos = new XPQuery<StockInfo>(sess);
             stockHoldings = new XPQuery<StockHolding>(sess);
             stockFlows = new XPQuery<StockFlow>(sess);
             dailyCounts = new XPQuery<DailyCount>(sess);
             DailyCount todayCount;
             moneyFlows = new XPQuery<MoneyFlow>(sess);
             moneyHolding = new XPQuery<MoneyHolding>(sess).SingleOrDefault();
             if (moneyHolding == null)
             {
                 moneyHolding = new MoneyHolding();
                 moneyHolding.Save();
             }
             if (stockHoldings.Count() > 0&&! new DayOfWeek[]{DayOfWeek.Sunday,DayOfWeek.Saturday}.Contains( DateTime.Today.DayOfWeek))
             {
               todayCount=  dailyCounts.SingleOrDefault(p => p.Date.Date == DateTime.Today);
               if (todayCount == null)
               {
                   todayCount = new DailyCount() { Date = DateTime.Now };
                   todayCount.Save();
                   dailyCounts = new XPQuery<DailyCount>(sess);
               }
             }

             dgvDaily.DataSource = dailyCounts.ToList() ;

             comboBox1.DisplayMember = "Text";
             comboBox1.ValueMember = "Value";
             comboBox1.DataSource =EnumHelper.GetItems< StockTradeType>();
        }
        protected void DataBindTranslationBatchesGridView()
        {
            currentCustomer.TranslationLogEntryBatches.Reload();

            IQueryable<TranslationLogEntryBatch> batches = new XPQuery<TranslationLogEntryBatch>(XpoHelper.GetNewSession()).Where(x => x.TranslationLogEntries.Count > 0).AsQueryable();
            TranslationBatchesGridView.DataBind(batches);
        }
        public static List<Employee> FilteredEmployeesToTarget(this ImportTask importTask, DevExpress.Xpo.Session session)
        {
            importTask.Filters.Reload();
            importTask.Phonebook.Employees.Reload();

            XPQuery<Employee> employeesQuery = new XPQuery<Employee>(session);
            IQueryable<Employee> employees = (from employee in employeesQuery where employee.Phonebook.Oid == importTask.Phonebook.Oid select employee);
            List<string> employeeFieldNames = Utilities.GetPropertyNames<Employee>().ToList();

            foreach (Filter filter in importTask.Filters.ToList<Filter>())
            {
                if (employeeFieldNames.Contains(filter.FieldName))
                {
                    if (filter.ComparisonOperator.Replace(" ", "") == "!=")
                    {
                        employees.Where(x => Convert.ToString(x.GetMemberValue(filter.FieldName)).EmptyIfNull() != filter.FieldValue);
                    }
                    else if (filter.ComparisonOperator.Replace(" ", "") == "==")
                    {
                        employees.Where(x => Convert.ToString(x.GetMemberValue(filter.FieldName)).EmptyIfNull() == filter.FieldValue);
                    }
                }
            }

            return employees.ToList();
        }
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.
            View.ControlsCreated += new EventHandler(View_ControlsCreated);

            XPQuery<TimekeepingName> _TimekeepingName = new XPQuery<TimekeepingName>((
                   (XPObjectSpace)ObjectSpace).Session);

            List<TimekeepingName> listTimekeepingName = (from tso in _TimekeepingName select tso).ToList();
            acFilterByTimekeepingMonth.Items.Clear();

            foreach (TimekeepingName item in listTimekeepingName)
            {
                if (item.StartDate <= DateTime.Now && DateTime.Now <= item.EndDate)
                {
                    tkname = item;
                }
                setLookupItem = new ChoiceActionItem(item.timekeepingName, item);

                acFilterByTimekeepingMonth.Items.Add(setLookupItem);
            }
            if (listTimekeepingName != null)
            {
                if (tkname == null)
                {
                    tkname = listTimekeepingName[0];
                }
                ((DevExpress.ExpressApp.ListView)View).CollectionSource.Criteria["Filter1"] = new BinaryOperator(
                        "TimekeepingName.Oid", tkname.Oid, BinaryOperatorType.Equal);
            }
        }
        protected void TranslationBatchesDetailGrid_Init(object sender, EventArgs e)
        {
            ASPxGridView gridView = sender as ASPxGridView;
            Guid batchOid = (Guid)(gridView.GetMasterRowKeyValue());

            TranslationLogEntryBatch batch = new XPQuery<TranslationLogEntryBatch>(XpoHelper.GetNewSession()).Where(x => x.Oid == batchOid).FirstOrDefault();
            gridView.DataBind(batch.TranslationLogEntries);
        }
        /// <summary>
        /// 
        /// </summary>
        private static void SQL_HandleCharDelete( CharDeleteSQL sqlInfo )
        {
            XPQuery<CharacterBase> characters = new XPQuery<CharacterBase>( OneDatabase.Session );

            var characterList = from character in characters
                               where character.Oid == sqlInfo.DelCharGuid
                               select character;

            bool bIsFinde = false;
            string strCharacterName = string.Empty;
            foreach ( CharacterBase character in characterList )
            {
                XPQuery<CharacterPet> creaturePets = new XPQuery<CharacterPet>( OneDatabase.Session );

                var creaturePetList = from creaturePet in creaturePets
                                      where creaturePet.Owner == character
                                      select creaturePet;

                foreach ( CharacterPet creaturePet in creaturePetList )
                    creaturePet.Delete();



                XPQuery<CharacterItem> characterItems = new XPQuery<CharacterItem>( OneDatabase.Session );

                var characterItemList = from characterItem in characterItems
                                        where characterItem.Owner == character
                                        select characterItem;

                foreach ( CharacterItem characterItem in characterItemList )
                    characterItem.Delete();



                character.Delete();
                OneDatabase.Session.CommitChanges();


                strCharacterName = character.CharacterName;
                bIsFinde = true;
                break;
            }

            if ( bIsFinde == false )
                sqlInfo.NetState.Send( new Word_CharDeleteResponseError( ResponseCodes.CHAR_DELETE_FAILED ) );
            else
            {
                ProcessServer.WowZoneCluster.World.GlobalPlayerInfo.RemovePlayerInfo( strCharacterName );

                sqlInfo.NetState.Send( new Word_CharDeleteResponse() );
            }

            CharEnumSQL charEnumSQL = new CharEnumSQL( sqlInfo.WorldExtendData, sqlInfo.NetState );
            WaitExecuteInfo<CharEnumSQL> waitExecuteInfo = new WaitExecuteInfo<CharEnumSQL>( charEnumSQL, WorldPacketHandlers.SQL_HandleCharEnum );

            ProcessServer.WowZoneCluster.World.WaitExecute.JoinWaitExecuteQueue( waitExecuteInfo );
        }
示例#7
0
        public List<Vacation> GetByDate(DateTime dateFrom, DateTime dateTo)
        {
            try
            {
                List<Vacation> vacations = new XPQuery<Vacation>(uow).Where(v => v.Date.Date >= dateFrom.Date && v.Date.Date <= dateTo.Date).OrderBy(v => v.Date).ToList();

                return vacations;
            }
            catch (Exception exception1)
            {
                Exception innerException = exception1;
                throw new Exception(MethodBase.GetCurrentMethod().Name, innerException);
            }
        }
        public static bool Login(string email, string password)
        {
            Customer match = new XPQuery<Customer>(DevExpress.Xpo.Session.DefaultSession).Where(x =>
                x.EmailAddress.ToLower() == email.ToLower() &&
                x.Password == password
            ).ToList().FirstOrDefault();

            if (match != null)
            {
                HttpSession session = HttpSession.CurrentSession();
                session.ActiveCustomer = match;
                session.SetClientCookie();
                session.SaveSession();
            }

            return match != null;
        }
示例#9
0
        private void btnDeleteMemo_Click(object sender, EventArgs e)
        {
            this.Uow = new UnitOfWork();
            PlanningMemo memo = (PlanningMemo) this.gridvMemo.GetRow(this.gridvMemo.FocusedRowHandle);

            if (memo == null)
                return;

            memo = new XPQuery<PlanningMemo>(this.Uow).FirstOrDefault(q => q.Id == memo.Id);

            if (memo == null)
                return;
            if (XtraMessageBox.Show(this.LookAndFeel, "Bent u zeker dat u deze memo wilt verwijderen?", "Verwijderen?",
                MessageBoxButtons.YesNoCancel,
                MessageBoxIcon.Question, MessageBoxDefaultButton.Button3) == DialogResult.Yes)
            {
                memo.Delete();
                this.Uow.CommitChanges();
                FindAllMemos();
            }
        }
示例#10
0
        private void DuaDuLieuLenBangLuong()
        {
            IWorkbook workbook = spreadControl.Document;
            Worksheet worksheet = workbook.Worksheets[0];

            Dictionary<int, string> dic = new Dictionary<int, string>();
            StreamReader sr = new StreamReader(fileName);
            while (sr.Peek() >= 0)
            {
                string line = sr.ReadLine();
                if (line != null)
                {
                    string[] result = line.Split('|');
                    int value;
                    if (int.TryParse(result[1].ToString(), out value))
                    {
                        dic.Add(value, result[0]);
                    }
                }
            }
            sr.Close();

            XPQuery<Employee> _Employee = new XPQuery<Employee>(session);

            List<Employee> listEmployee = (from tso in _Employee select tso).ToList();
            int countEmp = 2;
            foreach (Employee emp in listEmployee)
            {
                foreach(KeyValuePair<int, string> pair in dic)
                {
                    if(pair.Key > 0)
                    {
                        worksheet[countEmp, pair.Key].Value = LayDuLieu(pair.Value, emp.Oid.ToString());
                    }
                }
                countEmp++;
            }
        }
示例#11
0
        public static ModificationResult DeleteWhere <T>(this Session session, Expression <Func <T, bool> > exp) where T : IXPObject
        {
            CriteriaOperator filter = XPQuery <T> .TransformExpression(session, exp);

            return(DeleteWhere <T>(session, filter));
        }
示例#12
0
        public InventoryLedger GetPreviousInventoryLedger(Session session, InventoryLedger ledger)
        {
            InventoryLedger result = null;

            try
            {
                //CriteriaOperator criteria_RowStatus = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual);
                //CriteriaOperator criteria_IssueDate = new BinaryOperator("IssueDate", ledger.IssueDate, BinaryOperatorType.Less);
                //CriteriaOperator criteria_IssueDate1 = new BinaryOperator("IssueDate", ledger.IssueDate, BinaryOperatorType.Equal);
                //CriteriaOperator criteria_CreateDate = new BinaryOperator("CreateDate", ledger.CreateDate, BinaryOperatorType.LessOrEqual);
                //CriteriaOperator criteria_Inventory = new BinaryOperator("InventoryId", ledger.InventoryId, BinaryOperatorType.Equal);
                //CriteriaOperator criteria_ItemUnit = new BinaryOperator("ItemUnitId", ledger.ItemUnitId, BinaryOperatorType.Equal);
                //CriteriaOperator criteria_InventoryLedgerId = new BinaryOperator("InventoryLedgerId!Key", ledger.InventoryLedgerId, BinaryOperatorType.NotEqual);

                //CriteriaOperator criteria_DateTime = CriteriaOperator.Or(   criteria_IssueDate,
                //                                                            CriteriaOperator.And(criteria_IssueDate1, criteria_CreateDate));

                //CriteriaOperator criteria = CriteriaOperator.And(criteria_DateTime, criteria_Inventory, criteria_InventoryLedgerId, criteria_RowStatus, criteria_ItemUnit);

                XPQuery <InventoryLedger>    InventoryLedgerQuery = new XPQuery <InventoryLedger>(session);
                IQueryable <InventoryLedger> InventoryLedgerCol   = (from r in InventoryLedgerQuery
                                                                     where r.RowStatus >= Constant.ROWSTATUS_ACTIVE &&
                                                                     r.IssueDate == ledger.IssueDate &&
                                                                     r.CreateDate <= ledger.CreateDate &&
                                                                     r.InventoryId == ledger.InventoryId &&
                                                                     r.InventoryLedgerId != ledger.InventoryLedgerId &&
                                                                     r.ItemUnitId == ledger.ItemUnitId
                                                                     select r);
                if (InventoryLedgerCol != null)
                {
                    if (InventoryLedgerCol.Count() > 0)
                    {
                        result = InventoryLedgerCol.OrderByDescending(r => r.CreateDate).FirstOrDefault();
                        return(result);
                    }
                }

                InventoryLedgerCol = (from r in InventoryLedgerQuery
                                      where r.RowStatus >= Constant.ROWSTATUS_ACTIVE &&
                                      r.IssueDate < ledger.IssueDate &&
                                      r.InventoryId == ledger.InventoryId &&
                                      r.InventoryLedgerId != ledger.InventoryLedgerId &&
                                      r.ItemUnitId == ledger.ItemUnitId
                                      select r);

                if (InventoryLedgerCol != null)
                {
                    if (InventoryLedgerCol.Count() > 0)
                    {
                        result = InventoryLedgerCol.OrderByDescending(r => r.IssueDate).OrderByDescending(r => r.CreateDate).FirstOrDefault();
                        return(result);
                    }
                }

                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
            return(result);
        }
示例#13
0
        private void UpdateRegister(Session ses, fmCSAStatementAccount statementAccount)
        {
            DateTime DatePeriodBegin = statementAccount.DateFrom.Date;
            DateTime DatePeriodEnd   = statementAccount.DateTo.Date;

            XPQuery <fmCSAOperationJournal> OperJur = new XPQuery <fmCSAOperationJournal>(ses, true);

            var OperJurFact = from oper in OperJur
                              where oper.OperationDate.Date >= DatePeriodBegin &&
                              oper.OperationDate.Date < DatePeriodEnd.Date.AddDays(1) &&
                              oper.BankAccount == statementAccount.BankAccount
                              group oper by
                              new {
                oper.OperationDate,
                oper.PaymentDocument
            } into registerGroup
                select new OperationJurnal {
                Date          = registerGroup.Key.OperationDate,
                PayDoc        = registerGroup.Key.PaymentDocument,
                StatementDoc  = null,
                CurrentSumIn  = registerGroup.Sum(oper => oper.SumIn),
                CurrentSumOut = registerGroup.Sum(oper => oper.SumOut)
            };

            XPQuery <fmCSAStatementAccountDoc> StatAccountDoc = new XPQuery <fmCSAStatementAccountDoc>(ses, true);
            var OperJurStatIn = from doc in StatAccountDoc
                                where doc.PaymentReceiverRequisites.StatementOfAccount == statementAccount &&
                                doc.ReceivedByPayerBankDate != DateTime.MinValue
                                select new OperationJurnal {
                Date           = doc.ReceivedByPayerBankDate,
                PayDoc         = doc.PaymentDocument,
                StatementDoc   = doc,
                StatementSumIn = doc.PaymentCost,
            };
            var OperJurStatOut = from doc in StatAccountDoc
                                 where doc.PaymentPayerRequisites.StatementOfAccount == statementAccount &&
                                 doc.DeductedFromPayerAccount != DateTime.MinValue
                                 select new OperationJurnal {
                Date            = doc.DeductedFromPayerAccount,
                PayDoc          = doc.PaymentDocument,
                StatementDoc    = doc,
                StatementSumOut = doc.PaymentCost,
            };

            var OperJurUnion = from oper in OperJurFact.Union(OperJurStatIn).Union(OperJurStatOut)
                               group oper by
                               new {
                Date   = oper.Date,
                PayDoc = oper.PayDoc
            } into oper_group
                select new OperationJurnal {
                Date   = oper_group.Key.Date,
                PayDoc = oper_group.Key.PayDoc,
//                                   StatementOper = oper_group.First(oper => oper.StatementDoc != null),
                CurrentSumIn    = oper_group.Sum(oper => oper.CurrentSumIn),
                CurrentSumOut   = oper_group.Sum(oper => oper.CurrentSumOut),
                StatementSumIn  = oper_group.Sum(oper => oper.StatementSumIn),
                StatementSumOut = oper_group.Sum(oper => oper.StatementSumOut)
            };

            foreach (OperationJurnal oper in OperJurUnion)
            {
                if (oper.CurrentSumIn != oper.StatementSumIn || oper.CurrentSumOut != oper.StatementSumOut)
                {
                    fmCSAOperationJournal oper_delta = new fmCSAOperationJournal(ses);
                    oper_delta.DateRecord = DateTime.Now;
//                    oper_delta.
                    oper_delta.OperationDate   = oper.Date;
                    oper_delta.BankAccount     = statementAccount.BankAccount;
                    oper_delta.PaymentDocument = oper.PayDoc;
//                    oper_delta.StatementAccountDoc = itemSA.StatementDocument;
                    oper_delta.SumIn  = oper.StatementSumIn - oper.CurrentSumIn;
                    oper_delta.SumOut = oper.StatementSumOut - oper.CurrentSumOut;

                    // Валюта, для которой указаны суммы SumIn и SumOut
                    oper_delta.Valuta = crmBankAccount.GetValutaByBankAccount(ses, statementAccount.BankAccount);   //GetValutaByBankAccount(ses, statementAccount.BankAccount);
                }
            }
        }
示例#14
0
        //public void CreatePaymentDocument(fmStatementOfAccount statementAccount) {
        public void CreatePaymentDocuments <typeDoc>(Session ses, fmCSAStatementAccount statementAccount) where typeDoc : fmCDocRCB
        {
            //DateTime DatePeriodBegin = statementAccount.DateFrom.Date;
            //DateTime DatePeriodEnd = statementAccount.DateTo.Date;

            /* 2012-04-11
             * XPQuery<fmCSAStatementAccountDoc> docs = new XPQuery<fmCSAStatementAccountDoc>(ses, true);
             * var queryStatementDocs = from statementDoc in docs
             *                       where //statementDoc.PaymentDocument == null
             * //                                         && (statementAccount.PayInDocs.Contains<fmCSAStatementAccountDoc>(statementDoc) || statementAccount.PayOutDocs.Contains<fmCSAStatementAccountDoc>(statementDoc))
             *                             (statementDoc.PaymentPayerRequisites.StatementOfAccount == statementAccount ||
             *                              statementDoc.PaymentReceiverRequisites.StatementOfAccount == statementAccount)
             *                           && statementDoc.NameTypeOfRCBDocument == typeof(typeDoc).FullName
             *                       select statementDoc;
             */

            var queryStatementDocs = (statementAccount.PayInDocs.Union(statementAccount.PayOutDocs)).Where(d => d.NameTypeOfRCBDocument == typeof(typeDoc).FullName);

            foreach (var doc in queryStatementDocs)
            {
                //if (doc.NameTypeOfRCBDocument != typeof(typeDoc).FullName) continue;

                // Проверка наличия Платёжного документа, подходящего для данного документа выписки doc
                // 1. Тип документа, например, fmCDocRCBPaymentOrder и т.п.
                // 2. Номер счёта плательщика
                // 3. Номер документа DocNumber
                // 4. Дата документа DocDate

                XPQuery <typeDoc> paymentDocs = new XPQuery <typeDoc>(ses, true);

                /* 2012-04-11
                 * var queryPaymentDocs = from paymentDoc in paymentDocs
                 *                     where (doc.PaymentPayerRequisites.AccountParty == statementAccount.BankAccountText
                 *                           && paymentDoc.PaymentPayerRequisites.AccountParty == doc.PaymentPayerRequisites.AccountParty
                 ||
                 ||                           doc.PaymentReceiverRequisites.AccountParty == statementAccount.BankAccountText
                 ||                          && paymentDoc.PaymentReceiverRequisites.AccountParty == doc.PaymentReceiverRequisites.AccountParty)
                 ||                        && paymentDoc.DocNumber == doc.DocNumber
                 ||                        && paymentDoc.DocDate == doc.DocDate
                 ||                    select paymentDoc;
                 */
                // Для входящих платежей - дополнительная проверка по тексту PaymentFunction
                // В качестве признака входящего/исходящего платежа можно взять условие непустоты полей StatementAccountIn/StatementAccountOut
                // 2012-04-12 Телефонный разговор: сменилась концепция проверки подходящего платёжного документа

                /*
                 * var queryPaymentDocs = from paymentDoc in paymentDocs
                 *                     where (doc.PaymentPayerRequisites.AccountParty == statementAccount.BankAccountText
                 *                           && paymentDoc.PaymentPayerRequisites.AccountParty == doc.PaymentPayerRequisites.AccountParty
                 ||
                 ||                           doc.PaymentReceiverRequisites.AccountParty == statementAccount.BankAccountText
                 ||                          && paymentDoc.PaymentReceiverRequisites.AccountParty == doc.PaymentReceiverRequisites.AccountParty)
                 ||                        && paymentDoc.PaymentPayerRequisites.INN == doc.PaymentPayerRequisites.INN && paymentDoc.PaymentPayerRequisites.KPP == doc.PaymentPayerRequisites.KPP
                 ||                        && paymentDoc.PaymentReceiverRequisites.INN == doc.PaymentReceiverRequisites.INN && paymentDoc.PaymentReceiverRequisites.KPP == doc.PaymentReceiverRequisites.KPP
                 ||                        && paymentDoc.DocNumber == doc.DocNumber
                 ||                        && paymentDoc.DocDate == doc.DocDate
                 ||                        && (doc.StatementAccountIn == null || paymentDoc.PaymentFunction == doc.PaymentFunction)
                 ||                    select paymentDoc;
                 */
                // 2012-04-12 Новый способ проверки: Тип (учитывается как параметр), Номер документа, Дата документа, БИК банка плательщика,
                // счёт плательщика, БИК банка получаетля, счёт получателя
                var queryPaymentDocs = from paymentDoc in paymentDocs
                                       where paymentDoc.DocType == doc.DocType &&
                                       paymentDoc.DocNumber == doc.DocNumber &&
                                       paymentDoc.DocDate == doc.DocDate &&
                                       paymentDoc.PaymentPayerRequisites.RCBIC == doc.PaymentPayerRequisites.RCBIC && paymentDoc.PaymentPayerRequisites.AccountParty == doc.PaymentPayerRequisites.AccountParty &&
                                       paymentDoc.PaymentReceiverRequisites.RCBIC == doc.PaymentReceiverRequisites.RCBIC && paymentDoc.PaymentReceiverRequisites.AccountParty == doc.PaymentReceiverRequisites.AccountParty &&
                                       paymentDoc.PaymentFunction == doc.PaymentFunction
                                       select paymentDoc;


                bool isFound = false;
                foreach (var paymentDoc in queryPaymentDocs)
                {
                    isFound = true;

                    // Найден какой-то Платёжный документ заданного типа -> сумма выписки учитывается в регистре, а сам Платёжный документ припиывается
                    // документу выписки
                    doc.PaymentDocument = paymentDoc;
                    AssignCommonProperty(paymentDoc, doc); // ??? Надо обновлять ???

                    break;
                }

                if (!isFound)
                {
                    // Не найден никакой документ заданного типа -> создаётся Платёжный документ соответствующего типа
                    fmCDocRCB paymentDoc = null;
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentOrder(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentRequest(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBAkkreditivRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBAkkreditivRequest(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBInkassOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBInkassOrder(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBOthers).FullName)
                    {
                        paymentDoc = new fmCDocRCBOthers(ses);
                    }

                    paymentDoc.DocType  = doc.DocType;
                    paymentDoc.State    = PaymentDocProcessingStates.IMPORTED;
                    doc.PaymentDocument = paymentDoc;
                    AssignCommonProperty(paymentDoc, doc);
                }
            }
        }
示例#15
0
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public static bool BuildRecreate()
        {
            try
            {
                LOGs.WriteLine( LogMessageType.MSG_SQL, "SQL: 开始连接SQL..." );

                s_UnitOfWork.Connection = new SqlConnection( s_ConnectionUrl );
                s_UnitOfWork.AutoCreateOption = AutoCreateOption.SchemaOnly;

                s_UnitOfWork.Connect();

                LOGs.WriteLine( LogMessageType.MSG_INFO, "SQL: 连接 {0}", s_ConnectionUrl );
            }
            catch ( Exception exception )
            {
                LOGs.WriteLine( LogMessageType.MSG_FATALERROR, "SQL: 无法连接SQL {0}", exception );
                return false;
            }

            const string AccountNameGM = "DemoSoft";
            const string AccountPasswordGM = "123456";
            const string AccountNameTest = "wowwow1978";
            const string AccountPasswordTest = "TrueHacke0";

            XPQuery<Account> accounts = new XPQuery<Account>( s_UnitOfWork );

            var accountList = from account in accounts
                              where account.AccountName == AccountNameGM || account.AccountName == AccountNameTest
                              select account;

            foreach ( Account account in accountList )
                account.Delete();

            s_UnitOfWork.CommitChanges();
            s_UnitOfWork.PurgeDeletedObjects();

            Account accountsGM = new Account( s_UnitOfWork );
            accountsGM.AccountName = AccountNameGM;
            accountsGM.Password = AccountPasswordGM;
            accountsGM.GMLevel = 1; // GM
            accountsGM.IsLocked = false;
            accountsGM.IsBanned = true;
            accountsGM.CreateDate = DateTime.Now;
            accountsGM.Save();

            Account accountsTest = new Account( s_UnitOfWork );
            accountsTest.AccountName = AccountNameTest;
            accountsTest.Password = AccountPasswordTest;
            accountsTest.GMLevel = 100; // Player
            accountsTest.IsLocked = false;
            accountsTest.IsBanned = false;
            accountsTest.CreateDate = DateTime.Now;
            accountsTest.Save();

            s_UnitOfWork.CommitChanges();

            LOGs.WriteLine( LogMessageType.MSG_SQL, "SQL: 完成构建SQL" );

            return true;
        }
示例#16
0
        private void btnNext_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            XPQuery<DefaultValueTimekeeping> _DefaultValueTimekeeping = new XPQuery<DefaultValueTimekeeping>((
                   (XPObjectSpace)objSpace).Session);
            List<DefaultValueTimekeeping> xpcDefaultValueTimekeeping;
            xpcDefaultValueTimekeeping = (from tso in _DefaultValueTimekeeping select tso).ToList();

            dt = new DataTable();
            dt.Columns.Add("IsChecked", typeof(bool));
            dt.Columns.Add("Phòng ban",typeof(string));
            dt.Columns.Add("Mã NV", typeof(string));
            dt.Columns.Add("Tên nhân viên", typeof(string));
            dt.Columns.Add("Ngày", typeof(DateTime));
            dt.Columns.Add("Ca Mặc Định", typeof(string));
            dt.Columns.Add("Ca Dự Đoán", typeof(string));
            dt.Columns.Add("Vào 1", typeof(string));
            dt.Columns.Add("Ra 1", typeof(string));
            dt.Columns.Add("Vào 2", typeof(string));
            dt.Columns.Add("Ra 2", typeof(string));
            dt.Columns.Add("Vào 3", typeof(string));
            dt.Columns.Add("Ra 3", typeof(string));

            if (string.IsNullOrEmpty(txtDuongDanFile.Text))
                return;
            lkupTenBangChamCong.Visible = true;
            layoutControlItem7.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            layoutControlItem8.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            layoutControlItem9.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            layoutControlItem10.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            layoutControlItem11.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;

            //Convert To Table Template
            DataTable dt_temp = dt_temp = gridControl1.DataSource as DataTable;
            if (dt_temp == null)
            {
                return;
            }

            // Bo tieu de
            if (dt_temp.Rows.Count > 0)
            {
                dt_temp.DefaultView.RowFilter = "F3 <> ''";
                dt_temp = dt_temp.DefaultView.ToTable();
            }
            //Fomart cấu trúc bảng
            List<string> dsCol = new List<string>(){"Phòng ban","Mã NV","Tên nhân viên", "Ngày", "Vào 1", "Vào 2", "Vào 3",
            "Ra 1", "Ra 2", "Ra 3"};

            foreach (DataRow itemrow in dt_temp.Rows)
            {
                foreach (string col in dsCol)
                {
                    for (int i = 0; i < dt_temp.Columns.Count; i++)
                    {
                        if (itemrow[i].ToString() == col)
                        {
                            dt_temp.Columns[i].ColumnName = col;
                            break;
                        }
                    }
                }
            }

            //Xóa dòng đầu tiền trong bảng
            dt_temp.Rows.RemoveAt(0);

            ////Đưa về bảng 8 cột

            //for (int i = 0; i < dt_temp.Columns.Count; i++)
            //{
            //    DataColumn columns = dt_temp.Columns[i];
            //    foreach (string col in dsCol)
            //    {
            //        if (col == columns.ColumnName && !dt.Columns.Contains(col))
            //        {
            //            dt.Columns.Add(col);
            //            break;
            //        }
            //    }
            //}

            //Them 2 cot thoi gian vao thoi gian ra
            DataColumn column = dt.Columns.Add("ThoiGianVao", typeof(string));
            column.Caption = "Thời Gian Vào";
            column = dt.Columns.Add("ThoiGianRa", typeof(string));
            column.Caption = "Thời Gian Ra";
            for (int i = 0; i < dt_temp.Rows.Count; i++)
            {
                DataRow dr = dt_temp.Rows[i];
                dt.ImportRow(dr);

                if (dt_temp.Rows[i]["Vào 1"] != System.DBNull.Value)
                {
                    dt.Rows[i]["ThoiGianVao"] = dt_temp.Rows[i]["Vào 1"];
                }
                else
                {
                    dt.Rows[i]["ThoiGianVao"] = "00:00";
                }

                if (dt_temp.Rows[i]["Ra 3"] != System.DBNull.Value)
                {
                    dt.Rows[i]["ThoiGianRa"] = dt_temp.Rows[i]["Ra 3"];
                }
                else if (dt_temp.Rows[i]["Ra 2"] != System.DBNull.Value)
                {
                    dt.Rows[i]["ThoiGianRa"] = dt_temp.Rows[i]["Ra 2"];
                }
                else if (dt_temp.Rows[i]["Ra 1"] != System.DBNull.Value)
                {
                    dt.Rows[i]["ThoiGianRa"] = dt_temp.Rows[i]["Ra 1"];
                }
                else
                {
                    dt.Rows[i]["ThoiGianRa"] = "00:00";
                }

                Employee emp = objSpace.FindObject<Employee>(new BinaryOperator(
                      "EmployeeCode", dt.Rows[i]["Mã NV"]));
                if (emp != null)
                {
                    if (emp.DefaultShift != null && emp.DefaultShift.ShiftName != null)
                    {
                        dt.Rows[i]["Ca Mặc Định"] = emp.DefaultShift.ShiftName;
                    }
                }

                if (dt.Rows[i]["ThoiGianRa"] != null && dt.Rows[i]["ThoiGianVao"] != null)
                {
                    foreach (DefaultValueTimekeeping value in xpcDefaultValueTimekeeping)
                    {
                        if (value.ThoiGianVao != null && value.ThoiGianRa != null)
                        {
                            TimeSpan ts = TimeSpan.Parse(dt.Rows[i]["ThoiGianVao"].ToString()) - value.ThoiGianVao;
                            if (ts.Hours == 0 && ts.Minutes > -30 && ts.Minutes < 30)
                            {
                                dt.Rows[i]["Ca Dự Đoán"] = value.Shift.ShiftName;
                                break;
                            }
                        }
                    }
                }
            }

            gridControl1.DataSource = null;
            gridView1.Columns.Clear();

            gridControl1.DataSource = dt;

            //Enable button Finish
            btnFinish.Enabled = true;
            btnNext.Enabled = false;

            gridView1.SelectAll();

            checkEdit2.Checked = true;
            this.Cursor = Cursors.Default;
        }
示例#17
0
        void SimpleActionOnExecute(object sender, SimpleActionExecuteEventArgs simpleActionExecuteEventArgs)
        {
            DateTime dateTime = new XPQuery <MDSOrderLine>(((XPObjectSpace)ObjectSpace).Session).Max(line => line.OrderLineDate);

            ((Customer)View.CurrentObject).BirthDate = dateTime;
        }
        private IActionResult _Search(string[] words, SearchRangeType type)
        {
            var session          = new UnitOfWork();
            var view             = new XPView(session, typeof(Verse));
            var bookShortcuts    = new XPQuery <BookBase>(session).Select(x => new KeyValuePair <int, string>(x.NumberOfBook, x.BookShortcut)).ToList();
            var translationNames = new XPQuery <Translation>(session).Where(x => !x.Hidden).Select(x => new KeyValuePair <string, string>(x.Name.Replace("'", "").Replace("+", ""), x.Description)).ToList();

            var query = "Search?text=";

            foreach (var word in words)
            {
                query += word;
                if (word != words.Last())
                {
                    query += "+";
                }
            }
            var dic = new Dictionary <string, string>();

            foreach (SearchRangeType item in Enum.GetValues(typeof(SearchRangeType)))
            {
                if (item == type)
                {
                    continue;
                }
                if (item == SearchRangeType.All)
                {
                    dic.Add(item.GetDescription(), query);
                }
                else
                {
                    dic.Add(item.GetDescription(), query + TYPE_QUERY + item.GetCategory());
                }
            }

            var critera = String.Empty;

            foreach (var word in words)
            {
                critera += $"Contains(Lower([Text]),'{word.ToLower()}')";

                if (word != words.Last())
                {
                    critera += " AND ";
                }
            }

            view.CriteriaString = critera.Trim();

            view.Properties.Add(new ViewProperty("NumberOfVerse", SortDirection.None, "[NumberOfVerse]", false, true));
            view.Properties.Add(new ViewProperty("VerseText", SortDirection.None, "[Text]", false, true));
            view.Properties.Add(new ViewProperty("Index", SortDirection.None, "[Index]", false, true));

            var model = new SearchResultsModel(words)
            {
                SearchType = type, Links = dic
            };

            foreach (ViewRecord record in view)
            {
                var _index = record["Index"];
                if (_index.IsNotNull())
                {
                    var index = new VerseIndex(_index.ToString());
                    if (type != SearchRangeType.All)
                    {
                        if (type == SearchRangeType.NewTestament && (index.NumberOfBook < 470 || index.NumberOfBook > 730))
                        {
                            continue;
                        }
                        if (type == SearchRangeType.OldTestament && index.NumberOfBook >= 470)
                        {
                            continue;
                        }
                    }
                    var baseBookShortcut = bookShortcuts.Where(x => x.Key == index.NumberOfBook).Select(x => x.Value).FirstOrDefault();
                    var translation      = translationNames.Where(x => x.Key == index.TranslationName).FirstOrDefault();
                    if (translation.IsNull() || translation.Key.IsNull())
                    {
                        continue;
                    }
                    var translationDesc = translation.Value;
                    var verseText       = record["VerseText"].ToString();
                    verseText = verseText.Replace("<J>", "<span style='color: darkred;'>").Replace("</J>", "</span>");
                    var simpleText      = verseText.Replace("</t>", "").Replace("<t>", "").Replace("<pb/>", "").Replace("<n>", "").Replace("</n>", "").Replace("<e>", "").Replace("</e>", "").Replace("―", "").Replace('\'', ' ').Replace("<J>", "").Replace("</J>", "").Replace("<i>", "").Replace("</i>", "");
                    var translationName = translation.Key;
                    if (translationName == "NPI" || translationName == "IPD")
                    {
                        simpleText = simpleText.Replace("―", "");
                        verseText  = verseText.Replace("―", "");
                    }
                    if (translationName == "PBD")
                    {
                        translationName = "SNPPD";
                    }
                    simpleText = System.Text.RegularExpressions.Regex.Replace(simpleText, @"\<f\>\[[0-9]+\]\<\/f\>", "");
                    simpleText = $"{baseBookShortcut} {index.NumberOfChapter}:{record["NumberOfVerse"]} „{simpleText}” ({translationName})";
                    model.Add(new SearchItemModel()
                    {
                        Book            = index.NumberOfBook,
                        BookShortcut    = baseBookShortcut,
                        Chapter         = index.NumberOfChapter,
                        Verse           = record["NumberOfVerse"].ToInt(),
                        TranslationName = translationDesc,
                        Translation     = index.TranslationName,
                        VerseText       = verseText,
                        SimpleText      = simpleText,
                        Index           = _index.ToString()
                    });
                }
            }

            return(View(model));
        }
示例#19
0
        private void btnAutoTranslateChapter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (XtraMessageBox.Show("Do you want to auto-translate this chapter to Polish?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                var verses = VerseControl.Verse.ParentChapter.Verses.OrderBy(x => x.NumberOfVerse).ToList();
                var dic    = new XPQuery <AncientDictionaryItem>(Uow).ToList();

                Uow.BeginTransaction();

                var c = new GreekTransliterationController();

                foreach (var verse in verses)
                {
                    foreach (var verseWord in verse.VerseWords)
                    {
                        var sourceWord = verseWord.SourceWord.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");

                        if (verseWord.Translation.IsNullOrEmpty())
                        {
                            var exactItem = dic.Where(x => x.Word == sourceWord.ToLower()).FirstOrDefault();
                            if (exactItem.IsNotNull())
                            {
                                var translation = String.Empty;
                                var _isUpper    = System.Char.IsUpper(sourceWord[0]);
                                if (_isUpper && exactItem.Translation.IsNotNullOrEmpty() && exactItem.Translation.Length > 1)
                                {
                                    translation = exactItem.Translation.Substring(0, 1).ToUpper() + exactItem.Translation.Substring(1).ToLower();
                                }
                                else
                                {
                                    translation = exactItem.Translation.ToLower();
                                }
                                if (translation.IsNotNullOrEmpty())
                                {
                                    translation = translation.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");
                                    if (verseWord.SourceWord.EndsWith(","))
                                    {
                                        translation += ",";
                                    }
                                    if (verseWord.SourceWord.EndsWith(";"))
                                    {
                                        translation += ";";
                                    }
                                    if (verseWord.SourceWord.EndsWith("·"))
                                    {
                                        translation += ":";
                                    }
                                    if (verseWord.SourceWord.EndsWith("."))
                                    {
                                        translation += ".";
                                    }

                                    verseWord.Translation = translation;
                                    verseWord.Save();

                                    continue;
                                }
                            }

                            var w    = c.GetSourceWordWithoutBreathAndAccent(sourceWord, out var isUpper);
                            var item = dic.Where(x => x.Word == w.ToLower()).FirstOrDefault();
                            if (item.IsNotNull())
                            {
                                var translation = String.Empty;
                                if (isUpper && item.Translation.IsNotNullOrEmpty() && item.Translation.Length > 1)
                                {
                                    translation = item.Translation.Substring(0, 1).ToUpper() + item.Translation.Substring(1).ToLower();
                                }
                                else
                                {
                                    translation = item.Translation.ToLower();
                                }
                                if (translation.IsNotNullOrEmpty())
                                {
                                    translation = translation.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");
                                    if (verseWord.SourceWord.EndsWith(","))
                                    {
                                        translation += ",";
                                    }
                                    if (verseWord.SourceWord.EndsWith(";"))
                                    {
                                        translation += ";";
                                    }
                                    if (verseWord.SourceWord.EndsWith("·"))
                                    {
                                        translation += ":";
                                    }
                                    if (verseWord.SourceWord.EndsWith("."))
                                    {
                                        translation += ".";
                                    }

                                    verseWord.Translation = translation;
                                    verseWord.Save();
                                }
                            }
                        }
                    }
                }

                VerseControl.Verse.ParentChapter.IsTranslated = true;

                Uow.CommitChanges();

                VerseControl.LoadData(verses.First());
            }
        }
示例#20
0
        private void BuildFromExisting(UnitOfWork uow)
        {
            uow.BeginTransaction();
            AncientDictionary dic = null;

            if (!new XPQuery <AncientDictionary>(uow).Any())
            {
                dic = new AncientDictionary(uow)
                {
                    Language = Language.Greek
                };
                dic.Save();
            }
            else
            {
                dic = new XPQuery <AncientDictionary>(uow).FirstOrDefault();
            }

            var strongs      = new XPQuery <StrongCode>(uow).ToList();
            var grammarCodes = new XPQuery <GrammarCode>(uow).ToList();

            var items = new List <AncientDictionaryItem>();

            var verseView = new XPView(uow, typeof(VerseWord))
            {
                CriteriaString = "Translation is not null AND Translation != ''"
            };

            verseView.Properties.Add(new ViewProperty("Oid", SortDirection.None, "[Oid]", false, true));
            verseView.Properties.Add(new ViewProperty("Translation", SortDirection.None, "[Translation]", false, true));
            verseView.Properties.Add(new ViewProperty("Transliteration", SortDirection.None, "[Transliteration]", false, true));
            verseView.Properties.Add(new ViewProperty("SourceWord", SortDirection.None, "[SourceWord]", false, true));
            verseView.Properties.Add(new ViewProperty("GrammarCodeId", SortDirection.None, "[GrammarCode.Oid]", false, true));
            verseView.Properties.Add(new ViewProperty("StrongCodeId", SortDirection.None, "[StrongCode.Oid]", false, true));

            var ancientDictionaryItemView = new XPView(uow, typeof(AncientDictionaryItem))
            {
                CriteriaString = "Translation is not null AND Translation != ''"
            };

            ancientDictionaryItemView.Properties.Add(new ViewProperty("Word", SortDirection.None, "[Word]", false, true));
            foreach (ViewRecord item in ancientDictionaryItemView)
            {
                items.Add(new AncientDictionaryItem(null)
                {
                    Word = item["Word"].ToString()
                });
            }

            foreach (ViewRecord item in verseView)
            {
                var sourceWord = item["SourceWord"].ToString().RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?").ToLower();
                if (!items.Where(x => x.Word.Equals(sourceWord)).Any())
                {
                    var translationText = item["Translation"].ToString().ToLower();
                    translationText = Regex.Replace(translationText, @"(?<c>\<n\>(\s+)?\[.+\](\s+)?\<\/n\>)", String.Empty, RegexOptions.IgnoreCase);
                    translationText = translationText.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?").Trim();

                    if (translationText.IsNotNullOrEmpty())
                    {
                        var transliteration = item["Transliteration"].ToString().RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?").ToLower();

                        var dicItem = new AncientDictionaryItem(uow)
                        {
                            Word            = sourceWord,
                            Dictionary      = dic,
                            Translation     = translationText,
                            Transliteration = transliteration,
                            GrammarCode     = grammarCodes.Where(x => x.Oid == item["GrammarCodeId"].ToInt()).FirstOrDefault(),
                            StrongCode      = strongs.Where(x => x.Oid == item["StrongCodeId"].ToInt()).FirstOrDefault()
                        };

                        dicItem.Save();
                        items.Add(dicItem);
                    }
                }
            }

            uow.CommitChanges();
        }
示例#21
0
        private void BuildFromTRO(string path, UnitOfWork uow)
        {
            var conn  = GetConnection(path);
            var words = GetTroVerseInfos(conn);
            var c     = new GreekTransliterationController();

            uow.BeginTransaction();
            var strongs           = new XPQuery <StrongCode>(uow).ToList();
            var grammarCodes      = new XPQuery <GrammarCode>(uow).ToList();
            AncientDictionary dic = null;

            if (!new XPQuery <AncientDictionary>(uow).Any())
            {
                dic = new AncientDictionary(uow)
                {
                    Language = Language.Greek
                };
                dic.Save();
            }
            else
            {
                dic = new XPQuery <AncientDictionary>(uow).FirstOrDefault();
            }

            var ancientDictionaryItemView = new XPView(uow, typeof(AncientDictionaryItem))
            {
                CriteriaString = "Translation is not null AND Translation != ''"
            };

            ancientDictionaryItemView.Properties.Add(new ViewProperty("Word", SortDirection.None, "[Word]", false, true));

            var exsistingWords = new List <TroVerseWord>();

            foreach (ViewRecord item in ancientDictionaryItemView)
            {
                exsistingWords.Add(new TroVerseWord()
                {
                    SourceWord = item["Word"].ToString()
                });
            }

            foreach (var word in words)
            {
                if (!exsistingWords.Where(x => x.SourceWord == word.SourceWord).Any())
                {
                    var item = new AncientDictionaryItem(uow)
                    {
                        Dictionary      = dic,
                        Word            = word.SourceWord,
                        Translation     = word.Translation,
                        Transliteration = c.TransliterateWord(word.SourceWord),
                        StrongCode      = strongs.Where(x => x.Lang == Language.Greek && x.Code == word.StrongCode).FirstOrDefault(),
                        GrammarCode     = grammarCodes.Where(x => x.GrammarCodeVariant1 == word.GrammarCode || x.GrammarCodeVariant2 == word.GrammarCode || x.GrammarCodeVariant3 == word.GrammarCode).FirstOrDefault()
                    };
                    item.Save();
                    exsistingWords.Add(new TroVerseWord()
                    {
                        SourceWord = word.SourceWord
                    });
                }
            }

            uow.CommitChanges();
        }
 public static XpoLinqQuery <T> AsWrappedQuery <T>(this XPQuery <T> source)
 {
     return(new XpoLinqQuery <T>(source));
 }
示例#23
0
        public static void Populate()
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                //insert default data into Inventory table
                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Name", Utility.Constant.NAAN_DEFAULT_NAME))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Name                 = Utility.Constant.NAAN_DEFAULT_NAME,
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("InventoryId", "fa31071d-6010-4788-83b9-9f0ce0c90c5f"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        InventoryId          = Guid.Parse("fa31071d-6010-4788-83b9-9f0ce0c90c5f"),
                        Name                 = "Kho mặc định",
                        Code                 = "KHOMACDINH",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = 1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", "DEFAULTCST"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = "DEFAULTCST",
                        Name                 = "Kho khách hàng",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", "TRANSITINVENTORY"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();

                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = "TRANSITINVENTORY",
                        Name                 = "Kho trung chuyển",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE))
                {
                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        Name                 = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        Description          = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        RowStatus            = 1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }
            }
            catch (Exception)
            {
                session.RollbackTransaction();
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
        private void ImportWordFile(string filePath)
        {
            IOverlaySplashScreenHandle handle = null;

            try {
                handle = SplashScreenManager.ShowOverlayForm(this);
                using (var editor = new RichEditControl()) {
                    editor.LoadDocument(filePath);
                    var fileName = Path.GetFileNameWithoutExtension(filePath);
                    var book     = new XPQuery <Book>(uow).Where(x => x.Abbreviation == fileName).FirstOrDefault();
                    if (book == null)
                    {
                        XtraMessageBox.Show("File name not match!");
                        return;
                    }

                    var rangeStartIndex = -1;
                    var rangeEndIndex   = -1;

                    var chapter  = 0;
                    var chapter2 = 0;

                    var verseRanges = new List <VerseRange>();
                    for (int i = 0; i < 5; i++)
                    {
                        verseRanges.Add(new VerseRange()
                        {
                            VerseBegin = -1,
                            VerseEnd   = -1
                        });
                    }

                    Commentary.Items.Where(x => x.Book == book.NumberOfBook).ToList().ForEach(x => { x.Delete(); });
                    uow.CommitChanges();

                    foreach (var par in editor.Document.Paragraphs)
                    {
                        var text = editor.Document.GetText(par.Range).Trim();
                        if (par.Style != null)
                        {
                            if (!String.IsNullOrEmpty(text) && par.Style.Name == "heading 1")
                            {
                                if (text.ToLower().StartsWith("wstęp "))
                                {
                                    rangeStartIndex = par.Range.Start.ToInt();
                                }
                                else if (rangeStartIndex != -1 && (text.ToLower().StartsWith("list ") || text.ToLower().StartsWith("ewangelia ") || text.ToLower().StartsWith("dzieje ")))
                                {
                                    rangeEndIndex = par.Range.Start.ToInt() - 1;
                                    Commentary.Items.Add(new CommentaryItem(uow)
                                    {
                                        Book         = book.NumberOfBook,
                                        ChapterBegin = 0,
                                        ChapterEnd   = 0,
                                        VerseBegin   = 0,
                                        VerseEnd     = 0,
                                        Comments     = editor.Document.GetRtfText(editor.Document.CreateRange(rangeStartIndex, rangeEndIndex - rangeStartIndex))
                                    });
                                    rangeStartIndex = -1;
                                    rangeEndIndex   = -1;
                                }
                            }
                            else if (!String.IsNullOrEmpty(text) && par.Style.Name == "heading 2")
                            {
                                if (rangeStartIndex == -1)
                                {
                                    par.Range.Start.ToInt();
                                }
                            }
                            else if (!String.IsNullOrEmpty(text) && par.Style.Name == "heading 3")
                            {
                                var patternBase  = @"\((?<chapter>[0-9]+)(\,)?";
                                var patternRange = @"((?<verseBegin{0}>[0-9]+)([a-z])?(\-(?<verseEnd{0}>[0-9]+)([a-z])?)?(\.)?)";

                                var pattern = patternBase;
                                for (int i = 0; i < 5; i++)
                                {
                                    pattern += String.Format(patternRange, i);
                                    pattern += "?";
                                }
                                pattern += @"\)";

                                if (text.Contains(";"))
                                {
                                    pattern = @"\((?<chapter1>[0-9]+)\,(?<verse1>[0-9]+)\;(?<chapter2>[0-9]+)\,(?<verse2>[0-9]+)\)";
                                    if (Regex.IsMatch(text, pattern))
                                    {
                                        var m = Regex.Match(text, pattern);
                                        chapter  = Convert.ToInt32(m.Groups["chapter1"].Value);
                                        chapter2 = Convert.ToInt32(m.Groups["chapter2"].Value);
                                        verseRanges[0].VerseBegin = Convert.ToInt32(m.Groups["verse1"].Value);
                                        verseRanges[0].VerseEnd   = Convert.ToInt32(m.Groups["verse2"].Value);
                                        for (int i = 1; i < 5; i++)
                                        {
                                            verseRanges[i].VerseBegin = -1;
                                            verseRanges[i].VerseEnd   = -1;
                                        }
                                        continue;
                                    }
                                }

                                if (Regex.IsMatch(text, pattern))
                                {
                                    rangeEndIndex = SavePrevious(editor, book, rangeStartIndex, rangeEndIndex, chapter, chapter2, ref verseRanges, par);

                                    var m = Regex.Match(text, pattern);
                                    chapter  = Convert.ToInt32(m.Groups["chapter"].Value);
                                    chapter2 = Convert.ToInt32(m.Groups["chapter"].Value);

                                    for (int i = 0; i < 5; i++)
                                    {
                                        if (m.Groups[$"verseEnd{i}"] != null && m.Groups[$"verseEnd{i}"].Success)
                                        {
                                            verseRanges[i].VerseBegin = Convert.ToInt32(m.Groups[$"verseBegin{i}"].Value);
                                            verseRanges[i].VerseEnd   = Convert.ToInt32(m.Groups[$"verseEnd{i}"].Value);
                                        }
                                        else if (m.Groups[$"verseBegin{i}"] != null && m.Groups[$"verseBegin{i}"].Success)
                                        {
                                            verseRanges[i].VerseBegin = Convert.ToInt32(m.Groups[$"verseBegin{i}"].Value);
                                            verseRanges[i].VerseEnd   = Convert.ToInt32(m.Groups[$"verseBegin{i}"].Value);
                                        }
                                        else if (chapter != 0 && i == 0)
                                        {
                                            verseRanges[i].VerseBegin = 0;
                                            verseRanges[i].VerseEnd   = 0;
                                        }
                                        else
                                        {
                                            verseRanges[i].VerseBegin = -1;
                                            verseRanges[i].VerseEnd   = -1;
                                        }
                                    }

                                    rangeStartIndex = par.Range.Start.ToInt();
                                    rangeEndIndex   = -1;
                                }
                                else
                                {
                                    if (rangeStartIndex == -1)
                                    {
                                        par.Range.Start.ToInt();
                                    }
                                }
                            }
                        }

                        if (par == editor.Document.Paragraphs.Last())
                        {
                            rangeEndIndex = SavePrevious(editor, book, rangeStartIndex, rangeEndIndex, chapter, chapter2, ref verseRanges, par);
                        }
                    }

                    uow.CommitChanges();
                    Commentary = new XPQuery <Commentary>(uow).Where(x => x.Oid == Commentary.Oid).FirstOrDefault();
                    LoadBooks();
                }
            }
            finally {
                SplashScreenManager.CloseOverlayForm(handle);
            }
        }
        public int CreateIssueDocumentFromMobileTransactions(List <int> mobileTransactionsID, int userID, int buyerID)
        {
            UnitOfWork uow = XpoHelper.GetNewUnitOfWork();
            XPQuery <MobileTransaction>   mobileTrans   = uow.Query <MobileTransaction>();
            XPQuery <InventoryDeliveries> invDeliveries = uow.Query <InventoryDeliveries>();

            var mobileTransactions = mobileTrans.Where(mt => mobileTransactionsID.Any(mti => mti == mt.MobileTransactionID)).ToList();

            if (mobileTransactions != null && mobileTransactions.Count > 0)
            {
                var buyer = clientRepo.GetClientByID(buyerID, session);
                //from locationID we get buyer
                IssueDocument document = new IssueDocument(session);

                document.IssueDocumentID  = 0;
                document.IssueNumber      = GetNextIssueDocumentNumber();
                document.BuyerID          = buyer;
                document.IssueStatus      = GetIssueDocumentStatusByCode(Enums.IssueDocumentStatus.DELOVNA);
                document.IssueDate        = DateTime.Now;
                document.Name             = $"Izdaja materiala za kupca: {buyer.Name}";
                document.Notes            = "Prenos iz mobilnih transkacij";
                document.InternalDocument = "000000";
                document.InvoiceNumber    = DateTime.Now.Year.ToString() + "/000000";
                document.tsInsert         = DateTime.Now;
                document.tsInsertUserID   = userID;
                document.tsUpdate         = DateTime.Now;
                document.tsUpdateUserID   = userID;

                document.Save();

                var issueDocument         = GetIssueDocumentByID(document.IssueDocumentID, uow);
                IssueDocumentPosition pos = null;
                foreach (var item in mobileTransactions)
                {
                    pos = new IssueDocumentPosition(uow);

                    pos.IssueDocumentID = issueDocument;
                    pos.SupplierID      = clientRepo.GetClientByID(item.SupplierID.ClientID, uow);

                    //Kosovna količina
                    pos.Quantity = item.Quantity <= 0 ? invDeliveries.Count(inv => inv.PackagesUIDs.Contains(item.UIDCode)) : item.Quantity;// če se še ni shranila količina na mobilnih transkacijah jo poiščemo v invnetoryDeliveries

                    pos.UID250              = item.UIDCode;
                    pos.Name                = item.ProductID.Name;
                    pos.Notes               = "Prenos iz mobilnih transakcij";
                    pos.tsInsert            = DateTime.Now;
                    pos.tsInsertUserID      = userID;
                    pos.tsUpdate            = DateTime.Now;
                    pos.tsUpdateUserID      = userID;
                    pos.ProductID           = productRepo.GetProductByID(item.ProductID.ProductID, uow);
                    pos.MobileTransactionID = item;
                }

                uow.CommitChanges();


                return(document.IssueDocumentID);
            }

            return(-1);
        }
示例#26
0
        private void btnRemoveAbsence_Click(object sender, EventArgs e)
        {
            this.Uow = new UnitOfWork();

            Absence absence = (Absence)this.gridvAbsent.GetRow(this.gridvAbsent.FocusedRowHandle);

            if (absence == null)
                return;

            absence = new XPQuery<Absence>(this.Uow).FirstOrDefault(q => q.Id == absence.Id);

            if (XtraMessageBox.Show(this.LookAndFeel, "Bent u zeker dat u deze afwezigheid wilt verwijderen?", "Verwijderen?",
                MessageBoxButtons.YesNoCancel,
                MessageBoxIcon.Question, MessageBoxDefaultButton.Button3) == DialogResult.Yes)
            {
                absence.Delete();
                this.Uow.CommitChanges();
                FindAllAbsences();
            }
        }
示例#27
0
        new public static void Populate()
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                //insert default data into Organization table
                session.BeginTransaction();
                //if (!Util.isExistXpoObject<ManufacturerOrg>("Code", Utility.Constant.NAAN_DEFAULT_CODE))
                //{
                //    XPQuery<OrganizationType> organizationTypeQuery = session.Query<OrganizationType>();
                //    OrganizationType.Populate();
                //    OrganizationType organizationType =
                //        organizationTypeQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();
                //    ManufacturerOrg manufacturerOrg = new ManufacturerOrg(session)
                //    {
                //        Code = Utility.Constant.NAAN_DEFAULT_CODE,
                //        Name = Utility.Constant.NAAN_DEFAULT_NAME,
                //        OrganizationTypeId = organizationType,
                //        Description = "",
                //        RowStatus = -1,
                //        RowCreationTimeStamp = DateTime.Now
                //    };

                //    manufacturerOrg.Save();
                //}

                if (!Util.isExistXpoObject <ManufacturerOrg>("Code", Utility.Constant.NAAN_DEFAULT_CODE_SELECTEDALL))
                {
                    XPQuery <OrganizationType> organizationTypeQuery = session.Query <OrganizationType>();
                    OrganizationType.Populate();
                    OrganizationType organizationType =
                        organizationTypeQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();
                    ManufacturerOrg manufacturerOrg = new ManufacturerOrg(session)
                    {
                        Code = Utility.Constant.NAAN_DEFAULT_CODE_SELECTEDALL,
                        Name = Utility.Constant.NAAN_DEFAULT_CODE_SELECTEDALL,
                        OrganizationTypeId   = organizationType,
                        Description          = "",
                        RowStatus            = Utility.Constant.ROWSTATUS_DEFAULT_SELECTEDALL,
                        RowCreationTimeStamp = DateTime.Now
                    };

                    manufacturerOrg.Save();
                }

                session.CommitTransaction();
            }
            catch (Exception)
            {
                session.RollbackTransaction();
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
示例#28
0
        public IActionResult Index(string translationName, string book = null, string chapter = null, string verse = null)
        {
            var uow = new UnitOfWork();

            // adresy skrótowe
            if (!String.IsNullOrEmpty(translationName) && book.IsNull() && translationName.Length == 5)
            {
                var _url = new XPQuery <UrlShort>(uow).Where(x => x.ShortUrl == translationName).FirstOrDefault();
                if (_url.IsNotNull())
                {
                    return(Redirect(_url.Url));
                }
            }

            if (!String.IsNullOrEmpty(translationName))
            {
                var books = new XPQuery <BookBase>(uow).ToList();

                // wyświetlamy listę ksiąg z tego przekładu
                if (String.IsNullOrEmpty(book))
                {
                    var translation = new XPQuery <Translation>(uow).Where(x => x.Name.Replace("'", "").Replace("+", "").ToLower() == translationName.ToLower()).FirstOrDefault();
                    if (translation != null)
                    {
                        return(View(new TranslationControllerModel(translation, books: books)));
                    }
                }
                else
                {
                    var translation = new XPQuery <Translation>(uow).Where(x => x.Name.Replace("'", "").Replace("+", "").ToLower() == translationName.ToLower()).FirstOrDefault();
                    if (translation != null)
                    {
                        var result = new TranslationControllerModel(translation, book, chapter, verse, books);

                        var view = new XPView(uow, typeof(Translation))
                        {
                            CriteriaString = $"[Books][[NumberOfBook] = '{book}'] AND [Hidden] = 0"
                        };
                        view.Properties.Add(new ViewProperty("Name", SortDirection.None, "[Name]", false, true));
                        view.Properties.Add(new ViewProperty("Description", SortDirection.None, "[Description]", false, true));
                        view.Properties.Add(new ViewProperty("Type", SortDirection.None, "[Type]", false, true));
                        view.Properties.Add(new ViewProperty("Catholic", SortDirection.None, "[Catolic]", false, true));
                        view.Properties.Add(new ViewProperty("Recommended", SortDirection.None, "[Recommended]", false, true));
                        view.Properties.Add(new ViewProperty("OpenAccess", SortDirection.None, "[OpenAccess]", false, true));
                        foreach (ViewRecord item in view)
                        {
                            result.Translations.Add(new TranslationInfo()
                            {
                                Name             = item["Name"].ToString(),
                                Description      = item["Description"].ToString(),
                                Type             = (TranslationType)item["Type"],
                                Catholic         = (bool)item["Catholic"],
                                Recommended      = (bool)item["Recommended"],
                                PasswordRequired = !((bool)item["OpenAccess"])
                            });
                        }

                        return(View(result));
                    }
                }
            }

            return(View());
        }
示例#29
0
        private void LoadDataLookup()
        {
            XPQuery<TimekeepingName> _TimekeepingName = new XPQuery<TimekeepingName>((
                   (XPObjectSpace)objSpace).Session);

               List<TimekeepingName> listTimekeepingName = (from tso in _TimekeepingName select tso).ToList();
               lkupTenBangChamCong.Properties.DataSource = listTimekeepingName;
               lkupTenBangChamCong.Properties.DisplayMember = "timekeepingName";
        }
示例#30
0
        // 2012-04-12 От шаблона по типу можно отказаться?
        public void CreatePaymentDocuments(Session ses, fmCSAStatementAccount statementAccount)
        {
            var queryStatementDocs = (statementAccount.PayInDocs.Union(statementAccount.PayOutDocs));

            foreach (var doc in queryStatementDocs)
            {
                //if (doc.NameTypeOfRCBDocument != typeof(typeDoc).FullName) continue;

                // Проверка наличия Платёжного документа, подходящего для данного документа выписки doc
                // 1. Тип документа, например, fmCDocRCBPaymentOrder и т.п.
                // 2. Номер счёта плательщика
                // 3. Номер документа DocNumber
                // 4. Дата документа DocDate

                XPQuery <fmCDocRCB> paymentDocs = new XPQuery <fmCDocRCB>(ses, true);
                // 2012-04-12 Новый способ проверки: Тип (учитывается как параметр), Номер документа, Дата документа, БИК банка плательщика,
                // счёт плательщика, БИК банка получаетля, счёт получателя
                var queryPaymentDocs = from paymentDoc in paymentDocs
                                       where paymentDoc.DocType == doc.DocType &&
                                       paymentDoc.DocNumber == doc.DocNumber &&
                                       paymentDoc.DocDate == doc.DocDate &&
                                       paymentDoc.PaymentPayerRequisites.RCBIC == doc.PaymentPayerRequisites.RCBIC && paymentDoc.PaymentPayerRequisites.AccountParty == doc.PaymentPayerRequisites.AccountParty &&
                                       paymentDoc.PaymentReceiverRequisites.RCBIC == doc.PaymentReceiverRequisites.RCBIC && paymentDoc.PaymentReceiverRequisites.AccountParty == doc.PaymentReceiverRequisites.AccountParty &&
                                       paymentDoc.PaymentFunction == doc.PaymentFunction
                                       select paymentDoc;


                bool isFound = false;
                foreach (var paymentDoc in queryPaymentDocs)
                {
                    isFound = true;

                    // Найден какой-то Платёжный документ заданного типа -> сумма выписки учитывается в регистре, а сам Платёжный документ припиывается
                    // документу выписки
                    doc.PaymentDocument = paymentDoc;
                    AssignCommonProperty(paymentDoc, doc); // ??? Надо обновлять ???

                    break;
                }

                if (!isFound)
                {
                    // Не найден никакой документ заданного типа -> создаётся Платёжный документ соответствующего типа
                    fmCDocRCB paymentDoc = null;
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentOrder(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentRequest(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBAkkreditivRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBAkkreditivRequest(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBInkassOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBInkassOrder(ses);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBOthers).FullName)
                    {
                        paymentDoc = new fmCDocRCBOthers(ses);
                    }

                    paymentDoc.DocType  = doc.DocType;
                    paymentDoc.State    = PaymentDocProcessingStates.IMPORTED;
                    doc.PaymentDocument = paymentDoc;
                    AssignCommonProperty(paymentDoc, doc);
                }
            }
        }
示例#31
0
        /// <summary>
        /// Список платёжных документов по жёсткому критерию
        /// </summary>
        /// <returns></returns>
        public IEnumerable GetPaymentDocsByHardCriteria <typeDoc>() where typeDoc : fmCDocRCB
        {
            //XPQuery<T> paymentDocs = new XPQuery<T>(this.Session);
            //var queryPaymentDocs = from paymentDoc in paymentDocs
            //                       where !(from statementDoc in paymentDocs
            //                       //    select statementDoc.PaymentDocument).Contains(paymentDoc)
            //                       select paymentDoc;

            //foreach (var doc in queryPaymentDocs) {
            //    // Отбираем только те, сумма которых не покрыта полностью
            //    XPQuery<T> paymentDocs1 = new XPQuery<T>(this.Session);

            /*
             * XPQuery<typeDoc> paymentDocs = new XPQuery<typeDoc>(this.Session);
             * XPQuery<fmCStatementAccountDoc> accDocs = new XPQuery<fmCStatementAccountDoc>(this.Session);
             * var queryPaymentDocs = from paymentDoc in paymentDocs
             *                     join accDoc in accDocs on paymentDoc equals accDoc.PaymentDocument
             *                     where accDoc == null
             *                     //where !(from statementDoc in accDocs
             *                     //     select statementDoc.PaymentDocument).Contains(paymentDoc)
             *                     select paymentDoc;
             */


            //CriteriaOperator criteriaAND = new GroupOperator();
            //((GroupOperator)criteriaAND).OperatorType = GroupOperatorType.And;

            //CriteriaOperator criteria1 = new BinaryOperator(new OperandProperty("INN"), new ConstantValue(pr.INN), BinaryOperatorType.Equal);
            //CriteriaOperator criteria2 = new BinaryOperator(new OperandProperty("KPP"), new ConstantValue(pr.KPP), BinaryOperatorType.Equal);
            //CriteriaOperator criteria3 = CriteriaOperator.Parse("'" + pr.KPP + "' != ''");

            //((GroupOperator)criteriaAND).Operands.Add(criteria1);
            //((GroupOperator)criteriaAND).Operands.Add(criteria2);
            //((GroupOperator)criteriaAND).Operands.Add(criteria3);

            //crmCParty party = null;
            //crmCLegalPerson lp = null;
            //crmCLegalPersonUnit lpu = null;

            //bool lpResult = true;

            //party = this.Session.FindObject<crmCParty>(criteriaAND);
            //if (party == null) {

            //OperandProperty prop = new OperandProperty("LegalPerson");
            //CriteriaOperator op = prop == lPerson;
            //CriteriaOperator criteriaPersonUnit = new BinaryOperator(new OperandProperty("KPP"), new ConstantValue(rKPP), BinaryOperatorType.Equal);

            //CriteriaOperator criteriaAND = new GroupOperator();
            //((GroupOperator)criteriaAND).OperatorType = GroupOperatorType.And;

            //((GroupOperator)criteriaAND).Operands.Add(op);
            //((GroupOperator)criteriaAND).Operands.Add(criteriaPersonUnit);

            //InOperator inOp = new InOperator(

            /*
             * foreach (var doc in queryPaymentDocs) {
             *  XPQuery<fmCStatementAccountDoc> statementDocs = new XPQuery<fmCStatementAccountDoc>(this.Session);
             *  var queryPaymentDocs1 = from statementDoc in statementDocs
             *                          where statementDoc.PaymentDocument == doc
             *                          select statementDoc;
             *  int count = queryPaymentDocs1.Count();
             *  if (count == 0)
             *      yield return doc;
             * }
             */

            XPCollection <typeDoc> docCol = new XPCollection <typeDoc>(Session);

            if (!docCol.IsLoaded)
            {
                docCol.Load();
            }
            foreach (typeDoc doc in docCol)
            {
                XPQuery <fmCSAStatementAccountDoc> statementDocs = new XPQuery <fmCSAStatementAccountDoc>(this.Session);
                var queryPaymentDocs1 = from statementDoc in statementDocs
                                        where statementDoc.PaymentDocument == doc
                                        select statementDoc;
                int count = queryPaymentDocs1.Count();
                if (count == 0)
                {
                    yield return(doc);
                }
            }
        }
        public override void UpdateDatabaseAfterUpdateSchema()
        {
            base.UpdateDatabaseAfterUpdateSchema();
            // Disable version
            if (this.CurrentDBVersion != new Version("0.0.0.0"))
            {
                return;
            }
            //

            IObjectSpace os  = ObjectSpace;
            Session      ssn = ((ObjectSpace)os).Session;

            // Заполнение кодов ценностей и курсов валют
            UpdaterVaultaCourse uvc = new UpdaterVaultaCourse(ssn);

            uvc.FixValutaCourseEtc();
            os.CommitChanges();

            if (this.CurrentDBVersion.ToString() != "1.1.1.107")
            {
                return;
            }

            XPQuery <fmAutoBindingUpdater> autoBindingUpdaters = new XPQuery <fmAutoBindingUpdater>(ssn);
            fmAutoBindingUpdater           ABU = (from autoBindingUpdater in autoBindingUpdaters
                                                  select autoBindingUpdater).FirstOrDefault();

            if (ABU == null)
            {
                ABU = os.CreateObject <fmAutoBindingUpdater>();
            }
            if (ABU.AutoBindingUpdater)
            {
                return; // Updater уже исполнялся
            }
            // Зачистка fmCPRRepaymentJurnal результатов предыдущей автоматической привязки
            XPQuery <fmCPRRepaymentJurnal> paymentJurnals = new XPQuery <fmCPRRepaymentJurnal>(ssn);
            var queryRJ = (from paymentJurnal in paymentJurnals
                           select paymentJurnal).ToList <fmCPRRepaymentJurnal>();

            ssn.Delete(queryRJ);
            //ssn.PurgeDeletedObjects();
            //os.CommitChanges();
            //ssn.ExecuteQuery("UPDATE \"fmPRRepaymentJurnal\" SET \"GCRecord\"=null;");

            // Зачистка fmCPRRepaymentTask результатов предыдущей автоматической привязки
            XPQuery <fmCPRRepaymentTask> repaymentTasks = new XPQuery <fmCPRRepaymentTask>(ssn);
            var queryRT = (from repaymentTask in repaymentTasks
                           select repaymentTask).ToList <fmCPRRepaymentTask>();

            ssn.Delete(queryRT);
            ssn.PurgeDeletedObjects();
            os.CommitChanges();

            // Возвращение PAYED в IN_PAYMENT
            XPQuery <fmCPRPaymentRequest> paymentRequests = new XPQuery <fmCPRPaymentRequest>(ssn, true);
            var queryPR = (from paymentRequest in paymentRequests
                           where paymentRequest.State == PaymentRequestStates.PAYED
                           select paymentRequest).ToList <fmCPRPaymentRequest>();

            foreach (var pr in queryPR)
            {
                pr.State = PaymentRequestStates.IN_PAYMENT;
            }
            os.CommitChanges();

            // "Наша" организация (она там одна, отсев не нужен)
            crmUserParty.CurrentUserParty = ValueManager.GetValueManager <crmUserParty>("UserParty");
            XPQuery <crmUserParty> userParties = new XPQuery <crmUserParty>(ssn);
            var queryUP = (from userParty in userParties
                           select userParty).ToList <crmUserParty>();

            foreach (var up in queryUP)
            {
                crmUserParty.CurrentUserParty.Value = (crmUserParty)up;
                break;
            }

            // Новая автоматическая привязка
            DateTime startDate = new DateTime(2012, 4, 1);
            XPQuery <fmCSAImportResult> importResults = new XPQuery <fmCSAImportResult>(ssn);
            var queryIR = (from importResult in importResults
                           select importResult).ToList <fmCSAImportResult>();

            foreach (var ir in queryIR)
            {
                //ir.AutoBinding(null);

                foreach (fmCSAStatementAccount sa in ir.StatementOfAccounts)
                {
                    //ssa.AutoBinding(null);
                    foreach (fmCSAStatementAccountDoc sad in sa.PayInDocs)
                    {
                        if (sad.DocDate >= startDate)
                        {
                            fmCDocRCB paymentDoc = sad.PaymentDocument;
                            paymentDoc.AutoBinding(sa.BankAccount, null);
                        }
                    }
                    foreach (fmCSAStatementAccountDoc sad in sa.PayOutDocs)
                    {
                        if (sad.DocDate >= startDate)
                        {
                            fmCDocRCB paymentDoc = sad.PaymentDocument;
                            paymentDoc.AutoBinding(sa.BankAccount, null);
                        }
                    }
                }

                os.CommitChanges();
            }



            // Простановка признаков заявкам и документам, что они были привязаны, чтобы следующее выполнение этого updater
            // не изменяло ничего.
            ABU.AutoBindingUpdater = true;

            os.CommitChanges();
        }
示例#33
0
        private void btnRemoveJob_Click(object sender, EventArgs e)
        {
            this.Uow = new UnitOfWork();

            Job job = (Job) this.gridviewPlanning.GetRow(this.gridviewPlanning.FocusedRowHandle);

            if (job == null)
                return;

            job = new XPQuery<Job>(this.Uow).FirstOrDefault(q => q.Id == job.Id);

            if (XtraMessageBox.Show(this.LookAndFeel, "Bent u zeker dat u deze job wilt verwijderen?", "Verwijderen?",
                MessageBoxButtons.YesNoCancel,
                MessageBoxIcon.Question, MessageBoxDefaultButton.Button3) == DialogResult.Yes)
            {
                job.Delete();
                this.Uow.CommitChanges();
                FindAllJobs();
            }
        }
示例#34
0
        protected void Page_Load(object sender, EventArgs e)
        {
            artifactCodeRuleBO = new ArtifactCodeRuleBO();
            SetCriteriaForOrganization();
            dsVouchersAmount.CriteriaParameters["VouchesId"].DefaultValue = PrivateSession.Instance.PaymentVoucherId.ToString();
            /*2013-11-24 Khoa.Truong MOD START*/
            //grdVouchersAmount.DataBind();
            if (!IsPostBack)
            {
                grdVouchersAmount.DataBind();
            }
            /*2013-11-24 Khoa.Truong MOD END*/

            if (Page.IsPostBack)
            {
                if (hPayViewer.Contains("print"))
                {
                    XPQuery <PaymentVouches> paymentVouches = new XPQuery <PaymentVouches>(session);
                    XPQuery <VouchesAmount>  vouchesAmount  = new XPQuery <VouchesAmount>(session);

                    var list = from p in paymentVouches.AsEnumerable()
                               join va in vouchesAmount.AsEnumerable() on p.VouchesId equals va.VouchesId.VouchesId
                               where p.VouchesId == PrivateSession.Instance.PaymentVoucherId
                               select new C02TT
                    {
                        Code           = p.Code,
                        IssuedDate     = p.IssuedDate,
                        Description    = p.Description,
                        SupplierName   = p.TargetOrganizationId.Name,
                        Address        = p.Address,
                        PayerName      = p.Payee,
                        Credit         = va.Credit,
                        ExchangeRate   = va.ExchangeRate,
                        CreditExchange = va.Credit * va.ExchangeRate,
                        //CreditByString = Utility.Accounting.NumberToStringFullCurrency(float.Parse(va.Credit.ToString()), va.ForeignCurrencyId.Name),
                        CreditByString = Utility.Accounting.NumberToStringFullCurrency(float.Parse(va.Credit.ToString()), va.CurrencyId.Name),
                        //Currency = va.ForeignCurrencyId.Code
                        Currency = va.CurrencyId.Code
                    };

                    List <C02TT> lst = new List <C02TT>();
                    try
                    {
                        if (list.Count <C02TT>() > 0)
                        {
                            lst = list.ToList();
                        }
                    }
                    catch (Exception)
                    {
                        list = null;
                    }


                    XPQuery <PaymentVouchesTransaction> paymentVouchesTransaction = new XPQuery <PaymentVouchesTransaction>(session);
                    XPQuery <GeneralJournal>            generalJournal            = new XPQuery <GeneralJournal>(session);

                    var listg = from p in paymentVouchesTransaction.AsEnumerable()
                                join g in generalJournal.AsEnumerable() on p.TransactionId equals g.TransactionId.TransactionId
                                where p.PaymentVouchesId.VouchesId == PrivateSession.Instance.PaymentVoucherId
                                orderby g.Credit, g.Debit
                        select new
                    {
                        Dc      = g.Debit > g.Credit ? "Nợ :" : "Có :",
                        Account = g.AccountId.Code,
                        Amount  = Math.Max(g.Debit, g.Credit)
                    };

                    grdBooking.DataSource = listg.ToList();
                    grdBooking.DataBind();

                    new ASPxGridViewCellMerger(grdBooking);

                    _02_TT report = new _02_TT();
                    report.DataSource = lst;
                    report.DataMember = "";
                    report.pccData.PrintableComponent = new PrintableComponentLinkBase()
                    {
                        Component = gvDataExporter
                    };

                    rptPayViewer.Report = report;

                    //PrivateSession.Instance.ReceiptVoucherId

                    hPayViewer.Remove("print");

                    cpPayViewer.JSProperties.Add("cpShowForm", "report");
                }
            }
        }
示例#35
0
        // Bejővő paraméterek (Ügylet száma, Komissiózó pont azonosítója, Komissiózó pont plc azonosítója)
        public void CallLoadCarriers(int ctrH, string commonType, int iocp, int weight, int lcTypeHeight)
        {
            // Megkeressük a bizonylat  tételsorait
            Session session = new Session();
            XPQuery <CommonTrDetail>    details = session.Query <CommonTrDetail>();
            IQueryable <CommonTrDetail> list    = (from c in details
                                                   where (c.CommonTrHeader.Oid == ctrH)
                                                   select c);


            //Végigmegyünk minden tételsoron
            foreach (CommonTrDetail ctrD in list)
            {
                //Ládákat keresünk az ügylettípus szerint:
                //BETÁROLÁS
                //1 Betárolásnál annyi ÜRES!!! ládát kell hívnunk amennyit előkalkuláltunk
                if (commonType == "BETAR")
                {
                    for (int i = 0; i < ctrD.CalcLcNumber; i++)
                    {
                        // Keresünk egy üres ládát lehetőleg onnan ahová vissza is akarjuk küldeni és le is foglaljuk az erőforrást.
                        StorageLocation sourceLocation = FindEmptyLoadcarrier(ctrD.Product, lcTypeHeight);

                        if (sourceLocation != null)
                        {
                            CreateTransportOrder(2, ctrH, ctrD.Oid, sourceLocation.LoadCarrier, iocp, weight, sourceLocation, null);
                        }
                        else
                        {
                            throw new Exception("Hiba - Nem talált kihívható ládát!");
                        }
                    }
                }

                //KITÁROLÁS ÉS KOMISSIÓ
                // 2 Kitárolásnál  és Komissiónál Allokálnunk kell és FIFO szerint kihívni a terméket tartalmazó ládákat
                if (commonType == "KITAR" || commonType == "KOMISSIO")
                {
                    double szuksegesMennyiseg = ctrD.Quantity - ctrD.PerformedQty;
                    double maradekMennyiseg   = szuksegesMennyiseg;
                    double allokaltMennyiseg  = 0;

                    if (szuksegesMennyiseg > 0)
                    {
                        foreach (Stock stock in ctrD.Product.Stocks)
                        {
                            if (stock.StorageLocation != null && stock.StorageLocation.StatusCode == 1)
                            {
                                allokaltMennyiseg = Math.Min(stock.NormalQty, maradekMennyiseg);
                                if (allokaltMennyiseg > 0)
                                {
                                    LoadCarrier lc = stock.LC;
                                    stock.StorageLocation.StatusCode = 2;
                                    maradekMennyiseg -= allokaltMennyiseg;

                                    CreateTransportOrder(2, ctrH, ctrD.Oid, lc, iocp, weight, stock.StorageLocation, null);
                                    ctrD.CalcLcNumber++;
                                }
                            }
                        }
                    }
                }

                //LELTÁR
                // 2 Kitárolásnál  és Komissiónál Allokálnunk kell és FIFO szerint kihívni a terméket tartalmazó ládákat
                if (commonType == "LELTAR")
                {
                    foreach (Stock stock in ctrD.Product.Stocks)
                    {
                        if (stock.StorageLocation != null && stock.StorageLocation.StatusCode == 1)
                        {
                            ChangeLocationStatus(stock.StorageLocation, 3);
                            CreateTransportOrder(2, ctrH, ctrD.Oid, stock.LC, iocp, weight, stock.StorageLocation, null);
                            ctrD.CalcLcNumber++;
                        }
                    }
                }
            }
        }
示例#36
0
        /*
         * public void CreateOtherPaymentDocument() {
         *  XPQuery<fmCStatementAccountDoc> StatementDocs = new XPQuery<fmCStatementAccountDoc>(this.Session);
         *  var queryStatementDocs = from statementDoc in StatementDocs
         *                           where statementDoc.PaymentDocument == null &&
         *                                 statementDoc.DocType != null &&
         *                                 statementDoc.DocType.Trim() != ""
         * //                                           !string.IsNullOrEmpty(statementDoc.DocType)
         *                           select statementDoc;
         *
         *  foreach (var doc in queryStatementDocs) {
         *      fmCDocRCBOthers otherDoc = new fmCDocRCBOthers(this.Session);
         *      doc.PaymentDocument = otherDoc;
         *      AssignCommonProperty(otherDoc, doc);
         *      otherDoc.DocType = doc.DocType;
         *  }
         * }
         */

        //public void CreatePaymentDocument(fmStatementOfAccount statementAccount) {
        public void CreatePaymentDocument <typeDoc>(fmCSAStatementAccount statementAccount) where typeDoc : fmCDocRCB
        {
            DateTime DatePeriodBegin = statementAccount.DateFrom.Date;
            DateTime DatePeriodEnd   = statementAccount.DateTo.Date;

            XPQuery <fmCSAStatementAccountDoc> statementDocs = new XPQuery <fmCSAStatementAccountDoc>(this.Session);
            var queryStatementDocs = from statementDoc in statementDocs
                                     where statementDoc.PaymentDocument == null &&
                                     (statementDoc.PaymentPayerRequisites.StatementOfAccount == statementAccount || statementDoc.PaymentReceiverRequisites.StatementOfAccount == statementAccount) &&
                                     statementDoc.NameTypeOfRCBDocument == typeof(typeDoc).FullName
                                     //&& statementDoc.PaymentPayerRequisites.AccountParty == statementAccount.BankAccountText
                                     select statementDoc;

            foreach (var doc in queryStatementDocs)
            {
                //if (doc.NameTypeOfRCBDocument != typeof(typeDoc).FullName) continue;

                // Проверка наличия Платёжного документа, подходящего для данного документа выписки doc
                // 1. Тип документа, например, fmCDocRCBPaymentOrder и т.п.
                // 2. Номер счёта плательщика
                // 3. Номер документа DocNumber
                // 4. Дата документа DocDate

                XPQuery <typeDoc> paymentDocs = new XPQuery <typeDoc>(this.Session, true);
                var queryPaymentDocs          = from paymentDoc in paymentDocs
                                                where paymentDoc.PaymentPayerRequisites.AccountParty == doc.PaymentPayerRequisites.AccountParty &&
                                                paymentDoc.DocNumber == doc.DocNumber &&
                                                paymentDoc.DocDate == doc.DocDate
                                                select paymentDoc;

                bool isFound = false;
                foreach (var paymentDoc in queryPaymentDocs)
                {
                    isFound = true;

                    // Найден какой-то Платёжный документ заданного типа -> сумма выписки учитывается в регистре, а сам Платёжный документ припиывается
                    // документу выписки
                    doc.PaymentDocument = paymentDoc;
                    //AssignCommonProperty(paymentDoc, doc); // ??? Надо обновлять ???

                    // Минусуем
                    // ????????? Даты границ берутся как даты документа или как даты списания со счёта ???????????????

                    /*
                     * XPQuery<fmSettlmentRegister> registers = new XPQuery<fmSettlmentRegister>(this.Session, true);
                     * var queryRegisters = from register in registers
                     *                       where register.PaymentDocument == paymentDoc
                     *                       && register.PaymentDocument.DocDate.Date >= DatePeriodBegin
                     *                       && register.PaymentDocument.DocDate.Date <= DatePeriodEnd
                     *                       && register.PaymentDocument.ComponentType.FullName == typeof(typeDoc).FullName
                     *                       select register;
                     */
                    XPQuery <fmSettlmentRegister> registers = new XPQuery <fmSettlmentRegister>(this.Session, true);
                    var queryRegisters = from register in registers
                                         where register.PaymentDocument == paymentDoc &&
                                         register.DeductedFromPayerAccount.Date >= DatePeriodBegin &&
                                         register.DeductedFromPayerAccount.Date <= DatePeriodEnd &&
                                         register.PaymentDocument.ComponentType.FullName == typeof(typeDoc).FullName
                                         select register;

                    foreach (var reg in queryRegisters)
                    {
                        if (reg.Sum > 0)
                        {
                            reg.Sum = -reg.Sum;
                        }
                    }

                    // Внесение корректировок в регистр. Правила следующие:
                    // 1. Если сверх имеющихся параметров (тип документа, номер документа, дата окумента, номер Счёта плательщика)
                    //    совпала сумма, то ничего не делаем, т.к. это попросту повторный документ выписки (уже присылали ранее)
                    // 2. Если сумма не совпала, то находим разность и вносим в регистр эту разность.
                    //if (paymentDoc.PaymentCost != doc.PaymentCost) {
                    decimal diff = doc.PaymentCost - paymentDoc.PaymentCost;

                    // Размещение в регистре
                    fmSettlmentRegister rg = new fmSettlmentRegister(Session);
                    rg.PaymentDocument     = paymentDoc;
                    rg.StatementAccountDoc = doc;
                    rg.Sum = diff;
                    //}

                    break;
                }

                if (!isFound)
                {
                    // Не найден никакой документ заданного типа -> создаётся Платёжный документ соответствующего типа
                    fmCDocRCB paymentDoc = null;
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentOrder(Session);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBPaymentRequest(Session);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBAkkreditivRequest).FullName)
                    {
                        paymentDoc = new fmCDocRCBAkkreditivRequest(Session);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBInkassOrder).FullName)
                    {
                        paymentDoc = new fmCDocRCBInkassOrder(Session);
                    }
                    if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBOthers).FullName)
                    {
                        paymentDoc = new fmCDocRCBOthers(Session);
                    }

                    paymentDoc.DocType  = doc.DocType;
                    doc.PaymentDocument = paymentDoc;
                    AssignCommonProperty(paymentDoc, doc);

                    // Размещение в регистре
                    fmSettlmentRegister rg = new fmSettlmentRegister(Session);
                    rg.PaymentDocument     = paymentDoc;
                    rg.StatementAccountDoc = doc;
                    rg.Sum = doc.PaymentCost;
                }
            }

            /*
             * foreach (var doc in queryStatementDocs) {
             *
             *  // Проверка наличия Платёжного документа, подходящего для данного документа выписки doc
             *  // 1. Тип документа, например, fmCDocRCBPaymentOrder и т.п.
             *  // 2. Номер счёта плательщика
             *  // 3. Номер документа DocNumber
             *  // 4. Дата документа DocDate
             *
             *
             *  CriteriaOperator criteriaAND = new GroupOperator();
             *  ((GroupOperator)criteriaAND).OperatorType = GroupOperatorType.And;
             *
             *  // Номер счёта
             *  // Объяснение для Павла: если я создал Платёжный документ по какому-то предшествующему документу выписки,
             *  // то в этом Платёжном документе определён Плательщик как объект. С другой стороны, в документе выписки должен был определиться
             *  // Плательщик одинаковый с Плательщиком в родственном (т.е. оплачивающий доугую часть суммы) документе выписки.
             *  // Поэтому можно сравнивать по реквизитам, а не по самим счетам.
             *  CriteriaOperator criteria1 = new BinaryOperator(new OperandProperty("PaymentPayerRequisites.AccountParty"), new ConstantValue(doc.PaymentPayerRequisites.AccountParty), BinaryOperatorType.Equal);
             *
             *  // Номер документа
             *  CriteriaOperator criteria2 = new BinaryOperator(new OperandProperty("DocNumber"), new ConstantValue(doc.DocNumber), BinaryOperatorType.Equal);
             *
             *  // Дата документа
             *  CriteriaOperator criteria3 = new BinaryOperator(new OperandProperty("DocDate"), new ConstantValue(doc.DocDate), BinaryOperatorType.Equal);
             *
             *  // Проверка совпадения типа
             *  CriteriaOperator criteria4 = new BinaryOperator(new OperandProperty("ComponentType"), new ConstantValue(Type.GetType(doc.NameTypeOfRCBDocument)), BinaryOperatorType.Equal);
             *
             *  //OperandProperty propBank = new OperandProperty("Bank");
             *  //CriteriaOperator opBank = propBank == requisites.Bank;
             *
             *  //OperandProperty propPerson = new OperandProperty("Person");
             *  //CriteriaOperator opPerson = propPerson == requisites.Party.Person;
             *  //CriteriaOperator criteria3 = CriteriaOperator.Parse("Person.INN == '" + requisites.Party.Person.INN + "'");
             *
             *  ((GroupOperator)criteriaAND).Operands.Add(criteria1);
             *  ((GroupOperator)criteriaAND).Operands.Add(criteria3);
             *  ((GroupOperator)criteriaAND).Operands.Add(criteria3);
             *  ((GroupOperator)criteriaAND).Operands.Add(criteria4);
             *
             *  fmCDocRCB paymentDoc = this.Session.FindObject<fmCDocRCB>(criteriaAND);
             *  if (paymentDoc == null) {
             *      // Не найден никакой документ заданного типа -> создаётся Платёжный документ соответствующего типа
             *      if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentOrder).FullName) paymentDoc = new fmCDocRCBPaymentOrder(Session);
             *      if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBPaymentRequest).FullName) paymentDoc = new fmCDocRCBPaymentRequest(Session);
             *      if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBAkkreditivRequest).FullName) paymentDoc = new fmCDocRCBAkkreditivRequest(Session);
             *      if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBInkassOrder).FullName) paymentDoc = new fmCDocRCBInkassOrder(Session);
             *      if (doc.NameTypeOfRCBDocument == typeof(fmCDocRCBOthers).FullName) paymentDoc = new fmCDocRCBOthers(Session);
             *
             *      paymentDoc.DocType = doc.DocType;
             *      doc.PaymentDocument = paymentDoc;
             *      AssignCommonProperty(paymentDoc, doc);
             *
             *  } else {
             *      // Найден какой-то Платёжный документ заданного типа -> сумма выписки учитывается в регистре, а сам Платёжный документ припиывается
             *      // документу выписки
             *      doc.PaymentDocument = paymentDoc;
             *      //AssignCommonProperty(paymentDoc, doc); // ??? Надо обновлять ???
             *  }
             * }
             */
        }
示例#37
0
        static public void ImportInvoices(IObjectSpace os, String file_name)
        {
            //            OpenFileDialog dialog = new OpenFileDialog();
            //            if (dialog.ShowDialog() == DialogResult.OK) {
            FixedFileEngine engine = new FixedFileEngine(typeof(InvoiceImport));

            InvoiceImport[]                    imp_res            = (InvoiceImport[])engine.ReadFile(file_name);
            IList <fmCAVTInvoiceType>          inv_types          = os.GetObjects <fmCAVTInvoiceType>();
            IList <fmCAVTInvoiceTransferType>  inv_transfer_types = os.GetObjects <fmCAVTInvoiceTransferType>();
            IList <fmCAVTInvoiceOperationType> inv_oper_types     = os.GetObjects <fmCAVTInvoiceOperationType>();
            Int32             count       = 0;
            fmCAVTInvoiceType sf_sfz_type = os.GetObjects <fmCAVTInvoiceType>().First(x => x.Prefix == "Z");

            foreach (InvoiceImport imp_rec in imp_res)
            {
                imp_rec.SF_VO_CODE    = imp_rec.SF_VO_CODE.Trim();
                imp_rec.SF_INT_NUMBER = imp_rec.SF_INT_NUMBER.Trim();
                imp_rec.SF_NUMBER     = imp_rec.SF_NUMBER.Trim();
                Decimal  summ_cost     = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ','));
                Decimal  summ_nds      = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ','));
                Decimal  summ_sub_cost = Decimal.Parse(imp_rec.SUMM_SUB_COST.Trim().Replace('.', ','));
                Decimal  summ_sub_nds  = Decimal.Parse(imp_rec.SUMM_SUB_NDS.Trim().Replace('.', ','));
                DateTime sf_date       = default(DateTime);
                DateTime.TryParseExact(imp_rec.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sf_date);
                crmCParty party = os.GetObjects <crmCParty>(new BinaryOperator("Code", imp_rec.SF_VO_CODE)).FirstOrDefault();
                if (party == null)
                {
                    System.Console.WriteLine("SF " + imp_rec.SF_NUMBER + " party not found (" + imp_rec.SF_VO_CODE + ")");
                    continue;
                }
                Основание.ТипИсточника ts;
                if (imp_rec.SF_IO_TYPE == "I")
                {
                    ts = Основание.ТипИсточника.ВХОДЯЩИЙ;
                }
                else if (imp_rec.SF_IO_TYPE == "O")
                {
                    ts = Основание.ТипИсточника.ИСХОДЯЩИЙ;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("SF " + imp_rec.SF_NUMBER + " неопределен тип входящий/исходящий");
                }
                Основание.ТипОснования tsf;
                switch (imp_rec.SF_TYPE)
                {
                case "СЧФ":
                    tsf = Основание.ТипОснования.СЧФ;
                    break;

                case "УПД":
                    tsf = Основание.ТипОснования.УПД;
                    break;

                case "СФА":
                    tsf = Основание.ТипОснования.СФА;
                    break;

                case "СФЗ":
                    tsf = Основание.ТипОснования.СФЗ;
                    break;

                case "СЧГ":
                    tsf = Основание.ТипОснования.СЧГ;
                    break;

                case "БЖД":
                    tsf = Основание.ТипОснования.БЖД;
                    break;

                case "СФВ":
                    tsf = Основание.ТипОснования.СФВ;
                    break;

                case "БСО":
                    tsf = Основание.ТипОснования.БСО;
                    break;

                case "ЧЕК":
                    tsf = Основание.ТипОснования.ЧЕК;
                    break;

                default:
                    System.Console.WriteLine("SF: " + imp_rec.SF_NUMBER + " странный тип (" + imp_rec.SF_TYPE + ")");
                    continue;
                }
                String  inn        = "";
                String  kpp        = "";
                ЛицоТип party_type = ЛицоТип.НЕЗАДАН;
                if (party.Person != null)
                {
                    if (party.Person.Address.Country.CodeAlfa2 == "RU")
                    {
//                        Type party.ComponentTypeComponentObject.GetType();
                        if (party.ComponentType == typeof(crmCLegalPerson) ||
                            party.ComponentType == typeof(crmCLegalPersonUnit))
                        {
                            party_type = ЛицоТип.ЮР_ЛИЦО;
                            inn        = party.INN;
                            if (inn.Length == 9)
                            {
                                inn = "0" + inn;
                            }
                            kpp = party.KPP;
                            if (inn.Length == 8)
                            {
                                kpp = "0" + kpp;
                            }
                            if (inn.Length != 10)
                            {
                                System.Console.WriteLine("Party: " + party.Code + " fail INN (" + inn + ")");
                                continue;
                            }
                            if (kpp.Length != 9)
                            {
                                System.Console.WriteLine("Party: " + party.Code + " fail KPP (" + kpp + ")");
                                continue;
                            }
                        }
                        else
                        {
                            if (party.ComponentType == typeof(crmCBusinessman))
                            {
                                party_type = ЛицоТип.ПРЕДПРИНИМАТЕЛЬ;
                                inn        = party.INN;
                                if (inn.Length == 11)
                                {
                                    inn = "0" + inn;
                                }
                                if (inn.Length != 12)
                                {
                                    System.Console.WriteLine("Party: " + party.Code + " fail INN (" + inn + ")");
                                    continue;
                                }
                            }
                            else
                            if (party.ComponentType == typeof(crmCPhysicalParty))
                            {
                                party_type = ЛицоТип.ФИЗ_ЛИЦО;
                            }
                        }
                    }
                    else
                    {
                        party_type = ЛицоТип.ИНО_ПАРТНЕР;
                        System.Console.WriteLine("Party: " + party.Code + " инопартнер ");
                    }
                }
                if (party.Code == "2706")
                {
                    party_type = ЛицоТип.ОЗНИЦА;
                }
                //
                String sale_inn = "5012039795";
                if (ts == Основание.ТипИсточника.ВХОДЯЩИЙ)
                {
                    sale_inn = inn;
                }
                // !!!!!!!!!!!!!!!!!!!!!!!!!!
                // Выбраковываем СФ
                if (String.IsNullOrEmpty(sale_inn) || String.IsNullOrEmpty(imp_rec.SF_REGNUM.Trim()) && tsf != Основание.ТипОснования.СФЗ)
                {
                    continue;
                }
                // !!!!!!!!!!!!!!!!!!!!!!!!!!
                Основание sf = os.FindObject <Основание>(
                    XPQuery <Основание> .TransformExpression(
                        ((ObjectSpace)os).Session,
                        rec =>
                        rec.ИннПродавца == sale_inn &&
                        rec.Номер == imp_rec.SF_NUMBER &&
                        rec.Дата >= sf_date &&
                        rec.Дата < sf_date.AddDays(1)
                        ));
                if (sf == null)
                {
                    sf          = os.CreateObject <Основание>();
                    sf.Источник = ts;
                    sf.ИНН      = inn;
                    sf.Номер    = imp_rec.SF_NUMBER;
                    sf.Дата     = sf_date;
                    sf.КПП      = kpp;
                }
                sf.Корректировка = Основание.ТипПодчиненности.ОСНОВНОЙ;
                sf.Источник      = ts;
                sf.Тип           = tsf;
                sf.ЛицоТип       = party_type;
                ОснованиеДокумент sfdoc      = null;
                String            sfdoc_sver = imp_rec.SF_PRAV_NUMBER.Trim();
                if (String.IsNullOrEmpty(sfdoc_sver))
                {
                    sfdoc_sver = "0";
                }
                UInt16 sfdoc_ver = 0;
                UInt16.TryParse(sfdoc_sver, out sfdoc_ver);
                DateTime sfdoc_date = default(DateTime);
                DateTime.TryParseExact(imp_rec.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sfdoc_date);
                foreach (ОснованиеДокумент doc in sf.Документы)
                {
                    if (doc.НомерИсправления == sfdoc_ver)
                    {
                        sfdoc = doc;
                        break;
                    }
                }
                if (sfdoc == null)
                {
                    sfdoc = os.CreateObject <ОснованиеДокумент>();
                    sf.Документы.Add(sfdoc);
                    sfdoc.НомерИсправления = sfdoc_ver;
                    if (sf.ДействующийДокумент.НомерИсправления < sfdoc.НомерИсправления)
                    {
                        sf.ДействующийДокумент = sfdoc;
                    }
                }
                sfdoc.ДатаИсправления = sfdoc_date;
                sfdoc.егНомер         = imp_rec.SF_REGNUM.Trim();
                if (sf.Тип == Основание.ТипОснования.СФЗ && String.IsNullOrEmpty(sfdoc.егНомер))
                {
                    Int32 IntNumber = fmCAVTInvoiceNumberGenerator.GenerateNumber(((ObjectSpace)os).Session, sf.ДействующийДокумент.CID, sf_sfz_type, sf.Дата, 0);
                    sfdoc.егНомер = sf_sfz_type.Prefix + sf.Дата.ToString("yyyyMM").Substring(2, 4) + IntNumber.ToString("00000");
                }
                sfdoc.КодПартнера       = party.Code;
                sfdoc.НаименКонтрагента = party.Name;
                sfdoc.СуммаВсего        = summ_cost + summ_nds;
                sfdoc.СуммаНДС          = summ_nds;
                sfdoc.СуммаВсегоУвел    = sfdoc.СуммаВсего + summ_sub_cost;
                sfdoc.СуммаНДСУвел      = sfdoc.СуммаНДС + summ_sub_nds;
                //fmCAVTInvoiceBase invoice = os.FindObject<fmCAVTInvoiceBase>(
                //    XPQuery<fmCAVTInvoiceBase>.TransformExpression(
                //    ((ObjectSpace)os).Session,
                //    rec => rec.Supplier.Code == imp_rec.SF_VO_CODE &&
                //           rec.RegNumber == imp_rec.SF_INT_NUMBER &&
                //           rec.Date >= sf_date &&
                //           rec.Date < sf_date.AddDays(1)
                //    ));
                ////if (invoice == null) {
                ////    count++;
                ////    System.Console.WriteLine(imp_rec.SF_INT_NUMBER + " " + imp_rec.SF_NUMBER + " " + imp_rec.SF_DATE + " " + summ_cost + " " + summ_nds);
                ////}
                //if (invoice == null) {
                //    crmCParty party = os.GetObjects<crmCParty>(new BinaryOperator("Code", imp_rec.SF_VO_CODE)).FirstOrDefault();
                //    invoice = os.CreateObject<fmCAVTInvoiceBase>();
                //    invoice.RegNumber = imp_rec.SF_INT_NUMBER;
                //    invoice.Number = imp_rec.SF_NUMBER;
                //    invoice.Date = sf_date;
                //    invoice.Supplier = party;
                //    invoice.Customer = register.Party;
                //    invoice.SummAVT = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ','));
                //    invoice.SummCost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ','));
                //}
                //else {
                //    invoice.SummAVT = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ','));
                //    invoice.SummCost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ','));
                //    fmCAVTInvoiceRegisterLine line_check = os.FindObject<fmCAVTInvoiceRegisterLine>(
                //            CriteriaOperator.And(new BinaryOperator("InvoiceVersion", invoice.Current)), true);
                //    if (line_check != null) continue;
                //}
                //fmCAVTInvoiceRegisterLine line = register.InLines.Where(rec => rec.Invoice == invoice).FirstOrDefault();
                //if (line == null) {
                //    line = os.CreateObject<fmCAVTInvoiceRegisterLine>();
                //    register.InLines.Add(line);
                //}
                //line.SequenceNumber = seq_num++;
                ////                line_doc.DateTransfer = invoice.Date;
                //line.Invoice = invoice;
                //line.TransferType = inv_transfer_types.Where(rec => rec.Code == "1").FirstOrDefault();
                //if (String.IsNullOrEmpty(imp_rec.SF_TRANS_DATE.Trim())) {
                //    DateTime trans_date = default(DateTime);
                //    DateTime.TryParseExact(imp_rec.SF_TRANS_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out trans_date);
                //    line.DateTransfer = trans_date;
                //}
                //if (line.DateTransfer < sf_date)
                //    line.DateTransfer = sf_date;
                //line.OperationType = inv_oper_types.Where(rec => rec.Code == imp_rec.SF_OPER_TYPE.Trim() ||
                //                                               rec.Code == '0' + imp_rec.SF_OPER_TYPE.Trim()).FirstOrDefault();
            }
            System.Console.WriteLine("All " + count);
        }
示例#38
0
        private void editVerse_EditValueChanged(object sender, EventArgs e)
        {
            var arg = e as DevExpress.XtraEditors.Controls.ChangingEventArgs;

            if (arg.IsNotNull())
            {
                var verseNumber = arg.NewValue.ToInt();
                //var currentControl = this.Controls.OfType<Control>().Where(x => x is VerseEditorControl).FirstOrDefault() as VerseEditorControl;
                //if (currentControl.IsNotNull()) {
                //    if (currentControl.IsModified()) {
                //        if (XtraMessageBox.Show("Do you want to save your changes before opening a new verse?", "Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
                //            currentControl.Save();
                //        }
                //    }
                //    this.Controls.Remove(currentControl);
                //    currentControl.Dispose();
                //    currentControl = null;
                //}
                if (VerseControl.Verse.IsNotNull() && VerseControl.IsModified())
                {
                    if (XtraMessageBox.Show("Do you want to save your changes before opening a new verse?", "Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        VerseControl.Save();
                    }
                    VerseControl.Clear();
                }
                else
                {
                    VerseControl.Clear();
                }

                Application.DoEvents();

                var book          = txtBook.EditValue as BookBaseInfo;
                var chapterNumber = txtChapter.EditValue.ToInt();
                var verse         = new XPQuery <Verse>(Uow).Where(x => x.NumberOfVerse == verseNumber && x.ParentChapter.NumberOfChapter == chapterNumber && x.ParentChapter.ParentBook.NumberOfBook == book.NumberOfBook && x.ParentChapter.ParentBook.ParentTranslation.Name == NAME).FirstOrDefault();
                if (verse.IsNotNull())
                {
                    //var control = new VerseEditorControl(verse, Translation.BookType == TheBookType.Bible) {
                    //    Dock = DockStyle.Fill
                    //};
                    //this.Controls.Add(control);

                    //control.LoadData();
                    VerseControl.LoadData(verse, Translation.BookType == TheBookType.Bible);

                    btnExportChapterToPDF.Enabled = btnExportChapterToWord.Enabled = btnExportBookToDocx.Enabled = btnExportBookToPdf.Enabled = btnNextVerse.Enabled = true;

                    var allVerses = editVerse.DataSource as List <int>;
                    if (allVerses.IsNotNull() && allVerses.Count > 0 && verseNumber == allVerses.Last())
                    {
                        btnNextVerse.Enabled = false;
                    }
                    btnPreviousVerse.Enabled = verseNumber > 1;

                    this.Text = $"{book.BookTitle} {chapterNumber}:{verseNumber}";

                    btnOblubienicaEu.Visibility   = book.NumberOfBook >= 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;
                    btnLogosSeptuagint.Visibility = book.NumberOfBook < 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;
                }
            }
        }
示例#39
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (ReportHiddenField.Contains("typeReport"))
            {
                XPQuery <BillTaxClaim>        billTaxClaim        = new XPQuery <BillTaxClaim>(session);
                XPQuery <Bill>                bill                = new XPQuery <Bill>(session);
                XPQuery <SaleInvoiceArtiface> saleInvoiceArtiface = new XPQuery <SaleInvoiceArtiface>(session);

                char vatType = (ReportHiddenField.Get("typeReport").ToString() == "01-1/GTGT" ? Constant.VAT_OUT : Constant.VAT_IN);

                var list = from btc in billTaxClaim.AsEnumerable()
                           join sia in saleInvoiceArtiface on btc.BillId.BillId equals sia.BillId.BillId
                           where sia.LegalInvoiceArtifactTypeId.Category == vatType
                           select new C011GTGT()
                {
                    Amount          = btc.Amount,
                    ClaimItem       = btc.ClaimItem,
                    Comment         = btc.Comment,
                    CreateDate      = btc.CreateDate,
                    TaxInNumber     = btc.TaxInNumber,
                    TaxInPercentage = btc.TaxInPercentage,
                    TotalAmount     = btc.TotalAmount,
                    BillCode        = sia.IssuedArtifaceCode,
                    SeriesNumber    = sia.SeriesNumber,
                    ObjectName      = btc.BillId.SourceOrganizationId.Name,
                    ObjectTax       = btc.BillId.SourceOrganizationId.TaxNumber,
                    LegalInvoiceArtifactTypeCode = sia.LegalInvoiceArtifactTypeId.Code,
                    LegalInvoiceArtifactTypeName = sia.LegalInvoiceArtifactTypeId.Name
                };

                List <C011GTGT> data = new List <C011GTGT>();

                try
                {
                    CriteriaOperator _filter = new GroupOperator(GroupOperatorType.And,
                                                                 new BinaryOperator("Category", vatType, BinaryOperatorType.Equal),
                                                                 new BinaryOperator("RowStatus", 1, BinaryOperatorType.GreaterOrEqual));
                    XPCollection <NAS.DAL.Accounting.LegalInvoice.LegalInvoiceArtifactType> _legalInvoiceArtifactType = new XPCollection <NAS.DAL.Accounting.LegalInvoice.LegalInvoiceArtifactType>(session);
                    _legalInvoiceArtifactType.Criteria = _filter;

                    var _result = list;

                    foreach (NAS.DAL.Accounting.LegalInvoice.LegalInvoiceArtifactType liat in _legalInvoiceArtifactType)
                    {
                        if (!list.ToList().Any(l => l.LegalInvoiceArtifactTypeCode == liat.Code))
                        {
                            C011GTGT _c011GTGT = new C011GTGT()
                            {
                                Amount          = 0,
                                ClaimItem       = "",
                                Comment         = "",
                                CreateDate      = DateTime.Now,
                                TaxInNumber     = 0,
                                TaxInPercentage = 0,
                                TotalAmount     = 0,
                                BillCode        = "",
                                SeriesNumber    = "",
                                ObjectName      = "",
                                ObjectTax       = "",
                                LegalInvoiceArtifactTypeCode = liat.Code,
                                LegalInvoiceArtifactTypeName = liat.Name
                            };

                            _result = _result.Concat(new List <C011GTGT> {
                                _c011GTGT
                            });
                        }
                    }

                    data = _result.ToList();
                }
                catch
                {
                }
                if (vatType == Constant.VAT_OUT)
                {
                    _01_1_GTGT report = new _01_1_GTGT();
                    report.DataSource   = data;
                    report.DataMember   = "";
                    reportViewer.Report = report;
                }
                else
                {
                    _01_2_GTGT report = new _01_2_GTGT();
                    report.DataSource   = data;
                    report.DataMember   = "";
                    reportViewer.Report = report;
                }


                formInvoiceVatReport.JSProperties.Add("cpShowReport", "report");
            }
        }
示例#40
0
        public void Save()
        {
            this.Text = $"Translation editor :: {Object.Name}";
            Object.Save();
            var uow = Object.Session as UnitOfWork;

            uow.CommitChanges();

            foreach (var item in TreeItems.Where(x => x.Type == IbeTreeItemType.Book))
            {
                var bookItem = item as IbeBookTreeItem;
                if (item.IsNew)
                {
                    var book = new Book(uow)
                    {
                        AuthorName               = bookItem.AuthorName,
                        BaseBook                 = new XPQuery <BookBase>(uow).Where(x => x.Oid == bookItem.BaseBook.Id).FirstOrDefault(),
                        BookName                 = bookItem.BookName,
                        BookShortcut             = bookItem.BookShortcut,
                        Color                    = bookItem.Color,
                        IsTranslated             = bookItem.IsTranslated,
                        NumberOfBook             = bookItem.Number,
                        ParentTranslation        = Object,
                        PlaceWhereBookWasWritten = bookItem.PlaceWhereBookWasWritten,
                        Preface                  = bookItem.Preface,
                        Purpose                  = bookItem.Purpose,
                        Subject                  = bookItem.Subject,
                        TimeOfWriting            = bookItem.TimeOfWriting,
                        NumberOfChapters         = bookItem.NumberOfChapters
                    };
                    book.Save();
                    uow.CommitChanges();
                    uow.ReloadChangedObjects();

                    bookItem.IsNew   = false;
                    bookItem.Changed = false;
                    bookItem.Tag     = book.Oid;
                    // bookItem.ID = $"Book_{book.Oid}";
                }
                else if (item.Changed)
                {
                    var book = new XPQuery <Book>(uow).Where(x => x.Oid == bookItem.Tag).FirstOrDefault();
                    book.AuthorName               = bookItem.AuthorName;
                    book.BaseBook                 = new XPQuery <BookBase>(uow).Where(x => x.Oid == bookItem.BaseBook.Id).FirstOrDefault();
                    book.BookName                 = bookItem.BookName;
                    book.BookShortcut             = bookItem.BookShortcut;
                    book.Color                    = bookItem.Color;
                    book.IsTranslated             = bookItem.IsTranslated;
                    book.NumberOfBook             = bookItem.Number;
                    book.PlaceWhereBookWasWritten = bookItem.PlaceWhereBookWasWritten;
                    book.Preface                  = bookItem.Preface;
                    book.Purpose                  = bookItem.Purpose;
                    book.Subject                  = bookItem.Subject;
                    book.TimeOfWriting            = bookItem.TimeOfWriting;
                    book.NumberOfChapters         = bookItem.NumberOfChapters;

                    book.Save();
                    uow.CommitChanges();

                    bookItem.Changed = false;
                }
            }

            foreach (var item in TreeItems.Where(x => x.Type == IbeTreeItemType.Chapter))
            {
                var chapterItem = item as IbeChapterTreeItem;
                if (item.IsNew)
                {
                    var parentBookItem = TreeItems.Where(x => x.ID == chapterItem.ParentID).FirstOrDefault() as IbeBookTreeItem;

                    var chapter = new Chapter(uow)
                    {
                        IsTranslated    = chapterItem.IsTranslated,
                        NumberOfChapter = chapterItem.Number,
                        NumberOfVerses  = chapterItem.NumberOfVerses,
                        ParentBook      = new XPQuery <Book>(uow).Where(x => x.Oid == parentBookItem.Tag).FirstOrDefault()
                    };
                    chapter.Save();
                    uow.CommitChanges();
                    uow.ReloadChangedObjects();

                    chapterItem.IsNew   = false;
                    chapterItem.Changed = false;
                    chapterItem.Tag     = chapter.Oid;
                    // chapterItem.ID = $"Chapter_{chapter.Oid}";
                }
                else if (item.Changed)
                {
                    var chapter = new XPQuery <Chapter>(uow).Where(x => x.Oid == chapterItem.Tag).FirstOrDefault();
                    chapter.IsTranslated    = chapterItem.IsTranslated;
                    chapter.NumberOfChapter = chapterItem.Number;
                    chapter.NumberOfVerses  = chapterItem.NumberOfVerses;

                    chapter.Save();
                    uow.CommitChanges();

                    chapterItem.Changed = false;
                }
            }

            foreach (var item in TreeItems.Where(x => x.Type == IbeTreeItemType.Verse))
            {
                var verseItem = item as IbeVerseTreeItem;
                if (item.IsNew)
                {
                    var parentChapterItem = TreeItems.Where(x => x.ID == verseItem.ParentID).FirstOrDefault() as IbeChapterTreeItem;

                    var verse = new Verse(uow)
                    {
                        NumberOfVerse    = verseItem.Number,
                        StartFromNewLine = verseItem.StartFromNewLine,
                        Text             = verseItem.Value,
                        ParentChapter    = new XPQuery <Chapter>(uow).Where(x => x.Oid == parentChapterItem.Tag).FirstOrDefault()
                    };

                    SetSubtitle(verse, verseItem, uow, 1);
                    SetSubtitle(verse, verseItem, uow, 2);
                    //if (verseItem.SubtitleLevel1.IsNotNullOrEmpty()) {
                    //    var subtitle1 = verse.ParentChapter.Subtitles.Where(x => x.BeforeVerseNumber == verse.NumberOfVerse && x.Level == 1).FirstOrDefault();
                    //    if (subtitle1.IsNotNull()) {
                    //        subtitle1.BeforeVerseNumber = verse.NumberOfVerse;
                    //        subtitle1.ParentChapter = verse.ParentChapter;
                    //        subtitle1.Level = 1;
                    //        subtitle1.Text = verseItem.SubtitleLevel1;
                    //    }
                    //    else {
                    //        subtitle1 = new Subtitle(uow) {
                    //            BeforeVerseNumber = verse.NumberOfVerse,
                    //            ParentChapter = verse.ParentChapter,
                    //            Level = 1,
                    //            Text = verseItem.SubtitleLevel1
                    //        };
                    //    }
                    //    subtitle1.Save();
                    //}
                    //if (verseItem.SubtitleLevel2.IsNotNullOrEmpty()) {
                    //    var subtitle2 = verse.ParentChapter.Subtitles.Where(x => x.BeforeVerseNumber == verse.NumberOfVerse && x.Level == 2).FirstOrDefault();
                    //    if (subtitle2.IsNotNull()) {
                    //        subtitle2.BeforeVerseNumber = verse.NumberOfVerse;
                    //        subtitle2.ParentChapter = verse.ParentChapter;
                    //        subtitle2.Level = 1;
                    //        subtitle2.Text = verseItem.SubtitleLevel2;
                    //    }
                    //    else {
                    //        subtitle2 = new Subtitle(uow) {
                    //            BeforeVerseNumber = verse.NumberOfVerse,
                    //            ParentChapter = verse.ParentChapter,
                    //            Level = 2,
                    //            Text = verseItem.SubtitleLevel2
                    //        };
                    //    }
                    //    subtitle2.Save();
                    //}

                    verse.Save();
                    uow.CommitChanges();
                    uow.ReloadChangedObjects();

                    verseItem.IsNew   = false;
                    verseItem.Changed = false;
                    verseItem.Tag     = verse.Oid;
                }
                else if (item.Changed)
                {
                    var verse = new XPQuery <Verse>(uow).Where(x => x.Oid == verseItem.Tag).FirstOrDefault();
                    verse.StartFromNewLine = verseItem.StartFromNewLine;
                    verse.NumberOfVerse    = verseItem.Number;
                    verse.Text             = verseItem.Value;

                    SetSubtitle(verse, verseItem, uow, 1);
                    SetSubtitle(verse, verseItem, uow, 2);

                    verse.Save();
                    uow.CommitChanges();

                    verseItem.Changed = false;
                }
            }

            // refresh translations window
            try {
                if (ObjectSaved.IsNotNull())
                {
                    ObjectSaved(Object, EventArgs.Empty);
                }
            }
            catch { }
        }
        private void DeleteData()
        {
            while (ShouldDoCleaning())
            {
                using (var uow = new UnitOfWork())
                {
                    var videoQuery = new XPQuery<Damany.PortraitCapturer.DAL.DTO.Video>(uow);
                    var oldestVideo = (from v in videoQuery
                                       orderby v.CaptureTime ascending
                                       select v).FirstOrDefault();

                    var portraitQuery = new XPQuery<Damany.PortraitCapturer.DAL.DTO.Portrait>(uow);
                    var oldestPortrait = (from p in portraitQuery
                                          orderby p.CaptureTime ascending
                                          select p).FirstOrDefault();

                    var oldest = DateTime.MaxValue;
                    if (oldestVideo != null)
                    {
                        if (oldestVideo.CaptureTime <= oldest)
                        {
                            oldest = oldestVideo.CaptureTime;
                        }
                    }

                    if (oldestPortrait != null)
                    {
                        if (oldestPortrait.CaptureTime <= oldest)
                        {
                            oldest = oldestPortrait.CaptureTime;
                        }
                    }

                    if (oldest != DateTime.MaxValue)
                    {
                        var range = new Damany.Util.DateTimeRange(oldest.Date, oldest.Date.AddDays(1));
                        DeleteOutdatedPortrait(range, uow);
                        DeleteOutdatedFrame(range, uow);
                        DeleteOutdatedVideos(range, uow);
                    }

                    uow.CommitChanges();
                    uow.PurgeDeletedObjects();
                }
            }
        }
 public XpoLinqQuery(XPQuery <T> query) : this(new XpoLinqQueryProvider(query, query.Session), ((IQueryable)query).Expression)
 {
 }
        /// <summary>
        /// 
        /// </summary>
        private static void SQL_ReloadAccount( ExecuteInfoNull sqlInfo )
        {
            s_UnitOfWork.ReloadChangedObjects();

            XPQuery<Account> accounts = new XPQuery<Account>( s_UnitOfWork );

            var accountList = from account in accounts
                              select account;

            // 账号是不会删除的,人物会删除,所以只需要添加即可。
            foreach ( Account account in accountList )
            {
                WowAccount wowAccount = new WowAccount();
                wowAccount.AccountGuid = account.Oid;
                wowAccount.AccountName = account.AccountName.ToUpper();
                wowAccount.Password = account.Password;
                wowAccount.Locked = account.IsLocked;
                wowAccount.Banned = account.IsBanned;

                wowAccount.AccessLevel = (AccessLevel)account.GMLevel;
                wowAccount.IsTBC = account.IsTBC;

                s_WowAccountManager.Add( wowAccount.AccountName, wowAccount );
            }
            
            LOGs.WriteLine( LogMessageType.MSG_INFO, "Wow帐号:读取数据库内的 Wow 帐号完成" );
        }
示例#44
0
        //
        // Xử lý các dữ liệu của 1 chấm công
        //
        private Timekeeping CalProperties(Timekeeping t, bool isXepCaMacDinh)
        {
            XPQuery<DefaultValueTimekeeping> _DefaultValueTimekeeping = new XPQuery<DefaultValueTimekeeping>((
                   (XPObjectSpace)objSpace).Session);
               Parameter parameter;
               List<DefaultValueTimekeeping> xpcDefaultValueTimekeeping;
               xpcDefaultValueTimekeeping = (from tso in _DefaultValueTimekeeping select tso).ToList();

               using (IObjectSpace objNewSpace = frame.Application.CreateObjectSpace())
               {
               XPCollection xpcPar = new XPCollection(((XPObjectSpace)objNewSpace).Session, typeof(Parameter));
               parameter = xpcPar[0] as Parameter;
               }
               if (t.ThoiGianVao != null && t.ThoiGianRa != null)
               {
               TimeSpan tsValue = (t.ThoiGianRa - t.ThoiGianVao);
               double _SoGioLamCuaCa = 0;
               #region Dự đoán ca làm việc
               foreach (DefaultValueTimekeeping value in xpcDefaultValueTimekeeping)
               {
                   if (value.ThoiGianVao != null && value.ThoiGianRa != null)
                   {
                       TimeSpan ts = t.ThoiGianVao - value.ThoiGianVao;
                       if (ts.Hours == 0 && ts.Minutes > -30 && ts.Minutes < 30)
                       {
                           if (!isXepCaMacDinh)
                           {
                               t.Shift = value.Shift;
                           }
                           #region Tính thời gian đi trể về sớm
                           if (ts.TotalMinutes > 0)
                           {
                               t.SoPhutDiTre = Math.Round(ts.TotalMinutes, 2);
                           }
                           ts = t.ThoiGianRa - value.ThoiGianRa;
                           if (ts.TotalMinutes < 0)
                           {
                               t.SoPhutVeSom = Math.Round(-ts.TotalMinutes, 2);
                           }
                           _SoGioLamCuaCa = value.TongSoGioLam;
                           break;
                       }
                   }
               }
                           #endregion

               #region Tổng số giờ làm
               if (tsValue.TotalHours > 0)
               {
                   t.TongSoGioLam = Math.Round(tsValue.TotalHours, 2);
               }
               else
               {
                   t.TongSoGioLam = 0;
               }
               #endregion

               t.SoGioTangCaNL = 0;
               t.SoGioTangCaNN = 0;
               t.SoGioTangCaNNCaDem = 0;
               t.SoGioTangCaNT = 0;
               t.SoGioTangCaNTCaDem = 0;
               t.NgayCongThucTe = 0;
               t.NgayTinhCong = 0;
               if (t.Shift != null)
               {
                   //
                   // Ngày công thực tế nếu có làm thì gán bằng 1
                   //

                   #region Ngày công thực tế

                   t.NgayCongThucTe = 1;
                   #endregion

                   //
                   // Ngày tính công nếu làm mà không phải tăng ca thì tính bằng 1, ngược lại bằng 0. Mặc định bằng 1
                   //

                   t.NgayTinhCong = 1;

                   //
                   // Kiểm tra ngày chấm công có phải ngày lễ không
                   //

                   Holiday holidayDate = objSpace.FindObject<Holiday>(CriteriaOperator.And(new BinaryOperator(
                       "StartDate", t.Date, BinaryOperatorType.GreaterOrEqual), new BinaryOperator(
                           "EndDate", t.Date, BinaryOperatorType.LessOrEqual)));
                   if (holidayDate != null)
                   {
                       t.SoGioTangCaNL = Math.Round(tsValue.TotalHours, 2);

                       t.NgayTinhCong = 0;
                   }
                   else
                   {
                       //
                       // Kiểm tra xem ngày đó có ca không nếu có ca thì là tăng ca ngày thường, không ca tăng ca ngày nghĩ.
                       //
                       if (t.Shift != null)
                       {
                           if (_SoGioLamCuaCa != 0)
                           {
                               double d = tsValue.TotalHours - _SoGioLamCuaCa;
                               if (d >= parameter.SoGioToiThieuTinhTangCa) //  Lớn hơn 15p thì mới tính tăng ca (0.25 giờ)
                               {
                                   t.SoGioTangCaNT = Math.Round(d, 2);

                                   TimeSpan ts2 = t.ThoiGianRa - parameter.ThoiGianTinhCaDem;
                                   // Nếu giờ ra sau giờ ra tính ca đêm, thì mới tính ca đêm
                                   if (ts2.TotalHours >= parameter.SoGioToiThieuTinhTangCa)
                                   {
                                       t.SoGioTangCaNTCaDem = Math.Round(ts2.TotalHours, 2);
                                       t.SoGioTangCaNT = Math.Round((tsValue.TotalHours - ts2.TotalHours), 2);
                                   }
                               }
                           }
                       }
                       else
                       {
                           t.SoGioTangCaNN = Math.Round(tsValue.TotalHours, 2);
                           TimeSpan ts2 = t.ThoiGianRa - parameter.ThoiGianTinhCaDem;
                           // Nếu giờ ra sau giờ ra tính ca đêm, thì mới tính ca đêm
                           if (ts2.TotalHours >= parameter.SoGioToiThieuTinhTangCa)
                           {
                               t.SoGioTangCaNNCaDem = Math.Round(ts2.TotalHours, 2);
                               t.SoGioTangCaNN = Math.Round((tsValue.TotalHours - ts2.TotalHours), 2);
                           }
                       }
                   }
               #endregion
               }
               }
               return t;
        }
        /// <summary>
        /// 
        /// </summary>
        private static void SQL_HandleCharLogin( CharLoginSQL sqlInfo )
        {
            //////////////////////////////////////////////////////////////////////////
            // 读取人物基础信息(CharacterBase)
            // 读取人物状态信息(CharacterBase)
            // 读取道具信息(CharacterItem)
            // 读取技能信息(CharacterSkill)
            // 读取法术信息(CharacterSpell)
            // 读取天赋信息(CharactersGift)
            // 读取宠物信息(CharacterPet)
            // 读取探索信息(CharacterExplore)
            // 读取声望信息(CharacterReputation)
            // 读取邮件信息(Mail)
            // 读取飞行点信息(CharactersTaxi)
            // 读取快捷按钮信息(CharacterActionBar)
            // 读取好友信息(CharacterSocial)
            // 读取行会信息(Guild)/
            // 读取团队信息(Group)
            // 读取组队信息 ?
            // 计算攻防信息
            // 读取人物增益/减益信息(CharacterAura)
            // 读取法书/道具冷却信息(CharacterSpellCooldown)


            //////////////////////////////////////////////////////////////////////////
            // 读取人物基础信息(CharacterBase)
            XPQuery<CharacterBase> characters = new XPQuery<CharacterBase>( OneDatabase.Session );

            var characterList = from character in characters
                               where character.Oid == sqlInfo.LoginCharGuid
                               select character;

            bool bIsFinde = false;
            WowCharacter wowCharacter = new WowCharacter();
            foreach ( CharacterBase character in characterList )
            {
                //////////////////////////////////////////////////////////////////////////
                // 读取人物状态信息(CharacterBase)
                wowCharacter.GuildGuid = character.Oid;
                wowCharacter.Name = character.CharacterName;
                wowCharacter.Level = (uint)character.Level;
                wowCharacter.Race = (uint)character.Race;
                wowCharacter.Class = (uint)character.Class;
                wowCharacter.ZoneId = (uint)character.ZoneId;
                wowCharacter.MapId = (uint)character.MapId;
                wowCharacter.X = character.PositionX;
                wowCharacter.Y = character.PositionY;
                wowCharacter.Z = character.PositionZ;
                wowCharacter.Gender = (uint)character.Gender;
                wowCharacter.Face = (uint)character.Face;
                wowCharacter.HairStyle = (uint)character.HairStyle;
                wowCharacter.HairColor = (uint)character.HairColor;
                wowCharacter.FacialHair = (uint)character.FacialHair;



                //////////////////////////////////////////////////////////////////////////
                // 读取道具信息(CharacterItem)
                XPQuery<CharacterItem> characterItems = new XPQuery<CharacterItem>( OneDatabase.Session );


                var characterItemList = from characterItem in characterItems
                                        where characterItem.Owner == character && characterItem.BagId > InventorySlotBag.InventorySlotEquipmentBag && characterItem.BagId < InventorySlotBag.InventorySlotMainBag
                                        select characterItem;

                foreach ( CharacterItem characterItem in characterItemList )
                {
                    if ( characterItem.SlotId != BaseItem.SlotNotSet )
                        continue;

                    WowItemContainer wowItemContainer = wowCharacter.BagManager.FindContainerAtSlot( characterItem.BagId ) as WowItemContainer;
                    if ( wowItemContainer != null )
                        continue;
                    else
                    {
                        WowItemTemplate wowItemTemplate = ProcessServer.WowZoneCluster.World.ItemTemplateManager.GetItemTemplate( (Serial)characterItem.ItemTemplateGuid ) as WowItemTemplate;
                        if ( wowItemTemplate == null )
                            continue;

                        wowItemContainer = new WowItemContainer();
                        wowItemContainer.InitContainerSlot( 0, wowItemTemplate.ContainerSlots );
                        wowItemContainer.Item = new WowItem();
                        wowItemContainer.Item.Serial = characterItem.Oid;
                        wowItemContainer.Item.ItemTemplate = wowItemTemplate;

                        wowCharacter.BagManager.AddContainer( characterItem.BagId, wowItemContainer );
                    }
                }


                characterItemList = from characterItem in characterItems
                                        select characterItem;

                foreach ( CharacterItem characterItem in characterItemList )
                {
                    if ( characterItem.SlotId != BaseItem.SlotNotSet )
                        continue;

                    WowItem wowItem = new WowItem();
                    wowItem.Serial = characterItem.Oid;

                    if ( characterItem.BagId == InventorySlotBag.InventorySlotEquipmentBag )
                    {
                        if ( characterItem.SlotId == BaseItem.SlotNotSet ||
                            characterItem.SlotId < EquipmentSlot.EquipmentSlotStart ||
                            characterItem.SlotId >= EquipmentSlot.EquipmentSlotEnd )
                            continue;

                        if ( wowCharacter.BagManager.EquipmentBag.FindSubItemAtSlot( characterItem.SlotId ) != null )
                            continue;

                        wowCharacter.BagManager.EquipmentBag.AddSubItem( characterItem.SlotId, wowItem );
                    }
                    else if ( characterItem.BagId == InventorySlotBag.InventorySlotMainBag )
                    {
                        if ( characterItem.SlotId == BaseItem.SlotNotSet ||
                            characterItem.SlotId < BagSlotItem.BagSlotItemStart ||
                            characterItem.SlotId >= BagSlotItem.BagSlotItemEnd )
                            continue;

                        if ( wowCharacter.BagManager.EquipmentBag.FindSubItemAtSlot( characterItem.SlotId ) != null )
                            continue;

                        wowCharacter.BagManager.MainBag.AddSubItem( characterItem.SlotId, wowItem );
                    }
                    else
                    {
                        WowItemContainer wowItemContainer = wowCharacter.BagManager.FindContainerAtSlot( characterItem.BagId ) as WowItemContainer;
                        if ( wowItemContainer == null )
                            continue;
                        else
                        {
                            if ( wowItemContainer.FindSubItemAtSlot( characterItem.SlotId ) != null )
                                continue;

                            wowItemContainer.AddSubItem( characterItem.SlotId, wowItem );
                        }
                    }
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取技能信息(CharacterSkill)
                XPQuery<CharacterSkill> characterSkills = new XPQuery<CharacterSkill>( OneDatabase.Session );


                var characterSkillList = from characterSkill in characterSkills
                                        where characterSkill.Owner == character
                                         select characterSkill;

                foreach ( CharacterSkill characterSkill in characterSkillList )
                {
                    WowSkill wowSkill = new WowSkill();
                    wowSkill.Serial = characterSkill.SkillId;

                    wowCharacter.SkillManager.AddSkill( wowSkill.Serial, wowSkill );
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取法术信息(CharacterSpell)
                XPQuery<CharacterSpell> characterSpells = new XPQuery<CharacterSpell>( OneDatabase.Session );


                var characterSpellList = from characterSpell in characterSpells
                                         where characterSpell.Owner == character
                                         select characterSpell;

                foreach ( CharacterSpell characterSpell in characterSpellList )
                {
                    WowSpell wowSpell = new WowSpell();
                    wowSpell.Serial = characterSpell.SpellId;

                    wowCharacter.SpellManager.AddSpell( wowSpell.Serial, wowSpell );
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取天赋信息(CharactersGift)
                XPQuery<CharactersGift> charactersGifts = new XPQuery<CharactersGift>( OneDatabase.Session );


                var charactersGiftList = from charactersGift in charactersGifts
                                         where charactersGift.Owner == character
                                         select charactersGift;

                foreach ( CharactersGift charactersGift in charactersGiftList )
                {
                    WowTalent wowTalent = new WowTalent();
                    wowTalent.Serial = charactersGift.Oid;

                    wowCharacter.TalentManager.AddTalent( wowTalent.Serial, wowTalent );
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取宠物信息(CharacterPet)
                XPQuery<CharacterPet> characterPets = new XPQuery<CharacterPet>( OneDatabase.Session );


                var characterPetList = from characterPet in characterPets
                                         where characterPet.Owner == character
                                         select characterPet;

                foreach ( CharacterPet characterPet in characterPetList )
                {
                    WowPet wowPet = new WowPet();

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取探索信息(CharacterExplore)
                XPQuery<CharacterExplore> characterExplores = new XPQuery<CharacterExplore>( OneDatabase.Session );


                var characterExploreList = from characterExplore in characterExplores
                                       where characterExplore.Owner == character
                                       select characterExplore;

                foreach ( CharacterExplore characterExplore in characterExploreList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取声望信息(CharacterReputation)
                XPQuery<CharacterReputation> characterReputations = new XPQuery<CharacterReputation>( OneDatabase.Session );


                var characterReputationList = from characterReputation in characterReputations
                                           where characterReputation.Owner == character
                                           select characterReputation;

                foreach ( CharacterReputation characterReputation in characterReputationList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取邮件信息(Mail)
                XPQuery<Mail> mails = new XPQuery<Mail>( OneDatabase.Session );


                var mailList = from mail in mails
                               where mail.Receiver == character
                               select mail;

                foreach ( Mail mail in mailList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取飞行点信息(CharactersTaxi)
                XPQuery<CharactersTaxi> charactersTaxis = new XPQuery<CharactersTaxi>( OneDatabase.Session );


                var charactersTaxiList = from charactersTaxi in charactersTaxis
                                         where charactersTaxi.Owner == character
                                         select charactersTaxi;

                foreach ( CharactersTaxi charactersTaxi in charactersTaxiList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取快捷按钮信息(CharacterActionBar)
                XPQuery<CharacterActionBar> characterActionBars = new XPQuery<CharacterActionBar>( OneDatabase.Session );


                var characterActionBarList = from characterActionBar in characterActionBars
                                         where characterActionBar.Owner == character
                                         select characterActionBar;

                foreach ( CharacterActionBar characterActionBar in characterActionBarList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取好友信息(CharacterSocial)
                XPQuery<CharacterSocial> characterSocials = new XPQuery<CharacterSocial>( OneDatabase.Session );


                var characterSocialList = from characterSocial in characterSocials
                                          where characterSocial.Owner == character
                                          select characterSocial;

                foreach ( CharacterSocial characterSocial in characterSocialList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取行会信息(Guild)
                XPQuery<Guild> guilds = new XPQuery<Guild>( OneDatabase.Session );


                var guildList = from guild in guilds
                                where guild.Leader == character
                                select guild;

                foreach ( Guild guild in guildList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取团队信息(Group)
                XPQuery<Group> groups = new XPQuery<Group>( OneDatabase.Session );


                var groupList = from groupItem in groups
                                where groupItem.Leader == character
                                select groupItem;

                foreach ( Group group in groupList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取组队信息 ?

                //////////////////////////////////////////////////////////////////////////
                // 计算攻防信息

                //////////////////////////////////////////////////////////////////////////
                // 读取人物增益/减益信息(CharacterAura)
                XPQuery<CharacterAura> characterAuras = new XPQuery<CharacterAura>( OneDatabase.Session );


                var characterAuraList = from characterAura in characterAuras
                                        where characterAura.Owner == character
                                        select characterAura;

                foreach ( CharacterAura characterAura in characterAuraList )
                {

                }



                //////////////////////////////////////////////////////////////////////////
                // 读取法书/道具冷却信息(CharacterSpellCooldown)
                XPQuery<CharacterSpellCooldown> characterSpellCooldowns = new XPQuery<CharacterSpellCooldown>( OneDatabase.Session );


                var characterSpellCooldownList = from characterSpellCooldown in characterSpellCooldowns
                                                 where characterSpellCooldown.Owner == character
                                                 select characterSpellCooldown;

                foreach ( CharacterSpellCooldown characterSpellCooldown in characterSpellCooldownList )
                {

                }

                bIsFinde = true;
                break;
            }

            if ( bIsFinde == false )
            {
                Debug.WriteLine( "CHAR_LOGIN_FAILED error!" );

                sqlInfo.NetState.Send( new Word_PlayerLoginFailedResponse( ResponseCodes.CHAR_LOGIN_FAILED ) );
                return;
            }

            sqlInfo.NetState.Send( new Word_PlayerDungeonDifficulty( InstanceMode.MODE_NORMAL ) );

            sqlInfo.NetState.Send( new Word_PlayerLoginVerifyWorld( wowCharacter.MapId, wowCharacter.X, wowCharacter.Y, wowCharacter.Z, wowCharacter.O ) );

            AccountData[] accountDataArray = new AccountData[8];
            for ( int iIndex = 0; iIndex < accountDataArray.Length; iIndex++ )
                accountDataArray[iIndex] = new AccountData();

            sqlInfo.NetState.Send( new Word_PlayerAccountDataMd5( accountDataArray ) );

            sqlInfo.NetState.Send( new Word_PlayerVoiceSystemStatus( 0 ) );// 需要连接套接字

            sqlInfo.NetState.Send( new Word_PlayerTriggerCinematic( 0 ) );

            sqlInfo.NetState.Send( new Word_PlayerBroadcastMsg( "ookk1234567" ) );

            sqlInfo.NetState.Send( new Word_PlayerSetRestStart() );

            sqlInfo.NetState.Send( new Word_PlayerBindPointUpdate( wowCharacter.X, wowCharacter.Y, wowCharacter.Z, wowCharacter.MapId, wowCharacter.ZoneId ) );

            uint[] uiTutorialArray = new uint[8];
            for ( int iIndex = 0; iIndex < uiTutorialArray.Length; iIndex++ )
                uiTutorialArray[iIndex] = 0;

            sqlInfo.NetState.Send( new Word_PlayerTutorialFlags( uiTutorialArray ) );

            sqlInfo.NetState.Send( new Word_PlayerInitialSpells( wowCharacter.SpellManager.ToArray(), wowCharacter.SpellCooldownManager.ToArray() ) );

            sqlInfo.NetState.Send( new Word_PlayerActionButtons( wowCharacter.ActionBarManager.ToArray() ) );

            sqlInfo.NetState.Send( new Word_PlayerInitializeFactions( wowCharacter.ReputationManager.ToArray() ) );

            sqlInfo.NetState.Send( new Word_PlayerInitWorldStates( wowCharacter.MapId, wowCharacter.ZoneId, 0 ) );

            sqlInfo.NetState.Send( new Word_PlayerLoginSetTimeSpeed( DateTime.Now ) );
        }
示例#46
0
        private void VideoQueryForm_Load(object sender, EventArgs e)
        {
            var oldestQuery = new XPQuery<Damany.PortraitCapturer.DAL.DTO.Video>(session1);
            var oldest = (from v in oldestQuery
                          orderby v.CaptureTime ascending
                          select v).FirstOrDefault();

            var newest = (from v in oldestQuery
                          orderby v.CaptureTime descending
                          select v).FirstOrDefault();
            var range = string.Format(" ({0} —— {1})", oldest.CaptureTime, newest.CaptureTime);
            groupControl1.Text += range;
        }
        /// <summary>
        /// 
        /// </summary>
        private static void SQL_UpdateAccountLastIP( UpdateAccountLastIPSQL sqlInfo )
        {
            XPQuery<Account> accounts = new XPQuery<Account>( OneDatabase.Session );

            var accountList = from account in accounts
                              where account.AccountName == sqlInfo.AccountsName
                              select account;

            // 可能数据已添加,但没有刷新。
            if ( accountList.Count() == 0 )
            {
                s_UnitOfWork.ReloadChangedObjects();

                accounts = new XPQuery<Account>( OneDatabase.Session );

                accountList = from account in accounts
                              where account.AccountName == sqlInfo.AccountsName
                              select account;
            }

            foreach ( Account account in accountList )
            {
                account.LastIP = sqlInfo.LastIP;
                account.Save();

                OneDatabase.Session.CommitChanges();

                break;
            }
        }
        public static List<Employee> FilteredEmployeesWithUpdateRequests(this ImportTask importTask, DevExpress.Xpo.Session session)
        {
            importTask.Filters.Reload();
            importTask.Phonebook.Employees.Reload();

            XPQuery<Employee> employeesQuery = new XPQuery<Employee>(session);
            XPQuery<UpdateRequest> updateRequestsQuery = new XPQuery<UpdateRequest>(session);

            var updateRequestsInImportTask = (from u in updateRequestsQuery where u.ImportTask == importTask select u);
            var distinctEmployeesFromUpdateRequests = (from u in updateRequestsInImportTask select u.Employee).DistinctBy(e => e.Oid);

            IQueryable<Employee> employees = (from employee in distinctEmployeesFromUpdateRequests.AsQueryable() where employee.IsDeleted == false select employee);
            List<string> employeeFieldNames = Utilities.GetPropertyNames<Employee>().ToList();

            foreach (Filter filter in importTask.Filters.ToList<Filter>())
            {
                if (employeeFieldNames.Contains(filter.FieldName))
                {
                    if (filter.ComparisonOperator.Replace(" ", "") == "!=")
                    {
                        employees.Where(x => Convert.ToString(x.GetMemberValue(filter.FieldName)).EmptyIfNull() != filter.FieldValue);
                    }
                    else if (filter.ComparisonOperator.Replace(" ", "") == "==")
                    {
                        employees.Where(x => Convert.ToString(x.GetMemberValue(filter.FieldName)).EmptyIfNull() == filter.FieldValue);
                    }
                }
            }

            return employees.ToList();
        }
        /// <summary>
        ///
        /// </summary>
        private static void SQL_HandleCharDelete(CharDeleteSQL sqlInfo)
        {
            XPQuery <CharacterBase> characters = new XPQuery <CharacterBase>(OneDatabase.Session);

            var characterList = from character in characters
                                where character.Oid == sqlInfo.DelCharGuid
                                select character;

            bool   bIsFinde         = false;
            string strCharacterName = string.Empty;

            foreach (CharacterBase character in characterList)
            {
                XPQuery <CharacterPet> creaturePets = new XPQuery <CharacterPet>(OneDatabase.Session);

                var creaturePetList = from creaturePet in creaturePets
                                      where creaturePet.Owner == character
                                      select creaturePet;

                foreach (CharacterPet creaturePet in creaturePetList)
                {
                    creaturePet.Delete();
                }



                XPQuery <CharacterItem> characterItems = new XPQuery <CharacterItem>(OneDatabase.Session);

                var characterItemList = from characterItem in characterItems
                                        where characterItem.Owner == character
                                        select characterItem;

                foreach (CharacterItem characterItem in characterItemList)
                {
                    characterItem.Delete();
                }



                character.Delete();
                OneDatabase.Session.CommitChanges();


                strCharacterName = character.CharacterName;
                bIsFinde         = true;
                break;
            }

            if (bIsFinde == false)
            {
                sqlInfo.NetState.Send(new Word_CharDeleteResponseError(ResponseCodes.CHAR_DELETE_FAILED));
            }
            else
            {
                ProcessServer.WowZoneCluster.World.GlobalPlayerInfo.RemovePlayerInfo(strCharacterName);

                sqlInfo.NetState.Send(new Word_CharDeleteResponse());
            }

            CharEnumSQL charEnumSQL = new CharEnumSQL(sqlInfo.WorldExtendData, sqlInfo.NetState);
            WaitExecuteInfo <CharEnumSQL> waitExecuteInfo = new WaitExecuteInfo <CharEnumSQL>(charEnumSQL, WorldPacketHandlers.SQL_HandleCharEnum);

            ProcessServer.WowZoneCluster.World.WaitExecute.JoinWaitExecuteQueue(waitExecuteInfo);
        }
示例#50
0
 public DataSales()
 {
     InitializeComponent();
     SalesBS.PositionChanged += SalesBS_PositionChanged;
     sh_coll = SalesUOW.Query <SalesheadsModel>();
 }
示例#51
0
        /// <summary>
        ///
        /// </summary>
        private static void SQL_HandleCharLogin(CharLoginSQL sqlInfo)
        {
            //////////////////////////////////////////////////////////////////////////
            // 读取人物基础信息(CharacterBase)
            // 读取人物状态信息(CharacterBase)
            // 读取道具信息(CharacterItem)
            // 读取技能信息(CharacterSkill)
            // 读取法术信息(CharacterSpell)
            // 读取天赋信息(CharactersGift)
            // 读取宠物信息(CharacterPet)
            // 读取探索信息(CharacterExplore)
            // 读取声望信息(CharacterReputation)
            // 读取邮件信息(Mail)
            // 读取飞行点信息(CharactersTaxi)
            // 读取快捷按钮信息(CharacterActionBar)
            // 读取好友信息(CharacterSocial)
            // 读取行会信息(Guild)/
            // 读取团队信息(Group)
            // 读取组队信息 ?
            // 计算攻防信息
            // 读取人物增益/减益信息(CharacterAura)
            // 读取法书/道具冷却信息(CharacterSpellCooldown)


            //////////////////////////////////////////////////////////////////////////
            // 读取人物基础信息(CharacterBase)
            XPQuery <CharacterBase> characters = new XPQuery <CharacterBase>(OneDatabase.Session);

            var characterList = from character in characters
                                where character.Oid == sqlInfo.LoginCharGuid
                                select character;

            bool         bIsFinde     = false;
            WowCharacter wowCharacter = new WowCharacter();

            foreach (CharacterBase character in characterList)
            {
                //////////////////////////////////////////////////////////////////////////
                // 读取人物状态信息(CharacterBase)
                wowCharacter.GuildGuid  = character.Oid;
                wowCharacter.Name       = character.CharacterName;
                wowCharacter.Level      = (uint)character.Level;
                wowCharacter.Race       = (uint)character.Race;
                wowCharacter.Class      = (uint)character.Class;
                wowCharacter.ZoneId     = (uint)character.ZoneId;
                wowCharacter.MapId      = (uint)character.MapId;
                wowCharacter.X          = character.PositionX;
                wowCharacter.Y          = character.PositionY;
                wowCharacter.Z          = character.PositionZ;
                wowCharacter.Gender     = (uint)character.Gender;
                wowCharacter.Face       = (uint)character.Face;
                wowCharacter.HairStyle  = (uint)character.HairStyle;
                wowCharacter.HairColor  = (uint)character.HairColor;
                wowCharacter.FacialHair = (uint)character.FacialHair;



                //////////////////////////////////////////////////////////////////////////
                // 读取道具信息(CharacterItem)
                XPQuery <CharacterItem> characterItems = new XPQuery <CharacterItem>(OneDatabase.Session);


                var characterItemList = from characterItem in characterItems
                                        where characterItem.Owner == character && characterItem.BagId > InventorySlotBag.InventorySlotEquipmentBag && characterItem.BagId < InventorySlotBag.InventorySlotMainBag
                                        select characterItem;

                foreach (CharacterItem characterItem in characterItemList)
                {
                    if (characterItem.SlotId != BaseItem.SlotNotSet)
                    {
                        continue;
                    }

                    WowItemContainer wowItemContainer = wowCharacter.BagManager.FindContainerAtSlot(characterItem.BagId) as WowItemContainer;
                    if (wowItemContainer != null)
                    {
                        continue;
                    }
                    else
                    {
                        WowItemTemplate wowItemTemplate = ProcessServer.WowZoneCluster.World.ItemTemplateManager.GetItemTemplate((Serial)characterItem.ItemTemplateGuid) as WowItemTemplate;
                        if (wowItemTemplate == null)
                        {
                            continue;
                        }

                        wowItemContainer = new WowItemContainer();
                        wowItemContainer.InitContainerSlot(0, wowItemTemplate.ContainerSlots);
                        wowItemContainer.Item              = new WowItem();
                        wowItemContainer.Item.Serial       = characterItem.Oid;
                        wowItemContainer.Item.ItemTemplate = wowItemTemplate;

                        wowCharacter.BagManager.AddContainer(characterItem.BagId, wowItemContainer);
                    }
                }


                characterItemList = from characterItem in characterItems
                                    select characterItem;

                foreach (CharacterItem characterItem in characterItemList)
                {
                    if (characterItem.SlotId != BaseItem.SlotNotSet)
                    {
                        continue;
                    }

                    WowItem wowItem = new WowItem();
                    wowItem.Serial = characterItem.Oid;

                    if (characterItem.BagId == InventorySlotBag.InventorySlotEquipmentBag)
                    {
                        if (characterItem.SlotId == BaseItem.SlotNotSet ||
                            characterItem.SlotId < EquipmentSlot.EquipmentSlotStart ||
                            characterItem.SlotId >= EquipmentSlot.EquipmentSlotEnd)
                        {
                            continue;
                        }

                        if (wowCharacter.BagManager.EquipmentBag.FindSubItemAtSlot(characterItem.SlotId) != null)
                        {
                            continue;
                        }

                        wowCharacter.BagManager.EquipmentBag.AddSubItem(characterItem.SlotId, wowItem);
                    }
                    else if (characterItem.BagId == InventorySlotBag.InventorySlotMainBag)
                    {
                        if (characterItem.SlotId == BaseItem.SlotNotSet ||
                            characterItem.SlotId < BagSlotItem.BagSlotItemStart ||
                            characterItem.SlotId >= BagSlotItem.BagSlotItemEnd)
                        {
                            continue;
                        }

                        if (wowCharacter.BagManager.EquipmentBag.FindSubItemAtSlot(characterItem.SlotId) != null)
                        {
                            continue;
                        }

                        wowCharacter.BagManager.MainBag.AddSubItem(characterItem.SlotId, wowItem);
                    }
                    else
                    {
                        WowItemContainer wowItemContainer = wowCharacter.BagManager.FindContainerAtSlot(characterItem.BagId) as WowItemContainer;
                        if (wowItemContainer == null)
                        {
                            continue;
                        }
                        else
                        {
                            if (wowItemContainer.FindSubItemAtSlot(characterItem.SlotId) != null)
                            {
                                continue;
                            }

                            wowItemContainer.AddSubItem(characterItem.SlotId, wowItem);
                        }
                    }
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取技能信息(CharacterSkill)
                XPQuery <CharacterSkill> characterSkills = new XPQuery <CharacterSkill>(OneDatabase.Session);


                var characterSkillList = from characterSkill in characterSkills
                                         where characterSkill.Owner == character
                                         select characterSkill;

                foreach (CharacterSkill characterSkill in characterSkillList)
                {
                    WowSkill wowSkill = new WowSkill();
                    wowSkill.Serial = characterSkill.SkillId;

                    wowCharacter.SkillManager.AddSkill(wowSkill.Serial, wowSkill);
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取法术信息(CharacterSpell)
                XPQuery <CharacterSpell> characterSpells = new XPQuery <CharacterSpell>(OneDatabase.Session);


                var characterSpellList = from characterSpell in characterSpells
                                         where characterSpell.Owner == character
                                         select characterSpell;

                foreach (CharacterSpell characterSpell in characterSpellList)
                {
                    WowSpell wowSpell = new WowSpell();
                    wowSpell.Serial = characterSpell.SpellId;

                    wowCharacter.SpellManager.AddSpell(wowSpell.Serial, wowSpell);
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取天赋信息(CharactersGift)
                XPQuery <CharactersGift> charactersGifts = new XPQuery <CharactersGift>(OneDatabase.Session);


                var charactersGiftList = from charactersGift in charactersGifts
                                         where charactersGift.Owner == character
                                         select charactersGift;

                foreach (CharactersGift charactersGift in charactersGiftList)
                {
                    WowTalent wowTalent = new WowTalent();
                    wowTalent.Serial = charactersGift.Oid;

                    wowCharacter.TalentManager.AddTalent(wowTalent.Serial, wowTalent);
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取宠物信息(CharacterPet)
                XPQuery <CharacterPet> characterPets = new XPQuery <CharacterPet>(OneDatabase.Session);


                var characterPetList = from characterPet in characterPets
                                       where characterPet.Owner == character
                                       select characterPet;

                foreach (CharacterPet characterPet in characterPetList)
                {
                    WowPet wowPet = new WowPet();
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取探索信息(CharacterExplore)
                XPQuery <CharacterExplore> characterExplores = new XPQuery <CharacterExplore>(OneDatabase.Session);


                var characterExploreList = from characterExplore in characterExplores
                                           where characterExplore.Owner == character
                                           select characterExplore;

                foreach (CharacterExplore characterExplore in characterExploreList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取声望信息(CharacterReputation)
                XPQuery <CharacterReputation> characterReputations = new XPQuery <CharacterReputation>(OneDatabase.Session);


                var characterReputationList = from characterReputation in characterReputations
                                              where characterReputation.Owner == character
                                              select characterReputation;

                foreach (CharacterReputation characterReputation in characterReputationList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取邮件信息(Mail)
                XPQuery <Mail> mails = new XPQuery <Mail>(OneDatabase.Session);


                var mailList = from mail in mails
                               where mail.Receiver == character
                               select mail;

                foreach (Mail mail in mailList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取飞行点信息(CharactersTaxi)
                XPQuery <CharactersTaxi> charactersTaxis = new XPQuery <CharactersTaxi>(OneDatabase.Session);


                var charactersTaxiList = from charactersTaxi in charactersTaxis
                                         where charactersTaxi.Owner == character
                                         select charactersTaxi;

                foreach (CharactersTaxi charactersTaxi in charactersTaxiList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取快捷按钮信息(CharacterActionBar)
                XPQuery <CharacterActionBar> characterActionBars = new XPQuery <CharacterActionBar>(OneDatabase.Session);


                var characterActionBarList = from characterActionBar in characterActionBars
                                             where characterActionBar.Owner == character
                                             select characterActionBar;

                foreach (CharacterActionBar characterActionBar in characterActionBarList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取好友信息(CharacterSocial)
                XPQuery <CharacterSocial> characterSocials = new XPQuery <CharacterSocial>(OneDatabase.Session);


                var characterSocialList = from characterSocial in characterSocials
                                          where characterSocial.Owner == character
                                          select characterSocial;

                foreach (CharacterSocial characterSocial in characterSocialList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取行会信息(Guild)
                XPQuery <Guild> guilds = new XPQuery <Guild>(OneDatabase.Session);


                var guildList = from guild in guilds
                                where guild.Leader == character
                                select guild;

                foreach (Guild guild in guildList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取团队信息(Group)
                XPQuery <Group> groups = new XPQuery <Group>(OneDatabase.Session);


                var groupList = from groupItem in groups
                                where groupItem.Leader == character
                                select groupItem;

                foreach (Group group in groupList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取组队信息 ?

                //////////////////////////////////////////////////////////////////////////
                // 计算攻防信息

                //////////////////////////////////////////////////////////////////////////
                // 读取人物增益/减益信息(CharacterAura)
                XPQuery <CharacterAura> characterAuras = new XPQuery <CharacterAura>(OneDatabase.Session);


                var characterAuraList = from characterAura in characterAuras
                                        where characterAura.Owner == character
                                        select characterAura;

                foreach (CharacterAura characterAura in characterAuraList)
                {
                }



                //////////////////////////////////////////////////////////////////////////
                // 读取法书/道具冷却信息(CharacterSpellCooldown)
                XPQuery <CharacterSpellCooldown> characterSpellCooldowns = new XPQuery <CharacterSpellCooldown>(OneDatabase.Session);


                var characterSpellCooldownList = from characterSpellCooldown in characterSpellCooldowns
                                                 where characterSpellCooldown.Owner == character
                                                 select characterSpellCooldown;

                foreach (CharacterSpellCooldown characterSpellCooldown in characterSpellCooldownList)
                {
                }

                bIsFinde = true;
                break;
            }

            if (bIsFinde == false)
            {
                Debug.WriteLine("CHAR_LOGIN_FAILED error!");

                sqlInfo.NetState.Send(new Word_PlayerLoginFailedResponse(ResponseCodes.CHAR_LOGIN_FAILED));
                return;
            }

            sqlInfo.NetState.Send(new Word_PlayerDungeonDifficulty(InstanceMode.MODE_NORMAL));

            sqlInfo.NetState.Send(new Word_PlayerLoginVerifyWorld(wowCharacter.MapId, wowCharacter.X, wowCharacter.Y, wowCharacter.Z, wowCharacter.O));

            AccountData[] accountDataArray = new AccountData[8];
            for (int iIndex = 0; iIndex < accountDataArray.Length; iIndex++)
            {
                accountDataArray[iIndex] = new AccountData();
            }

            sqlInfo.NetState.Send(new Word_PlayerAccountDataMd5(accountDataArray));

            sqlInfo.NetState.Send(new Word_PlayerVoiceSystemStatus(0));    // 需要连接套接字

            sqlInfo.NetState.Send(new Word_PlayerTriggerCinematic(0));

            sqlInfo.NetState.Send(new Word_PlayerBroadcastMsg("ookk1234567"));

            sqlInfo.NetState.Send(new Word_PlayerSetRestStart());

            sqlInfo.NetState.Send(new Word_PlayerBindPointUpdate(wowCharacter.X, wowCharacter.Y, wowCharacter.Z, wowCharacter.MapId, wowCharacter.ZoneId));

            uint[] uiTutorialArray = new uint[8];
            for (int iIndex = 0; iIndex < uiTutorialArray.Length; iIndex++)
            {
                uiTutorialArray[iIndex] = 0;
            }

            sqlInfo.NetState.Send(new Word_PlayerTutorialFlags(uiTutorialArray));

            sqlInfo.NetState.Send(new Word_PlayerInitialSpells(wowCharacter.SpellManager.ToArray(), wowCharacter.SpellCooldownManager.ToArray()));

            sqlInfo.NetState.Send(new Word_PlayerActionButtons(wowCharacter.ActionBarManager.ToArray()));

            sqlInfo.NetState.Send(new Word_PlayerInitializeFactions(wowCharacter.ReputationManager.ToArray()));

            sqlInfo.NetState.Send(new Word_PlayerInitWorldStates(wowCharacter.MapId, wowCharacter.ZoneId, 0));

            sqlInfo.NetState.Send(new Word_PlayerLoginSetTimeSpeed(DateTime.Now));
        }
        /// <summary>
        /// 
        /// </summary>
        internal bool SaveNewCreature()
        {
            XPQuery<CharacterBase> characters = new XPQuery<CharacterBase>( OneDatabase.Session );

            var characterList = from character in characters
                                where character.Oid == m_CharacterAccountGuid
                                select character;

            if ( characterList.Count() > WOW_MAX_CHARACTER_COUNT ) // 人物过多
                return false;

            CharacterBase newCharacter = new CharacterBase( OneDatabase.Session );
            this.Serial = newCharacter.Oid;
            newCharacter.CharacterName = this.Name;
            //newCharacter.Account = this.AccountGuid;
            newCharacter.Gender = (byte)this.Gender;
            newCharacter.Skin = (byte)this.Skin;
            newCharacter.Face = (byte)this.Face;
            newCharacter.HairStyle = (byte)this.HairColor;
            newCharacter.HairColor = (byte)this.HairColor;
            newCharacter.FacialHair = (byte)this.FacialHair;
            newCharacter.Race = (byte)this.Race;
            newCharacter.Class = (int)this.Class;
            newCharacter.Level = (int)this.Level;
            newCharacter.MapId = (int)this.MapId;
            newCharacter.ZoneId = (int)this.ZoneId;
            newCharacter.PositionX = this.X;
            newCharacter.PositionY = this.Y;
            newCharacter.PositionZ = this.Z;
            newCharacter.Orientation = this.O;
            newCharacter.Guild = null;
            // 人物的坐骑航线标记点 32位值|32位值|32位值|32位值
            // 00000000000000000000000000000000|...|...|...
            // 以位域标示 1~TaxiId~32| 32~TaxiId~64|65~TaxiId~96|96~TaxiId~128
            newCharacter.TaxiMask = this.TaxiMask;
            newCharacter.IsGhost = false;
            newCharacter.IsCinematic = false;
            newCharacter.IsNeedRename = false;
            newCharacter.TotalTime = 0;
            newCharacter.LevelTime = 0;
            newCharacter.LogoutTime = DateTime.Now;
            newCharacter.CreatingTime = DateTime.Now;
            newCharacter.IsBanned = false;
            newCharacter.IsDelete = false;
            newCharacter.DeleteTime = DateTime.Now;

            CharacterHomeBind newCharacterHomeBind = new CharacterHomeBind( OneDatabase.Session );
            //newCharacterHomeBind.Owner = newCharacter.Oid;
            newCharacterHomeBind.MapId = (int)this.BindMapId;
            newCharacterHomeBind.ZoneId = (int)this.BindZoneId;
            newCharacterHomeBind.PositionX = this.BindX;
            newCharacterHomeBind.PositionY = this.BindY;
            newCharacterHomeBind.PositionZ = this.BindZ;

            foreach ( BaseSkill baseSkill in SkillManager.ToArray() )
            {
                WowSkill wowSkill = baseSkill as WowSkill;
                if ( wowSkill == null )
                    continue;

                if ( wowSkill.Serial != 0 )
                    continue;

                WowSkillTemplate wowSkillTemplate = wowSkill.SkillTemplate as WowSkillTemplate;
                if ( wowSkillTemplate == null )
                    continue;

                CharacterSkill newCharactersSkill = new CharacterSkill( OneDatabase.Session );
                wowSkill.Serial = newCharactersSkill.Oid;

                //newCharactersSkill.Owner = newCharacter.Oid;
                newCharactersSkill.SkillId = wowSkillTemplate.Serial;
                newCharactersSkill.Value = wowSkill.Level;
            }

            foreach ( BaseSpell baseSpell in SpellManager.ToArray() )
            {
                WowSpell wowSpell = baseSpell as WowSpell;
                if ( wowSpell == null )
                    continue;

                if ( wowSpell.Serial != 0 )
                    continue;

                WowSpellTemplate wowSpellTemplate = baseSpell.SpellTemplate as WowSpellTemplate;
                if ( wowSpellTemplate == null )
                    continue;

                CharacterSpell newCharacterSpell = new CharacterSpell( OneDatabase.Session );
                wowSpell.Serial = newCharacterSpell.Oid;

                //newCharacterSpell.Owner = newCharacter.Oid;
                newCharacterSpell.SpellId = wowSpellTemplate.Serial;
                //newCharacterSpell.Slot = baseSpell.Slot;
            }

            foreach ( WowActionBar baseActionBar in ActionBarManager.ToArray() )
            {
                WowActionBar wowActionBar = baseActionBar as WowActionBar;
                if ( baseActionBar == null )
                    continue;

                if ( wowActionBar.Serial != 0 )
                    continue;

                CharacterActionBar newCharactersAction = new CharacterActionBar( OneDatabase.Session );
                wowActionBar.Serial = newCharactersAction.Oid;

                //newCharactersAction.Owner= newCharacter.Oid;
                newCharactersAction.Slot = wowActionBar.ActionBarSlotId;
                newCharactersAction.ActionId = wowActionBar.Action;
                newCharactersAction.ActionType = wowActionBar.Type;
            }

            foreach ( BaseItem baseItem in BagManager.EquipmentBag.SubItemsToArray() )
            {
                WowItem wowItem = baseItem as WowItem;
                if ( wowItem == null )
                    continue;

                if ( wowItem.Serial != 0 )
                    continue;

                WowItemTemplate wowItemTemplate = wowItem.ItemTemplate as WowItemTemplate;
                if ( wowItemTemplate == null )
                    continue;

                CharacterItem newCharactersItem = new CharacterItem( OneDatabase.Session );
                wowItem.Serial = newCharactersItem.Oid;

                //newCharactersItem.Owner = newCharacter.Oid;
                newCharactersItem.ItemTemplateGuid = (ulong)wowItemTemplate.Serial;
                newCharactersItem.Amount = (int)wowItem.Amount;
                newCharactersItem.BagId = (int)BagManager.EquipmentBag.Item.SlotId;
                newCharactersItem.SlotId = (int)wowItem.SlotId;
            }

            foreach ( WowReputation baseReputation in ReputationManager.ToArray() )
            {
                WowReputation wowReputation = baseReputation as WowReputation;
                if ( wowReputation == null )
                    continue;

                if ( wowReputation.Serial != 0 )
                    continue;

                CharacterReputation newCharacterReputation = new CharacterReputation( OneDatabase.Session );
                wowReputation.Serial = newCharacterReputation.Oid;

                //newCharacterReputation.Owner = newCharacter.Oid;
                newCharacterReputation.FactionId = wowReputation.FactionId;
                newCharacterReputation.Reputation = wowReputation.Reputation;
                newCharacterReputation.Flag = wowReputation.Flag;
            }

            return true;
        }
 void ConfigureGauge() {
   int year = DateTime.Now.Year;
   int roomBookingsCount = new XPQuery<RoomBooking>(new UnitOfWork()).Where(rb => rb.StartTime.Year == year).Count();
   var rbcyScale = roomBookingsCurrentYearGauge.Scales[0];
   rbcyScale.Value = roomBookingsCount;
 }
示例#54
0
        public List<Vacation> GetByEmployee(Employee emp)
        {
            try
            {
                List<Vacation> vacations = new XPQuery<Vacation>(uow).Where(v => v.Employee.empID == emp.empID).OrderBy(e => e.Employee.DisplayName).ToList();

                return vacations;
            }
            catch (Exception exception1)
            {
                Exception innerException = exception1;
                throw new Exception(MethodBase.GetCurrentMethod().Name, innerException);
            }
        }
示例#55
0
        private void barEditItem3_EditValueChanged(object sender, EventArgs e)
        {
            _eventAggregator.PublishSwitchMotionDetectorEvent();

            var camConfig = _configurationManager.GetCameras().FirstOrDefault();
            if (camConfig == null) return;

            var modeName = ((int)switchMode.EditValue) == 0 ? "室内模式" : "室外模式";

            var modesQuery = new XPQuery<WorkModeCamSetting>(new Session());

            var selectedConfig = modesQuery.Where(cfg => cfg.ModeName == modeName).FirstOrDefault();

            if (selectedConfig == null)
            {
                return;
            }

            var worker = Task.Factory.StartNew(() =>
                                                             {
                                                                 var sanyocamera = new Damany.Component.SanyoNetCamera();
                                                                 sanyocamera.UserName = "******";
                                                                 sanyocamera.Password = "******";
                                                                 sanyocamera.IPAddress = camConfig.Location.Host;
                                                                 sanyocamera.Connect();

                                                                 sanyocamera.SetIris(IrisMode.Manual,
                                                                                     selectedConfig.IrisLevel);
                                                                 sanyocamera.SetShutter(
                                                                     ShutterMode.Short,
                                                                     selectedConfig.ShutterSpeed);

                                                                 sanyocamera.SetAGCMode(true, selectedConfig.DigitalGain);

                                                             });
            worker.ContinueWith(ant =>
                                 {
                                     if (ant.Exception != null)
                                     {
                                         var error = ant.Exception;
                                         _messageBoxService.ShowError("设置摄像头参数失败! 请确认摄像机已经正确连接。");
                                     }
                                 },
                                 CancellationToken.None,
                                 TaskContinuationOptions.OnlyOnFaulted,
                             TaskScheduler.FromCurrentSynchronizationContext());
        }