示例#1
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Date,Description,PostRef,Debit,Credit")] GeneralJournal generalJournal)
        {
            if (id != generalJournal.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(generalJournal);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GeneralJournalExists(generalJournal.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(generalJournal));
        }
        public async Task <IActionResult> AddEditJournalItem(int id)
        {
            var taskCode = await Task.FromResult(0);

            JournalItem    journalItem    = null;
            GeneralJournal generalJournal = null;

            if (id != 0)
            {
                // get journal item for edit
            }
            else
            {
                journalItem = new JournalItem();

                object tempDataJournal = null;
                if (TempData.TryGetValue("GeneralJournal", out tempDataJournal) == true)
                {
                    generalJournal = JsonConvert.DeserializeObject <GeneralJournal>((string)tempDataJournal);
                }

                journalItem.JournalId = generalJournal != null ? generalJournal.Id : 0;
            }

            var serializeObject = JsonConvert.SerializeObject(generalJournal);

            TempData["GeneralJournal"] = serializeObject;

            return(PartialView("~/Views/GeneralJournals/_FormJournalItem.cshtml", journalItem));
        }
示例#3
0
        protected void grdBalanceLine_RowInserted(object sender, DevExpress.Web.Data.ASPxDataInsertedEventArgs e)
        {
            if (cboBalanceInitAccount.Value == null || cboBalanceInitCurrency.Value == null)
            {
                return;
            }

            ObjectBO objectBO = new ObjectBO();

            NAS.DAL.CMS.ObjectDocument.Object debitJounalCMSObject = objectBO.CreateCMSObject(session, ObjectTypeEnum.OPENBALANCE_ACCOUTING);

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

            GeneralJournalObject debitGeneralJournalObject = null;

            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();

            grdBalanceLine.JSProperties.Add("cpRefreshTree", "refresh");
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Date,Desciption,Reference")] GeneralJournal generalJournal)
        {
            if (id != generalJournal.Id)
            {
                return(NotFound());
            }

            // Test tempdata is still exist
            //
            object tempDataJournal = null;

            if (TempData.TryGetValue("GeneralJournal", out tempDataJournal) == false)
            {
                // TempData exist.
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _generalJournalRepository.AddOrUpdateGeneralJournalAsync(generalJournal);
                }
                catch (Exception)
                {
                    throw;
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(generalJournal));
        }
        protected override OpResult _Store(GeneralJournal _obj)
        {
            if (_obj == null)
            {
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.ObjectIsNull, _obj, "GeneralJournal object cannot be created as it is null"));
            }

            if (Exists(_obj))
            {
                ExecuteNonQuery(GetQuery_UpdateQuery(_obj));
                foreach (GeneralJournalLine line in _obj.GeneralJournalLines)
                {
                    RepositoryMgr.GeneralJournalLineMgr.Store(line);
                }
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Updated, _obj));
            }

            ExecuteNonQuery(GetQuery_InsertQuery(_obj));
            if (_obj.GeneralJournalID == null)
            {
                _obj.GeneralJournalID = DbMgr.GetLastInsertID();
            }
            foreach (GeneralJournalLine line in _obj.GeneralJournalLines)
            {
                RepositoryMgr.GeneralJournalLineMgr.Store(line);
            }
            _obj.FromDb = true;
            return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Created, _obj));
        }
示例#6
0
 private Guid GetCMSObjectIdOfGeneralJounal(Guid generalJounalId)
 {
     if (generalJounalId != null && !generalJounalId.Equals(Guid.Empty))
     {
         NAS.DAL.CMS.ObjectDocument.Object cmsObject = null;
         using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
         {
             GeneralJournal       generalJournal       = uow.GetObjectByKey <GeneralJournal>(generalJounalId);
             GeneralJournalObject generalJournalObject =
                 generalJournal.GeneralJournalObjects.FirstOrDefault();
             if (generalJournalObject == null)
             {
                 return(Guid.Empty);
             }
             else
             {
                 cmsObject = generalJournalObject.ObjectId;
             }
             return(cmsObject.ObjectId);
         }
     }
     else
     {
         return(Guid.Empty);
     }
 }
        public override NAS.DAL.Accounting.Journal.GeneralJournal CreateGeneralJournal(DevExpress.Xpo.Session session, Guid transactionId, Guid accountId, NAS.BO.Accounting.Journal.Side side, double amount, string description, NAS.BO.Accounting.Journal.JounalTypeFlag journalType)
        {
            GeneralJournal generalJournal =
                base.CreateGeneralJournal(session,
                                          transactionId,
                                          accountId,
                                          side,
                                          amount,
                                          description,
                                          journalType);
            //Create CMS object...

            ObjectBO objectBO = new ObjectBO();

            NAS.DAL.CMS.ObjectDocument.Object CMSObject =
                objectBO.CreateCMSObject(session, NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_PAYMENT);

            GeneralJournalObject generalJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = generalJournal,
                ObjectId         = CMSObject
            };

            generalJournalObject.Save();

            return(generalJournal);
        }
        public async Task <GeneralJournal> AddOrUpdateGeneralJournalAsync(GeneralJournal generalJournal)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseAddress);
                    string requestUri            = "api/generaljournals";
                    HttpResponseMessage response = null;

                    if (generalJournal.Id == 0)
                    {
                        response = await client.PostAsJsonAsync <GeneralJournal>(requestUri, generalJournal);
                    }
                    else
                    {
                        response = await client.PutAsJsonAsync <GeneralJournal>(requestUri, generalJournal);
                    }

                    if (response.StatusCode == System.Net.HttpStatusCode.Created)
                    {
                        return(await response.Content.ReadAsAsync <GeneralJournal>());
                    }
                    else
                    {
                        throw new Exception(response.StatusCode.ToString());
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private DbDeleteStatement GetQuery_DeleteQuery(GeneralJournal _obj)
        {
            DbDeleteStatement clause = DbMgr.CreateDeleteClause();

            clause.DeleteFrom("GeneralJournals").Criteria.IsEqual("GeneralJournals", "GeneralJournalID", _obj.GeneralJournalID);

            return(clause);
        }
 protected override OpResult _Delete(GeneralJournal _obj)
 {
     if (Exists(_obj))
     {
         ExecuteNonQuery(GetQuery_DeleteQuery(_obj));
         return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.ExistsAndDeleted, _obj));
     }
     return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.NotExists, _obj, "GeneralJournal object cannot be deleted as it does not exist"));
 }
示例#11
0
        //public abstract IEnumerable<NAS.DAL.Accounting.Journal.Transaction> GetTransactions(Session session);

        //public abstract NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum GetObjectTypeEnum();

        public virtual GeneralJournal CreateGeneralJournal(
            Session session,
            Guid transactionId,
            Guid accountId,
            Side side,
            double amount,
            string description,
            JounalTypeFlag journalType)
        {
            GeneralJournal   ret              = null;
            ObjectBO         objectBO         = new ObjectBO();
            GeneralJournalBO generalJournalBO = new GeneralJournalBO();

            ret = generalJournalBO.CreateGeneralJournal(
                session,
                transactionId,
                accountId,
                side,
                amount,
                description,
                journalType);

            //Create CMS object...
            Guid objectTypeId = ret.TransactionId.TransactionObjects.First().ObjectId.ObjectTypeId.ObjectTypeId;

            NAS.DAL.CMS.ObjectDocument.Object CMSObject =
                objectBO.CreateCMSObject(session, objectTypeId);

            GeneralJournalObject generalJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = ret,
                ObjectId         = CMSObject
            };

            generalJournalObject.Save();

            if (session is UnitOfWork)
            {
                session.FlushChanges();
            }
            //Copy readonly data from transaction to journal
            //Get transaction object
            NAS.DAL.CMS.ObjectDocument.Object transactionCMSObject
                = session.GetObjectByKey <NAS.DAL.Accounting.Journal.Transaction>(transactionId)
                  .TransactionObjects.First().ObjectId;
            //Get general journal object
            NAS.DAL.CMS.ObjectDocument.Object generalJournalCMSObject =
                ret.GeneralJournalObjects.First().ObjectId;

            objectBO.CopyReadOnlyCustomFieldData(
                transactionCMSObject.ObjectId,
                generalJournalCMSObject.ObjectId);

            return(ret);
        }
示例#12
0
        public async Task <IActionResult> Create([Bind("ID,Date,Description,PostRef,Debit,Credit")] GeneralJournal generalJournal)
        {
            if (ModelState.IsValid)
            {
                _context.Add(generalJournal);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(generalJournal));
        }
        public async Task <IActionResult> Create(GeneralJournal generalJournal)
        {
            var taskCode = await Task.FromResult(0);

            if (ModelState.IsValid)
            {
                await _generalJournalRepository.AddOrUpdateGeneralJournalAsync(generalJournal);

                TempData.Clear();
                return(RedirectToAction(nameof(Index)));
            }
            return(View(generalJournal));
        }
示例#14
0
        public async Task <IActionResult> AddGeneralJournal([FromBody] GeneralJournal generalJournal, CancellationToken cancellationToken)
        {
            try
            {
                var result = await _generalJournalRepository.AddGeneralJournal(generalJournal, cancellationToken);

                return(this.CreatedAtRoute("GetGeneralJournal", new { id = result.Id }, result));
            }
            catch (Exception)
            {
                return(this.BadRequest());
            }
        }
        public async Task <GeneralJournal> AddGeneralJournal(GeneralJournal generalJournal, CancellationToken cancellationToken)
        {
            // Validate general journal.
            // ??

            if (_journalValidator.Validate(generalJournal) == false)
            {
                throw new Exception("Journal is not valid.");
            }

            _generalJournals.Add(generalJournal);

            return(await Task.FromResult(generalJournal));
        }
示例#16
0
        protected void cpAllocation_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
        {
            CriteriaOperator _filter;

            string[] p = e.Parameter.Split('|');
            switch (p[0])
            {
            case "allocation":

                // Check not has Object to Create

                GeneralJournal debitGeneralJournal = session.GetObjectByKey <GeneralJournal>(Guid.Parse(p[1]));
                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();
                    }
                }

                CriteriaOperator     filter = new BinaryOperator("GeneralJournalId.GeneralJournalId", Guid.Parse(p[1]), BinaryOperatorType.Equal);
                GeneralJournalObject generalJournalObject = session.FindObject <GeneralJournalObject>(filter);

                if (generalJournalObject != null)
                {
                    NASCustomFieldDataGridView1.CMSObjectId = Guid.Parse(generalJournalObject.ObjectId.ObjectId.ToString());
                    NASCustomFieldDataGridView1.DataBind();
                }
                break;

            default:
                break;
            }
        }
示例#17
0
        /// <summary>
        /// Performs the playback of actions in this module.
        /// </summary>
        /// <remarks>You should not call this method directly, instead pass the module
        /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method
        /// that will in turn invoke this method.</remarks>
        void ITestModule.Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Settings._SA_Get_AllPayableSettings();

            // Setup a new account
            GL_ACCOUNT newAccount = new GL_ACCOUNT();


            if (this._varAccount == "")
            {
                newAccount.acctNumber = "590" + StringFunctions.RandStr("9(1)") + " " + StringFunctions.RandStr("A(9)");                        // the db is setup to use 4 digits accounts

                GeneralLedger._SA_Create(newAccount);
                GeneralLedger._SA_Close();
            }
            else
            {
                newAccount.acctNumber = this._varAccount;
            }

            // Post an entry in GJ
            GENERAL_JOURNAL genJournal = new GENERAL_JOURNAL();
            GL_ACCOUNT      account2   = new GL_ACCOUNT();
            GJ_ROW          row        = new GJ_ROW();
            GJ_ROW          row2       = new GJ_ROW();

            string amount = Functions.RandCashAmount();

            row.Account  = newAccount;
            row.debitAmt = amount;
            genJournal.GridRows.Add(row);

            // Using the currency account will need foreign currency setup
            row2.Account   = Variables.globalSettings.PayableSettings.CurrencyAccounts[0].BankAccount;
            row2.creditAmt = amount;
            genJournal.GridRows.Add(row2);

            genJournal.source = StringFunctions.RandStr("A(8)");

            // to be continued
            GeneralJournal._SA_Create(genJournal);
            GeneralJournal._SA_Close();
        }
 private Guid GetCMSObjectIdOfGeneralJounal(Guid generalJounalId)
 {
     if (generalJounalId != null && !generalJounalId.Equals(Guid.Empty))
     {
         NAS.DAL.CMS.ObjectDocument.Object cmsObject = null;
         using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
         {
             GeneralJournal       generalJournal       = uow.GetObjectByKey <GeneralJournal>(generalJounalId);
             GeneralJournalObject generalJournalObject =
                 generalJournal.GeneralJournalObjects.FirstOrDefault();
             if (generalJournalObject == null)
             {
                 ObjectBO objectBO = new ObjectBO();
                 NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum objectType = ObjectTypeEnum.VOUCHER_PAYMENT;;
                 if (Strategy.GetConcreteVoucherTransactionType().Equals(typeof(NAS.DAL.Accounting.Journal.ReceiptVouchesTransaction)))
                 {
                     objectType = NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_RECEIPT;
                 }
                 else if (Strategy.GetConcreteVoucherTransactionType().Equals(typeof(NAS.DAL.Accounting.Journal.PaymentVouchesTransaction)))
                 {
                     objectType = NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_PAYMENT;
                 }
                 else
                 {
                     throw new Exception("Create object the specific type is out of scope");
                 }
                 cmsObject = objectBO.CreateCMSObject(uow, objectType);
                 GeneralJournalObject newTransactionObject = new GeneralJournalObject(uow)
                 {
                     ObjectId         = cmsObject,
                     GeneralJournalId = generalJournal
                 };
                 uow.CommitChanges();
             }
             else
             {
                 cmsObject = generalJournalObject.ObjectId;
             }
             return(cmsObject.ObjectId);
         }
     }
     else
     {
         return(Guid.Empty);
     }
 }
        public async Task <IActionResult> AddEditJournalItem(int id, JournalItem journalItem)
        {
            GeneralJournal generalJournal = null;

            try
            {
                var taskCode = await Task.FromResult(0);

                if (ModelState.IsValid == true)
                {
                    bool isNew = id.Equals(0);

                    if (isNew == true)
                    {
                        object tempJournal = null;

                        if (TempData.TryGetValue("GeneralJournal", out tempJournal) == true)
                        {
                            generalJournal = JsonConvert.DeserializeObject <GeneralJournal>((string)tempJournal);

                            if (generalJournal.Id.Equals(id) == false)
                            {
                                return(NotFound());
                            }
                            else
                            {
                                generalJournal.Items.Add(journalItem);
                            }
                        }
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            var serializeObject = JsonConvert.SerializeObject(generalJournal);

            TempData["GeneralJournal"] = serializeObject;

            return(RedirectToAction(nameof(Create)));
        }
示例#20
0
        protected void grdBookingDetail_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
        {
            CriteriaOperator filter = new BinaryOperator("SalesInvoiceInventoryTransactionId", Guid.Parse(Session["SaleBillId"].ToString()), BinaryOperatorType.Equal);
            XPCollection <SalesInvoiceInventoryAccountingTransaction> purchaseInvoiceTransaction = new XPCollection <SalesInvoiceInventoryAccountingTransaction>(session, filter);

            if (purchaseInvoiceTransaction.Count > 0)
            {
                foreach (SalesInvoiceInventoryAccountingTransaction item in purchaseInvoiceTransaction)
                {
                    if (item.RowStatus == ROW_NOT_DELETE)
                    {
                        e.Cancel = true;
                        return;
                    }
                }
            }

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

            generalJournal.RowStatus = ROW_DELETE;
            generalJournal.Save();
        }
示例#21
0
        protected void grdBalanceLine_CustomUnboundColumnData(object sender, ASPxGridViewColumnDataEventArgs e)
        {
            Guid key = Guid.Parse(e.GetListSourceFieldValue(e.ListSourceRowIndex, grdBalanceLine.KeyFieldName).ToString());

            if (e.Column.FieldName == "TransactionId.Code")
            {
                GeneralJournal generalJournal = session.GetObjectByKey <GeneralJournal>(key);

                if (generalJournal != null)
                {
                    e.Value = generalJournal.TransactionId.Code;
                }
            }
            else if (e.Column.FieldName == "TransactionId.Description")
            {
                GeneralJournal generalJournal = session.GetObjectByKey <GeneralJournal>(key);

                if (generalJournal != null)
                {
                    e.Value = generalJournal.TransactionId.Description;
                }
            }
        }
        public IActionResult Create()
        {
            object         tempDataJournal = null;
            GeneralJournal generalJournal  = null;

            if (TempData.TryGetValue("GeneralJournal", out tempDataJournal) == true)
            {
                generalJournal = JsonConvert.DeserializeObject <GeneralJournal>((string)tempDataJournal);
            }
            else
            {
                generalJournal             = new GeneralJournal();
                generalJournal.Date        = DateTime.Now;
                generalJournal.Description = "Description";
                generalJournal.Reference   = "Reference";
            }

            var serializeObject = JsonConvert.SerializeObject(generalJournal);

            TempData["GeneralJournal"] = serializeObject;

            return(View(generalJournal));
        }
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //public async Task<IActionResult> Create(GeneralJournal generalJournal)
        //{
        //    var taskCode = await Task.FromResult(0);

        //    if (ModelState.IsValid)
        //    {
        //        await _generalJournalRepository.AddOrUpdateGeneralJournalAsync(generalJournal);
        //        TempData.Clear();
        //        return RedirectToAction(nameof(Index));
        //    }
        //    return View(generalJournal);
        //}

        // GET: Journals/Edit/5
        public async Task <IActionResult> Edit(int id)
        {
            //if (id == null)
            //{
            //    return NotFound();
            //}

            var taskCode = await Task.FromResult(0);

            object         tempJournal    = null;
            GeneralJournal generalJournal = null;

            if (TempData.TryGetValue("GeneralJournal", out tempJournal) == true)
            {
                generalJournal = JsonConvert.DeserializeObject <GeneralJournal>((string)tempJournal);

                if (generalJournal.Id.Equals(id) == false)
                {
                    generalJournal = await _generalJournalRepository.GetGeneralJournalAsync(id);
                }
            }
            else
            {
                generalJournal = await _generalJournalRepository.GetGeneralJournalAsync(id);
            }

            if (generalJournal == null)
            {
                return(NotFound());
            }

            var serializeObject = JsonConvert.SerializeObject(generalJournal);

            TempData["GeneralJournal"] = serializeObject;

            return(View(generalJournal));
        }
示例#24
0
 private Guid GetCMSObjectIdOfGeneralJounal(Guid generalJounalId)
 {
     if (generalJounalId != null && !generalJounalId.Equals(Guid.Empty))
     {
         NAS.DAL.CMS.ObjectDocument.Object cmsObject = null;
         using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
         {
             GeneralJournal       generalJournal       = uow.GetObjectByKey <GeneralJournal>(generalJounalId);
             GeneralJournalObject generalJournalObject =
                 generalJournal.GeneralJournalObjects.FirstOrDefault();
             if (generalJournalObject == null)
             {
                 return(Guid.Empty);
                 //ObjectBO objectBO = new ObjectBO();
                 //NAS.DAL.CMS.ObjectDocument.ObjectTypeEnum objectType = ObjectTypeEnum.NAAN_DEFAULT; ;
                 //objectType = Strategy.GetObjectTypeEnum();
                 //cmsObject = objectBO.CreateCMSObject(uow, objectType);
                 //GeneralJournalObject newTransactionObject = new GeneralJournalObject(uow)
                 //{
                 //    ObjectId = cmsObject,
                 //    GeneralJournalId = generalJournal
                 //};
                 //uow.CommitChanges();
             }
             else
             {
                 cmsObject = generalJournalObject.ObjectId;
             }
             return(cmsObject.ObjectId);
         }
     }
     else
     {
         return(Guid.Empty);
     }
 }
        private DbInsertStatement GetQuery_InsertQuery(GeneralJournal _obj)
        {
            Dictionary <string, DbFieldEntry> fields = GetFields(_obj);

            return(DbMgr.CreateInsertClause("GeneralJournals", fields));
        }
示例#26
0
        protected override void CloneBillTransaction(Session session, Guid billId, ref Bill ret)
        {
            SaleInvoiceTransactionBO invoiceTransactionBO = new SaleInvoiceTransactionBO();
            var      transactions = invoiceTransactionBO.GetTransactions(session, billId);
            ObjectBO objectBO     = new ObjectBO();

            foreach (var invoiceTransaction in transactions)
            {
                SaleInvoiceTransaction sourceSaleInvoiceTransaction =
                    (SaleInvoiceTransaction)invoiceTransaction;
                SaleInvoiceTransaction saleInvoiceTransaction = new SaleInvoiceTransaction(session)
                {
                    Amount         = sourceSaleInvoiceTransaction.Amount,
                    Code           = String.Format("BT_{0}", ret.Code),
                    CreateDate     = DateTime.Now,
                    Description    = String.Format("BT_{0}", ret.Code),
                    IssueDate      = sourceSaleInvoiceTransaction.IssueDate,
                    SalesInvoiceId = (NAS.DAL.Invoice.SalesInvoice)ret,
                    RowStatus      = Utility.Constant.ROWSTATUS_ACTIVE,
                    UpdateDate     = DateTime.Now
                };
                saleInvoiceTransaction.Save();
                //Create CMS Object for Transaction
                NAS.DAL.CMS.ObjectDocument.Object transactionCMSObject =
                    objectBO.CreateCMSObject(session, DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
                TransactionObject transactionObject = new TransactionObject(session)
                {
                    ObjectId      = transactionCMSObject,
                    TransactionId = saleInvoiceTransaction
                };
                transactionObject.Save();
                //Clone GeneralJournal
                var generalJournals = sourceSaleInvoiceTransaction.GeneralJournals
                                      .Where(r => r.RowStatus >= Utility.Constant.ROWSTATUS_ACTIVE);
                foreach (var sourceGeneralJournal in generalJournals)
                {
                    GeneralJournal generalJournal = new GeneralJournal(session)
                    {
                        AccountId     = sourceGeneralJournal.AccountId,
                        CreateDate    = DateTime.Now,
                        Credit        = sourceGeneralJournal.Credit,
                        CurrencyId    = sourceGeneralJournal.CurrencyId,
                        Debit         = sourceGeneralJournal.Debit,
                        Description   = sourceGeneralJournal.Description,
                        JournalType   = sourceGeneralJournal.JournalType,
                        RowStatus     = Utility.Constant.ROWSTATUS_ACTIVE,
                        TransactionId = saleInvoiceTransaction
                    };
                    generalJournal.Save();
                    //Create CMS object for GeneralJournal
                    NAS.DAL.CMS.ObjectDocument.Object generalJournalCMSObject =
                        objectBO.CreateCMSObject(session, DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
                    GeneralJournalObject generalJournalObject = new GeneralJournalObject(session)
                    {
                        GeneralJournalId = generalJournal,
                        ObjectId         = generalJournalCMSObject
                    };
                    generalJournalObject.Save();
                }
            }
        }
示例#27
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");
        }
 private DbUpdateStatement GetQuery_UpdateQuery(GeneralJournal _obj)
 {
     return(DbMgr.CreateUpdateClause("GeneralJournals", GetFields(_obj), "GeneralJournalID", _obj.GeneralJournalID));
 }
示例#29
0
        public void BillTransactionInit(Session session,
                                        Guid BillId,
                                        double TotalAmount,
                                        double DiscountAmount,
                                        double TaxAmount,
                                        double ItemAmount
                                        )
        {
            CriteriaOperator filter  = new BinaryOperator("Code", DefaultAccountEnum.NAAN_DEFAULT.ToString(), BinaryOperatorType.Equal);
            Account          account = session.FindObject <Account>(filter);

            PurchaseInvoiceTransaction saleInvoiceTransaction = new PurchaseInvoiceTransaction(session);

            saleInvoiceTransaction.TransactionId = Guid.NewGuid();
            saleInvoiceTransaction.CreateDate    = saleInvoiceTransaction.IssueDate = DateTime.Now;
            saleInvoiceTransaction.Amount        = TotalAmount;
            saleInvoiceTransaction.RowStatus     = 0;

            saleInvoiceTransaction.Save();

            ObjectBO objectBO = new ObjectBO();

            NAS.DAL.CMS.ObjectDocument.Object transactionCMSObject =
                objectBO.CreateCMSObject(session,
                                         DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);

            TransactionObject transactionObject = new TransactionObject(session)
            {
                ObjectId      = transactionCMSObject,
                TransactionId = saleInvoiceTransaction
            };

            transactionObject.Save();

            // total
            GeneralJournal generalJournal = new GeneralJournal(session);

            generalJournal.GeneralJournalId = Guid.NewGuid();
            generalJournal.TransactionId    = session.GetObjectByKey <Transaction>(saleInvoiceTransaction.TransactionId);
            generalJournal.RowStatus        = 0;
            generalJournal.JournalType      = 'A';

            generalJournal.AccountId = account;
            generalJournal.Debit     = TotalAmount;
            generalJournal.Save();

            GeneralJournalObject debitGeneralJournalObject = null;

            NAS.DAL.CMS.ObjectDocument.Object debitJounalCMSObject =
                objectBO.CreateCMSObject(session,
                                         DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
            debitGeneralJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = generalJournal,
                ObjectId         = debitJounalCMSObject
            };

            debitGeneralJournalObject.Save();

            // Discount
            generalJournal = new GeneralJournal(session);
            generalJournal.GeneralJournalId = Guid.NewGuid();
            generalJournal.TransactionId    = session.GetObjectByKey <Transaction>(saleInvoiceTransaction.TransactionId);
            generalJournal.RowStatus        = 0;
            generalJournal.JournalType      = 'A';

            generalJournal.AccountId = account;
            generalJournal.Credit    = DiscountAmount;
            generalJournal.Save();

            debitJounalCMSObject =
                objectBO.CreateCMSObject(session,
                                         DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
            debitGeneralJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = generalJournal,
                ObjectId         = debitJounalCMSObject
            };

            debitGeneralJournalObject.Save();

            // Tax

            generalJournal = new GeneralJournal(session);
            generalJournal.GeneralJournalId = Guid.NewGuid();
            generalJournal.TransactionId    = session.GetObjectByKey <Transaction>(saleInvoiceTransaction.TransactionId);
            generalJournal.RowStatus        = 0;
            generalJournal.JournalType      = 'A';

            generalJournal.AccountId = account;
            generalJournal.Credit    = DiscountAmount;
            generalJournal.Save();

            debitJounalCMSObject =
                objectBO.CreateCMSObject(session,
                                         DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
            debitGeneralJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = generalJournal,
                ObjectId         = debitJounalCMSObject
            };

            debitGeneralJournalObject.Save();

            // Item
            generalJournal = new GeneralJournal(session);
            generalJournal.GeneralJournalId = Guid.NewGuid();
            generalJournal.TransactionId    = session.GetObjectByKey <Transaction>(saleInvoiceTransaction.TransactionId);
            generalJournal.RowStatus        = 0;
            generalJournal.JournalType      = 'A';

            generalJournal.AccountId = account;
            generalJournal.Credit    = ItemAmount;
            generalJournal.Save();

            debitJounalCMSObject =
                objectBO.CreateCMSObject(session,
                                         DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE);
            debitGeneralJournalObject = new GeneralJournalObject(session)
            {
                GeneralJournalId = generalJournal,
                ObjectId         = debitJounalCMSObject
            };

            debitGeneralJournalObject.Save();
        }
示例#30
0
        public override void CreateTransaction(Guid voucherId, string code, DateTime issuedDate, double amount, string description)
        {
            UnitOfWork uow = null;

            try
            {
                GeneralJournalBO generalJournalBO = new GeneralJournalBO();
                uow = XpoHelper.GetNewUnitOfWork();
                //Get the origin artifact
                ReceiptVouches receiptVouches = uow.GetObjectByKey <ReceiptVouches>(voucherId);

                //Create new transaction
                ReceiptVouchesTransaction transaction = new ReceiptVouchesTransaction(uow)
                {
                    TransactionId    = Guid.NewGuid(),
                    Amount           = amount,
                    Code             = code,
                    CreateDate       = DateTime.Now,
                    Description      = description,
                    IssueDate        = issuedDate,
                    ReceiptVouchesId = receiptVouches,
                    RowStatus        = Utility.Constant.ROWSTATUS_ACTIVE,
                    UpdateDate       = DateTime.Now
                };
                uow.FlushChanges();
                //Create double entry
                //Create debit jounal
                GeneralJournal debitGeneralJournal = generalJournalBO.CreateGeneralJournal
                                                     (
                    uow,
                    transaction.TransactionId,
                    Account.GetDefault(uow, DefaultAccountEnum.NAAN_DEFAULT).AccountId,
                    Side.DEBIT,
                    amount,
                    description,
                    JounalTypeFlag.ACTUAL
                                                     );
                //Create credit jounal
                GeneralJournal creditGeneralJournal = generalJournalBO.CreateGeneralJournal
                                                      (
                    uow,
                    transaction.TransactionId,
                    Account.GetDefault(uow, DefaultAccountEnum.NAAN_DEFAULT).AccountId,
                    Side.CREDIT,
                    amount,
                    description,
                    JounalTypeFlag.ACTUAL
                                                      );

                ObjectBO objectBO = new ObjectBO();
                //Create CMS object for transaction
                NAS.DAL.CMS.ObjectDocument.Object transactionCMSObject =
                    objectBO.CreateCMSObject(uow,
                                             DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_RECEIPT);

                TransactionObject transactionObject = new TransactionObject(uow)
                {
                    ObjectId      = transactionCMSObject,
                    TransactionId = transaction
                };

                GeneralJournalObject debitGeneralJournalObject  = null;
                GeneralJournalObject creditGeneralJournalObject = null;
                //Create CMS object for debit jounal
                NAS.DAL.CMS.ObjectDocument.Object debitJounalCMSObject =
                    objectBO.CreateCMSObject(uow,
                                             DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_RECEIPT);
                debitGeneralJournalObject = new GeneralJournalObject(uow)
                {
                    GeneralJournalId = debitGeneralJournal,
                    ObjectId         = debitJounalCMSObject
                };

                //Create CMS object for debit jounal
                NAS.DAL.CMS.ObjectDocument.Object creditJounalCMSObject =
                    objectBO.CreateCMSObject(uow,
                                             DAL.CMS.ObjectDocument.ObjectTypeEnum.VOUCHER_RECEIPT);
                creditGeneralJournalObject = new GeneralJournalObject(uow)
                {
                    GeneralJournalId = creditGeneralJournal,
                    ObjectId         = creditJounalCMSObject
                };

                uow.FlushChanges();

                //Copy readonly data from original artifact
                //Get origin CMS object
                VoucherObject voucherObject = receiptVouches.VoucherObjects.FirstOrDefault();
                if (voucherObject != null)
                {
                    NAS.DAL.CMS.ObjectDocument.Object CMSVoucherObject = voucherObject.ObjectId;
                    //Copy artifact's data to cms object of transaction
                    objectBO.CopyReadOnlyCustomFieldData(
                        CMSVoucherObject.ObjectId,
                        transactionCMSObject.ObjectId);
                    //Copy artifact's data to cms object of default general journals
                    objectBO.CopyReadOnlyCustomFieldData(
                        CMSVoucherObject.ObjectId,
                        debitJounalCMSObject.ObjectId);

                    objectBO.CopyReadOnlyCustomFieldData(
                        CMSVoucherObject.ObjectId,
                        creditJounalCMSObject.ObjectId);
                }

                uow.CommitChanges();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (uow != null)
                {
                    uow.Dispose();
                }
            }
        }