public IMSCdu GetCdu(int cduIdx) { try { using (var ctx = new LocalDB()) { var cdu = (from c in ctx.Cdu where c.Idx == cduIdx select c).DefaultIfEmpty(null).First(); if (cdu == null) return null; IMSCdu result = new IMSCdu() { Idx = cdu.Idx, GroupIdx = cdu.GroupIdx, No = cdu.No, Name = cdu.Name, UpsList = cdu.UpsList, Extendable = cdu.Extendable, ContractCount = cdu.ContractCount, IpAddress = cdu.IpAddress, Status = cdu.Status, Enabled = cdu.Enabled, InstallAt = cdu.InstallAt, Description = cdu.Description }; return result; } } catch (Exception) { return null; } }
public Contract() { _sessionLock = new object(); _sessions = new ConcurrentDictionary<string, IMSSession>(); using (var ctx = new LocalDB()) { ctx.Database.Initialize(true); } }
public bool SetCdu(IMSCdu cdu) { try { using (var ctx = new LocalDB()) { var existCud = (from c in ctx.Cdu where c.Idx == cdu.Idx select c).DefaultIfEmpty(null).First(); if (existCud == null) return false; if (cdu.GroupIdx != null) { var existGroup = (from g in ctx.Group where g.Idx == cdu.GroupIdx select g).DefaultIfEmpty(null).First(); if (existGroup == null) return false; List<int> cduNoList = Regex.Split(existGroup.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToList(); if (!cduNoList.Contains(cdu.GroupIdx.Value)) { cduNoList.Add(cdu.GroupIdx.Value); existGroup.CduList = string.Join(",", (from cduNo in cduNoList orderby cduNo ascending select $"{cduNo}").ToArray()); } existCud.GroupIdx = cdu.GroupIdx.Value; } existCud.No = cdu.No; existCud.Name = cdu.Name; existCud.Extendable = cdu.Extendable; existCud.IpAddress = cdu.IpAddress; existCud.Enabled = cdu.Enabled; existCud.InstallAt = cdu.InstallAt; existCud.Description = cdu.Description; using (var trx = new TransactionScope()) { ctx.SaveChanges(); trx.Complete(); } } return true; } catch (Exception) { return false; } }
/// <summary> setup the initial session and application databases </summary> protected void Page_Init(object sender, EventArgs e) { Application.Lock(); try { if (Application[ApplicationRemoteKey] == null) Application[ApplicationRemoteKey] = new RemoteDB(); if (Application[ApplicationLocalKey] == null) Application[ApplicationLocalKey] = new LocalDB<string>(); lock (Session) { if (Session[SessionLocalKey] == null) Session[SessionLocalKey] = new LocalDB<string>(); if (Session[CurrentKey] == null) Session[CurrentKey] = 0; Session[SwitcherKey] = new Switcher( new Enable(isEnabled => { Toggle.Enabled = Search.Enabled = Enter.Enabled = Remove.Enabled = isEnabled; }), new IAccess[]{ new Access(() => Current.Text, s => { Current.Text = s; }), new Access(() => Size.Text, s => { Size.Text = s; }), new Access(() => Names.Text, s => { Names.Text = s; }), new Access(() => Phones.Text, s => { Phones.Text = s; }), new Access(() => Rooms.Text, s => { Rooms.Text = s; })}, new SetClick[]{ new SetClick((EventHandler eh) => { Toggle.Click += eh; }), new SetClick((EventHandler eh) => { Search.Click += eh; }), new SetClick((EventHandler eh) => { Enter.Click += eh; }), new SetClick((EventHandler eh) => { Remove.Click += eh; }), new SetClick((EventHandler eh) => { Size.Load += eh; }) }, new WorkQueue(), "session local DB", Session[SessionLocalKey], "application local DB", Application[ApplicationLocalKey], "application remote DB", Application[ApplicationRemoteKey]); } } finally { Application.UnLock(); } }
public static bool ChangeNoteColor(Note note, NoteColor newColor) { if (note == null) { return(false); } Debug.WriteLine("Change note color: " + newColor.Key); //App.TelemetryClient.TrackEvent("NoteColorChanged"); note.Color = newColor; bool success = LocalDB.Update(note) == 1; if (!success) { return(false); } RoamingDB.Update(note); var handler = NoteColorChanged; if (handler != null) { handler(null, new NoteColorEventArgs(note, newColor)); } var handler2 = NotesSaved; if (handler2 != null) { handler2(null, EventArgs.Empty); } return(true); }
IEnumerator DownloadAudio(Music music) { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(music.URL, AudioType.MPEG)) { yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { AudioClip myClip = DownloadHandlerAudioClip.GetContent(www); while (myClip.loadState != AudioDataLoadState.Loaded) { yield return(null); } print("Download Done"); //save myClip to a file music.Audio = myClip; LocalDB.SaveData(music); } } }
public int Update(sys_role entry) { using (LocalDB db = new LocalDB()) { StringBuilder sql = new StringBuilder(); sql.Append("update sys_role set code=@code,title=@title,status=@status where id=@id"); int cnt = db.Current_Conn.Execute(sql.ToString(), new { id = entry.id, code = entry.code, status = entry.status, title = entry.title }); if (cnt > 0) { solr.Delete(new SolrQuery("entitytype:sys_role && id:" + entry.id.ToString())); entry.entitytype = "sys_role"; solr.Add(entry); solr.Commit(); } return(cnt); } }
public int Add(sys_role entry) { using (LocalDB db = new LocalDB()) { StringBuilder sql = new StringBuilder(); sql.Append("INSERT INTO dbo.sys_role \n"); sql.Append(" ( status, code, title, add_time ) \n"); sql.Append("VALUES ( @status, -- status - int \n"); sql.Append(" @code, -- code - nvarchar(50) \n"); sql.Append(" @title, -- title - nvarchar(50) \n"); sql.Append(" GETDATE() -- add_time - datetime \n"); sql.Append(" );select SCOPE_IDENTITY();"); int roleid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(), new { status = entry.status, code = entry.code, title = entry.title }); entry.id = roleid; solr.Add(entry); solr.Commit(); return(roleid); } }
private IMSSession GetSession(string macAddress) { // 사용자가 같은 세션으로 이미 등록되어 있을수도 있으므로, 그것을 얻기 위한 함수를 구현한다. _operationContext = OperationContext.Current; string sessionId = _operationContext.SessionId; Debug.Assert(sessionId != null, "GetSession : SessionId is null"); try { if (!_sessions.ContainsKey(sessionId)) { // 접근한 클라이언트의 IP 를 추출하기 위한 루틴 MessageProperties prop = _operationContext.IncomingMessageProperties; RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; var remoteIpAddress = endpoint != null ? endpoint.Address : "0.0.0.0"; using (var ctx = new LocalDB()) // DB 에서 세션을 꺼내기 위해 Scope 를 개방한다. { var q = from s in ctx.Session where s.MacAddress == sessionId select s; if (q.Any()) // DB 에서 해당 세션을 찾았다면. { Session existSession = q.First(); // 위의 조건에 부합하는것중 최신의 것을 하나 꺼낸다. // DB 에 존재하는 세션정보를 기반으로 SessionInfo 객체를 하나 만들어서 목록에 추가한다. IMSSession restoredSession = new IMSSession(sessionId, remoteIpAddress, macAddress); restoredSession.EventIdx = existSession.EventIdx; restoredSession.WarningIdx = existSession.WarningIdx; _sessions[sessionId] = restoredSession; return restoredSession; } else { int eventIdx = (from el in ctx.EventLog orderby el.Idx descending select el.Idx). DefaultIfEmpty(0).First(); int warningIdx = (from wl in ctx.WarningLog orderby wl.Idx descending select wl.Idx). DefaultIfEmpty(0).First(); Session newSession = new Session() { MacAddress = macAddress, EventIdx = eventIdx, WarningIdx = warningIdx }; using (var trx = new TransactionScope()) { try { ctx.Session.Add(newSession); ctx.SaveChanges(); } catch (Exception) { return null; } trx.Complete(); } IMSSession restoredSession = new IMSSession(sessionId, remoteIpAddress, macAddress); restoredSession.EventIdx = eventIdx; restoredSession.WarningIdx = warningIdx; _sessions[sessionId] = restoredSession; } } } return _sessions[sessionId]; // 세면 목록에서 해당 세션을 찾아서 리턴한다. } catch (Exception e) { Console.WriteLine(e.ToString()); return null; // 예외가 발생해도 null 을 리턴한다. } }
private void IssueCreditCard() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot issue a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardIssuance); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.CardTypeDetails clsCardTypeDetails = new Data.CardTypeDetails(); Data.ContactDetails clsGuarantorDetails = new AceSoft.RetailPlus.Data.ContactDetails(); ContactCreditTypeSelectWnd clsContactCreditTypeSelectWnd = new ContactCreditTypeSelectWnd(); clsContactCreditTypeSelectWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditTypeSelectWnd.ShowDialog(this); clsCardTypeDetails = clsContactCreditTypeSelectWnd.CardTypeDetails; result = clsContactCreditTypeSelectWnd.Result; clsContactCreditTypeSelectWnd.Close(); clsContactCreditTypeSelectWnd.Dispose(); if (result != DialogResult.OK) { return; } Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; if (clsCardTypeDetails.WithGuarantor) { MessageBox.Show("Please select a GUARANTOR to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Select GUARANTOR to issue Credit Card."; clsContactWnd.ShowDialog(this); clsGuarantorDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } MessageBox.Show(clsGuarantorDetails.ContactName + " has been selected as guarantor." + Environment.NewLine + "Please select the CUSTOMER to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); } clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Select CUSTOMER to issue Credit Card."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } // if no guarantor if (!clsCardTypeDetails.WithGuarantor) clsGuarantorDetails = new Data.ContactDetails(); clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); clsContact.CommitAndDispose(); if (clsContactDetails.CreditDetails.CreditCardNo != string.Empty && clsContactDetails.CreditDetails.CreditCardNo != null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt")); MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt") + "." + Environment.NewLine + " Please select another customer to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName); ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd(); clsContactCreditWnd.Header = "Credit Card Issuance"; clsContactCreditWnd.CardTypeDetails = clsCardTypeDetails; clsContactCreditWnd.Guarantor = clsGuarantorDetails; clsContactCreditWnd.ContactDetails = clsContactDetails; clsContactCreditWnd.CreditCardStatus = CreditCardStatus.New; clsContactCreditWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditWnd.ShowDialog(this); result = clsContactCreditWnd.Result; clsContactDetails = clsContactCreditWnd.ContactDetails; clsContactCreditWnd.Close(); clsContactCreditWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE; //override if with Guarantor if (clsCardTypeDetails.WithGuarantor) strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_MEMBERSHIP_FEE_BARCODE; if (clsProducts.Details(strProductBarcode).ProductID == 0) { if (!clsCardTypeDetails.WithGuarantor) clsProducts.CREATE_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT(); else clsProducts.CREATE_SUPER_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, strProductBarcode + " product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + "." + Environment.NewLine + "Please collect the payment then close the transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = strProductBarcode; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Issuing internal credit-card."); } Cursor.Current = Cursors.Default; } }
private void EnterCreditItemizePayment() { if (!SuspendTransactionAndContinue()) return; DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.EnterCreditPayment); if (loginresult == DialogResult.OK) { LoadOptions(); if (!CheckIfOKToSell(true)) return; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.HasCreditOnly = true; clsContactWnd.ShowDialog(this); DialogResult result = clsContactWnd.Result; mclsContactDetails = clsContactWnd.Details; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result == DialogResult.OK) { CreditsItemizeWnd creditWnd = new CreditsItemizeWnd(); creditWnd.TerminalDetails = mclsTerminalDetails; creditWnd.SysConfigDetails = mclsSysConfigDetails; creditWnd.CashierID = mclsSalesTransactionDetails.CashierID; creditWnd.CashierName = mclsSalesTransactionDetails.CashierName; creditWnd.CustomerDetails = mclsContactDetails; creditWnd.ShowDialog(this); Keys keyData = creditWnd.KeyData; string strTransactionNoToReprint = creditWnd.TransactionNoToReprint; string strTerminalNoToReprint = creditWnd.TerminalNoToReprint; decimal AmountPaid = creditWnd.AmountPayment; decimal CashPayment = creditWnd.CashPayment; decimal ChequePayment = creditWnd.ChequePayment; decimal CreditCardPayment = creditWnd.CreditCardPayment; decimal DebitPayment = creditWnd.DebitPayment; decimal BalanceAmount = creditWnd.BalanceAmount; decimal ChangeAmount = creditWnd.ChangeAmount; DataGridViewSelectedRowCollection dgvItemsSelectedRows = creditWnd.dgvItemsSelectedRows; PaymentTypes PaymentType = creditWnd.PaymentType; ArrayList arrCashPaymentDetails = creditWnd.CashPaymentDetails; ArrayList arrChequePaymentDetails = creditWnd.ChequePaymentDetails; ArrayList arrCreditCardPaymentDetails = creditWnd.CreditCardPaymentDetails; ArrayList arrDebitPaymentDetails = creditWnd.DebitPaymentDetails; result = creditWnd.Result; // do not dispose here coz the dgvItemsSelectedRows is also disposed //creditWnd.Close(); //creditWnd.Dispose(); if (result == DialogResult.OK) { if (keyData == Keys.F12) { ReprintTransaction(strTransactionNoToReprint, strTerminalNoToReprint); return; } bool boActivateSuspendedAccount = true; if (!mclsContactDetails.CreditDetails.CreditActive) { if (MessageBox.Show("Account is InActive, would you like to re-activate? Remarks: " + Environment.NewLine + mclsContactDetails.Remarks + Environment.NewLine + Environment.NewLine + "Press [yes] to automatically activate or [no] to disregard activation.", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No) boActivateSuspendedAccount = false; } Int64 iCollectionReceiptNo = 0; if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.MPC) { decimal decRetValue = 0; if (ShowNoControl(this, out decRetValue, decimal.Parse(iCollectionReceiptNo.ToString()), "Enter Collection Receipt (CR) No.") != System.Windows.Forms.DialogResult.OK) { MessageBox.Show("Sorry you cannot issue a Credit Payment without the collection receipt no. Please enter CR No first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { iCollectionReceiptNo = Int64.Parse(decRetValue.ToString()); } } Cursor.Current = Cursors.WaitCursor; try { LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment; mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo; Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; if (clsProducts.Details(Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE).ProductID == 0) { clsProducts.CREATE_CREDITPAYMENT_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.EnterCreditPayment, "CREDIT PAYMENT product has been created coz it's not configured"); } /************** April 21, 2006: added transaction no. ***************/ lblCustomer.Tag = mclsContactDetails.ContactID; lblCustomer.Text = mclsContactDetails.ContactName; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE + " transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, mclsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; Data.SalesTransactionItemDetails clsItemDetails = getCurrentRowItemDetails(); clsItemDetails.Price = AmountPaid; clsItemDetails.Amount = AmountPaid; clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc.(Details); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; ApplyChangeQuantityPriceAmountDetails(iRow, clsItemDetails, "Change Quantity, Price, Amount for Credit Payment"); // re-instantiate the status mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment; mclsSalesTransactionDetails.AmountDue = AmountPaid; mclsSalesTransactionDetails.AmountPaid = AmountPaid; mclsSalesTransactionDetails.ChangeAmount = ChangeAmount; mclsSalesTransactionDetails.CashPayment = CashPayment; mclsSalesTransactionDetails.ChequePayment = ChequePayment; mclsSalesTransactionDetails.PaymentType = PaymentType; mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo; // for assignment of payments mclsSalesTransactionDetails.PaymentDetails = AssignArrayListPayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); SavePayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); // save the details of credit payments SaveCreditPayments(dgvItemsSelectedRows, arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails, boActivateSuspendedAccount); //OpenDrawerDelegate opendrawerDel = new OpenDrawerDelegate(OpenDrawer); //Invoke(opendrawerDel); OpenDrawer(); //update the transaction table Int64 iTransactionID = Convert.ToInt64(lblTransNo.Tag); string strORNo = ""; // no need to put an OR no for credit payment coz it's already declared before clsSalesTransactions.Close(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TerminalNo, strORNo, 0, 0, AmountPaid, AmountPaid, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, DiscountTypes.NotApplicable, 0, 0, 0, 0, 0, 0, 0, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, 0, 0, PaymentType, null, null, 0, 0, null, null, mclsSalesTransactionDetails.CashierID, lblCashier.Text, TransactionStatus.CreditPayment); // 05Mar2015 : MPC - Update the CRNo as per Ms. Norma clsSalesTransactions.UpdateCRNo(mclsSalesTransactionDetails.BranchID, mclsSalesTransactionDetails.TerminalNo, mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.CRNo); //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport); UpdateTerminalReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType); //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport); UpdateCashierReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType); // Sep 24, 2014 : update back the LastCheckInDate to min date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); //enable IsCreditAllowed //already done when paying creditpayment //// 3Nov2014 : automatically deposit the change if credit payment //#region Auto deposit for creditpayment //if (mclsSysConfigDetails.WillDepositChangeOfCreditPayment) //{ // InsertAuditLog(AccessTypes.Deposit, "Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + "."); // clsEvent.AddEventLn("Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + "."); // Data.Deposits clsDeposit = new Data.Deposits(mConnection, mTransaction); // mConnection = clsDeposit.Connection; mTransaction = clsDeposit.Transaction; // Data.DepositDetails clsDepositDetails = new Data.DepositDetails() // { // BranchDetails = mclsTerminalDetails.BranchDetails, // TerminalNo = mclsTerminalDetails.TerminalNo, // Amount = mclsSalesTransactionDetails.ChangeAmount, // PaymentType = mclsSalesTransactionDetails.PaymentType, // DateCreated = DateTime.Now, // CashierID = mclsSalesTransactionDetails.CashierID, // CashierName = mclsSalesTransactionDetails.CashierName, // ContactID = mclsSalesTransactionDetails.CustomerDetails.ContactID, // ContactName = mclsSalesTransactionDetails.CustomerDetails.ContactName, // Remarks = "Auto deposit from trx #: " + mclsSalesTransactionDetails.TransactionNo + ".", // CreatedOn = DateTime.Now, // LastModified = DateTime.Now // }; // clsDeposit.Insert(clsDepositDetails); // Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); // mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; // clsContact.AddDebit(clsDepositDetails.ContactID, clsDepositDetails.Amount); // clsDeposit.CommitAndDispose(); // InsertAuditLog(AccessTypes.Deposit, "Deposit: type='" + clsDepositDetails.PaymentType.ToString("G") + "' amount='" + clsDepositDetails.Amount.ToString(",##0.#0") + "'" + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); // clsEvent.AddEventLn("Done! type=" + clsDepositDetails.PaymentType.ToString("G") + " amount=" + clsDepositDetails.Amount.ToString("#,###.#0")); //} //#endregion clsSalesTransactions.CommitAndDispose(); clsLocalDB.CommitAndDispose(); InsertAuditLog(AccessTypes.CreditPayment, "Pay credit for " + mclsContactDetails.ContactName + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); if (mclsTerminalDetails.AutoPrint == PrintingPreference.AskFirst) if (MessageBox.Show("Would you like to print this transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, (mclsSysConfigDetails.isDefaultButtonYesInPrintTransaction ? MessageBoxDefaultButton.Button1 : MessageBoxDefaultButton.Button2)) == DialogResult.Yes) mclsTerminalDetails.AutoPrint = PrintingPreference.Normal; // print credit payment as normal transaction if not HP if (mclsSalesTransactionDetails.isConsignment) { // 18Feb2015 : Print DR only if the transaction is consignment clsEvent.AddEventLn(" printing delivery receipt as consginment...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintDeliveryReceipt(); } else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.OutOfStockCustomerCode && (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR)) { clsEvent.AddEventLn(" printing out of stock orders...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintOSReceipt(); } else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.WalkInCustomerCode && (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR)) { clsEvent.AddEventLn(" printing walk-in customer quote form...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintWalkInReceipt(); } else if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.Houseware) { // do another report for credit payment if HP PrintCreditPayment(); // do this twice as per request of CN trader's and CS PrintCreditPayment(); } else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice || mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt || mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR) { clsEvent.AddEventLn(" printing sales invoice...", true, mclsSysConfigDetails.WillWriteSystemLog); PrintCollectionReceipt(); } else { // Sep 14, 2014 Control printing in mclsFilePrinter.Write //if (mclsTerminalDetails.AutoPrint == PrintingPreference.Normal) //print items if not yet printed //{ foreach (System.Data.DataRow dr in ItemDataTable.Rows) { if (dr["Quantity"].ToString() != "VOID") { string stItemNo = "" + dr["ItemNo"].ToString(); string stProductCode = "" + dr["ProductCode"].ToString(); if (dr["MatrixDescription"].ToString() != string.Empty && dr["MatrixDescription"].ToString() != null) stProductCode += "-" + dr["MatrixDescription"].ToString(); string stProductUnitCode = "" + dr["ProductUnitCode"].ToString(); decimal decQuantity = Convert.ToDecimal(dr["Quantity"]); decimal decPrice = Convert.ToDecimal(dr["Price"]); decimal decDiscount = Convert.ToDecimal(dr["Discount"]); decimal decAmount = Convert.ToDecimal(dr["Amount"]); decimal decVAT = Convert.ToDecimal(dr["VAT"]); decimal decEVAT = Convert.ToDecimal(dr["EVAT"]); decimal decPromoApplied = Convert.ToDecimal(dr["PromoApplied"]); string stDiscountCode = "" + dr["DiscountCode"].ToString(); DiscountTypes ItemDiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), dr["ItemDiscountType"].ToString()); PrintItem(stItemNo, stProductCode, stProductUnitCode, decQuantity, decPrice, decDiscount, decPromoApplied, decAmount, decVAT, decEVAT, stDiscountCode, ItemDiscountType); } } //} // Sep 14, 2014 Control printing in mclsFilePrinter.Write PrintReportFooterSection(true, TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, ChangeAmount, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails); } this.LoadOptions(); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Credit payment procedure. Err Description: "); } Cursor.Current = Cursors.Default; } creditWnd.Close(); creditWnd.Dispose(); } } }
/// <summary> /// Scrape art from the selected online database to the built-in file location unique to the release instance. /// </summary> /// <param name="artType">The type of art to scrape. Default is all available art.</param> /// <param name="localDB">The database to scrape from. Default is unknown, which allows Robin to cycle through available databases in preferred order.</param> /// <returns>Returns a negative integer to indicate the number of scraping attempts that could be tried again, or 0 if all attempts are successfull.</returns> public int ScrapeArt(ArtType artType, LocalDB localDB = 0) { int returner = 0; string url = null; string filePath = null; string property = null; switch (artType) { case ArtType.All: returner += ScrapeArt(ArtType.BoxFront, localDB); returner += ScrapeArt(ArtType.BoxBack, localDB); returner += ScrapeArt(ArtType.Banner, localDB); returner += ScrapeArt(ArtType.Screen, localDB); returner += ScrapeArt(ArtType.Logo, localDB); break; case ArtType.BoxFront: url = GetBoxFrontURL(localDB); filePath = BoxFrontPath; property = "BoxFrontPath"; break; case ArtType.BoxBack: url = GetBoxBackURL(localDB); filePath = BoxBackPath; property = "BoxBackPath"; break; case ArtType.Banner: url = GetBannerURL(localDB); filePath = BannerPath; property = "BannerPath"; break; case ArtType.Screen: url = GetScreenURL(localDB); filePath = ScreenPath; property = "ScreenPath"; break; case ArtType.Logo: url = GetLogoURL(localDB); filePath = LogoPath; property = "LogoPath"; break; case ArtType.Box3D: // Needs URL implemented break; case ArtType.Marquee: // Needs URL implemented break; case ArtType.ControlPanel: // Needs URL implemented break; case ArtType.ControlInformation: // Needs URL implemented break; case ArtType.CartFront: // Needs URL implemented break; case ArtType.CartBack: // Needs URL implemented break; case ArtType.Cart3D: // Needs URL implemented break; default: // Not implemented. Debug.Assert(false, $"Called Release.ScrapeArt() with the option {artType.Description()}, which is valid only for Platforms. Can't see what it's hurting, but don't do that."); break; } return(Scrape(url, filePath, property, artType.Description())); }
public int AddGroup(IMSGroup g) { try { using (var ctx = new LocalDB()) { Lib.LocalDB.Model.Group newGroup = new Group() { No = g.No, Name = g.Name, Display = g.Display, CoordX = g.CoordX, CoordY = g.CoordY, //UpsList = // string.Join(",", // (from upsNo in g.UpsList orderby upsNo ascending select $"{upsNo}").ToArray()), //CduList = // string.Join(",", // (from cudNo in g.CduList orderby cudNo ascending select $"{cudNo}").ToArray()), Enabled = g.Enabled, Description = g.Description }; using (var trx = new TransactionScope()) { ctx.Group.Add(newGroup); ctx.SaveChanges(); trx.Complete(); } return newGroup.Idx; } } catch (Exception) { return -1; } }
public static void setzeDb(LocalDB data) { db = data; }
public bool DelCdu(int cduIdx) { try { using (var ctx = new LocalDB()) { var existCdu = (from c in ctx.Cdu where c.Idx == cduIdx select c).DefaultIfEmpty(null).First(); if (existCdu == null) return false; using (var trx = new TransactionScope()) { ctx.Cdu.Attach(existCdu); ctx.Cdu.Remove(existCdu); ctx.SaveChanges(); trx.Complete(); } return true; } } catch (Exception) { return false; } }
/// <summary> /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" /> /// fires that is associated with the <see cref="T:Quartz.IJob" />. /// </summary> /// <param name="context">The execution context.</param> /// <remarks> /// The implementation may wish to set a result object on the /// JobExecutionContext before this method exits. The result itself /// is meaningless to Quartz, but may be informative to /// <see cref="T:Quartz.IJobListener" />s or /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's /// execution. /// </remarks> public async void Execute(IJobExecutionContext context) { //logging var jobKey = context.JobDetail.Key; Log.InfoFormat("BEGIN {0} executing at {1}", jobKey, DateTime.Now.ToString("r")); using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional())) { conn.Open(); string tid = string.Empty; var pathArquivoTemporario = new ArquivoManager().BuscarDiretorioArquivoTemporario(conn); if (!pathArquivoTemporario.EndsWith("\\")) { pathArquivoTemporario += "\\"; } pathArquivoTemporario += "SICAR\\"; //Veja se var nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); while (nextItem != null) { //Update item as Started //LocalDB.MarcarItemFilaIniciado(conn, nextItem.Id); var item = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante); var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao); tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual(); string resultado = ""; try { //Atualizar controle de envio do SICAR ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ENVIANDO, tid); var controleCar = ControleCarDB.ObterItemControleCar(conn, requisicao); var dataCadastroEstadual = ControleCarDB.ObterDataSolicitacao(conn, requisicao.solicitacao_car, requisicao.origem); resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual); var resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado); if (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaErro) { resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual); resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado); } //Salvar no diretorio de arquivos do SIMLAM Institucional string arquivoFinal; using (var stream = File.Open(pathArquivoTemporario + nextItem.Requisicao, FileMode.Open, FileAccess.Read, FileShare.Read)) { var arquivoManager = new ArquivoManager(); arquivoFinal = arquivoManager.Salvar(nextItem.Requisicao, stream, conn); } if (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaErro || (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaInconformidade && resultadoEnvio.mensagensResposta.Any(r => r.Equals("Foi encontrada sobreposição de 100,00% com outro imóvel já inscrito no CAR que possui os mesmos documentos (CPF e/ou CNPJ).", StringComparison.CurrentCultureIgnoreCase)))) { LocalDB.AdicionarItemFila(conn, "revisar-resposta-car", item.Id, nextItem.Requisicao.Substring(0, nextItem.Requisicao.Length - 4), requisicao.empreendimento); } else { //Atualiza a Solicitacao do CAR var situacaoSolicitacao = (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso) ? ControleCarDB.SITUACAO_SOLICITACAO_VALIDO : ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE; ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao, situacaoSolicitacao, tid); //Atualizar controle de envio do SICAR ControleCarDB.AtualizarControleSICAR(conn, resultadoEnvio, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, tid, arquivoFinal); } //Marcar como processado LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, true, resultado); } catch (Exception ex) { //Marcar como processado registrando a mensagem de erro var msg = ex.Message + Environment.NewLine + Environment.NewLine + resultado; LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg); ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid); ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid); } System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30)); nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); //Apagar arquivo do diretorio temporário //TODO:NÃO VAI //try //{ // File.Delete(pathArquivoTemporario + nextItem.Requisicao); //} //catch (Exception) { /*ignored*/ } } } Log.InfoFormat("ENDING {0} executing at {1}", jobKey, DateTime.Now.ToString("r")); }
public int AddCdu(IMSCdu cdu) { try { using (var ctx = new LocalDB()) { CDU newCdu = new CDU() { No = cdu.No, Name = cdu.Name, Extendable = cdu.Extendable, IpAddress = cdu.IpAddress, Enabled = cdu.Enabled, InstallAt = cdu.InstallAt, Description = cdu.Description }; if (cdu.GroupIdx != null) { var existGroup = (from g in ctx.Group where g.Idx == cdu.GroupIdx select g).DefaultIfEmpty(null).First(); if (existGroup == null) return -1; List<int> cduNoList = Regex.Split(existGroup.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToList(); if (!cduNoList.Contains(cdu.GroupIdx.Value)) { cduNoList.Add(cdu.GroupIdx.Value); existGroup.CduList = string.Join(",", (from cduNo in cduNoList orderby cduNo ascending select $"{cduNo}").ToArray()); } newCdu.GroupIdx = cdu.GroupIdx.Value; } using (var trx = new TransactionScope()) { ctx.Cdu.Add(newCdu); ctx.SaveChanges(); trx.Complete(); } return newCdu.Idx; } } catch (Exception) { return -2; } }
protected async override void OnStart() { // Handle when your app starts await LocalDB.CreateDB(); }
private void SplitTransaction() { if (!mboIsInTransaction) { MessageBox.Show("No active transaction found.", "RetailPlus", MessageBoxButtons.OK); return; } if (mboIsInTransaction) { SplitPaymentSelectWnd payment = new SplitPaymentSelectWnd(); payment.MainWndTop = cmd1.Location.Y; payment.MainWndLeft = cmd10.Location.X + 1; payment.ShowDialog(this); DialogResult result = payment.Result; SplitPaymentTypes SplitPaymentType = payment.SplitPaymentType; payment.Close(); payment.Dispose(); if (result == DialogResult.OK) { decimal decRetValue = 0; Int32 iNoOfDiners = mclsSalesTransactionDetails.PaxNo; if (SplitPaymentType == SplitPaymentTypes.Equally || SplitPaymentType == SplitPaymentTypes.ByAmount) { if (ShowNoControl(this, out decRetValue, decimal.Parse(iNoOfDiners.ToString()), "Enter no. of diners to pay.") == DialogResult.Cancel) return; else { iNoOfDiners = Int32.Parse(decRetValue.ToString()); // just close the transaction if it's just 1 dinner if (iNoOfDiners == 1) { CloseTransaction(); return; } } } DialogResult paymentResult = DialogResult.Cancel; Data.SplitPaymentDetails[] clsSplitPaymentDetails; // get the item details Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems(); mConnection = clsItems.Connection; mTransaction = clsItems.Transaction; Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate); mclsSalesTransactionDetails.TransactionItems = TransactionItems; clsItems.CommitAndDispose(); switch (SplitPaymentType) { case SplitPaymentTypes.Equally: #region Equal payments //insert payment details SplitPaymentEqualWnd clsSplitPaymentEqualWnd = new SplitPaymentEqualWnd(); clsSplitPaymentEqualWnd.TerminalDetails = mclsTerminalDetails; clsSplitPaymentEqualWnd.SysConfigDetails = mclsSysConfigDetails; clsSplitPaymentEqualWnd.CustomerDetails = mclsContactDetails; clsSplitPaymentEqualWnd.SalesTransactionDetails = mclsSalesTransactionDetails; clsSplitPaymentEqualWnd.CreditCardSwiped = mboCreditCardSwiped; clsSplitPaymentEqualWnd.IsRefund = mboIsRefund; clsSplitPaymentEqualWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded; clsSplitPaymentEqualWnd.NoOfDiners = iNoOfDiners; clsSplitPaymentEqualWnd.ShowDialog(this); paymentResult = clsSplitPaymentEqualWnd.Result; clsSplitPaymentDetails = clsSplitPaymentEqualWnd.arrSplitPaymentDetails; clsSplitPaymentEqualWnd.Close(); clsSplitPaymentEqualWnd.Dispose(); if (paymentResult == DialogResult.OK) { //save the old in a temp Details Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails; LocalDB clsLocalDB = new LocalDB(); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; // save all the payments made foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails) { mclsSalesTransactionDetails = tmpSalesTransactionDetails; mclsSalesTransactionDetails.TransactionItems = TransactionItems; decimal decSplitPercentage = mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount + mclsSalesTransactionDetails.Charge; decSplitPercentage = det.AmountDue / decSplitPercentage; SetGridItems(); SetGridItemsWidth(); #region create the transaction CreateTransaction(); #endregion #region punch all the items divided by the NoOfDiner foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems) { Data.SalesTransactionItemDetails clsDetails = item; //clsDetails.Amount = item.Amount / iNoOfDiners; //clsDetails.Price = item.Price / iNoOfDiners; //clsDetails.PurchasePrice = item.PurchasePrice / iNoOfDiners; //clsDetails.Discount = item.Discount / iNoOfDiners; //clsDetails.Quantity = item.Quantity / iNoOfDiners; //clsDetails.Amount = item.Amount * decSplitPercentage; //clsDetails.Price = item.Price * decSplitPercentage; //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage; //clsDetails.Discount = item.Discount * decSplitPercentage; clsDetails.Quantity = item.Quantity * decSplitPercentage; AddItem(clsDetails); } #endregion #region Apply existing discount if required if (tmpSalesTransactionDetails.Discount != 0) { if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable) { lblTransDiscount.Text = "Less 0% / 0.00"; } lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d"); mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType; mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount; mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners; mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners; mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode; mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks; ComputeSubTotal(); setTotalDetails(); if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount) { Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); } } #endregion Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails(); #region close the transaction // override the customerinformation if it's paid with in-house creditcard if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID) { LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails); } //close then print 1 by 1 CloseTransaction(mTopItemDetails, det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment, det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment, det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType, det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails, det.arrCreditPaymentDetails, det.arrDebitPaymentDetails); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); } #region void the old transaction mclsSalesTransactionDetails = tmpSalesTransactionDetails; // load the transaction LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo); clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = 0; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); if (Details.TransactionItemStatus != TransactionItemStatus.Void) { Details.TransactionItemStatus = TransactionItemStatus.Void; ReservedAndCommitItem(Details, Details.TransactionItemStatus); } } //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport); UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport); UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName); new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text); // Sep 24, 2014 : update back the LastCheckInDate to min date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); // commit all in the database clsLocalDB.CommitAndDispose(); } #endregion break; case SplitPaymentTypes.ByItem: #region Item Payment //insert payment details SplitPaymentItemWnd clsSplitPaymentItemWnd = new SplitPaymentItemWnd(); clsSplitPaymentItemWnd.TerminalDetails = mclsTerminalDetails; clsSplitPaymentItemWnd.SysConfigDetails = mclsSysConfigDetails; clsSplitPaymentItemWnd.CustomerDetails = mclsContactDetails; clsSplitPaymentItemWnd.SalesTransactionDetails = mclsSalesTransactionDetails; clsSplitPaymentItemWnd.CreditCardSwiped = mboCreditCardSwiped; clsSplitPaymentItemWnd.IsRefund = mboIsRefund; clsSplitPaymentItemWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded; clsSplitPaymentItemWnd.NoOfDiners = iNoOfDiners; clsSplitPaymentItemWnd.SalesTransactionItemDetails = mclsSalesTransactionDetails.TransactionItems; clsSplitPaymentItemWnd.ShowDialog(this); paymentResult = clsSplitPaymentItemWnd.Result; clsSplitPaymentDetails = clsSplitPaymentItemWnd.arrSplitPaymentDetails; clsSplitPaymentItemWnd.Close(); clsSplitPaymentItemWnd.Dispose(); if (paymentResult == DialogResult.OK) { //save the old in a temp Details Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails; LocalDB clsLocalDB = new LocalDB(); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; // save all the payments made foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails) { mclsSalesTransactionDetails = tmpSalesTransactionDetails; mclsSalesTransactionDetails.TransactionItems = TransactionItems; SetGridItems(); SetGridItemsWidth(); #region create the transaction CreateTransaction(); #endregion #region punch all the items for the selected payee foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems) { if (item.PaxNo == det.PaxNo) { Data.SalesTransactionItemDetails clsDetails = item; //clsDetails.Amount = item.Amount * decSplitPercentage; //clsDetails.Price = item.Price * decSplitPercentage; //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage; //clsDetails.Discount = item.Discount * decSplitPercentage; //clsDetails.Quantity = item.Quantity * decSplitPercentage; AddItem(clsDetails); } } #endregion #region Apply existing discount if required if (tmpSalesTransactionDetails.Discount != 0) { if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable) { lblTransDiscount.Text = "Less 0% / 0.00"; } lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d"); mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType; mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount; mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners; mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners; mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode; mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks; ComputeSubTotal(); setTotalDetails(); if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount) { Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); } } #endregion Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails(); #region close the transaction // override the customerinformation if it's paid with in-house creditcard if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID) { LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails); } //close then print 1 by 1 CloseTransaction(mTopItemDetails, det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment, det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment, det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType, det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails, det.arrCreditPaymentDetails, det.arrDebitPaymentDetails); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); } #region void the old transaction mclsSalesTransactionDetails = tmpSalesTransactionDetails; // load the transaction LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo); clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = 0; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); if (Details.TransactionItemStatus != TransactionItemStatus.Void) { Details.TransactionItemStatus = TransactionItemStatus.Void; ReservedAndCommitItem(Details, Details.TransactionItemStatus); } } //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport); UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport); UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName); new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text); // Sep 24, 2014 : update back the LastCheckInDate to min date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); // commit all in the database clsLocalDB.CommitAndDispose(); } #endregion break; case SplitPaymentTypes.ByAmount: #region Amount Payments //insert payment details SplitPaymentAmountWnd clsSplitPaymentAmountWnd = new SplitPaymentAmountWnd(); clsSplitPaymentAmountWnd.TerminalDetails = mclsTerminalDetails; clsSplitPaymentAmountWnd.SysConfigDetails = mclsSysConfigDetails; clsSplitPaymentAmountWnd.CustomerDetails = mclsContactDetails; clsSplitPaymentAmountWnd.SalesTransactionDetails = mclsSalesTransactionDetails; clsSplitPaymentAmountWnd.CreditCardSwiped = mboCreditCardSwiped; clsSplitPaymentAmountWnd.IsRefund = mboIsRefund; clsSplitPaymentAmountWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded; clsSplitPaymentAmountWnd.NoOfDiners = iNoOfDiners; clsSplitPaymentAmountWnd.ShowDialog(this); paymentResult = clsSplitPaymentAmountWnd.Result; clsSplitPaymentDetails = clsSplitPaymentAmountWnd.arrSplitPaymentDetails; clsSplitPaymentAmountWnd.Close(); clsSplitPaymentAmountWnd.Dispose(); if (paymentResult == DialogResult.OK) { //save the old in a temp Details Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails; LocalDB clsLocalDB = new LocalDB(); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; // save all the payments made foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails) { mclsSalesTransactionDetails = tmpSalesTransactionDetails; mclsSalesTransactionDetails.TransactionItems = TransactionItems; decimal decSplitPercentage = mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount + mclsSalesTransactionDetails.Charge; decSplitPercentage = det.AmountDue / decSplitPercentage; SetGridItems(); SetGridItemsWidth(); #region create the transaction CreateTransaction(); #endregion #region punch all the items divided by the NoOfDiner foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems) { Data.SalesTransactionItemDetails clsDetails = item; //clsDetails.Amount = item.Amount * decSplitPercentage; //clsDetails.Price = item.Price * decSplitPercentage; //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage; //clsDetails.Discount = item.Discount * decSplitPercentage; clsDetails.Quantity = item.Quantity * decSplitPercentage; AddItem(clsDetails); } #endregion #region Apply existing discount if required if (tmpSalesTransactionDetails.Discount != 0) { if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable) { lblTransDiscount.Text = "Less 0% / 0.00"; } lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d"); mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType; mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount; mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners; mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners; mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode; mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks; ComputeSubTotal(); setTotalDetails(); if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount) { Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); } } #endregion Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails(); #region close the transaction // override the customerinformation if it's paid with in-house creditcard if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID) { LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails); } //close then print 1 by 1 CloseTransaction(mTopItemDetails, det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment, det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment, det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType, det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails, det.arrCreditPaymentDetails, det.arrDebitPaymentDetails); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); } #region void the old transaction mclsSalesTransactionDetails = tmpSalesTransactionDetails; // load the transaction LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo); clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = 0; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); if (Details.TransactionItemStatus != TransactionItemStatus.Void) { Details.TransactionItemStatus = TransactionItemStatus.Void; ReservedAndCommitItem(Details, Details.TransactionItemStatus); } } //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport); UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport); UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned); new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName); new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text); // Sep 24, 2014 : update back the LastCheckInDate to min date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true); #endregion clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog); this.LoadOptions(); // commit all in the database clsLocalDB.CommitAndDispose(); } #endregion break; default: break; } } } }
public bool DelGroup(int groupIdx) { try { using (var ctx = new LocalDB()) { var existGroup = (from gr in ctx.Group where gr.Idx == groupIdx select gr).DefaultIfEmpty(null).First(); if (existGroup == null) return false; using (var trx = new TransactionScope()) { ctx.Group.Attach(existGroup); ctx.Group.Remove(existGroup); ctx.SaveChanges(); trx.Complete(); } return true; } } catch (Exception) { return false; } }
public IMSGroups GetGroups() { try { using (var ctx = new LocalDB()) { var groups = (from g in ctx.Group orderby g.No ascending select g).ToList(); if (!groups.Any()) return null; List<IMSGroup> groupList = new List<IMSGroup>(); foreach (var group in groups) { int[] upsNoArray = Regex.Split(group.UpsList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray(); IMSUps[] upss = (from u in ctx.Ups where upsNoArray.Contains(u.No) select new IMSUps() { Idx = u.Idx, GroupIdx = u.GroupIdx, No = u.No, Name = u.Name, MateList = u.MateList, CduNo = u.CduNo, Specification = u.Specification, Capacity = u.Capacity, IpAddress = u.IpAddress, Status = u.Status, Enabled = u.Enabled, InstallAt = u.InstallAt, Description = u.Description }).ToArray(); int[] cduNoArray = Regex.Split(group.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray(); IMSCdu[] cdus = (from c in ctx.Cdu where cduNoArray.Contains(c.No) select new IMSCdu() { Idx = c.Idx, GroupIdx = c.GroupIdx, No = c.No, Name = c.Name, UpsList = c.UpsList, Extendable = c.Extendable, ContractCount = c.ContractCount, IpAddress = c.IpAddress, Status = c.Status, Enabled = c.Enabled, InstallAt = c.InstallAt, Description = c.Description }).ToArray(); IMSGroup imsGroup = new IMSGroup() { Idx = group.Idx, No = group.No, Name = group.Name, Display = group.Display, CoordX = group.CoordX, CoordY = group.CoordY, UpsList = upss.ToList(), CduList = cdus.ToList(), Status = group.Status, Enabled = group.Enabled, Description = group.Description }; groupList.Add(imsGroup); } IMSGroups result = new IMSGroups() { Groups = groupList, At = DateTime.Now }; return result; } } catch (Exception) { return null; } }
public async void Execute(IJobExecutionContext context) { using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional())) { string strResposta = string.Empty; ItemFila nextItem = null; var tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual(); try { conn.Open(); nextItem = LocalDB.PegarProximoItemFila(conn, "revisar-resposta-car"); while (nextItem != null) { strResposta = await ConsultarStatusSicar(nextItem.Requisicao); var resposta = JsonConvert.DeserializeObject <ConsultaSicarResposta>(strResposta); var resultado = GerarMensagemRetorno(resposta); if (resultado.codigoResposta == 500) { var strResultadoEnviarCar = LocalDB.PegarResultadoItemFilaPorRequisitante(conn, nextItem.Requisitante, "enviar-car"); var resultadoEnviarCar = JsonConvert.DeserializeObject <MensagemRetorno>(strResultadoEnviarCar); if (resultadoEnviarCar.codigoResposta != 500) { resultado = resultadoEnviarCar; } } AtualizarRegistros(conn, tid, nextItem, resultado); nextItem = LocalDB.PegarProximoItemFila(conn, "revisar-resposta-car"); } } catch (Exception ex) { //Marcar como processado registrando a mensagem de erro var msg = ex.Message + Environment.NewLine + Environment.NewLine + strResposta; if (nextItem != null) { var item = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante); var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao); ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid); ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid); } try { LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg); }catch (Exception e) { var s = e.Message; } } } }
public UserRepo(LocalDB localDB) { _localDb = localDB; }
public OrderRepo(LocalDB localDb) { _localDb = localDb; }
/// <summary> /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" /> /// fires that is associated with the <see cref="T:Quartz.IJob" />. /// </summary> /// <param name="context">The execution context.</param> /// <remarks> /// The implementation may wish to set a result object on the /// JobExecutionContext before this method exits. The result itself /// is meaningless to Quartz, but may be informative to /// <see cref="T:Quartz.IJobListener" />s or /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's /// execution. /// </remarks> public async void Execute(IJobExecutionContext context) { //logging var jobKey = context.JobDetail.Key; Log.InfoFormat("BEGIN {0} executing at {1}", jobKey, DateTime.Now.ToString("r")); using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional())) { conn.Open(); string tid = string.Empty; var pathArquivoTemporario = new ArquivoManager().BuscarDiretorioArquivoTemporario(conn); if (!pathArquivoTemporario.EndsWith("\\")) { pathArquivoTemporario += "\\"; } pathArquivoTemporario += "SICAR\\"; //Veja se var nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); while (nextItem != null) { //Update item as Started LocalDB.MarcarItemFilaIniciado(conn, nextItem.Id); var item = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante); if (String.IsNullOrEmpty(item.Requisicao)) { nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); continue; } var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao); tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual(); if (ControleCarDB.VerificarCarValido(conn, requisicao.solicitacao_car)) { nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); continue; } string resultado = ""; try { //Atualizar controle de envio do SICAR ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_ENVIO_AGUARDANDO_ENVIO, tid); ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ENVIANDO, tid); //var controleCar = ControleCarDB.ObterItemControleCar(conn, requisicao); var dataCadastroEstadual = ControleCarDB.ObterDataSolicitacao(conn, requisicao.solicitacao_car, requisicao.origem); resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual, requisicao.solicitacao_car); if (String.IsNullOrWhiteSpace(resultado) || resultado.Contains("task was canceled")) { throw new System.ArgumentException("Erro de conexão com o SICAR, será feita uma nova tentativa ;", "resultado"); } var resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado); //Salvar no diretorio de arquivos do SIMLAM Institucional string arquivoFinal; using (var stream = File.Open(pathArquivoTemporario + nextItem.Requisicao, FileMode.Open, FileAccess.Read, FileShare.Read)) { var arquivoManager = new ArquivoManager(); arquivoFinal = arquivoManager.Salvar(nextItem.Requisicao, stream, conn); } //Retificação ItemControleCar itemSicar = ControleCarDB.ObterItemControleCarRetificacao(conn, requisicao); if (itemSicar != null) { if (itemSicar.solicitacao_car_anterior > 0 && resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso) { ControleCarDB.AtualizarSolicitacaoCarRetificacao(conn, itemSicar.solicitacao_car_anterior_esquema, itemSicar.solicitacao_car_anterior, itemSicar.solicitacao_car_anterior_tid); ControleCarDB.AtualizarControleSICarRetificacao(conn, resultadoEnvio, itemSicar, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, requisicao.solicitacao_car, tid, arquivoFinal); } } //Atualiza a Solicitacao do CAR var situacaoSolicitacao = (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso) ? ControleCarDB.SITUACAO_SOLICITACAO_VALIDO : ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE; ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao, situacaoSolicitacao, tid); //Atualizar controle de envio do SICAR ControleCarDB.AtualizarControleSICAR(conn, resultadoEnvio, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, tid, arquivoCar: arquivoFinal); //} //Marcar como processado LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, true, resultado); } catch (Exception ex) { //Marcar como processado registrando a mensagem de erro var msg = " +++---+++ RESULTADO :::: " + (resultado ?? "noMessage ++++ 00----000 " + ex.Message + Environment.NewLine + Environment.NewLine); LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg); ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid); ControleCarDB.AtualizarControleSICAR(conn, new MensagemRetorno() { mensagensResposta = new List <string> { ex.Message, ex.ToString(), resultado ?? "" } }, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid, catchEnviar: true); Log.Error("CATCH:" + nextItem.Requisicao + " ===== ++ " + ex.Message, ex); } System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30)); nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car"); //Apagar arquivo do diretorio temporário //TODO:NÃO VAI //try //{ // File.Delete(pathArquivoTemporario + nextItem.Requisicao); //} //catch (Exception) { /*ignored*/ } } //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%Não está na hora especificada para o sincronismo do seu sistema. %'", conn)) //{ // cmd.ExecuteNonQuery(); //} //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%Value cannot be null.%'", conn)) //{ // cmd.ExecuteNonQuery(); //} //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%TCP%'", conn)) //{ // cmd.ExecuteNonQuery(); //} //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%Object reference%' AND TIPO = 'enviar-car'", conn)) //{ // cmd.ExecuteNonQuery(); //} //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%Houve um problema%'", conn)) //{ // cmd.ExecuteNonQuery(); //} //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null // WHERE resultado like '%Erro de conexão com o SICAR%'", conn)) //{ // cmd.ExecuteNonQuery(); //} conn.Close(); } Log.InfoFormat("ENDING {0} executing at {1}", jobKey, DateTime.Now.ToString("r")); }
public bool FillITPValidHierarchyTable(string sSessionId, string sUser, ref string sRtnMsg) { try { clsTabletDB.ITPStaticTable Static = new clsTabletDB.ITPStaticTable(); clsTabletDB.ITPValidHierarchy ITPValidHierarchy = new clsTabletDB.ITPValidHierarchy(); LocalDB DB = new LocalDB(); double dNewVersionNumber = 0.0; DateTime dtLastVersionDate; string sITPValidHierarchyTableName = ITPValidHierarchy.sITPValidHierarchyTableName; //Only do all of this if the version has changed. So get the local version number and compare to that on the DB. If different do all of this. - WRITE LATER as a general function bool bNewVersion = Static.IsNewVersionOfTable(sSessionId, sUser, sITPValidHierarchyTableName, ref dNewVersionNumber, ref dtLastVersionDate); if (!DB.TableExists(sITPValidHierarchyTableName) || bNewVersion) { clsLocalUtils util = new clsLocalUtils(); string sURL = util.GetEnvironment_wbsURL("wbsITP_External"); wbsITP_External ws = new wbsITP_External(); ws.Url = sURL; object[] objValidHierarchy = ws.GetITPValidHierarchyInfo(sSessionId, sUser); if (objValidHierarchy[0].ToString() == "Success") { if (ITPValidHierarchy.TableITPValidHierarchyDeleteAllRecords(ref sRtnMsg)) { string sITPValidHierarchyInfo = objValidHierarchy[1].ToString(); string[] sHeaderInfo = sITPValidHierarchyInfo.Split('~'); if (sHeaderInfo[0] == "ITPValidHierarchyInfo") { string[] delimiters = new string[] { "||" }; string[] sITPValidHierarchyItems = sHeaderInfo[1].Split(delimiters, StringSplitOptions.RemoveEmptyEntries); int iValidHierarchyCount = sITPValidHierarchyItems.Length; if (iValidHierarchyCount > 0) { this.InvokeOnMainThread(() => { progBarValidHierarchyVw.ShowProgressBar(iValidHierarchyCount); }); //First check if the ITPValidHierarchy table exists and if not create it if (ITPValidHierarchy.CheckFullITPValidHierarchyTable()) { SqliteConnection conn = DB.OpenConnection(); for (int i = 0; i < iValidHierarchyCount; i++) { string[] delimiters2 = new string[] { "^" }; string[] sValidHierarchyItems = sITPValidHierarchyItems[i].Split(delimiters2, StringSplitOptions.None); string sFieldValue = sValidHierarchyItems[0]; string sFieldType = sValidHierarchyItems[1]; Array.Resize<string>(ref sValidHierarchyItems, sValidHierarchyItems.Length + 1); sValidHierarchyItems[sValidHierarchyItems.Length - 1] = sFieldType; sValidHierarchyItems[sValidHierarchyItems.Length - 2] = sFieldValue; sValidHierarchyItems[0] = i.ToString(); ITPValidHierarchy.TableITPValidHierarchyAddRecord(sValidHierarchyItems, conn); this.InvokeOnMainThread(() => { progBarValidHierarchyVw.UpdateProgressBar(i + 1); }); } DB.CloseConnection(conn); } } } } //Update the version number locally Static.UpdateVersionNumber(sITPValidHierarchyTableName, dNewVersionNumber); this.InvokeOnMainThread(() => { progBarValidHierarchyVw.CloseProgressBar(); }); return true; } else { sRtnMsg = objValidHierarchy[1].ToString(); return false; } } else { //This means you don't have to fill this static table return true; } } catch (Exception ex) { sRtnMsg = "Failure" + ex.Message.ToString(); return false; } }
void Enable_Clicked(object sender, System.EventArgs e) { LocalDB.TouchID(Enable: true); Navigation.PushAsync(new ExistingUserLoginView.EnableTouchIDSuccessPage()); }
public bool SetGroup(IMSGroup g) { try { using (var ctx = new LocalDB()) { var existGroup = (from gr in ctx.Group where gr.Idx == g.Idx select gr).DefaultIfEmpty(null).First(); if (existGroup == null) return false; existGroup.No = g.No; existGroup.Name = g.Name; existGroup.Display = g.Display; existGroup.CoordX = g.CoordX; existGroup.CoordY = g.CoordY; // 이 부분에서 실제로 하위의 것들도 같은 관계가 되어 있는지 발리데이션 해야 한다. // 그냥 //existGroup.UpsList = // string.Join(",", // (from upsNo in g.UpsList orderby upsNo ascending select $"{upsNo}").ToArray()); //existGroup.CduList = // string.Join(",", // (from cudNo in g.CduList orderby cudNo ascending select $"{cudNo}").ToArray()); existGroup.Enabled = g.Enabled; if (existGroup.Enabled) { var subUpsArray = (from u in ctx.Ups where (Regex.Split(existGroup.UpsList, @"\D+") .Select(n => Convert.ToInt32(n)) .ToList() .Contains(u.No)) select u).ToArray(); foreach (var subUps in subUpsArray) { subUps.Enabled = g.Enabled; } var subCduArray = (from c in ctx.Cdu where (Regex.Split(existGroup.CduList, @"\D+") .Select(n => Convert.ToInt32(n)) .ToList() .Contains(c.No)) select c).ToArray(); foreach (var subCdu in subCduArray) { subCdu.Enabled = g.Enabled; } } existGroup.Description = g.Description; using (var trx = new TransactionScope()) { ctx.SaveChanges(); trx.Complete(); } } return true; } catch (Exception) { return false; } }
public bool FillITPInventoryMainTable(string sSessionId, string sUser, ref string sRtnMsg) { try { clsTabletDB.ITPStaticTable Static = new clsTabletDB.ITPStaticTable(); clsTabletDB.ITPInventory ITPInventory = new clsTabletDB.ITPInventory(); LocalDB DB = new LocalDB(); double dNewVersionNumber = 0.0; DateTime dtLastVersionDate; DateTime dtToday = DateTime.Now; string sITPInventoryTableName = ITPInventory.sITPInventoryTableName; //Only do all of this if the version has changed. So get the local version number and compare to that on the DB. If different do all of this. - WRITE LATER as a general function bool bNewVersion = Static.IsNewVersionOfTable(sSessionId, sUser, sITPInventoryTableName, ref dNewVersionNumber, ref dtLastVersionDate); TimeSpan ts = dtToday - dtLastVersionDate; int iDaysSinceUpdate = ts.Days; if (!DB.TableExists(sITPInventoryTableName) || bNewVersion || iDaysSinceUpdate >= 30) { clsLocalUtils util = new clsLocalUtils(); string sURL = util.GetEnvironment_wbsURL("wbsITP_External"); wbsITP_External ws = new wbsITP_External(); ws.Url = sURL; object[] objInventory = ws.GetITPInventoryInfo(sSessionId, sUser); if (objInventory[0].ToString() == "Success") { if (ITPInventory.TableITPInventoryDeleteAllRecords(ref sRtnMsg)) { string sITPInventoryInfo = objInventory[1].ToString(); string[] sHeaderInfo = sITPInventoryInfo.Split('~'); if (sHeaderInfo[0] == "ITPInventoryMakeAndModelInfo") { string[] delimiters = new string[] { "||" }; string[] sITPInventoryItems = sHeaderInfo[1].Split(delimiters, StringSplitOptions.RemoveEmptyEntries); int iInventoryCount = sITPInventoryItems.Length; if (iInventoryCount > 0) { this.InvokeOnMainThread(() => { progBarInventoryVw.ShowProgressBar(iInventoryCount); }); //First check if the ITPInventory table exists and if not create it if (ITPInventory.CheckFullITPInventoryTable()) { for (int i = 0; i < iInventoryCount; i++) { string[] delimiters2 = new string[] { "^" }; string[] sInventoryItems = sITPInventoryItems[i].Split(delimiters2, StringSplitOptions.None); ITPInventory.TableITPInventoryAddRecord(sInventoryItems); this.InvokeOnMainThread(() => { progBarInventoryVw.UpdateProgressBar(i + 1); }); } } } } } //Update the version number locally Static.UpdateVersionNumber(sITPInventoryTableName, dNewVersionNumber); this.InvokeOnMainThread(() => { progBarInventoryVw.CloseProgressBar(); }); return true; } else { sRtnMsg = objInventory[1].ToString(); return false; } } else { //This means you don't have to fill this static table return true; } } catch (Exception ex) { sRtnMsg = "Failure" + ex.Message.ToString(); return false; } }
public int Add(sys_organize entry) { StringBuilder sql = new StringBuilder(); sql.Append("INSERT INTO dbo.sys_organize \n"); sql.Append(" ( status , \n"); sql.Append(" pid , \n"); sql.Append(" orgtype , \n"); sql.Append(" code , \n"); sql.Append(" title , \n"); sql.Append(" tel , \n"); sql.Append(" fax , \n"); sql.Append(" email , \n"); sql.Append(" leader , \n"); sql.Append(" logo , \n"); sql.Append(" address , \n"); sql.Append(" add_time , \n"); sql.Append(" modify_time \n"); sql.Append(" ) \n"); sql.Append("SELECT @status , -- status - int \n"); sql.Append(" @pid , -- pid - int \n"); sql.Append(" @orgtype , -- orgtype - int \n"); sql.Append(" @code , -- code - nvarchar(50) \n"); sql.Append(" @title , -- title - nvarchar(max) \n"); sql.Append(" @tel , -- tel - nvarchar(50) \n"); sql.Append(" @fax , -- fax - nvarchar(50) \n"); sql.Append(" @email , -- email - nvarchar(50) \n"); sql.Append(" @leader , -- leader - nvarchar(50) \n"); sql.Append(" @logo , -- logo - nvarchar(max) \n"); sql.Append(" @address , -- address - nvarchar(max) \n"); sql.Append(" @add_time , -- add_time - datetime \n"); sql.Append(" @modify_time -- modify_time - datetime \n"); sql.Append(" WHERE NOT EXISTS (SELECT * FROM dbo.sys_organize WHERE code=@code)\n select SCOPE_IDENTITY();\n"); using (LocalDB db = new LocalDB()) { int nodeid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(), new { status = entry.status, pid = entry.pid, orgtype = entry.orgtype, code = entry.code, title = entry.title, tel = entry.tel, fax = entry.fax, email = entry.email, leader = entry.leader, logo = entry.logo, address = entry.address, add_time = entry.add_time, modify_time = entry.modify_time }); if (nodeid > 0) { entry.id = nodeid; entry.entitytype = "sys_organize"; solr.Add(entry); solr.Commit(); } return(nodeid); } }
public ClientGateway(IExecutor executor, LocalDB localDB, ExternalServices externalServices) { this.localDB = localDB; this.externalServices = externalServices; this.executor = executor; }
public int SaveOrganizeTree(List <sys_organize> data) { StringBuilder sql = new StringBuilder(); sql.Append("declare @isexsit int=0 \n "); sql.Append("set IDENTITY_INSERT sys_organize on \n"); foreach (var item in data) { sql.AppendFormat("select @isexsit=count(id) from sys_organize where id = {0} \n", item.id); sql.Append(" if @isexsit=0 \n"); sql.Append(" begin \n"); sql.Append("INSERT INTO dbo.sys_organize \n"); sql.Append(" ( id,status , \n"); sql.Append(" pid , \n"); sql.Append(" orgtype , \n"); sql.Append(" code , \n"); sql.Append(" title , \n"); sql.Append(" tel , \n"); sql.Append(" fax , \n"); sql.Append(" email , \n"); sql.Append(" leader , \n"); sql.Append(" logo , \n"); sql.Append(" address , \n"); sql.Append(" add_time , \n"); sql.Append(" modify_time \n"); sql.Append(" ) \n"); sql.AppendFormat("VALUES ( {0},{1}, -- status - int \n", item.id, item.status); sql.AppendFormat(" {0}, -- pid - int \n", item.pid); sql.AppendFormat(" {0}, -- orgtype - int \n", item.orgtype); sql.AppendFormat(" '{0}', -- code - nvarchar(50) \n", item.code); sql.AppendFormat(" '{0}', -- title - nvarchar(max) \n", item.title); sql.AppendFormat(" '{0}', -- tel - nvarchar(50) \n", item.tel); sql.AppendFormat(" '{0}', -- fax - nvarchar(50) \n", item.fax); sql.AppendFormat(" '{0}', -- email - nvarchar(50) \n", item.email); sql.AppendFormat(" '{0}', -- leader - nvarchar(50) \n", item.leader); sql.AppendFormat(" '{0}', -- logo - nvarchar(max) \n", item.logo); sql.AppendFormat(" '{0}', -- address - nvarchar(max) \n", item.address); sql.Append(" GETDATE(), -- add_time - datetime \n"); sql.Append(" NULL -- modify_time - datetime \n"); sql.Append(" ) \n"); sql.Append(" end \n"); sql.Append(" else \n"); sql.Append(" begin \n"); sql.AppendFormat(" update sys_organize set title='{0}' where id = {1} \n", item.title, item.id); sql.Append(" end \n"); } sql.Append("set IDENTITY_INSERT sys_organize off \n"); using (LocalDB db = new LocalDB()) { db.Current_Conn.Open(); var transaction = db.Current_Conn.BeginTransaction(); List <int> delids = db.Current_Conn.Query <int>("select id from sys_organize", null, transaction).Except(data.Select(t => t.id)).ToList(); try { db.Current_Conn.Execute("delete from sys_organize where id in @ids", new { ids = delids }, transaction); int cnt = db.Current_Conn.Execute(sql.ToString(), null, transaction); if (cnt > 0) { var r = solr.Delete(new SolrQuery("entitytype:sys_organize")); foreach (var entry in data) { entry.entitytype = "sys_organize"; solr.Add(entry); } solr.Commit(); } transaction.Commit(); return(cnt); } catch (Exception e) { Console.Write(e); transaction.Rollback(); throw; } } }
private void VerifyCredit() { if (!SuspendTransactionAndContinue()) return; DialogResult loginresult = DialogResult.Cancel; // 08Jul2015 : Remove the access for CreditVerification if it's normal switch (mclsSysConfigDetails.CreditPaymentType ) { case CreditPaymentType.Houseware: loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.EnterCreditPayment); break; case CreditPaymentType.Normal: case CreditPaymentType.MPC: default: loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.FE_VerifyCredit); break; } if (loginresult == DialogResult.OK) { CreditVerificationWnd clsCreditVerificationWnd = new CreditVerificationWnd(); clsCreditVerificationWnd.TerminalDetails = mclsTerminalDetails; clsCreditVerificationWnd.SysConfigDetails = mclsSysConfigDetails; clsCreditVerificationWnd.CashierID = mclsSalesTransactionDetails.CashierID; clsCreditVerificationWnd.CashierName = mclsSalesTransactionDetails.CashierName; clsCreditVerificationWnd.ShowDialog(this); DialogResult result = clsCreditVerificationWnd.Result; Data.ContactDetails details = clsCreditVerificationWnd.CreditorDetails; Data.ContactDetails guarantordetails = clsCreditVerificationWnd.GuarantorDetails; Keys keyCommand = clsCreditVerificationWnd.keyCommand; clsCreditVerificationWnd.Close(); clsCreditVerificationWnd.Dispose(); if (result == DialogResult.OK) { if (keyCommand == Keys.F12) { Cursor.Current = Cursors.WaitCursor; LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; try { //print the verification slip PrintCreditVerificationSlip(details, guarantordetails); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Credit verification procedure. Err Description: "); } clsLocalDB.CommitAndDispose(); } } } }
private static bool UpdateNote(Note note, bool reflectOnRoaming = true) { if (note == null) { return(false); } Debug.WriteLine("Update note: " + note.Title); //App.TelemetryClient.TrackEvent("NoteUpdated"); //associate with note foreach (var item in note.Checklist) { item.NoteId = note.ID; } foreach (var item in note.Images) { item.NoteId = note.ID; } note.Reminder.NoteId = note.ID; //NotificationsManager.TryCreateNoteReminder(note, note.Reminder.Date); //DB.UpdateWithChildren(note); bool success = LocalDB.Update(note) == 1; if (!success) { return(false); } if (reflectOnRoaming) { RoamingDB.Update(note); } //update checklist items and note images if (note.Checklist.Count > 0) { LocalDB.InsertOrReplaceAll(note.Checklist); if (reflectOnRoaming) { RoamingDB.InsertOrReplaceAll(note.Checklist); } } if (note.Images.Count > 0) { LocalDB.InsertOrReplaceAll(note.Images); if (reflectOnRoaming) { RoamingDB.InsertOrReplaceAll(note.Images); } } if (note.Reminder != null) { LocalDB.InsertOrReplace(note.Reminder); if (reflectOnRoaming) { RoamingDB.InsertOrReplace(note.Reminder); } } note.Changed = false; var handler = NoteChanged; if (handler != null) { handler(null, new NoteEventArgs(note)); } var handler2 = NotesSaved; if (handler2 != null) { handler2(null, EventArgs.Empty); } return(true); }
private void RenewRewardCard() { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot renew a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for reward card renewal."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); clsContact.CommitAndDispose(); if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + "."); ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd(); clsContactRewardWnd.TerminalDetails = mclsTerminalDetails; clsContactRewardWnd.Caption = "Reward Card Renewal"; clsContactRewardWnd.ContactDetails = clsContactDetails; clsContactRewardWnd.RewardCardStatus = RewardCardStatus.ReNew; clsContactRewardWnd.ShowDialog(this); result = clsContactRewardWnd.Result; clsContactDetails = clsContactRewardWnd.ContactDetails; clsContactRewardWnd.Close(); clsContactRewardWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; if (clsProducts.Details(Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE).ProductID == 0) { clsProducts.CREATE_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "ADVANTAGE_CARD_RENEWAL_FEE_BARCODE product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Renewing reward card."); } Cursor.Current = Cursors.Default; } }
public CurrentAccountService(IExecutor executor, ExternalServices externalServices, LocalDB localDB) { this.externalServices = externalServices; this.localDB = localDB; this.executor = executor; }
private void CreditCardReplacement(CreditCardStatus pvtCreditCardStatus) { if (mboIsInTransaction) { MessageBox.Show("Sorry you cannot replace a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange); if (loginresult == DialogResult.OK) { try { DialogResult result; Data.ContactDetails clsContactDetails; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER; clsContactWnd.Header = "Please select customer for credit card replacement."; clsContactWnd.ShowDialog(this); clsContactDetails = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result != DialogResult.OK) { return; } if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card..."); Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContactDetails = clsContact.Details(clsContactDetails.ContactID); Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID); clsContact.CommitAndDispose(); if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null) { clsEvent.AddEventLn("Cancelled!"); clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. "); MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card #: " + clsContactDetails.CreditDetails.CreditCardNo + " of " + clsContactDetails.ContactName + " as " + pvtCreditCardStatus.ToString("G")); string strOldCreditCardNo = clsContactDetails.CreditDetails.CreditCardNo; ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd(); if (pvtCreditCardStatus == CreditCardStatus.Replaced_Lost) clsContactCreditWnd.Header = "Credit Card Replacement of LOST CARD "; else if (pvtCreditCardStatus == CreditCardStatus.Replaced_Expired) clsContactCreditWnd.Header = "Credit Card Replacement of EXPIRED CARD "; clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails; clsContactCreditWnd.Guarantor = clsGuarantor; clsContactCreditWnd.ContactDetails = clsContactDetails; clsContactCreditWnd.CreditCardStatus = pvtCreditCardStatus; clsContactCreditWnd.TerminalDetails = mclsTerminalDetails; clsContactCreditWnd.ShowDialog(this); result = clsContactCreditWnd.Result; clsContactDetails = clsContactCreditWnd.ContactDetails; clsContactCreditWnd.Close(); clsContactCreditWnd.Dispose(); if (result == DialogResult.OK) { Data.Products clsProducts = new Data.Products(mConnection, mTransaction); mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction; string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_REPLACEMENT_FEE_BARCODE; //override if with Guarantor if (clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_REPLACEMENT_FEE_BARCODE; if (clsProducts.Details(strProductBarcode).ProductID == 0) { if (!clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor) clsProducts.CREATE_CREDIT_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT(); else clsProducts.CREATE_SUPER_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT(); Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.CreditCardChange, strProductBarcode + " product has been created coz it's not configured"); } clsProducts.CommitAndDispose(); MessageBox.Show("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); clsEvent.AddEventLn("Done!", true); clsEvent.AddEventLn("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", true); LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction); mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction; clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: "); LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails); if (!this.CreateTransaction()) return; txtBarCode.Text = strProductBarcode; ReadBarCode(); int iRow = dgItems.CurrentRowIndex; txtBarCode.Text = ""; CloseTransaction(); clsLocalDB.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Replacing internal credit card."); } Cursor.Current = Cursors.Default; } }
public AlphaCardService(IExecutor executor, ExternalServices externalServices, LocalDB localDB) { this.externalServices = externalServices; this.localDB = localDB; this.executor = executor; }
public void ReloadNpc(string[] @Params, TPlayObject PlayObject) { string sParam = string.Empty; if (@Params != null) { sParam = @Params.Length > 0 ? @Params[0] : ""; } List <TMerchant> TmpMerList = null; List <TNormNpc> TmpNorList = null; TMerchant Merchant; TNormNpc NPC; if ((PlayObject.m_btPermission < 6)) { return; } if (("all").ToLower().CompareTo((sParam).ToLower()) == 0) { LocalDB.GetInstance().ReLoadMerchants(); UserEngine.ReloadMerchantList(); PlayObject.SysMsg("交易NPC重新加载完成!!!", TMsgColor.c_Red, TMsgType.t_Hint); UserEngine.ReloadNpcList(); PlayObject.SysMsg("管理NPC重新加载完成!!!", TMsgColor.c_Red, TMsgType.t_Hint); return; } TmpMerList = new List <TMerchant>(); try { if (UserEngine.GetMerchantList(PlayObject.m_PEnvir, PlayObject.m_nCurrX, PlayObject.m_nCurrY, 9, TmpMerList) > 0) { for (int I = 0; I < TmpMerList.Count; I++) { Merchant = TmpMerList[I]; Merchant.ClearScript(); Merchant.LoadNpcScript(); PlayObject.SysMsg(Merchant.m_sCharName + "重新加载成功...", TMsgColor.c_Green, TMsgType.t_Hint); } } else { PlayObject.SysMsg("附近未发现任何交易NPC!!!", TMsgColor.c_Red, TMsgType.t_Hint); } TmpNorList = new List <TNormNpc>(); if (UserEngine.GetNpcList(PlayObject.m_PEnvir, PlayObject.m_nCurrX, PlayObject.m_nCurrY, 9, TmpNorList) > 0) { for (int I = 0; I < TmpNorList.Count; I++) { NPC = TmpNorList[I]; NPC.ClearScript(); NPC.LoadNpcScript(); PlayObject.SysMsg(NPC.m_sCharName + "重新加载成功...", TMsgColor.c_Green, TMsgType.t_Hint); } } else { PlayObject.SysMsg("附近未发现任何管理NPC!!!", TMsgColor.c_Red, TMsgType.t_Hint); } } finally { HUtil32.Dispose(TmpMerList); HUtil32.Dispose(TmpNorList); } }
public IMSGroup GetGroup(int groupIdx) { try { using (var ctx = new LocalDB()) { var group = (from g in ctx.Group where g.Idx == groupIdx select g).DefaultIfEmpty(null).First(); if (group == null) return null; int[] upsNoArray = Regex.Split(group.UpsList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray(); IMSUps[] upss = (from u in ctx.Ups where upsNoArray.Contains(u.No) select new IMSUps() { Idx = u.Idx, GroupIdx = u.GroupIdx, No = u.No, Name = u.Name, MateList = u.MateList, CduNo = u.CduNo, Specification = u.Specification, Capacity = u.Capacity, IpAddress = u.IpAddress, Status = u.Status, Enabled = u.Enabled, InstallAt = u.InstallAt, Description = u.Description }).ToArray(); int[] cduNoArray = Regex.Split(group.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray(); IMSCdu[] cdus = (from c in ctx.Cdu where cduNoArray.Contains(c.No) select new IMSCdu() { Idx = c.Idx, GroupIdx = c.GroupIdx, No = c.No, Name = c.Name, UpsList = c.UpsList, Extendable = c.Extendable, ContractCount = c.ContractCount, IpAddress = c.IpAddress, Status = c.Status, Enabled = c.Enabled, InstallAt = c.InstallAt, Description = c.Description }).ToArray(); IMSGroup result = new IMSGroup() { Idx = group.Idx, No = group.No, Name = group.Name, Display = group.Display, CoordX = group.CoordX, CoordY = group.CoordY, UpsList = upss.ToList(), CduList = cdus.ToList(), Status = group.Status, Enabled = group.Enabled, Description = group.Description }; return result; } } catch (Exception) { return null; } }
private void logout_clickHandler(object sender, EventArgs e) { //NavigationService.Navigate(new Uri("/RegistrationPages/PasscodePage.xaml", UriKind.Relative)); LocalDB.deleteLocalPerson(); NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute)); }
public static async Task <bool> RemoveNote(Note note, bool reflectOnRoaming = true) { if (note == null) { return(false); } Note noteFound = null; //get original reference if (notes != null) { try { if (note.IsArchived) { LoadArchivedNotesIfNecessary(); noteFound = ArchivedNotes.FirstOrDefault(x => x.ID == note.ID); if (ArchivedNotes.IndexOf(noteFound) < 0) { noteFound = null; } } else { noteFound = Notes.FirstOrDefault(x => x.ID == note.ID); if (Notes.IndexOf(note) < 0) { noteFound = null; } } } catch (Exception) { Debug.WriteLine("Failed removing note."); return(false); } } Debug.WriteLine("Remove note: " + note.Title); //App.TelemetryClient.TrackEvent("NoteRemoved"); //remove note images from disk await RemoveNoteImages(note.Images); RemoveNoteReminders(note); NotificationsManager.RemoveTileIfExists(note.ID); if (noteFound == null) { return(false); } noteFound.SoftDelete(); bool success = LocalDB.Update(noteFound) == 1; if (!success) { return(false); } if (reflectOnRoaming) { RoamingDB.Update(noteFound); } //LocalDB.Delete(noteFound); //RoamingDB.Delete(noteFound); AppData.Notes.Remove(noteFound); AppData.ArchivedNotes.Remove(noteFound); var handler = NoteRemoved; if (handler != null) { handler(null, new NoteIdEventArgs(noteFound.ID)); } var handler2 = NotesSaved; if (handler2 != null) { handler2(null, EventArgs.Empty); } return(true); }
public int ScrapeArt(ArtType artType, LocalDB localDB) { Debug.Assert(false, "Trying to scrape art for an emulator. Don't do that."); return(0); }
private static IntPtr LoadProcAddress() => LocalDB.GetProcAddress("LocalDBFormatMessage");
//db설정 public void setDB(string dbName) { db = new LocalDB("Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=../../../DBFiles/" + dbName + ";" + "Persist Security Info=False"); }
public int Add(sys_user entry) { entry.userid = new Tool().RandNum(); using (LocalDB db = new LocalDB()) { StringBuilder sql = new StringBuilder(); sql.Append("INSERT INTO dbo.sys_user \n"); sql.Append(" ( status , \n"); sql.Append(" usercode ,userid, \n"); sql.Append(" sex , \n"); sql.Append(" username , \n"); sql.Append(" userpwd , \n"); sql.Append(" rkey , \n"); sql.Append(" company_id , \n"); sql.Append(" department_id , \n"); sql.Append(" login_way , \n"); sql.Append(" login_date , \n"); sql.Append(" logout_date , \n"); sql.Append(" address , \n"); sql.Append(" tel , \n"); sql.Append(" birthday , \n"); sql.Append(" modify_date, \n"); sql.Append(" add_time \n"); sql.Append(" ) \n"); sql.Append("VALUES ( @status , -- status - int \n"); sql.Append(" @code , -- code - nvarchar(50) \n"); sql.Append(" @userid,\n "); sql.Append(" @sex , -- sex - nvarchar(50) \n"); sql.Append(" @username , -- username - nvarchar(50) \n"); sql.Append(" @userpwd , -- userpwd - nvarchar(50) \n"); sql.Append(" @rkey , -- rkey - nvarchar(50) \n"); sql.Append(" @company_id , -- company_id - int \n"); sql.Append(" @department_id , -- department_id - int \n"); sql.Append(" @login_way , -- login_way - int \n"); sql.Append(" @login_date , -- login_date - datetime \n"); sql.Append(" @logout_date , -- logout_date - datetime \n"); sql.Append(" @address , -- add_time - datetime \n"); sql.Append(" @tel , -- add_time - datetime \n"); sql.Append(" @birthday , -- add_time - datetime \n"); sql.Append(" @modify_date, -- modify_date - datetime \n"); sql.Append(" GETDATE() -- add_time - datetime \n"); sql.Append(" );\n select SCOPE_IDENTITY();\n"); int entityid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(), new { status = entry.status, code = entry.usercode, userid = entry.userid, sex = entry.sex, username = entry.username, userpwd = entry.userpwd, rkey = entry.rkey, company_id = entry.company_id, department_id = entry.department_id, login_way = entry.login_way, login_date = entry.login_date, logout_date = entry.logout_date, address = entry.address, tel = entry.tel, birthday = entry.birthday, modify_date = entry.modify_date }); entry.id = entityid; entry.entitytype = "sys_user"; var solr = ServiceLocator.Current.GetInstance <ISolrOperations <sys_user> >(); var res = solr.Add(entry); solr.Commit(); return(entityid); } }
public void SetDirty() { LocalDB.SendDBMsg(this); }
public async Task TestOrderInsertion() { string connStr; //initialize table using (var conn = LocalDB.GetLocalDB("ExternalMappingTest")) { var cmd = new SqlCommand(@" IF OBJECT_id('dbo.Orders', 'U') IS NOT NULL DROP TABLE dbo.Orders; CREATE TABLE dbo.Orders ( Id INT IDENTITY(1,1) NOT NULL, Date DATETIME NOT NULL, Value FLOAT NOT NULL, CustomerName NVARCHAR(50) NOT NULL, CustomerAge INT NOT NULL ) ", conn); cmd.ExecuteNonQuery(); connStr = conn.ConnectionString; } //will take effect TypeAccessorConfig.RegisterMapping <Order, string>(p => p.Customer.Name, new DBColumnMapping("OrderTarget", "CustomerName", "N/A2")); //will take effect TypeAccessorConfig.RegisterMapping <Order, int?>(p => p.Customer.Age, new DBColumnMapping("OrderTarget", "CustomerAge", -99)); var dbInserter = new DbBulkInserter <Order>(connStr, "dbo.Orders", DataflowOptions.Default, "OrderTarget"); dbInserter.Post(new Order { OrderDate = DateTime.Now, OrderValue = 15, Customer = new Person() { Name = "Aaron", Age = 38 } }); dbInserter.Post(new Order { OrderDate = DateTime.Now, OrderValue = 25, Customer = new Person() { Name = "Bob", Age = 30 } }); dbInserter.Post(new Order { OrderDate = DateTime.Now, OrderValue = 35, Customer = new Person() { Age = 48 } }); dbInserter.Post(new Order { OrderDate = DateTime.Now, OrderValue = 45, Customer = new Person() { Name = "Neo" } }); await dbInserter.SignalAndWaitForCompletionAsync(); using (var conn = LocalDB.GetLocalDB("ExternalMappingTest")) { Assert.AreEqual(4, conn.ExecuteScalar <int>("select count(*) from dbo.Orders")); Assert.AreEqual(1, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerAge = 48 and CustomerName = 'N/A2'")); Assert.AreEqual(0, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerName = 'N/A'")); Assert.AreEqual(1, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerName = 'Neo' and CustomerAge = -99")); } }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { MatchWindowViewModel MWVM = values[0] as MatchWindowViewModel; LocalDB db = (LocalDB)values[1]; string name = Enum.GetName(typeof(LocalDB), db); string id = ""; string sep1 = " ("; string sep2 = ")"; switch (db) { case LocalDB.GamesDB: if (MWVM.ID_GDB != null) { id = $"{sep1}{MWVM.ID_GDB}{sep2}"; } break; case LocalDB.GiantBomb: if (MWVM.ID_GB != null) { id = $"{sep1}{MWVM.ID_GB}{sep2}"; } break; case LocalDB.OpenVGDB: if (MWVM.ID_OVG != null) { id = $"{sep1}{MWVM.ID_OVG}{sep2}"; } break; case LocalDB.LaunchBox: if (MWVM.ID_LB != null) { id = $"{sep1}{MWVM.ID_LB}{sep2}"; } break; case LocalDB.Unknown: break; case LocalDB.Datomatic: break; case LocalDB.MobyGames: break; case LocalDB.Robin: break; default: break; } return(name + id); }
public UserRepo(LocalDB localDb) { _db = localDb; }