Beispiel #1
0
        protected void grdBalanceLine_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
        {
            if (cboBalanceInitAccount.Value == null)
            {
                grdBalanceLine.JSProperties.Add("cpAccountInvalid", "invalid");
                e.Cancel = true;
                return;
            }

            if (cboBalanceInitCurrency.Value == null)
            {
                grdBalanceLine.JSProperties.Add("cpCurrencyInvalid", "invalid");
                e.Cancel = true;
                return;
            }

            BalanceForwardTransaction balanceForwardTransaction = new BalanceForwardTransaction(session);

            balanceForwardTransaction.TransactionId = Guid.NewGuid();
            balanceForwardTransaction.Code          = e.NewValues["TransactionId.Code"] as string;
            balanceForwardTransaction.Description   = e.NewValues["TransactionId.Description"] as string;
            balanceForwardTransaction.RowStatus     = 1;
            balanceForwardTransaction.IssueDate     = balanceForwardTransaction.CreateDate = DateTime.Now;

            if (cboAccountPeriod.Value == null)
            {
                throw new Exception("Chưa chọn kỳ kế toán !");
            }

            AccountingPeriod _accountingPeriod = session.GetObjectByKey <AccountingPeriod>(Guid.Parse(cboAccountPeriod.Value.ToString()));

            if (_accountingPeriod == null)
            {
                throw new Exception("Chưa chọn kỳ kế toán !");
            }

            balanceForwardTransaction.AccountingPeriodId = _accountingPeriod;

            balanceForwardTransaction.Save();

            e.NewValues["GeneralJournalId"] = Guid.NewGuid().ToString();

            ASPxSpinEdit c = (ASPxSpinEdit)grdBalanceLine.FindEditRowCellTemplateControl((GridViewDataColumn)grdBalanceLine.Columns["Debit"], "colBalanceInitDebit");

            e.NewValues["Debit"] = c.Value.ToString();
            c = (ASPxSpinEdit)grdBalanceLine.FindEditRowCellTemplateControl((GridViewDataColumn)grdBalanceLine.Columns["Credit"], "colBalanceInitCredit");
            e.NewValues["Credit"] = c.Value.ToString();

            e.NewValues["RowStatus"]         = "1";
            e.NewValues["AccountId!Key"]     = cboBalanceInitAccount.Value.ToString();
            e.NewValues["CurrencyId!Key"]    = cboBalanceInitCurrency.Value.ToString();
            e.NewValues["TransactionId!Key"] = balanceForwardTransaction.TransactionId.ToString();

            BalanceLineSetData();
        }
Beispiel #2
0
        protected void grdBalanceLine_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            if (cboBalanceInitAccount.Value == null)
            {
                grdBalanceLine.JSProperties.Add("cpAccountInvalid", "invalid");
                e.Cancel = true;
                return;
            }

            if (cboBalanceInitCurrency.Value == null)
            {
                grdBalanceLine.JSProperties.Add("cpCurrencyInvalid", "invalid");
                e.Cancel = true;
                return;
            }

            CriteriaOperator _filter = null;

            BalanceForwardTransaction balanceForwardTransaction = session.GetObjectByKey <BalanceForwardTransaction>(Guid.Parse(e.OldValues["TransactionId!Key"].ToString()));

            if (balanceForwardTransaction != null)
            {
                if (cboAccountPeriod.Value == null)
                {
                    throw new Exception("Chưa chọn kỳ kế toán !");
                }

                AccountingPeriod _accountingPeriod = session.GetObjectByKey <AccountingPeriod>(Guid.Parse(cboAccountPeriod.Value.ToString()));

                if (_accountingPeriod == null)
                {
                    throw new Exception("Chưa chọn kỳ kế toán !");
                }

                balanceForwardTransaction.AccountingPeriodId = _accountingPeriod;

                balanceForwardTransaction.Code        = e.NewValues["TransactionId.Code"].ToString();
                balanceForwardTransaction.Description = e.NewValues["TransactionId.Description"].ToString();

                balanceForwardTransaction.Save();
            }

            ASPxSpinEdit c = (ASPxSpinEdit)grdBalanceLine.FindEditRowCellTemplateControl((GridViewDataColumn)grdBalanceLine.Columns["Debit"], "colBalanceInitDebit");

            e.NewValues["Debit"] = c.Value.ToString();
            c = (ASPxSpinEdit)grdBalanceLine.FindEditRowCellTemplateControl((GridViewDataColumn)grdBalanceLine.Columns["Credit"], "colBalanceInitCredit");
            e.NewValues["Credit"] = c.Value.ToString();

            e.NewValues["AccountId!Key"]  = cboBalanceInitAccount.Value.ToString();
            e.NewValues["CurrencyId!Key"] = cboBalanceInitCurrency.Value.ToString();

            // Check not has Object to Create

            GeneralJournal debitGeneralJournal = session.GetObjectByKey <GeneralJournal>(Guid.Parse(e.OldValues["GeneralJournalId"].ToString()));

            if (debitGeneralJournal != null)
            {
                _filter = new BinaryOperator("GeneralJournalId.GeneralJournalId", debitGeneralJournal.GeneralJournalId, BinaryOperatorType.Equal);
                GeneralJournalObject debitGeneralJournalObject = session.FindObject <GeneralJournalObject>(_filter);
                if (debitGeneralJournalObject == null)
                {
                    ObjectBO objectBO = new ObjectBO();
                    NAS.DAL.CMS.ObjectDocument.Object debitJounalCMSObject = objectBO.CreateCMSObject(session, ObjectTypeEnum.OPENBALANCE_ACCOUTING);

                    debitGeneralJournalObject = new GeneralJournalObject(session);
                    debitGeneralJournalObject.GeneralJournalId = debitGeneralJournal;
                    debitGeneralJournalObject.ObjectId         = debitJounalCMSObject;
                    debitGeneralJournalObject.Save();

                    ObjectType objectType = NAS.DAL.CMS.ObjectDocument.ObjectType.GetDefault(session, ObjectTypeEnum.OPENBALANCE_ACCOUTING);

                    GeneralJournalCustomType generalJournalCustomType = new GeneralJournalCustomType(session);
                    generalJournalCustomType.GeneralJournalId = debitGeneralJournal;
                    generalJournalCustomType.ObjectTypeId     = objectType;
                    generalJournalCustomType.Save();
                }
            }

            BalanceLineSetData();
            grdBalanceLine.JSProperties.Add("cpRefreshTree", "refresh");
        }