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)); }
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)); }
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")); }
//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); }
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)); }
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)); }
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; } }
/// <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))); }
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(); }
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)); }
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)); }
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(); } } }
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)); }
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(); }
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(); } } }