/// <summary> /// Calculates additional fee for the merchant according to the formula: /// - Invoice Fee should be included in the fee for first transaction of the month /// - If there aren't any transactions that month, Merchant should not be charged Invoice Fee /// - If transaction fee is 0 after applying discounts, InvoiceFee should not be added /// If merchant has been charged then returns 0.00 /// </summary> /// <param name="transactionObject">Payment transaction object</param> /// <returns>Additional fee</returns> protected virtual decimal CalculateAdditionalFirstDayFee(TransactionObject transactionObject) { return(!MerchantHasTransactionsForMonth(transactionObject) && CalculateTransactionFee(transactionObject) > 0 ? InvoiceFixedFee : 0.00m); }
public TransactionObject AddLesson(AddLessonFormData alFormData) { TransactionObject response = new TransactionObject(); try { Education education = educationManager.GetEducation(alFormData.StudentID, alFormData.LessonID); Student selectedStudent = studentManager.GetStudent(alFormData.StudentID); Lesson selectedLesson = lessonManager.GetLesson(alFormData.LessonID); if (education != null) { Period currentPeriod = periodManager.GetPeriod(selectedLesson.Period.Year, selectedLesson.Period.Semester); Note note = new Note { ResultPoint = alFormData.Result, Description = alFormData.Description, EffectRate = alFormData.Effect, Education = education }; note.Education = education; education.Notes.Add(note); noteManager.AddNote(note); } else { education = new Education(); education.Student = selectedStudent; selectedStudent.Educations.Add(education); education.Lesson = selectedLesson; selectedLesson.Educations.Add(education); Note note = new Note { ResultPoint = alFormData.Result, Description = alFormData.Description, EffectRate = alFormData.Effect, Education = education }; education.Notes.Add(note); note.Education = education; noteManager.AddNote(note); educationManager.AddEducation(education); } double avg = 0; education.Notes.ForEach(note => avg += (note.EffectRate / 100) * note.ResultPoint); education.Average = avg; uow.Save(); response.IsSuccess = true; } catch (Exception ex) { response.IsSuccess = false; response.Explanation = base.GetExceptionMessage(ex); } return(response); }
public static CharacterTransactionCollection GetCharacterTransactionList(Database db, EveApiId id, string CharID, string beforeTransId, bool bAutoWalk, bool bUseCache) { if (!id.IsFullKey()) { return(new CharacterTransactionCollection()); // return empty } CharacterTransactionCollection journal = null; long remainder = 0; long lastCount = 0; do { string url = String.Format("{0}{1}?userID={2}&characterID={3}&apiKey={4}&accountKey=1000", ApiSite, CharWalletTransactions, id.UserId, CharID, id.Key); if (null != beforeTransId && 0 < long.Parse(beforeTransId)) { url += String.Format("&beforeTransID={0}", beforeTransId); } string str = CheckRequestCache(db, RequestID.CharacterJournal, id.UserId, url); if (null == str) { str = new StreamReader(openUrl(url)).ReadToEnd(); WriteRequestCache(db, RequestID.CharacterJournal, id.UserId, url, str); } else if (!bUseCache) { break; // not allowed to use caching } XmlDocument xmlDoc = GetXml(new StringReader(str)); if (null == xmlDoc) { break; } if (null == journal) { journal = new CharacterTransactionCollection(CharID, xmlDoc); } else { journal.AppendList(CharID, xmlDoc); } if (null == journal) { remainder = -1; } else { IDBCollectionContents con = (IDBCollectionContents)journal; if (0 == con.Count()) { remainder = -1; } else if (lastCount == con.Count()) { remainder = -1; } else { lastCount = con.Count(); remainder = con.Count() % 1000; if (0 == remainder) { IDBRecord rec1 = con.GetRecordInterface(con.Count() - 1000); TransactionObject obj1 = (TransactionObject)rec1.GetDataObject(); IDBRecord rec2 = con.GetRecordInterface(con.Count() - 1); TransactionObject obj2 = (TransactionObject)rec2.GetDataObject(); beforeTransId = Math.Min(obj1.transID, obj2.transID).ToString(); TimeSpan span = (obj2.date > obj1.date) ? obj2.date.Subtract(obj1.date) : obj1.date.Subtract(obj2.date); if (span.Days >= 7) { remainder = -1; // more than a week, so no more accessable } } } } } while (0 == remainder && bAutoWalk); if (null == journal) { return(new CharacterTransactionCollection()); } return(journal); }
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(); } } }
public override void TransactionInfo(string strTransactionID) { Reset(); TransactionId = strTransactionID; m_transactionObj = Client.GetTransactionDetails(GenerateToken(), strTransactionID); }
public override bool Save( DevExpress.Xpo.Session session, Guid billId, string billCode, DateTime issuedDate, DAL.Nomenclature.Organization.Organization sourceOrganizationBill, DAL.Nomenclature.Organization.Person targetOrganizationBill) { try { //Get bill by ID NAS.DAL.Invoice.SalesInvoice bill = session.GetObjectByKey <NAS.DAL.Invoice.SalesInvoice>(billId); if (bill == null) { throw new Exception("Could not found bill"); } bill.Code = billCode; bill.IssuedDate = issuedDate; bill.SourceOrganizationId = sourceOrganizationBill; bill.TargetOrganizationId = targetOrganizationBill; bill.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; bill.Save(); //Create default actual transaction CriteriaOperator criteria = CriteriaOperator.And( new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual), CriteriaOperator.Or( new ContainsOperator("GeneralJournals", new BinaryOperator("JournalType", JounalTypeConstant.ACTUAL) ), new BinaryOperator(new AggregateOperand("GeneralJournals", Aggregate.Count), 0, BinaryOperatorType.Equal) ) ); var actualSaleInvoiceTransactions = bill.SaleInvoiceTransactions; actualSaleInvoiceTransactions.Criteria = criteria; if (actualSaleInvoiceTransactions == null || actualSaleInvoiceTransactions.Count == 0) { SaleInvoiceTransaction saleInvoiceTransaction = new SaleInvoiceTransaction(session) { Code = "BT_" + bill.Code, CreateDate = DateTime.Now, Description = "BT_" + bill.Code, IssueDate = issuedDate, RowStatus = Utility.Constant.ROWSTATUS_ACTIVE, UpdateDate = DateTime.Now, SalesInvoiceId = bill }; saleInvoiceTransaction.Save(); ObjectBO objectBO = new ObjectBO(); NAS.DAL.CMS.ObjectDocument.Object cmsObject = objectBO.CreateCMSObject(session, DAL.CMS.ObjectDocument.ObjectTypeEnum.INVOICE_SALE); TransactionObject transactionObject = new TransactionObject(session) { ObjectId = cmsObject, TransactionId = saleInvoiceTransaction }; transactionObject.Save(); } return(true); } catch (Exception) { throw; } }
private void OnGetAllIdsButtonClick(Object sender , EventArgs e) { if (m_RemoteAccessClient == null) { m_RemoteAccessClient = ScsServiceClientBuilder.CreateClient <IDVDProfilerRemoteAccess>(new ScsTcpEndPoint(IPAddressTextBox.Text, 10083)); m_RemoteAccessClient.Connect(); } ProfileIdListView.Items.Clear(); TransactionObject transactionObject = m_RemoteAccessClient.ServiceProxy.BeginTransaction(); if (m_ChangeNotificationObject == null) { AccessResult <ChangeNotificationObject> result = m_RemoteAccessClient.ServiceProxy.RegisterForProfileChanges(transactionObject, false); m_ChangeNotificationObject = result.Result; Timer.Interval = 5000; Timer.Tick += new EventHandler(OnTimer1Tick); } Timer.Stop(); try { AccessResult <List <String> > result = m_RemoteAccessClient.ServiceProxy.GetAllProfileIds(transactionObject, false); if (result.Success) { if (result.Result != null) { foreach (String profileId in result.Result) { ListViewItem item = new ListViewItem(); GetTitle(transactionObject, profileId, item); ProfileIdListView.Items.Add(item); } } m_RemoteAccessClient.ServiceProxy.CommitTransaction(transactionObject); } else { m_RemoteAccessClient.ServiceProxy.AbortTransaction(transactionObject); MessageBox.Show("An error occured", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } Timer.Start(); } catch (Exception ex) { try { m_RemoteAccessClient.ServiceProxy.AbortTransaction(transactionObject); } catch { } MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public new static bool MerchantHasTransactionsForMonth(TransactionObject transactionObject) { return(TransactionFeeCalculator.MerchantHasTransactionsForMonth(transactionObject)); }
public new decimal CalculateTransactionFee(TransactionObject transactionObject) { return(base.CalculateTransactionFee(transactionObject)); }
/// <summary> /// Tạo dữ liệu cho CMS Object Inventory /// </summary> /// <typeparam name="T"></typeparam> /// <param name="uow"></param> /// <param name="InventoryObjectId"></param> /// <param name="CMSObjectType"></param> public void PopulateCMSObjecForInventoryObject <T>( UnitOfWork uow, Guid InventoryObjectId, DAL.CMS.ObjectDocument.ObjectTypeEnum CMSObjectType) { ObjectBO bo = new ObjectBO(); if (typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommand))) { NAS.DAL.Inventory.Command.InventoryCommand inventoryObject = uow.GetObjectByKey <NAS.DAL.Inventory.Command.InventoryCommand>(InventoryObjectId); NAS.DAL.CMS.ObjectDocument.Object o = bo.CreateCMSObject(uow, CMSObjectType); InventoryCommandObject ICO = new InventoryCommandObject(uow); ICO.ObjectId = o; ICO.InventoryCommandId = (inventoryObject as NAS.DAL.Inventory.Command.InventoryCommand); ICO.Save(); NAS.DAL.CMS.ObjectDocument.ObjectType type = NAS.DAL.CMS.ObjectDocument.ObjectType.GetDefault(uow, CMSObjectType); if (type == null) { throw new Exception("The ObjectType is not exist in system"); } InventoryCommandCustomType ICCT = new InventoryCommandCustomType(uow); ICCT.ObjectTypeId = type; ICCT.InventoryCommandId = (inventoryObject as NAS.DAL.Inventory.Command.InventoryCommand); ICCT.Save(); } else if (typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommandItemTransaction))) { InventoryCommandItemTransaction transactionObject = uow.GetObjectByKey <InventoryCommandItemTransaction>(InventoryObjectId); NAS.DAL.CMS.ObjectDocument.Object o = bo.CreateCMSObject(uow, CMSObjectType); InventoryTransactionObject ITO = new InventoryTransactionObject(uow); ITO.ObjectId = o; ITO.InventoryTransactionId = (transactionObject as NAS.DAL.Inventory.Journal.InventoryTransaction); ITO.Save(); NAS.DAL.CMS.ObjectDocument.ObjectType type = NAS.DAL.CMS.ObjectDocument.ObjectType.GetDefault(uow, CMSObjectType); InventoryTransactionCustomType ITCT = new InventoryTransactionCustomType(uow); ITCT.ObjectTypeId = type; ITCT.InventoryTransactionId = (transactionObject as NAS.DAL.Inventory.Journal.InventoryTransaction); ITCT.Save(); } else if (typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommandFinancialTransaction))) { InventoryCommandFinancialTransaction transactionObject = uow.GetObjectByKey <InventoryCommandFinancialTransaction>(InventoryObjectId); NAS.DAL.CMS.ObjectDocument.Object o = bo.CreateCMSObject(uow, CMSObjectType); TransactionObject TO = new TransactionObject(uow); TO.ObjectId = o; TO.TransactionId = (transactionObject as Transaction); TO.Save(); } else if (typeof(T).Equals(typeof(NAS.DAL.Accounting.Journal.GeneralJournal))) { GeneralJournal journalObject = uow.GetObjectByKey <GeneralJournal>(InventoryObjectId); NAS.DAL.CMS.ObjectDocument.Object o = bo.CreateCMSObject(uow, CMSObjectType); GeneralJournalObject GJO = new GeneralJournalObject(uow); GJO.ObjectId = o; GJO.GeneralJournalId = (journalObject as GeneralJournal); GJO.Save(); NAS.DAL.CMS.ObjectDocument.ObjectType type = NAS.DAL.CMS.ObjectDocument.ObjectType.GetDefault(uow, CMSObjectType); GeneralJournalCustomType GJCT = new GeneralJournalCustomType(uow); GJCT.ObjectTypeId = type; GJCT.GeneralJournalId = (journalObject as GeneralJournal); GJCT.Save(); } else if (typeof(T).Equals(typeof(NAS.DAL.Inventory.Journal.InventoryJournal))) { InventoryJournal journalObject = uow.GetObjectByKey <InventoryJournal>(InventoryObjectId); NAS.DAL.CMS.ObjectDocument.Object o = bo.CreateCMSObject(uow, CMSObjectType); InventoryJournalObject ITO = new InventoryJournalObject(uow); ITO.ObjectId = o; ITO.InventoryJournalId = (journalObject as InventoryJournal); ITO.Save(); NAS.DAL.CMS.ObjectDocument.ObjectType type = NAS.DAL.CMS.ObjectDocument.ObjectType.GetDefault(uow, CMSObjectType); InventoryJournalCustomType ITCT = new InventoryJournalCustomType(uow); ITCT.ObjectTypeId = type; ITCT.InventoryJournalId = (journalObject as InventoryJournal); ITCT.Save(); } uow.FlushChanges(); }
/// <summary> /// Tìm đối tượng CMS object của InventoryJournal /// </summary> /// <typeparam name="T">is NAS.DAL.Inventory.Command.InventoryCommandFinancialTransaction /// or NAS.DAL.Inventory.Command.InventoryCommandItemTransaction /// </typeparam> /// <param name="transactionId"></param> /// <param name="type"></param> /// <returns></returns> public NAS.DAL.CMS.ObjectDocument.Object GetCMSTransaction <T>( Guid transactionId, ObjectTypeEnum type) { if (type != ObjectTypeEnum.INVENTORY_IN && type != ObjectTypeEnum.INVENTORY_MOVE && type != ObjectTypeEnum.INVENTORY_OUT) { throw new Exception("The Type is invalid"); } if (!typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommandFinancialTransaction)) && !typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommandItemTransaction))) { throw new Exception("The Generic Type is invalid"); } if (transactionId != null && !transactionId.Equals(Guid.Empty)) { NAS.DAL.CMS.ObjectDocument.Object cmsObject = null; using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork()) { if (typeof(T).Equals(typeof(NAS.DAL.Inventory.Command.InventoryCommandItemTransaction))) { InventoryCommandItemTransaction transaction = uow.GetObjectByKey <InventoryCommandItemTransaction>(transactionId); InventoryTransactionObject transactionObject = transaction.InventoryTransactionObjects.FirstOrDefault(); if (transactionObject == null) { ObjectBO objectBO = new ObjectBO(); cmsObject = objectBO.CreateCMSObject(uow, type); InventoryTransactionObject newTransactionObject = new InventoryTransactionObject(uow) { ObjectId = cmsObject, InventoryTransactionId = transaction }; NAS.DAL.CMS.ObjectDocument.ObjectType objectType = uow.FindObject <ObjectType>(new BinaryOperator("Name", Enum.GetName(typeof(ObjectTypeEnum), type))); if (objectType == null) { throw new Exception("The OjectType is not exist in system"); } InventoryTransactionCustomType newTransactionCustomType = new InventoryTransactionCustomType(uow) { ObjectTypeId = objectType, InventoryTransactionId = transaction }; newTransactionCustomType.Save(); uow.CommitChanges(); } else { cmsObject = transactionObject.ObjectId; } return(cmsObject); } else { InventoryCommandFinancialTransaction transaction = uow.GetObjectByKey <InventoryCommandFinancialTransaction>(transactionId); TransactionObject transactionObject = transaction.TransactionObjects.FirstOrDefault(); if (transactionObject == null) { ObjectBO objectBO = new ObjectBO(); cmsObject = objectBO.CreateCMSObject(uow, type); TransactionObject newTransactionObject = new TransactionObject(uow) { ObjectId = cmsObject, TransactionId = transaction }; uow.CommitChanges(); } else { cmsObject = transactionObject.ObjectId; } return(cmsObject); } } } else { return(null); } }
private void OrderImpFormHandler(SAPbouiCOM.Form form, SAPbouiCOM.ItemEvent pVal) { try { oOrderImpForm = form; if (pVal.BeforeAction) { } else { switch (pVal.EventType) { case SAPbouiCOM.BoEventTypes.et_CLICK: break; case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED: { switch (pVal.ItemUID) { case btnClose: oOrderImpForm.Close(); break; case btnImp: try { if (transObjForImport == null) { form.Items.Item(btnFind).Click(); } else { string cardcode = getFormItemVal(form, cbCustomerID); if (cardcode == "") { showMessage("Please select a customer."); } else { if (transObjForImport == null) { form.Items.Item(btnFind).Click(); } else { if (SBO_Application.MessageBox("Import order to " + cardcode + "?", 1, "Yes", "No") == 1) { SBO_Application.Menus.Item(MENU_SO).Activate(); SAPbobsCOM.Documents doc = importSalesOrder(); SBO_Application.Menus.Item(MENU_LAST).Activate(); SBO_Application.SetStatusBarMessage(string.Format("Import order {0} added to {1}.", doc.DocNum, cardcode), SAPbouiCOM.BoMessageTime.bmt_Medium, true); } } } } } catch (Exception ex) { SBO_Application.SetStatusBarMessage(string.Format("Import order error: {0}.", ex.Message), SAPbouiCOM.BoMessageTime.bmt_Medium, true); } break; case btnFind: try { string transID = getFormItemVal(form, editTransID); if (transID == "") { showMessage("Please enter transaction ID."); } else { SBO_Application.SetStatusBarMessage("Finding transaction please wait...", SAPbouiCOM.BoMessageTime.bmt_Medium, false); SecurityToken token = getToken(""); //transObjForImport = ebiz.getTransaction(token, transID); setLabelCaption(form, lbCardHolder, transObjForImport.BillingAddress.FirstName + " " + transObjForImport.BillingAddress.LastName); setLabelCaption(form, lbTAmount, transObjForImport.Details.Amount.ToString()); setLabelCaption(form, lbCustID, transObjForImport.CustomerID); setLabelCaption(form, lbTax, transObjForImport.Details.Tax.ToString()); setLabelCaption(form, lbShipping, transObjForImport.Details.Shipping.ToString()); setLabelCaption(form, lbDiscount, transObjForImport.Details.Discount.ToString()); SAPbouiCOM.ComboBox oCB = (SAPbouiCOM.ComboBox)form.Items.Item(cbOrderItem).Specific; try { while (oCB.ValidValues.Count > 0) { oCB.ValidValues.Remove(0, SAPbouiCOM.BoSearchKey.psk_Index); } } catch (Exception) { } ComboAddItem(oCB, ""); string s = ""; int i = 0; foreach (LineItem item in transObjForImport.LineItems) { i++; if (item.SKU == null || item.SKU == "") { item.SKU = "SKU-" + i.ToString(); } s = string.Format("{0} - {1} {2}x{3}", item.SKU, item.ProductName, item.Qty, item.UnitPrice); ComboAddItem(oCB, s); } try { oCB.Select(s); } catch (Exception) { } SBO_Application.SetStatusBarMessage(string.Format("{0} Order Item(s) ready to import.", oCB.ValidValues.Count - 1), SAPbouiCOM.BoMessageTime.bmt_Medium, false); // form.Items.Item(btnImp).Click(); } } catch (Exception ex) { transObjForImport = null; SAPbouiCOM.ComboBox oCB = (SAPbouiCOM.ComboBox)form.Items.Item(cbOrderItem).Specific; try { while (oCB.ValidValues.Count > 0) { oCB.ValidValues.Remove(0, SAPbouiCOM.BoSearchKey.psk_Index); } } catch (Exception) { } ComboAddItem(oCB, ""); oCB.Select(""); SBO_Application.SetStatusBarMessage(string.Format("Find transaction error: {0}.", ex.Message), SAPbouiCOM.BoMessageTime.bmt_Medium, true); errorLog(ex); } break; } } break; } } } catch (Exception ex) { errorLog(ex); } }
public Guid CreateTransaction(string code, DateTime issuedDate, double amount, string description) { UnitOfWork uow = null; Guid m_TransactionId = Guid.NewGuid(); try { GeneralJournalBO generalJournalBO = new GeneralJournalBO(); uow = XpoHelper.GetNewUnitOfWork(); //Create new transaction ManualBookingTransaction transaction = new ManualBookingTransaction(uow) { TransactionId = m_TransactionId, Amount = amount, Code = code, CreateDate = DateTime.Now, Description = description, IssueDate = issuedDate, 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.MANUAL_BOOKING); 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.MANUAL_BOOKING); 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.MANUAL_BOOKING); creditGeneralJournalObject = new GeneralJournalObject(uow) { GeneralJournalId = creditGeneralJournal, ObjectId = creditJounalCMSObject }; uow.CommitChanges(); } catch (Exception) { throw; } finally { if (uow != null) { uow.Dispose(); } } return(m_TransactionId); }
static void Main(string[] args) { Database.InitDatabase(); Database.VerifyObject <Imovel>(); Database.VerifyObject <Visitante>(); Database.VerifyObject <Entrada>(); Imovel.Truncate(); Visitante.Truncate(); Entrada.Truncate(); using (var _trans = new TransactionObject(false)) { for (int i = 0; i < 20; i++) { var _imovel = new Imovel { EnderecoImovel = $"Rua {i}, nº10", Proprietario = $"Proprietário {i}" }; _imovel.SaveChanges(transaction: _trans); } for (int i = 0; i < 20; i++) { var _id = i.ZeroEsquerda(2); var _visitante = new Visitante { Nome = $"Nome {_id}" }; _visitante.SaveChanges(transaction: _trans); } var _action = new Action(() => { var _rnd = new Random(1); for (int i = 0; i < 100; i++) { var _yes = _rnd.Next(1, 2) == 1; var _entrada = new Entrada { Autorizador = "Teste", DataHoraEntrada = DateTime.Now, DataHoraSaida = _yes ? DateTime.Now : default(DateTime), IdImovel = _rnd.Next(1, 20), IdVisitante = _rnd.Next(1, 20), MotivoVisita = MotivoVisita.Pessoal, StatusEntrada = _yes ? StatusEntrada.Finalizado : StatusEntrada.Entrada }; try { _entrada.SaveChanges(transaction: _trans); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } Thread.Sleep(10); } }); var _watch = new Stopwatch(); _watch.Start(); for (int _a = 0; _a < 10; _a++) { _action.Invoke(); Thread.Sleep(500); } _watch.Stop(); System.Console.WriteLine($"Tempo do insert sem transação: {_watch.Elapsed.ToString("g")}"); _trans.Commit(); } var _date1 = DateTime.Now.Date; var _date2 = _date1.AddHours(23).AddMinutes(59).AddSeconds(59); var _status = new[] { StatusEntrada.Entrada, StatusEntrada.Finalizado, }; //var _teste_like_1 = Visitante.Load(v => v.Nome.Contains("04")); //var _teste_like_2 = Visitante.Load(v => v.Nome.StartsWith("04")); //var _teste_like_3 = Visitante.Load(v => v.Nome.EndsWith("04")); //var _entradas_1 = DoQuery<Entrada>(e => e.IdImovel == 1); //var _entradas_2 = DoQuery<Entrada>(e => e.IdVisitante == _teste_like_3.IdVisitante); var _entradas_3 = DoQuery <Entrada>(e => _status.Contains(e.StatusEntrada) && e.DataHoraEntrada >= _date1 && e.DataHoraEntrada <= _date2); System.Console.WriteLine("Pressione qualquer tecla para finalizar..."); System.Console.Read(); }
/// <summary> /// Returns payment transaction fee with additional charges for the first merchant transaction in month. /// </summary> /// <param name="transactionObject">Payment transaction object</param> /// <returns>1/100 of the transaction amount plus additional charges</returns> public virtual decimal CalculateTotalTransactionFee(TransactionObject transactionObject) { return(CalculateTransactionFee(transactionObject) + CalculateAdditionalFirstDayFee(transactionObject)); }
public new decimal CalculateAdditionalFirstDayFee(TransactionObject transactionObject) { return(base.CalculateAdditionalFirstDayFee(transactionObject)); }
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 TransactionObject CreateAccount(CreateAccountFormData newAccountInfo) { TransactionObject response = new TransactionObject(); if (userManager.IsUserExists(newAccountInfo.Username)) { try { Period period = prdManager.GetPeriod(newAccountInfo.Year, newAccountInfo.Term); User newUser = new User(); Student newStudent = new Student(); newUser.Username = newAccountInfo.Username; newUser.CreationDate = DateTime.Now; newUser.Password = SecurityFolder.Security.GetEncryptedPassword(newAccountInfo.Password);//şifre hashlendi newUser.ProfilePhoto = newAccountInfo.ProfilePhoto; newUser.Email = newAccountInfo.Email; newStudent.Name = newAccountInfo.Name; newStudent.Surname = newAccountInfo.Surname; newStudent.Birthday = new DateTime(1996, 1, 1); newStudent.Period = period; period.Students.Add(newStudent); newUser.Student = newStudent; newStudent.User = newUser; userManager.AddUser(newUser); stdManager.AddStudent(newStudent); FriendRelationship fr = new FriendRelationship(); newUser.FriendRelationship = fr; frManager.AddFriendRelationship(fr); var saveResponse = uow.Save(); if (saveResponse.IsSuccess) { response.IsSuccess = true; } else { response.IsSuccess = false; response.Explanation = saveResponse.Explanation; } } catch (Exception ex) { response.IsSuccess = false; response.Explanation = base.GetExceptionMessage(ex); } } else { response.IsSuccess = false; response.Explanation = "This username is exists! Please try valid username..."; } return(response); }
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(); } } }
public void BillTransactionInit(Session session, Guid BillId, double TotalAmount, double DiscountAmount, double TaxAmount, double ItemAmount ) { CriteriaOperator filter = new GroupOperator(GroupOperatorType.And, new BinaryOperator("Code", "", BinaryOperatorType.Equal), //new BinaryOperator("SalesInvoiceId", BillId, BinaryOperatorType.Equal), new BinaryOperator("SalesInvoiceId", BillId, BinaryOperatorType.Equal)); SaleInvoiceTransaction saleInvoiceTransaction = session.FindObject <SaleInvoiceTransaction>(filter); if (saleInvoiceTransaction != null) { filter = new BinaryOperator("TransactionId", saleInvoiceTransaction.TransactionId, BinaryOperatorType.Equal); TransactionObject transactionO = session.FindObject <TransactionObject>(filter); if (transactionO != null) { transactionO.Delete(); transactionO.Save(); } filter = new BinaryOperator("GeneralJournalId.TransactionId", saleInvoiceTransaction.TransactionId, BinaryOperatorType.Equal); XPCollection <GeneralJournalObject> collectGeneralJournalObject = new XPCollection <GeneralJournalObject>(session, filter); if (collectGeneralJournalObject.Count > 0) { session.Delete(collectGeneralJournalObject); session.Save(collectGeneralJournalObject); } filter = new BinaryOperator("TransactionId", saleInvoiceTransaction.TransactionId, BinaryOperatorType.Equal); XPCollection <GeneralJournal> collectGeneralJournal = new XPCollection <GeneralJournal>(session, filter); if (collectGeneralJournal.Count > 0) { session.Delete(collectGeneralJournal); session.Save(collectGeneralJournal); } Transaction transaction = session.GetObjectByKey <Transaction>(saleInvoiceTransaction.TransactionId); if (transaction != null) { transaction.Delete(); transaction.Save(); } saleInvoiceTransaction.Delete(); saleInvoiceTransaction.Save(); } saleInvoiceTransaction = new SaleInvoiceTransaction(session); saleInvoiceTransaction.Code = ""; saleInvoiceTransaction.TransactionId = Guid.NewGuid(); saleInvoiceTransaction.CreateDate = saleInvoiceTransaction.IssueDate = DateTime.Now; saleInvoiceTransaction.Amount = TotalAmount; saleInvoiceTransaction.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; saleInvoiceTransaction.SalesInvoiceId = session.GetObjectByKey <SalesInvoice>(BillId); 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(); filter = new BinaryOperator("Code", DefaultAccountEnum.NAAN_DEFAULT.ToString(), BinaryOperatorType.Equal); Account account = session.FindObject <Account>(filter); // total GeneralJournal generalJournal = new GeneralJournal(session); generalJournal.GeneralJournalId = Guid.NewGuid(); generalJournal.TransactionId = saleInvoiceTransaction; generalJournal.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; 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 = saleInvoiceTransaction; generalJournal.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; 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 = saleInvoiceTransaction; generalJournal.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; generalJournal.JournalType = 'A'; generalJournal.AccountId = account; generalJournal.Credit = TaxAmount; 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 = Utility.Constant.ROWSTATUS_ACTIVE; 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(); }