示例#1
0
 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);
     }
 }
示例#2
0
        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);
            }
        }