private void timer_Tick(object sender, EventArgs e) { try { timer.Interval = new TimeSpan(0, 1, 0); //timer.Stop(); if (!string.IsNullOrEmpty(SyncFunctions.username)) { using (SqlConnection conn = new SqlConnection(GlobalClass.TConnectionString)) { var PendingBills = conn.Query <dynamic>("SELECT VCHRNO, JSON_DATA FROM tblSyncLog WHERE STATUS = 0"); foreach (dynamic bill in PendingBills) { if (bill.VCHRNO.Substring(0, 2) == "CN") { BillReturnViewModel model; if (!string.IsNullOrEmpty(bill.JSON_DATA)) { model = JsonConvert.DeserializeObject <BillReturnViewModel>(bill.JSON_DATA); } else { model = SyncFunctions.getBillReturnObject(bill.VCHRNO); } model.datetimeClient = DateTime.Now; model.isrealtime = false; SyncFunctions.SyncSalesReturnData(model); } else { BillViewModel model; if (!string.IsNullOrEmpty(bill.JSON_DATA)) { model = JsonConvert.DeserializeObject <BillViewModel>(bill.JSON_DATA); } else { model = SyncFunctions.getBillObject(bill.VCHRNO); } model.datetimeClient = DateTime.Now; model.isrealtime = false; SyncFunctions.SyncSalesData(model); } System.Threading.Thread.Sleep(100); } } } } catch (Exception ex) { MessageBox.Show(ex.GetBaseException().Message); } }
private void ExecuteSave(object obj) { string strSQL; string BillNo = string.Empty; try { if (string.IsNullOrEmpty(Remarks)) { MessageBox.Show("Cannot issue Credit Note without Remarks. Please enter Remarks and try again.", MessageBoxCaption, MessageBoxButton.OK, MessageBoxImage.Warning); return; } using (SqlConnection conn = new SqlConnection(GlobalClass.TConnectionString)) { conn.Open(); using (SqlTransaction tran = conn.BeginTransaction()) { if (conn.ExecuteScalar <int>("SELECT COUNT(*) FROM ParkingSales WHERE RefBillNo = @RefBillNo", new { RefBillNo = InvoicePrefix + RefBillNo }, tran) > 0) { MessageBox.Show("Credit Note has already been issued on selected bill. Please enter another Bill No and try again.", MessageBoxCaption, MessageBoxButton.OK, MessageBoxImage.Warning); return; } BillNo = "CN" + GlobalClass.GetInvoiceNo("CN", tran); strSQL = string.Format ( @"INSERT INTO ParkingSales (BillNo, TDate, TMiti, TTime, BILLTO, BILLTOADD, BILLTOPAN, Description, Amount, Discount, NonTaxable, Taxable, VAT, GrossAmount, PID, UID, SESSION_ID, FYID, TaxInvoice, RefBillNo, Remarks) SELECT @BillNo, @TDATE, @TMITI, @TTIME, BILLTO, BILLTOADD, BILLTOPAN, Description, Amount, Discount, NonTaxable, Taxable, VAT, GrossAmount, PID, @UID, @SESSION_ID, @FYID, TaxInvoice, @RefBillNo, @Remarks FROM ParkingSales WHERE BillNo = @RefBillNo AND FYID = @FYID" ); int res = conn.Execute(strSQL, new { BillNo = BillNo, TDATE = CurDate, TMITI = nepDate.CBSDate(CurDate), TTIME = CurTime, UID = GlobalClass.User.UID, SESSION_ID = GlobalClass.Session, FYID = GlobalClass.FYID, RefBillNo = InvoicePrefix + RefBillNo, Remarks = Remarks }, transaction: tran); if (res > 0) { string strSqlDetails = string.Format ( @"INSERT INTO ParkingSalesDetails (BillNo, FYID, PType, ProdId, [Description], Quantity, Rate, Amount, Discount, NonTaxable, Taxable, VAT, NetAmount, Remarks) SELECT @BillNo, @FYID, PType, ProdId, Description, Quantity, Rate, Amount, Discount, NonTaxable, Taxable, VAT, NetAmount, Remarks FROM ParkingSalesDetails WHERE BillNo = @RefBillNo AND FYID = @FYID" ); conn.Execute(strSqlDetails, new { BillNo = BillNo, FYID = GlobalClass.FYID, RefBillNo = InvoicePrefix + RefBillNo }, tran); conn.Execute("UPDATE tblSequence SET CurNo = CurNo + 1 WHERE VNAME = @VNAME AND FYID = @FYID", new { VNAME = "CN", FYID = GlobalClass.FYID }, transaction: tran); GlobalClass.SetUserActivityLog("Credit Note", "New", VCRHNO: BillNo); SyncFunctions.LogSyncStatus(tran, BillNo, GlobalClass.FYNAME); MessageBox.Show("Credit Note successfully saved.", MessageBoxCaption, MessageBoxButton.OK, MessageBoxImage.Information); } tran.Commit(); if (!string.IsNullOrEmpty(SyncFunctions.username)) { SyncFunctions.SyncSalesReturnData(SyncFunctions.getBillReturnObject(BillNo), 1); } } if (!string.IsNullOrEmpty(BillNo)) { RawPrinterHelper.SendStringToPrinter(GlobalClass.PrinterName, ((char)27).ToString() + ((char)112).ToString() + ((char)0).ToString() + ((char)64).ToString() + ((char)240).ToString(), "Receipt"); //Open Cash Drawer PrintBill(BillNo.ToString(), conn, "CREDIT NOTE"); } ExecuteUndo(null); } } catch (Exception ex) { MessageBox.Show(ex.Message, MessageBoxCaption, MessageBoxButton.OK, MessageBoxImage.Error); } }