Exemplo n.º 1
0
        public static bool SaveTransaction(Transaction trans)
        {
            try
            {
                string transNo = GetNextTransNumber();
                string idNo    = GetNextID("TransactionHead");

                DataBaseHelper.SetDB(string.Format(@"INSERT INTO TransactionHead(transactionnumber, invoicenumber, transdate, sales, tenderamount, date)
                    VALUES('{0}','{1}','{2}', '{3}', '{4}', '{5}')", transNo, trans.InvoiceNumber, trans.Date.ToString("yyyy-MM-dd"), trans.Sales ? "1": "0", trans.TenderAmount, trans.Date));

                foreach (Product prod in trans.productlist)
                {
                    DataBaseHelper.SetDB(string.Format(@"INSERT INTO TransactionDetail(headid, productid, quantity, price)
                    VALUES('{0}','{1}','{2}', '{3}')", idNo, prod.ID, prod.Qty, prod.Price));
                    DataBaseHelper.SetDB(string.Format(@"INSERT INTO InventoryAdjust(productid, quantity, headid, date, transdate)
                    VALUES('{0}','{1}','{2}', '{3}', '{4}')", prod.ID, prod.Qty * -1, idNo, trans.Date, trans.Date.ToString("yyyy-MM-dd")));
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Exemplo n.º 2
0
        private static bool Generate(int type, DateTime date)
        {
            try
            {
                Report report = new Report();
                report.Date = date;
                report.Type = type;

                report.MinOR = DataHandler.GetOR(true, date);
                report.MaxOR = DataHandler.GetOR(false, date);

                report.OldGrandTotal = DataHandler.GetOldGrandTotal(type);

                DataTable dt     = DataBaseHelper.GetDB(string.Format(@"SELECT 
	                                                SUM(TD.price * TD.quantity) AS sales, 
	                                                COUNT(*) AS itemcount,
	                                                TH.transdate
                                                FROM TransactionHead TH
                                                LEFT JOIN TransactionDetail TD ON TD.headid = TH.id
                                                WHERE  
                                                    transdate = '{0}' 
                                                    AND sales = 1 GROUP By TH.transdate", date.ToString("yyyy-MM-dd")));
                DataTable dtvoid = DataBaseHelper.GetDB(string.Format(@"SELECT 
	                                                SUM(TD.price * TD.quantity) AS voidsales, 
	                                                COUNT(*) AS itemcount,
	                                                TH.transdate
                                                FROM TransactionHead TH
                                                LEFT JOIN TransactionDetail TD ON TD.headid = TH.id
                                                WHERE  
                                                    transdate = '{0}' 
                                                    AND sales = 0 GROUP By TH.transdate", date.ToString("yyyy-MM-dd")));
                if (dt.Rows.Count == 0)
                {
                    report.VatableSales    = 0;
                    report.NewGrandTotal   = report.OldGrandTotal;
                    report.Vat             = 0;
                    report.TransCount      = 0;
                    report.SalesTransCount = 0;
                    report.VatableSales    = 0;
                    report.SalesItemQty    = 0;
                }
                else
                {
                    report.VatableSales  = Convert.ToDecimal(dt.Rows[0]["Sales"]);
                    report.NewGrandTotal = report.OldGrandTotal + report.VatableSales;
                    report.Vat           = (report.VatableSales / 1.12M) * 0.12M;
                    report.TransCount    = 0;
                    report.SalesItemQty  = Convert.ToDecimal(dt.Rows[0]["itemcount"]);

                    DataTable dtcounts = DataBaseHelper.GetDB(string.Format(@"SELECT COUNT(*) AS cnt FROM TransactionHead WHERE sales = 1 and transdate = '{0}'", date.ToString("yyyy-MM-dd")));

                    report.SalesTransCount = Convert.ToDecimal(dtcounts.Rows[0]["cnt"]);
                }
                if (dtvoid.Rows.Count == 0)
                {
                    report.VoidAmount     = 0;
                    report.VoidTransCount = 0;
                    report.VoidItemQty    = 0;
                }
                else
                {
                    report.VoidAmount  = Convert.ToDecimal(dtvoid.Rows[0]["voidsales"]);
                    report.VoidItemQty = Convert.ToDecimal(dtvoid.Rows[0]["itemcount"]);

                    DataTable dtcountsvoid = DataBaseHelper.GetDB(string.Format(@"SELECT COUNT(*) AS cnt FROM TransactionHead WHERE sales = 0 and transdate = '{0}'", date.ToString("yyyy-MM-dd")));
                    report.VoidTransCount = Convert.ToDecimal(dtcountsvoid.Rows[0]["cnt"]);
                }

                report.GrossAmount = report.VoidAmount + report.VatableSales;
                report.TransCount  = report.SalesTransCount + report.VoidTransCount;
                DataBaseHelper.SetDB(@"DELETE FROM Reports WHERE readtype = '" + report.Type + "' AND transdate = '" + report.Date.ToString("yyyy-MM-dd") + "'");
                report.ReadCount = DataHandler.GetNextReadCount(report.Type);
                HardwareHelper.PrintReport(null, null, null, report);
                return(DataHandler.SaveReport(report));
            }
            catch
            {
                return(false);
            }
        }