コード例 #1
0
        public void DeleteCreditPackageUsage(int nPackageID)
        {
            int nCreditPackageID;
            TblServiceSession ssUsage = new TblServiceSession();

            ssUsage.NPackageID = nPackageID;
            DataTable tblUsage = ssUsage.SelectAllWnPackageIDLogic();

            if (tblUsage.Rows.Count > 0)
            {
                throw new Exception("You Cant deleted a Used Package.");
            }
            TblMemberPackage mmbPckg = new TblMemberPackage();

            mmbPckg.NPackageID = nPackageID;
            DataTable table = mmbPckg.SelectOne();

            if (table == null || table.Rows.Count == 0)
            {
                throw new Exception("The Data has been deleted from database.");
            }

            mmbPckg.NStatusID = 2;

            mmbPckg.Update();
            nCreditPackageID = mmbPckg.NCreditPackageID.Value;

            //Check any package redeemed from this credit package
            ACMSDAL.TblMemberPackage memberPackage = new TblMemberPackage();
            string cmdText = "Select COUNT(*) from TblMemberPackage Where (nStatusID = 0 or nStatusID = 1) AND " +
                             " nCreditPackageID = @nCreditPackageID ";

            int nExist = (int)memberPackage.ExecuteScalar(cmdText, new string [] { "@nCreditPackageID" }, new object[] { nCreditPackageID });

            if (nExist == 0)
            {
                TblMemberCreditPackage creditPackage = new TblMemberCreditPackage();
                creditPackage.NCreditPackageID = nCreditPackageID;
                creditPackage.SelectOne();
                creditPackage.DtStartDate  = SqlDateTime.Null;
                creditPackage.DtExpiryDate = SqlDateTime.Null;
                creditPackage.Update();
            }
        }
コード例 #2
0
        public DataTable GetPrintBalanceTable(int nCreditPackageID)
        {
            TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();

            memberCreditPackage.NCreditPackageID = nCreditPackageID;
            DataTable table = memberCreditPackage.SelectOne();

            TblCreditPackage creditPackage = new TblCreditPackage();

            creditPackage.StrCreditPackageCode = memberCreditPackage.StrCreditPackageCode.Value;
            creditPackage.SelectOne();

            decimal creditPackageValue = ACMS.Convert.ToDecimal(creditPackage.MCreditAmount);

            decimal mmbCreditPackageTopupAmt = ACMS.Convert.ToDecimal(memberCreditPackage.MTopupAmount);

            decimal totalCreditUsage = GetCreditUsageFromMemberPackage(nCreditPackageID);

            decimal balance = (creditPackageValue + mmbCreditPackageTopupAmt) - totalCreditUsage;

            DataTable tableToReturn = new DataTable();

            DataColumn colCreditPackageID = new DataColumn("nCreditPackageID", System.Type.GetType("System.Int32"));
            DataColumn colBalance         = new DataColumn("Balance", System.Type.GetType("System.Decimal"));
            DataColumn colExpiryDate      = new DataColumn("ExpiryDate", System.Type.GetType("System.DateTime"));

            tableToReturn.Columns.Add(colBalance);
            tableToReturn.Columns.Add(colCreditPackageID);
            tableToReturn.Columns.Add(colExpiryDate);

            DataRow r = tableToReturn.NewRow();

            r["nCreditPackageID"] = nCreditPackageID;
            r["Balance"]          = balance;
            r["ExpiryDate"]       = memberCreditPackage.DtExpiryDate.Value;

            return(tableToReturn);
        }
コード例 #3
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        public void RecalculateAll()
        {
            decimal nettAmount = 0;
            decimal subtotal = 0;
            decimal nettAmountwGST = 0;
            Boolean isAllPricesWithGST = true;
            Boolean isAllPricesNoGST = false;

            //To check all items are with GST price or not, also cannot contain any discount
            foreach (DataRow r in myReceiptItemsTable.Rows)
            {
                if (myCategoryID == 7 || myCategoryID == 36 || myCategoryID == 37)
                {
                    TblCreditPackage pkg = new TblCreditPackage();
                    pkg.StrCreditPackageCode = r["strCode"].ToString();
                    pkg.SelectOne();
                    if (pkg.MListPriceWGST.IsNull || ACMS.Convert.ToDecimal(pkg.MListPriceWGST) == 0 || r["strDiscountCode"].ToString() != "" || myReceiptMasterTable.Rows[0]["strDiscountCode"].ToString() != "")
                    {
                        isAllPricesWithGST = false;
                        break;
                    }
                    pkg.Dispose();
                }
                if (myCategoryID == 38)
                {
                    isAllPricesWithGST = false;
                    isAllPricesNoGST = true;
                    break;
                }
                else
                {
                    if (myCategoryID == 8 || myCategoryID == 9)
                    {
                        TblPackageGroup pkg = new TblPackageGroup();
                        pkg.StrPackageGroupCode = r["strCode"].ToString();
                        pkg.SelectOne();
                        if (pkg.MListPriceWGST.IsNull || ACMS.Convert.ToDecimal(pkg.MListPriceWGST) == 0 || r["strDiscountCode"].ToString() != "" || myReceiptMasterTable.Rows[0]["strDiscountCode"].ToString() != "")
                        {
                            isAllPricesWithGST = false;
                            break;
                        }
                        pkg.Dispose();
                    }
                    else
                    {
                        TblPackage pkg = new TblPackage();
                        pkg.StrPackageCode = r["strCode"].ToString();
                        pkg.SelectOne();
                        if (pkg.MListPriceWGST.IsNull || ACMS.Convert.ToDecimal(pkg.MListPriceWGST) == 0 || r["strDiscountCode"].ToString() != "" || myReceiptMasterTable.Rows[0]["strDiscountCode"].ToString() != "")
                        {
                            isAllPricesWithGST = false;
                            break;
                        }
                        pkg.Dispose();
                    }
                }
            }

            foreach (DataRow r in myReceiptItemsTable.Rows)
            {
                if ((myCategoryID == 7 || myCategoryID == 36 || myCategoryID == 37) && isAllPricesWithGST)
                {
                    TblCreditPackage pkg = new TblCreditPackage();
                    pkg.StrCreditPackageCode = r["strCode"].ToString();
                    pkg.SelectOne();
                    if (pkg.MListPriceWGST.IsNull == false && ACMS.Convert.ToDecimal(pkg.MListPriceWGST) != 0)
                    {
                        subtotal = ACMS.Convert.ToDecimal(r["nQuantity"]) * ACMS.Convert.ToDecimal(pkg.MListPriceWGST);
                        nettAmountwGST += subtotal;
                    }
                    pkg.Dispose();
                }
                else
                {
                    if ((myCategoryID == 8 || myCategoryID == 9) && isAllPricesWithGST)
                    {
                        TblPackageGroup pkg = new TblPackageGroup();
                        pkg.StrPackageGroupCode = r["strCode"].ToString();
                        pkg.SelectOne();
                        if (pkg.MListPriceWGST.IsNull == false && ACMS.Convert.ToDecimal(pkg.MListPriceWGST) != 0)
                        {
                            subtotal = ACMS.Convert.ToDecimal(r["nQuantity"]) * ACMS.Convert.ToDecimal(pkg.MListPriceWGST);
                            nettAmountwGST += subtotal;
                        }
                   	 	pkg.Dispose();
                    }
                    else if (isAllPricesWithGST)
                    {
                        TblPackage pkg = new TblPackage();
                        pkg.StrPackageCode = r["strCode"].ToString();
                        pkg.SelectOne();
                        if (pkg.MListPriceWGST.IsNull == false && ACMS.Convert.ToDecimal(pkg.MListPriceWGST) != 0)
                        {
                            subtotal = ACMS.Convert.ToDecimal(r["nQuantity"]) * ACMS.Convert.ToDecimal(pkg.MListPriceWGST);
                            nettAmountwGST += subtotal;
                        }
                        pkg.Dispose();
                    }
                }
                subtotal = ACMS.Convert.ToDecimal(r["mSubTotal"]);
                nettAmount += subtotal;
            }

            if (myCategoryID == 11 || myCategoryID == 12)
            {
                if (nettAmount < 0)
                    nettAmount = 0;
            }

            myReceiptMasterTable.Rows[0]["mNettAmount"] = nettAmount;
            if (StrDiscountCode.HasValue && StrDiscountCode.ToString().Length > 0)
            {
                TblPromotion promotion = new TblPromotion();
                promotion.StrPromotionCode = myReceiptMasterTable.Rows[0]["strDiscountCode"].ToString();
                promotion.SelectOne();

                decimal discountValue = (decimal)(promotion.DDiscountValue.IsNull ? 0 : promotion.DDiscountValue.Value);
                decimal discountPercent = (decimal)(promotion.DDiscountPercent.IsNull ? 0 : promotion.DDiscountPercent.Value);

                decimal discountAmt = 0;

                if (discountPercent > 0 && discountValue <= 0)
                {
                    discountAmt = decimal.Round((MNettAmount * discountPercent / 100), 2);
                }
                else
                {
                    discountAmt = discountValue;
                }
                if (discountAmt > ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]))
                    discountAmt = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]);
                myReceiptMasterTable.Rows[0]["DiscountAmt"] = discountAmt;
                myReceiptMasterTable.Rows[0]["mNettAmount"] = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - discountAmt;
            }

            if (StrDeposit.ToString() != "")
            {
                isAllPricesWithGST = false;
                TblMemberPackage myPackage = new TblMemberPackage();
                myPackage.StrReceiptNo = StrDeposit;
                DataTable tblMemberPkg = myPackage.SelectOneReceipt();
                DataTable tblConverted = new DataTable();
                DataTable tblCreditConverted = new DataTable();
                if (tblMemberPkg.Rows.Count > 0)
                    tblConverted = myPackage.SelectConvertedPackageID(System.Convert.ToInt32(tblMemberPkg.Rows[0]["nPackageID"]));

                TblMemberCreditPackage myCreditPackage = new TblMemberCreditPackage();
                myCreditPackage.StrReceiptNo = StrDeposit;
                tblCreditConverted = myCreditPackage.SelectAllWstrReceiptNoLogic();

                if (tblCreditConverted.Rows.Count > 0)
                    tblConverted = myPackage.SelectConvertedPackageID(System.Convert.ToInt32(tblCreditConverted.Rows[0]["nCreditPackageID"]));

                if (tblConverted.Rows.Count > 0)
                {
                    decimal DepositAmount = System.Convert.ToDecimal(tblConverted.Rows[0]["mConverted"]);
                    myReceiptMasterTable.Rows[0]["mNettAmount"] = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - DepositAmount;
                    myReceiptMasterTable.Rows[0]["strRemarks"] = "Deposit from Convert";
                }
                //else if (tblCreditConverted.Rows.Count > 0)
                //{
                //    decimal DepositAmount = System.Convert.ToDecimal(tblCreditConverted.Rows[0]["mConverted"]);
                //    myReceiptMasterTable.Rows[0]["mNettAmount"] = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - DepositAmount;
                //    myReceiptMasterTable.Rows[0]["strRemarks"] = "Deposit from Credit Convert";
                //}
                else
                {
                    TblReceipt DepositReceipt = new TblReceipt();
                    DepositReceipt.StrReceiptNo = StrDeposit;
                    DataTable tblDeposit = DepositReceipt.SelectOne();
                    decimal DepositAmount = (decimal)(DepositReceipt.MNettAmount.IsNull ? 0 : DepositReceipt.MNettAmount.Value);
                    myReceiptMasterTable.Rows[0]["mNettAmount"] = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - decimal.Round(DepositAmount, 2);
                    myReceiptMasterTable.Rows[0]["strRemarks"] = "Deposit from " + StrDeposit;
                }

            }

            //Derek Instalment Plan - Pay OS
            if (myCategoryID == 0)
            {
                myReceiptMasterTable.Rows[0]["mGSTAmount"] = MTotalAmount - MNettAmount;
            }
            else
            {
                if (isAllPricesNoGST)
                {
                    myReceiptMasterTable.Rows[0]["mGSTAmount"] = 0;
                    myReceiptMasterTable.Rows[0]["mTotalAmount"] = decimal.Round(MNettAmount, 2);
                }
                else
                {
                    myReceiptMasterTable.Rows[0]["mGSTAmount"] = decimal.Round(MNettAmount * myGSTRate, 2);

                    if (isAllPricesWithGST)
                    {
                        myReceiptMasterTable.Rows[0]["mTotalAmount"] = decimal.Round(nettAmountwGST, 2);
                    }
                    else
                    {
                        myReceiptMasterTable.Rows[0]["mTotalAmount"] = MNettAmount + MGSTAmount;
                    }
                }
            }

            CalculateOutStanding();

            if (WantToUpgradeMemberPackageTable.Rows.Count > 0)
            {
                double usageBal = 0;
                double mTotalUsageWGST = 0;
                //Check convert packages' price all with GST
                bool isConvertAllPricesWithGST=true;
                double mTotalUsage = 0;
                if (isAllPricesWithGST)
                {
                    double mTotalAmount=0;

                    for (int i = 0; i < WantToUpgradeMemberPackageTable.Rows.Count; i++)
                    {
                        int nCategory = Convert.ToInt32(WantToUpgradeMemberPackageTable.Rows[i]["nCategoryID"]);
                        if (nCategory == 7 || nCategory == 36 || nCategory == 37)
                        {
                            TblCreditPackage pkg = new TblCreditPackage();
                            pkg.StrCreditPackageCode = WantToUpgradeMemberPackageTable.Rows[i]["strPackageCode"].ToString();
                            pkg.SelectOne();
                            if (pkg.MListPriceWGST.IsNull || WantToUpgradeMemberPackageTable.Rows[i]["strDiscountCode"].ToString() != "")
                            {
                                isConvertAllPricesWithGST = false;
                                break;
                            }
                            mTotalAmount += pkg.MCreditAmount.ToDouble();
                            mTotalUsage += Convert.ToDouble(WantToUpgradeMemberPackageTable.Rows[i]["UsageBalAmt"]);
                            mTotalUsageWGST += pkg.MListPriceWGST.ToDouble();
                            pkg.Dispose();
                        }
                        else
                        {
                            TblPackage pkg = new TblPackage();
                            pkg.StrPackageCode = WantToUpgradeMemberPackageTable.Rows[i]["strPackageCode"].ToString();
                            pkg.SelectOne();
                            if (pkg.MListPriceWGST.IsNull || WantToUpgradeMemberPackageTable.Rows[i]["strDiscountCode"].ToString() != "")
                            {
                                isConvertAllPricesWithGST = false;
                                break;
                            }
                            mTotalAmount += pkg.MListPrice.ToDouble();
                            mTotalUsage += Convert.ToDouble(WantToUpgradeMemberPackageTable.Rows[i]["UsageBalAmt"]);
                            mTotalUsageWGST += pkg.MListPriceWGST.ToDouble();
                            pkg.Dispose();
                        }
                    }
                    if (mTotalAmount != mTotalUsage)
                        isConvertAllPricesWithGST = false;

                }

                for (int i = 0; i < WantToUpgradeMemberPackageTable.Rows.Count; i++)
                {
                    int mainSession = Convert.ToInt32(WantToUpgradeMemberPackageTable.Rows[i]["nMaxSession"]) - Convert.ToInt32(WantToUpgradeMemberPackageTable.Rows[i]["nFreeSession"]);
                    int balSession = mainSession - Convert.ToInt32(WantToUpgradeMemberPackageTable.Rows[i]["UsedSession"]);
                    usageBal += Convert.ToDouble(WantToUpgradeMemberPackageTable.Rows[i]["UsageBalAmt"]);
                }
                //RecalculateAfterUpgrade(Convert.ToDecimal(usageBal));
                if (isConvertAllPricesWithGST && isAllPricesWithGST)
                {
                    nettAmount = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - Convert.ToDecimal(usageBal);
                    myReceiptMasterTable.Rows[0]["mNettAmount"] = decimal.Round(nettAmount, 2);
                    myReceiptMasterTable.Rows[0]["mGSTAmount"] = decimal.Round(MNettAmount * myGSTRate, 2);
                    myReceiptMasterTable.Rows[0]["mTotalAmount"] = decimal.Round(nettAmountwGST - Convert.ToDecimal(mTotalUsageWGST),2);
                    myReceiptMasterTable.Rows[0]["mOutstandingAmount"] = myReceiptMasterTable.Rows[0]["mTotalAmount"];
                }
                else
                {
                    nettAmount = ACMS.Convert.ToDecimal(myReceiptMasterTable.Rows[0]["mNettAmount"]) - Convert.ToDecimal(usageBal);
                    myReceiptMasterTable.Rows[0]["mNettAmount"] = decimal.Round(nettAmount, 2);
                    myReceiptMasterTable.Rows[0]["mGSTAmount"] = decimal.Round(MNettAmount * myGSTRate, 2);
                    myReceiptMasterTable.Rows[0]["mTotalAmount"] = MNettAmount + MGSTAmount;
                    myReceiptMasterTable.Rows[0]["mOutstandingAmount"] = myReceiptMasterTable.Rows[0]["mTotalAmount"];
                }
            }
        }
コード例 #4
0
        public void DeleteLastCreditPackageExtensionHistory(int nCreditPackageID, int last_nExtensionID, string CurrentMembershipID)
        {
            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();

            TblMemberCreditPackage    myMemberCreditPackage    = new TblMemberCreditPackage();
            TblCreditPackageExtension myCreditPackageExtension = new TblCreditPackageExtension();

            myMemberCreditPackage.MainConnectionProvider    = connProvider;
            myCreditPackageExtension.MainConnectionProvider = connProvider;

            connProvider.OpenConnection();
            connProvider.BeginTransaction("SaveCreditPackageExtension");

            myCreditPackageExtension.NCreditPackageID = nCreditPackageID;

            DataTable tblCreditPackageExtension = myCreditPackageExtension.SelectAllWnCreditPackageIDLogic();

            if (tblCreditPackageExtension == null)
            {
                throw new Exception("This extension row has been deleted by others");
            }
            else if (tblCreditPackageExtension.Rows.Count == 0)
            {
                throw new Exception("This extension row has been deleted by others");
            }

            if (tblCreditPackageExtension.Rows.Count > 0)
            {
                DataRow[] rowList = tblCreditPackageExtension.Select(" nStatusID = 0 AND nExtensionID > " + last_nExtensionID.ToString());

                if (rowList.Length > 0) // mean is not last package extension
                {
                    throw new Exception("Only the most recent package extension can be deleted.");
                }
            }

            DataRow[] deletedDataRowList = tblCreditPackageExtension.Select("nStatusID = 0 and nExtensionID = " + last_nExtensionID, "nExtensionID", DataViewRowState.CurrentRows);

            if (deletedDataRowList.Length == 0)
            {
                throw new Exception("This extension row has been deleted by others");
            }

            DateTime dtOldExpiry = Convert.ToDateTime(deletedDataRowList[0]["dtOldExpiry"]);

            int nCreditPackageStatusID = -1;

            if (DateTime.Compare(dtOldExpiry, DateTime.Now) < 0)
            {
                nCreditPackageStatusID = 1;
            }

            try
            {
                //Update Credit Package Extension set nStatusID = 1 => Deleted
                myCreditPackageExtension.MemberCreditPackage_ExtensionDelete(nCreditPackageID, last_nExtensionID);

                //Update Member Credit Package Expiry Date; nStatusID = 1 If Expired
                myMemberCreditPackage.MemberCreditPackage_ExtensionUpdate(nCreditPackageID, nCreditPackageStatusID, dtOldExpiry, CurrentMembershipID);

                connProvider.CommitTransaction();
            }
            catch (Exception)
            {
                connProvider.RollbackTransaction("SaveCreditPackageExtension");
                throw new Exception("Failed to Create New Extension");
            }
            finally
            {
                if (connProvider.CurrentTransaction != null)
                {
                    connProvider.CurrentTransaction.Dispose();
                }

                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                    {
                        connProvider.DBConnection.Close();
                    }
                }

                myMemberCreditPackage.MainConnactionIsCreatedLocal    = true;
                myCreditPackageExtension.MainConnactionIsCreatedLocal = true;
            }
        }
コード例 #5
0
ファイル: CreditAccount.cs プロジェクト: kimykunjun/test
        public void DeleteLastCreditPackageExtensionHistory(int nCreditPackageID, int last_nExtensionID, string CurrentMembershipID)
        {
            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();

            TblMemberCreditPackage myMemberCreditPackage = new TblMemberCreditPackage();
            TblCreditPackageExtension myCreditPackageExtension = new TblCreditPackageExtension();

            myMemberCreditPackage.MainConnectionProvider = connProvider;
            myCreditPackageExtension.MainConnectionProvider = connProvider;

            connProvider.OpenConnection();
            connProvider.BeginTransaction("SaveCreditPackageExtension");

            myCreditPackageExtension.NCreditPackageID = nCreditPackageID;

            DataTable tblCreditPackageExtension = myCreditPackageExtension.SelectAllWnCreditPackageIDLogic();

            if (tblCreditPackageExtension == null)
            {
                throw new Exception("This extension row has been deleted by others");
            }
            else if (tblCreditPackageExtension.Rows.Count == 0)
            {
                throw new Exception("This extension row has been deleted by others");
            }

            if (tblCreditPackageExtension.Rows.Count > 0)
            {
                DataRow[] rowList = tblCreditPackageExtension.Select(" nStatusID = 0 AND nExtensionID > " + last_nExtensionID.ToString());

                if (rowList.Length > 0) // mean is not last package extension
                {
                    throw new Exception("Only the most recent package extension can be deleted.");
                }
            }

            DataRow[] deletedDataRowList = tblCreditPackageExtension.Select("nStatusID = 0 and nExtensionID = " + last_nExtensionID, "nExtensionID", DataViewRowState.CurrentRows);

            if (deletedDataRowList.Length == 0)
            {
                throw new Exception("This extension row has been deleted by others");
            }

            DateTime dtOldExpiry = Convert.ToDateTime(deletedDataRowList[0]["dtOldExpiry"]);

            int nCreditPackageStatusID = -1;

            if (DateTime.Compare(dtOldExpiry, DateTime.Now) < 0)
            {
                nCreditPackageStatusID = 1;
            }

            try
            {
                //Update Credit Package Extension set nStatusID = 1 => Deleted
                myCreditPackageExtension.MemberCreditPackage_ExtensionDelete(nCreditPackageID, last_nExtensionID);

                //Update Member Credit Package Expiry Date; nStatusID = 1 If Expired
                myMemberCreditPackage.MemberCreditPackage_ExtensionUpdate(nCreditPackageID, nCreditPackageStatusID, dtOldExpiry, CurrentMembershipID);

                connProvider.CommitTransaction();
            }
            catch (Exception)
            {
                             connProvider.RollbackTransaction("SaveCreditPackageExtension");
                throw new Exception("Failed to Create New Extension");
            }
            finally
            {
                if (connProvider.CurrentTransaction != null)
                {
                    connProvider.CurrentTransaction.Dispose();
                }

                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                    {
                        connProvider.DBConnection.Close();
                    }
                }

                myMemberCreditPackage.MainConnactionIsCreatedLocal = true;
                myCreditPackageExtension.MainConnactionIsCreatedLocal = true;
            }
        }
コード例 #6
0
        private void SaveExtensionHistory(int nCreditPackageID, string strMembershipID, DateTime dtOldExpiry, DateTime dtNewExpiry, DateTime dtStartDate, DateTime dtEndDate,
                                          int nDaysExtended, int nStatusID, int nReasonID, string strRemarks, int nEmployeeID, DateTime dtCreateDate)
        {
            int nCreditPackageStatusID = -1;

            if (DateTime.Compare(dtNewExpiry, DateTime.Now) > 0)
            {
                nCreditPackageStatusID = 0;
            }

            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();

            TblMemberCreditPackage    myMemberCreditPackage    = new TblMemberCreditPackage();
            TblCreditPackageExtension myCreditPackageExtension = new TblCreditPackageExtension();

            myMemberCreditPackage.MainConnectionProvider    = connProvider;
            myCreditPackageExtension.MainConnectionProvider = connProvider;

            connProvider.OpenConnection();
            connProvider.BeginTransaction("SaveCreditPackageExtension");

            try
            {
                //Update MemberCreditPackage - New Expiry Date & Status ID by nCreditPackageID
                myMemberCreditPackage.MemberCreditPackage_ExtensionUpdate(nCreditPackageID, nCreditPackageStatusID, dtNewExpiry, strMembershipID);

                //Add Record to Credit Package Extension
                myCreditPackageExtension.NCreditPackageID = nCreditPackageID;
                myCreditPackageExtension.DtOldExpiry      = dtOldExpiry;
                myCreditPackageExtension.DtNewExpiry      = dtNewExpiry;
                myCreditPackageExtension.DtStartDate      = dtStartDate;
                myCreditPackageExtension.DtEndDate        = dtEndDate;
                myCreditPackageExtension.NDaysExtended    = nDaysExtended;
                myCreditPackageExtension.NStatusID        = nStatusID;
                myCreditPackageExtension.NReasonID        = nReasonID;
                myCreditPackageExtension.StrRemarks       = strRemarks;
                myCreditPackageExtension.NEmployeeID      = nEmployeeID;

                myCreditPackageExtension.Insert();

                //Commit Transaction
                connProvider.CommitTransaction();
                //*** Remember to Disable the Update Expiry Button for Credit Packages
            }
            catch
            {
                //RollBack Transaction
                connProvider.RollbackTransaction("SaveCreditPackageExtension");
            }
            finally
            {
                //connProvider.CurrentTransaction.Dispose();
                //connProvider.DBConnection.Close();
                if (connProvider.CurrentTransaction != null)
                {
                    connProvider.CurrentTransaction.Dispose();
                }

                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                    {
                        connProvider.DBConnection.Close();
                    }
                }
                myMemberCreditPackage.MainConnactionIsCreatedLocal    = true;
                myCreditPackageExtension.MainConnactionIsCreatedLocal = true;
            }
        }
コード例 #7
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        private void UpdateOldPackSetDeactivate(ACMSDAL.ConnectionProvider connProvider, ACMSLogic.POS pos)
        {
            try
            {
                string strFreePackageCode, strReceiptNo;
                foreach (DataRow dr in pos.WantToUpgradeMemberPackageTable.Rows)
                {
                    string strRemarks;

                    if (Convert.ToInt32(dr["nCategoryID"]) == 7 || Convert.ToInt32(dr["nCategoryID"]) == 36 || Convert.ToInt32(dr["nCategoryID"]) == 37)
                    {
                        TblMemberCreditPackage mp = new TblMemberCreditPackage();
                        mp.MainConnectionProvider = connProvider;

                        DataTable table = mp.LoadData("Select * from tblMemberCreditPackage Where nCreditPackageID = @nPackageID",
                            new string[] { "@nPackageID" }, new object[] { dr["nPackageID"] });

                        strReceiptNo = table.Rows[0]["strReceiptNo"].ToString();
                        table.Rows[0]["nStatusID"] = 3;
                        table.Rows[0]["strUpgradeTo"] = pos.StrReceiptNo;
                        strRemarks = "Convert to: " + pos.StrReceiptNo;
                        table.Rows[0]["strRemarks"] = strRemarks;
                        mp.SaveData(table);
                    }
                    else if (Convert.ToInt32(dr["nCategoryID"]) == 8 || Convert.ToInt32(dr["nCategoryID"]) == 9)
                    {
                        DataSet dsCombo = new DataSet();

                        string strSQL = "select pge.*,re.strReceiptNo from tblReceiptEntries re, tblPackageGroupEntries pge where nEntryID =" + dr["nPackageID"] + " and re.strCode=pge.strPackageGroupCode";
                        SqlHelper.FillDataset(connection, CommandType.StoredProcedure, "UP_GETDATA", dsCombo, new string[] { "Table" }, new SqlParameter("@strSQL", strSQL));

                        foreach (DataRow drCombo in dsCombo.Tables["Table"].Rows)
                        {
                            for (int i = 1; i <= Convert.ToInt32(drCombo["nQuantity"]); i++)
                            {
                                TblMemberPackage mp = new TblMemberPackage();
                                mp.MainConnectionProvider = connProvider;

                                DataTable table = mp.LoadData("Select top 1 mp.* from tblMemberPackage mp Where strPackageCode = @nPackageID and strReceiptNo=@strReceiptNo and nStatusID=0 and nPackageID not in (SELECT nPackageID FROM [dbo].[tblServiceSession] s WHERE nStatusID = 5 and mp.nPackageID = S.nPackageID) ",
                                new string[] { "@nPackageID", "@strReceiptNo" }, new object[] { drCombo["strPackageCode"], drCombo["strReceiptNo"] });

                                strReceiptNo = drCombo["strReceiptNo"].ToString();
                                table.Rows[0]["nStatusID"] = 3;
                                table.Rows[0]["strUpgradeTo"] = pos.StrReceiptNo;
                                strRemarks = "Convert to: " + pos.StrReceiptNo;
                                table.Rows[0]["strRemarks"] = strRemarks;
                                mp.SaveData(table);

                            }
                        }
                    }
                    else
                    {
                        TblMemberPackage mp = new TblMemberPackage();
                        mp.MainConnectionProvider = connProvider;

                        DataTable table = mp.LoadData("Select * from tblMemberPackage Where nPackageID = @nPackageID",
                            new string[] { "@nPackageID" }, new object[] { dr["nPackageID"] });

                        strFreePackageCode = dr["strFreePkgCode"].ToString();
                        strReceiptNo = table.Rows[0]["strReceiptNo"].ToString();
                        table.Rows[0]["nStatusID"] = 3;
                        table.Rows[0]["strUpgradeTo"] = pos.StrReceiptNo;
                        strRemarks = "Convert to: " + pos.StrReceiptNo;
                        table.Rows[0]["strRemarks"] = strRemarks;
                        mp.SaveData(table);

                        DataTable freePkgTable = mp.LoadData("select * from tblMemberPackage where strReceiptNo=@strReceiptNo and strPackageCode =@strFreePackageCode ",
                            new string[] { "@strReceiptNo", "@strFreePackageCode" }, new object[] { strReceiptNo, strFreePackageCode });

                        if (freePkgTable.Rows.Count > 0)
                        {
                            freePkgTable.Rows[0]["nStatusID"] = 3;
                            freePkgTable.Rows[0]["strUpgradeTo"] = pos.StrReceiptNo;
                            freePkgTable.Rows[0]["strRemarks"] = strRemarks;
                            mp.SaveData(freePkgTable);
                        }
                    }

                }
            }
            catch (Exception ex)
            {
                string strError = ex.Message;
            }
        }
コード例 #8
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        private void ReplaceMembershipCardTransaction(ACMSDAL.ConnectionProvider connProvider, ACMSLogic.POS pos)
        {
            if (pos.NCategoryID == 20)
            {
                TblMember sqlMember = new TblMember();
                sqlMember.MainConnectionProvider = connProvider;

                sqlMember.StrMembershipID = pos.StrMembershipID;
                sqlMember.SelectOne();
                sqlMember.NCardStatusID = 0;
                sqlMember.StrCardBranchCode = "WL";
                sqlMember.Update();

                TblMember sqlIntroduceMember = new TblMember();
                sqlIntroduceMember.MainConnectionProvider = connProvider;
                sqlIntroduceMember.StrIntroducerMembershipID = pos.StrMembershipID;
                DataTable introduceMemberTable = sqlIntroduceMember.SelectAllWstrIntroducerMembershipIDLogic();

                if (introduceMemberTable != null && introduceMemberTable.Rows.Count > 0)
                {
                    foreach (DataRow r in introduceMemberTable.Rows)
                        r["StrIntroducerMembershipID"] = DBNull.Value;

                    sqlIntroduceMember.SaveData(introduceMemberTable);
                }

                string membershipID = pos.StrMembershipID;
                string newStrMembershipID = "";
                bool isMember = !membershipID.StartsWith("NMC");

                if (!isMember)
                {
                    TblCardRequest sqlCardRequest = new TblCardRequest();
                    TblCompany sqlCompany = new TblCompany();
                    sqlCompany.MainConnectionProvider = connProvider;
                    sqlCardRequest.MainConnectionProvider = connProvider;

                    sqlCompany.IncOne();

                    sqlMember.StrMembershipID = pos.StrMembershipID;
                    DataTable memberTable = sqlMember.SelectOne();

                    newStrMembershipID = "NMC" + sqlCompany.NNonMembershipNo.Value.ToString();
                    string origStrMembershipID = sqlMember.StrMembershipID.Value;
                    pos.StrNewMembershipID = newStrMembershipID;

                    memberTable.Rows[0]["nMembershipNo"] = sqlCompany.NNonMembershipNo.Value;
                    memberTable.Rows[0]["strMembershipID"] = newStrMembershipID;
                    memberTable.Rows[0]["nCardStatusID"] = (int)CardStatusType.RequestPrint;

                    string cmdText = "Update tblMember SET strMembershipID = @NewStrMembershipID, " +
                        " nMembershipNo = @nMembershipNo Where strMembershipID = @OriginalStrMembershipID";

                    sqlMember.UpdateKey(memberTable,  cmdText, "@NewStrMembershipID",  newStrMembershipID,
                        "@OriginalStrMembershipID", origStrMembershipID, new string[] {"@nMembershipNo"},
                        new object[] {sqlCompany.NNonMembershipNo.Value});

                    #region ====== Added By Albert ======
                    //To update member packages after changing MembershipID.
                    TblMemberPackage mMemberPackage;
                    mMemberPackage = new TblMemberPackage();
                    mMemberPackage.StrMembershipIDOld = origStrMembershipID;
                    mMemberPackage.StrMembershipID = newStrMembershipID;
                    mMemberPackage.UpdateAllWstrMembershipIDLogic();

                    TblMemberCreditPackage mMemberCreditPackage;
                    mMemberCreditPackage = new TblMemberCreditPackage();
                    mMemberCreditPackage.StrMembershipIDOld = origStrMembershipID;
                    mMemberCreditPackage.StrMembershipID = newStrMembershipID;
                    mMemberCreditPackage.UpdateAllWstrMembershipIDLogic();
                    #endregion

                    //Request print for new non member
                    sqlCardRequest.NEmployeeID = pos.NCashierID;
                    sqlCardRequest.NStatusID = (int)CardStatusType.RequestPrint;
                    sqlCardRequest.StrBranchCode = pos.StrBranchCode;
                    sqlCardRequest.StrMembershipID = "NMC" +sqlCompany.NNonMembershipNo;
                    sqlCardRequest.DtLastEditDate = DateTime.Now;
                    sqlCardRequest.Insert();
                }
                else
                {
                    TblCardRequest sqlCardRequest = new TblCardRequest();
                    TblBranch sqlBranch = new TblBranch();

                    sqlBranch.MainConnectionProvider = connProvider;
                    sqlCardRequest.MainConnectionProvider = connProvider;

                    sqlBranch.StrBranchCode = pos.StrBranchCode;
                    sqlBranch.IncOne();

                    sqlMember.StrMembershipID = pos.StrMembershipID;
                    DataTable memberTable = sqlMember.SelectOne();

                    newStrMembershipID = pos.StrBranchCode.TrimEnd() + ACMS.Convert.ToInt32(sqlBranch.NMembershipNo);
                    string origStrMembershipID = sqlMember.StrMembershipID.Value;
                    pos.StrNewMembershipID = newStrMembershipID;

                    memberTable.Rows[0]["nMembershipNo"] = ACMS.Convert.ToInt32(sqlBranch.NMembershipNo);
                    memberTable.Rows[0]["strMembershipID"] = newStrMembershipID;
                    memberTable.Rows[0]["nCardStatusID"] = (int)CardStatusType.RequestPrint;

                    string cmdText = "Update tblMember SET strMembershipID = @NewStrMembershipID, " +
                        " nMembershipNo = @nMembershipNo Where strMembershipID = @OriginalStrMembershipID";

                    sqlMember.UpdateKey(memberTable,  cmdText, "@NewStrMembershipID",  newStrMembershipID,
                        "@OriginalStrMembershipID", origStrMembershipID, new string[] {"@nMembershipNo"},
                        new object[] {ACMS.Convert.ToInt32(sqlBranch.NMembershipNo)});

                    #region ====== Added By Albert ======
                    //To update member packages after changing MembershipID.
                    TblMemberPackage mMemberPackage;
                    mMemberPackage = new TblMemberPackage();
                    mMemberPackage.StrMembershipIDOld = origStrMembershipID;
                    mMemberPackage.StrMembershipID = newStrMembershipID;
                    mMemberPackage.UpdateAllWstrMembershipIDLogic();

                    TblMemberCreditPackage mMemberCreditPackage;
                    mMemberCreditPackage = new TblMemberCreditPackage();
                    mMemberCreditPackage.StrMembershipIDOld = origStrMembershipID;
                    mMemberCreditPackage.StrMembershipID = newStrMembershipID;
                    mMemberCreditPackage.UpdateAllWstrMembershipIDLogic();
                    #endregion

                    //Request print for new non member
                    sqlCardRequest.NEmployeeID = pos.NCashierID;
                    sqlCardRequest.NStatusID = (int)CardStatusType.RequestPrint;
                    sqlCardRequest.StrBranchCode = pos.StrBranchCode;
                    sqlCardRequest.StrMembershipID = newStrMembershipID;
                    sqlCardRequest.DtLastEditDate = DateTime.Now;
                    sqlCardRequest.Insert();
                }

                if (introduceMemberTable != null && introduceMemberTable.Rows.Count > 0)
                {
                    foreach (DataRow r in introduceMemberTable.Rows)
                        r["StrIntroducerMembershipID"] = newStrMembershipID;

                    sqlIntroduceMember.SaveData(introduceMemberTable);
                }

                TblAudit sqlAudit = new TblAudit();
                sqlAudit.MainConnectionProvider = connProvider;
                //Audit trail for request print
                sqlAudit.NAuditTypeID = ACMSLogic.AuditTypeID.MemberCard;
                sqlAudit.NEmployeeID = pos.NCashierID;
                sqlAudit.StrAuditEntry = "Replace member card with new ID";
                sqlAudit.StrReference = newStrMembershipID;
                sqlAudit.DtDate = DateTime.Now;
                sqlAudit.Insert();
            }
        }
コード例 #9
0
ファイル: Payment.cs プロジェクト: kimykunjun/test
        private void ActionTakeWhenVoidReceiptForCategory_1_3_4_5_6_8_9_14_23(string strReceiptNo, 
			ConnectionProvider connProvider)
        {
            //1	Fitness Package
            //3	PT Package
            //4	Spa Single Treatment
            //5	Spa Package
            //6	IPL Package
            //8	Fitness Combined Package
            //9	Spa Combined Package

            TblMemberPackage memberPackage = new TblMemberPackage();
            memberPackage.MainConnectionProvider = connProvider;
            memberPackage.StrReceiptNo = strReceiptNo;
            DataTable table = memberPackage.SelectAllWstrReceiptNo(strReceiptNo);

            TblClassAttendance sqlClassAttendance = new TblClassAttendance();
            TblServiceSession sqlServiceSession = new TblServiceSession();

            sqlClassAttendance.MainConnectionProvider = connProvider;
            sqlServiceSession.MainConnectionProvider = connProvider;

            if (table.Rows.Count > 0)
            {
                int nPackageID = 0;
                foreach (DataRow r in table.Rows)
                {

                    nPackageID = ACMS.Convert.ToInt32(r["nPackageID"]);
                    sqlClassAttendance.NPackageID = nPackageID;
                    DataTable classAttTable = sqlClassAttendance.SelectAllWnPackageIDLogic();
                    if (classAttTable.Rows.Count > 0)
                        throw new Exception("The item(s) has been used, you are not allow to void the receipt");
                    else
                    {
                        sqlServiceSession.NPackageID = nPackageID;
                        classAttTable = sqlServiceSession.SelectAllWnPackageIDLogic();
                        if (classAttTable.Rows.Count > 0)
                            throw new Exception("The item(s) has been used, you are not allow to void the receipt");
                    }

                    r["nEmployeeID"] = User.EmployeeID;
                    r["nStatusID"] = 2;
                    r["strRemarks"] = "Voided Receipt";
                    r["dtLastEdit"] = System.DateTime.Now;
                }
                memberPackage.SaveData(table);
            }

            TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
            memberCreditPackage.MainConnectionProvider = connProvider;
            memberCreditPackage.StrReceiptNo = strReceiptNo;
            DataTable table2 = memberCreditPackage.SelectAllWstrReceiptNo(strReceiptNo);

            TblMemberPackage sqlMemberPackage = new TblMemberPackage();
            sqlMemberPackage.MainConnectionProvider = connProvider;

            if (table2.Rows.Count > 0)
            {
                int nCreditPackageID = 0;
                foreach (DataRow r in table2.Rows)
                {
                    nCreditPackageID = ACMS.Convert.ToInt32(r["nCreditPackageID"]);

                    DataTable mpTable = sqlMemberPackage.SelectAllWnCreditPackageIDLogic();
                    if (mpTable.Rows.Count > 0)
                        throw new Exception("The item(s) has been used, you are not allow to void the receipt");

                    r["nEmployeeID"] = User.EmployeeID;
                    r["nStatusID"] = 2;
                    r["strRemarks"] = "Voided Receipt";
                    r["dtLastEditDate"] = System.DateTime.Now;
                }
                memberCreditPackage.SaveData(table2);
            }
        }
コード例 #10
0
ファイル: Payment.cs プロジェクト: kimykunjun/test
        private void ActionTakeWhenVoidReceiptForCategory_18(string strReceiptNo, ConnectionProvider connProvider)
        {
            //Top-up Spa Credit
            // need to find back the member credit package that been upgraded.
            TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
            memberCreditPackage.MainConnectionProvider = connProvider;

            TblReceiptEntries sqlReceiptEntiries = new TblReceiptEntries();
            sqlReceiptEntiries.MainConnectionProvider = connProvider;

            sqlReceiptEntiries.StrReceiptNo= strReceiptNo;
            DataTable tableReceiptEntries = sqlReceiptEntiries.SelectAllWstrReceiptNoLogic();

            if (tableReceiptEntries.Rows.Count > 0)
            {
                // Get back the receiptEntries.
                // refer to Pos, strCode=nCreditPackageID,  mSubTotal = topupAmount

                foreach (DataRow r in tableReceiptEntries.Rows)
                {
                    if (!CheckIsRegistrationRow(r))
                    {
                        int nCrdPackageID = ACMS.Convert.ToInt32(r["strCode"]);
                        decimal topupAmt = ACMS.Convert.ToInt32(r["mSubTotal"]);
                        memberCreditPackage.NCreditPackageID = nCrdPackageID;

                        if (memberCreditPackage.SelectOne().Rows.Count > 0)
                        {
                            memberCreditPackage.MTopupAmount = ACMS.Convert.ToInt32(memberCreditPackage.MTopupAmount) - topupAmt;
                            memberCreditPackage.Update();
                        }
                    }
                }
            }
        }
コード例 #11
0
ファイル: Payment.cs プロジェクト: kimykunjun/test
        //Derek Instalment Plan - Void Pay OS - Update Payment Plan
        public void VoidReceipt(string strReceiptNo, bool VoidPre)
        {
            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();

            try
            {
                // Check Access Right here
                TblReceipt receipt = new TblReceipt();
                TblReceiptFreebie sqlReceiptFreebie = new TblReceiptFreebie();
                TblRewardsTransaction mRewardTransaction = new TblRewardsTransaction();
                TblReceiptPayment sqlReceiptPayment = new TblReceiptPayment();
                TblPaymentPlan myPaymentPlan = new TblPaymentPlan();

                myPaymentPlan.MainConnectionProvider = connProvider;
                mRewardTransaction.MainConnectionProvider = connProvider;
                receipt.MainConnectionProvider = connProvider;
                sqlReceiptFreebie.MainConnectionProvider = connProvider;
                sqlReceiptPayment.MainConnectionProvider = connProvider;

                connProvider.OpenConnection();
                connProvider.BeginTransaction("VoidReceipt");

                receipt.StrReceiptNo = strReceiptNo;
                receipt.SelectOne();

                int nCategoryID = receipt.NCategoryID.Value;
                string strBranchCode = receipt.StrBranchCode.Value;

                if (receipt.DtDate.Value != System.DateTime.Today && VoidPre == false)
                    throw new Exception("Not allow to void previous data receipt. ");

                if (strBranchCode != User.BranchCode)
                    throw new Exception("Not allow to void other's branches' receipt. ");

                receipt.FVoid = System.Data.SqlTypes.SqlBoolean.True;
                receipt.Update();

                string strSQL;
                if (receipt.NCategoryID == 7 || receipt.NCategoryID == 36 || receipt.NCategoryID == 37)
                    strSQL = "select top 1 * from tblMemberCreditPackage where strReceiptNo ='" + receipt.StrReceiptNo.ToString() + "' AND fFree=0";
                else
                    strSQL = "select top 1 * from tblMemberPackage where strReceiptNo ='" + receipt.StrReceiptNo.ToString() + "' AND fFree=0";
                DataSet _ds1 = new DataSet();
                SqlHelper.FillDataset(connection, CommandType.StoredProcedure, "UP_GETDATA", _ds1, new string[] { "table" }, new SqlParameter("@strSQL", strSQL));

                //Roll back when package conversion
                if (_ds1.Tables["table"].Rows.Count > 0)
                {
                    string strPkgRemark = _ds1.Tables["table"].Rows[0]["strUpgradeFrom"].ToString();
                    string[] rollbackPackages = strPkgRemark.ToString().Split(',');

                    foreach (string rollbackPackage in rollbackPackages)
                    {
                        if (rollbackPackage.Trim() != "" && rollbackPackage.Trim() != "Null")
                        {
                            if (rollbackPackage.Contains("(C)"))
                            {
                                int nPackageID = Convert.ToInt32(rollbackPackage.Trim().Replace("(C)", ""));
                                TblMemberCreditPackage mp2 = new TblMemberCreditPackage();
                                mp2.NCreditPackageID = nPackageID;
                                mp2.SelectOne();
                                mp2.StrUpgradeTo = "";
                                mp2.StrRemarks = "";
                                mp2.NStatusID = 0;
                                mp2.Update();
                            }
                            else if (rollbackPackage.Contains("(B)"))
                            {
                                string strSQL2 = "select * from tblMemberPackage where strUpgradeTo='" + receipt.StrReceiptNo.ToString() + "' ";
                                DataSet _ds2 = new DataSet();
                                SqlHelper.FillDataset(connection, CommandType.StoredProcedure, "UP_GETDATA", _ds2, new string[] { "table" }, new SqlParameter("@strSQL", strSQL2));
                                foreach (DataRow drComboPkg in _ds2.Tables["table"].Rows)
                                {
                                    TblMemberPackage mp = new TblMemberPackage();
                                    DataTable convertedPkgTable = mp.LoadData("select * from tblMemberPackage where nPackageID=" + drComboPkg["nPackageID"].ToString());
                                    if (convertedPkgTable.Rows.Count > 0)
                                    {
                                        convertedPkgTable.Rows[0]["nStatusID"] = 0;
                                        convertedPkgTable.Rows[0]["strUpgradeTo"] = "";
                                        convertedPkgTable.Rows[0]["strRemarks"] = "";
                                        mp.SaveData(convertedPkgTable);
                                    }
                                }
                            }
                            else
                            {
                                int nPackageID = Convert.ToInt32(rollbackPackage.Trim());
                                TblMemberPackage mp2 = new TblMemberPackage();
                                mp2.NPackageID = nPackageID;
                                mp2.SelectOne();
                                mp2.StrUpgradeTo = "";
                                mp2.StrRemarks = "";
                                mp2.NStatusID = 0;
                                mp2.Update();

                                //rollback free package if have any
                                TblMemberPackage mp3 = new TblMemberPackage();
                                string strFreePackageCode = "";
                                string strSQL3 = "select strFreePkgCode from tblPackage where strPackageCode='" + Convert.ToString(mp2.StrPackageCode) + "' ";
                                DataSet _ds = new DataSet();
                                SqlHelper.FillDataset(connection, CommandType.StoredProcedure, "UP_GETDATA", _ds, new string[] { "table" }, new SqlParameter("@strSQL", strSQL3));
                                if (_ds.Tables["table"].Rows.Count > 0)
                                {
                                    strFreePackageCode = _ds.Tables["table"].Rows[0]["strFreePkgCode"].ToString();
                                }
                                DataTable freePkgTable = mp3.LoadData("select * from tblMemberPackage where strReceiptNo=@strReceiptNo and strPackageCode =@strFreePackageCode ",
                                    new string[] { "@strReceiptNo", "@strFreePackageCode" }, new object[] { mp2.StrReceiptNo.ToString(), strFreePackageCode });

                                if (freePkgTable.Rows.Count > 0)
                                {
                                    freePkgTable.Rows[0]["nStatusID"] = 0;
                                    freePkgTable.Rows[0]["strUpgradeTo"] = "";
                                    freePkgTable.Rows[0]["strRemarks"] = "";
                                    mp3.SaveData(freePkgTable);
                                }
                            }
                        }
                    }
                }

                receipt.MUpgradeAmount = System.Data.SqlTypes.SqlMoney.Null;
                receipt.StrRemarks = "";
                receipt.Update();

                #region ====== Added By Albert ======
                /*
                 * To remove reward transaction.
                 */
                mRewardTransaction.StrReferenceNo = strReceiptNo;
                mRewardTransaction.SelectAllWReferenceNo();
                mRewardTransaction.NTypeID = 3;
                mRewardTransaction.Update();
                #endregion

                //rollback used cash voucher
                TblReceiptPayment tblReceiptPayment = new ACMSDAL.TblReceiptPayment();
                tblReceiptPayment.StrReceiptNo = strReceiptNo;
                DataTable tblPayment = tblReceiptPayment.SelectAllWstrReceiptNoLogic();

                foreach (DataRow dr in tblPayment.Rows)
                {
                    if (dr["strPaymentCode"].ToString() == "CASHVOUCHER")
                    {
                        TblCashVoucher sqlCV = new TblCashVoucher();
                        sqlCV.MainConnectionProvider = connProvider;
                        sqlCV.StrSN = dr["strReferenceNo"].ToString();
                        DataTable table = sqlCV.SelectOne();
                        sqlCV.NStatusID = 1;
                        sqlCV.StrRedeemedByID = System.Data.SqlTypes.SqlString.Null;
                        sqlCV.DtRedeemedDate = System.Data.SqlTypes.SqlDateTime.Null;
                        sqlCV.StrRedeemedBranch = System.Data.SqlTypes.SqlString.Null;
                        sqlCV.Update();
                        sqlCV.SaveData(table);
                    }
                }

                if (!receipt.StrChildReceiptNo.IsNull)
                {
                    int IsVoid = 0;

                    IsVoid = receipt.CheckIfChildReceiptVoid(receipt.StrChildReceiptNo.Value);

                    if (IsVoid == 0)
                    {
                        throw new Exception("The receipt given has child receipt, please void child receipt first before void this receipt");
                    }
                }

                string strDepositReceiptNo = "";

                if (!receipt.StrParentReceiptNo.IsNull)
                {
                    TblReceiptEntries pReceipt = new TblReceiptEntries();
                    pReceipt.StrReceiptNo = receipt.StrParentReceiptNo.Value;
                    pReceipt.SelectAllWstrReceiptNoLogic();
                    if (pReceipt.StrCode.Value != "Deposit")
                    {
                        nCategoryID = 0; //Check if pay outstanding receipt, reset category to 0
                    }
                    else if (pReceipt.StrCode.Value == "Deposit")
                    {
                        strDepositReceiptNo = receipt.StrParentReceiptNo.Value;
                    }
                    pReceipt.Dispose();
                }

                if (strDepositReceiptNo != "")
                {
                    try
                    {
                        receipt.ReviveDepositForVoidMasterReceipt(strReceiptNo, strDepositReceiptNo);
                    }
                    catch { }
                }

                if (nCategoryID == 1 || nCategoryID == 3 || nCategoryID == 4 || nCategoryID == 5 ||
                    nCategoryID == 6 || nCategoryID == 8 || nCategoryID == 9 || nCategoryID == 14 || nCategoryID == 23)
                {
                    ActionTakeWhenVoidReceiptForCategory_1_3_4_5_6_8_9_14_23(strReceiptNo, connProvider);
                }
                else if (nCategoryID == 2)
                {
                    //Fitness GIRO
                    ActionTakeWhenVoidReceiptForCategory_2(strReceiptNo, connProvider);
                }
                else if (nCategoryID == 7)
                {
                    // Spa Credit Account
                    ActionTakeWhenVoidReceiptForCategory_7(strReceiptNo, connProvider);
                }
                else if (nCategoryID == 36 || nCategoryID == 37)
                {
                    // Holistic Credit Account
                    ActionTakeWhenVoidReceiptForCategory_7(strReceiptNo, connProvider);
                }
                else if (nCategoryID == 38)
                {
                    // Cash Voucher
                    ActionTakeWhenVoidReceiptForCategory_38(strReceiptNo, connProvider);
                }
                else
                {
                    DeleteFreeMemberPackage(strReceiptNo, connProvider);

                    if (nCategoryID == 11 || nCategoryID == 12)
                    {
                        //ActionTakeWhenVoidReceiptForCategory_11_12(strReceiptNo, connProvider);
                    }
                    else if (nCategoryID == 21)
                    {
                        // mineral water
                    }
                    else if (nCategoryID == 15)
                    {
                        //Locker Rental
                    }
                    else if (nCategoryID == 0)
                    {
                        // Pay Outstanding
                        ActionTakeWhenVoidReceiptForCategory_0(receipt, connProvider);

                        //Get New Payment Plan
                        //If Table Row Count > 0 Then Update Payment Plan

                        //Derek Instalment Plan - Update tblPaymentPlan (if any)
                        //Reset Payment Plan's Receipt by payment receipt No - Bool 1 Updated 0 Not Found
                        //Get Bool If 1
                        //Find the Master Receipt No if 1

                        string strMasterReceiptNo = "";

                        strMasterReceiptNo = myPaymentPlan.GetInhouseIPPMasterOSReceiptSimple(strReceiptNo);

                        if (strMasterReceiptNo != "")
                        {
                            if (myPaymentPlan.GetInhouseResetIPP_VoidPayOS(strReceiptNo) == 1)
                            {
                                DataTable paymentPlanTable = myPaymentPlan.GetInhouseAdjustedIPP_VoidPayOS(strMasterReceiptNo);

                                if (paymentPlanTable != null && paymentPlanTable.Rows.Count > 0)
                                {
                                    foreach (DataRow r in paymentPlanTable.Rows)
                                    {
                                        if (r["lastestUpdate"].ToString() == "1")
                                        {
                                            myPaymentPlan.IPPSubsequentUpdate(Convert.ToInt32(r["nPaymentPlanID"]), r["strReceiptNo"].ToString(),
                                                                                Convert.ToInt32(r["nInstalmentNo"]), Convert.ToDecimal(r["mPaidAmount"]),
                                                                                Convert.ToDecimal(r["mAdjustedPaymentPlanAmt"]), Convert.ToDecimal(r["mOutstandingAmt"]));
                                        }
                                    }
                                    //paymentPlanTable.AcceptChanges();
                                }
                            }
                        }
                    }
                    else if (nCategoryID == 18)
                    {
                        ActionTakeWhenVoidReceiptForCategory_18(strReceiptNo, connProvider);
                    }
                    else if (nCategoryID == 19)
                    {
                        ActionTakeWhenVoidReceiptForCategory_19(strReceiptNo, connProvider);
                    }
                    #region Un-support voiding
                    /*
                    else if (nCategoryID == 17)
                    {
                        //throw new Exception("Forget card's receipt is not allow to void.");
                        //do notthing. Just void the receipt
                    }
                    else if (nCategoryID == 10)
                    {
                        //throw new Exception("Upgrade Package's receipt is not allow to void.");
                        // do notthing. Just void the receipt.
                    }
                    else if (nCategoryID == 20)
                    {
                        //Replace Membership Card
                        //throw new Exception("Replace member card's receipt is not allow to void.");
                        //do notthing, just void the receipt
                    }
                    */
                    #endregion

                }

                connProvider.CommitTransaction();
            }
            catch (Exception ex)
            {
                connProvider.RollbackTransaction("VoidReceipt");
                throw ex;
            }
            finally
            {
                if (connProvider.CurrentTransaction != null)
                    connProvider.CurrentTransaction.Dispose();
                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                        connProvider.DBConnection.Close();

                }
            }
        }
コード例 #12
0
ファイル: CreditAccount.cs プロジェクト: kimykunjun/test
 private void Init()
 {
     myCreditPkg = new TblMemberCreditPackage();
 }
コード例 #13
0
ファイル: CreditAccount.cs プロジェクト: kimykunjun/test
        /// <summary>
        /// Use Member Credit Package means use the credit to buy the package and then store in the tblMemberPackage
        /// be aware some package is not allow to purchase using credit package. Must check tblCreditPackageRestriction
        /// </summary>
        /// <returns></returns>
        public string[,] UseMemberCreditPackage(string[,] strPackageCode,
            int nCreditPackageID, string strSignID, string strSigKey, string strPdfExportPath, string remark)
        {
            //ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();
            DataRow[] rows, row1s = new DataRow[strPackageCode.Length / 2];
            string[,] strUsage = new string[strPackageCode.Length / 2, 3];
            //DataColumn[] dc = new DataColumn["Usage",System.Type.GetType("System.Int")];

            try
            {
                TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();

                //connProvider.OpenConnection();
                //connProvider.BeginTransaction("UseMemberCreditPackage");

                //memberCreditPackage.MainConnectionProvider = connProvider;
                memberCreditPackage.NCreditPackageID = nCreditPackageID;
                DataTable table = memberCreditPackage.SelectOne();

                if (table == null || table.Rows.Count == 0)
                    throw new Exception("This member credit package been deleted by others");

                if (ACMS.Convert.ToInt32(table.Rows[0]["nStatusID"]) > 0)
                    throw new Exception("This member credit package has been deleted/expired/suspended.");

                string strCreditPackageCode = memberCreditPackage.StrCreditPackageCode.Value;
                string strMembershipID = memberCreditPackage.StrMembershipID.Value;
                TblCreditPackageRestriction restriction = new TblCreditPackageRestriction();
                restriction.StrCreditPackageCode = strCreditPackageCode;
                TblReceipt creditReceipt = new TblReceipt();
                if (!memberCreditPackage.StrReceiptNo.IsNull)
                {
                    creditReceipt.StrReceiptNo = memberCreditPackage.StrReceiptNo.Value;
                    creditReceipt.SelectOne();
                }

                DataTable restricttable = restriction.SelectAllWstrCreditPackageCodeLogic();
                DataColumn colQuantity = new DataColumn("colQuantity", System.Type.GetType("System.Int32"));
                restricttable.Columns.Add(colQuantity);

                bool isAllowDiscount = false;

                if (restricttable.Rows.Count == 0)
                    throw new Exception("No allow to use credit package for this package.");
                else
                {

                    for (int j = 0; j < strPackageCode.Length / 2; j++)
                    {
                        rows = restricttable.Select("strPackageCode = '" + strPackageCode[j, 0] + "'", "strCreditPackageCode");
                        rows[0]["colQuantity"] = strPackageCode[j, 1];
                        row1s[j] = rows[0];

                    }
                    if (row1s.Length == 0)
                        throw new Exception("No allow to use credit package for this package.");
                    // check later as got two package now
                    //else
                    //{
                    //    isAllowDiscount = ACMS.Convert.ToBoolean(row1s[0]["fAllowDiscount"]);
                    //}
                }

                // Must Check balance is enough to buy a Package or not
                TblCreditPackage creditPackage = new TblCreditPackage();
                creditPackage.StrCreditPackageCode = memberCreditPackage.StrCreditPackageCode.Value;
                creditPackage.SelectOne();

                decimal creditPackageValue = ACMS.Convert.ToDecimal(creditPackage.MCreditAmount);
                decimal mmbCreditPackageFreeCredit = ACMS.Convert.ToDecimal(creditPackage.MFreeCredit);
                decimal mmbCreditPackageTopupAmt = ACMS.Convert.ToDecimal(memberCreditPackage.MTopupAmount);

                decimal totalCreditUsage = GetCreditUsageFromMemberPackage(nCreditPackageID);

                decimal balance = (creditPackageValue + mmbCreditPackageTopupAmt + mmbCreditPackageFreeCredit) - totalCreditUsage;

                if (creditReceipt.MOutstandingAmount > 0 && !memberCreditPackage.StrReceiptNo.IsNull)
                {
                    DataTable creditUsageMemberPackage = null;
                    RefreshForPackageUsage(strMembershipID, ACMS.Convert.ToInt32(creditPackage.NCategoryID));
                    creditUsageMemberPackage = myDataTable;

                    double m70PercPaidAmount = 0;
                    if (creditUsageMemberPackage.Rows.Count > 0)
                        m70PercPaidAmount = ACMS.Convert.ToDouble(creditUsageMemberPackage.Select("nCreditPackageID=" + nCreditPackageID)[0]["PaidAmt"]) * 0.7;

                    if (totalCreditUsage > ACMS.Convert.ToDecimal(m70PercPaidAmount)) throw new Exception(string.Format("Total usage is more than 70% of paid amount. \n Please clear the outstanding."));
                }

                if (balance < 0) throw new Exception(string.Format("Balance for Member Credit Package : {0} is not enough.\n Please topup your credit.", nCreditPackageID.ToString()));

                // Need to know here whether it is 1st use
                TblMemberPackage mp = new TblMemberPackage();
                //mp.MainConnectionProvider = connProvider;
                mp.NCreditPackageID = nCreditPackageID;
                DataTable temptable = mp.SelectAllWnCreditPackageIDLogic();

                bool is1stUseCreditPck = false;
                if (Convert.ToInt32(temptable.Compute("COUNT(nStatusID)", "nStatusID=0 or nStatusID=1")) == 0)
                {
                    //means news insert
                    is1stUseCreditPck = true;
                }
                int i = 0;
                foreach (DataRow drPackage in row1s)
                {
                    for (int x = 0; x < ACMS.Convert.ToInt32(drPackage[3]); x++) // quantity
                    {
                        MemberPackage memberPackage = new MemberPackage();
                        DataTable memberPackageTable = memberPackage.New(false, strMembershipID);
                        DataRow memberPackageRow = memberPackageTable.Rows[0];
                        memberPackageRow["nCreditPackageID"] = nCreditPackageID;
                        memberPackageRow["strMembershipID"] = strMembershipID;
                        memberPackageRow["dtPurchaseDate"] = DateTime.Now;
                        memberPackageRow["strRemarks"] = remark;
                        memberPackageRow["strSignatureID"] = strSignID;
                        memberPackageRow["strSigKey"] = strSigKey;
                        memberPackageRow["strSigPdfPath"] = strPdfExportPath;
                        memberPackageRow["strUtilData"] = strSigKey;
                        memberPackageRow["nStatusID"] = 0;

                        memberPackageRow["strPackageCode"] = drPackage["strPackageCode"];//strPackageCode;
                        TblPackage package = new TblPackage();
                        package.StrPackageCode = drPackage["strPackageCode"].ToString(); // strPackageCode;
                        package.SelectOne();
                        decimal creditUsage = 0;
                        decimal packageListPrice = ACMS.Convert.ToDecimal(package.MListPrice);

                        TblMember sqlMember = new TblMember();
                        //Check if redeemed spa single treatment from holistic in birthday month, give 50% discount
                        if ((creditPackage.NCategoryID == 36 || creditPackage.NCategoryID == 37) && (package.NCategoryID == 4 || (package.NCategoryID == 6 && package.NMaxSession == 1)) && sqlMember.MembershipThisMonthBirtdayForUtilised(strMembershipID, nCreditPackageID))
                        {
                            DialogResult result1 = MessageBox.Show("Member is having birthday this months and having 50% discount. Do you want to utilies?", "Warning",
                            MessageBoxButtons.YesNo);

                            if (result1 == DialogResult.Yes)
                            {
                                double discountPercent = 50;
                                memberPackageRow["strPromotionCode"] = "120046SSD";
                                // calcualte usage * quantity
                                creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                            }
                            else
                            {
                                if (ACMS.Convert.ToBoolean(drPackage["fAllowDiscount"]))
                                {
                                    double discountPercent = creditPackage.DCreditDiscount.Value;
                                    // calcualte usage * quantity
                                    creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                                }
                                else
                                {
                                    creditUsage = packageListPrice;
                                }
                            }
                        }
                        else if (ACMS.Convert.ToBoolean(drPackage["fAllowDiscount"]))
                        {
                            double discountPercent = creditPackage.DCreditDiscount.Value;
                            // calcualte usage * quantity
                            creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                        }
                        else
                        {
                            creditUsage = packageListPrice;
                        }

                        decimal previousBal = balance;
                        balance = decimal.Parse(previousBal.ToString("N2")) - decimal.Parse(creditUsage.ToString("N2"));
                        if (balance < 0)
                            throw new Exception(string.Format("Balance for Member Credit Package : {0} is not enough. \n Please topup your credit.", nCreditPackageID.ToString()));

                        memberPackageRow["mCreditPackageUsagePrice"] = creditUsage;
                        memberPackageRow["strRemarks"] = memberPackageRow["strRemarks"] + " " + x;

                        //Initially designed for immediate kick start
                        if (memberPackageRow["dtStartDate"].ToString() == "")
                        {
                            int iduration = package.NPackageDuration.Value;
                            DateTime dtNow = DateTime.Now.Date;
                            memberPackageRow["dtStartDate"] = dtNow;
                            if (package.StrDurationUnit.ToString().Trim() == "DAY")
                                memberPackageRow["dtExpiryDate"] = dtNow.AddDays(iduration - 1).AddDays(0);
                            else if (package.StrDurationUnit.ToString().Trim() == "WEEK")
                            {
                                iduration = iduration * 7;
                                memberPackageRow["dtExpiryDate"] = dtNow.AddDays(iduration - 1).AddDays(0);
                            }
                            else
                                memberPackageRow["dtExpiryDate"] = dtNow.AddMonths(iduration).AddDays(-1);
                        }

                        mp.SaveData(memberPackageTable);
                        strUsage[i, 0] = package.StrDescription.ToString();
                        strUsage[i, 1] = creditUsage.ToString();
                    }

                    strUsage[i, 2] = drPackage[3].ToString();
                    i++;

                }

                if (is1stUseCreditPck)
                {
                    if (memberCreditPackage.DtStartDate.ToString() == "Null")
                    {
                        memberCreditPackage.NCreditPackageID = nCreditPackageID;
                        memberCreditPackage.DtStartDate = DateTime.Now.Date;
                        memberCreditPackage.DtExpiryDate = DateTime.Now.Date.AddMonths(ACMS.Convert.ToInt32(creditPackage.NValidMonths)).AddDays(-1);
                        memberCreditPackage.Update();
                    }
                }

                //connProvider.CommitTransaction();
            }
            catch (Exception)
            {
                //connProvider.RollbackTransaction("UseMemberCreditPackage");
                throw;
            }
            finally
            {
                //if (connProvider.CurrentTransaction != null)
                //    connProvider.CurrentTransaction.Dispose();
                //if (connProvider.DBConnection != null)
                //{
                //    if (connProvider.DBConnection.State == ConnectionState.Open)
                //        connProvider.DBConnection.Close();
                //}
            }
            return strUsage;
        }
コード例 #14
0
ファイル: CreditAccount.cs プロジェクト: kimykunjun/test
        public DataTable GetPrintBalanceTable(int nCreditPackageID)
        {
            TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
            memberCreditPackage.NCreditPackageID = nCreditPackageID;
            DataTable table = memberCreditPackage.SelectOne();

            TblCreditPackage creditPackage = new TblCreditPackage();
            creditPackage.StrCreditPackageCode = memberCreditPackage.StrCreditPackageCode.Value;
            creditPackage.SelectOne();

            decimal creditPackageValue = ACMS.Convert.ToDecimal(creditPackage.MCreditAmount);

            decimal mmbCreditPackageTopupAmt = ACMS.Convert.ToDecimal(memberCreditPackage.MTopupAmount);

            decimal totalCreditUsage = GetCreditUsageFromMemberPackage(nCreditPackageID);

            decimal balance =  (creditPackageValue + mmbCreditPackageTopupAmt) - totalCreditUsage;

            DataTable tableToReturn = new DataTable();

            DataColumn colCreditPackageID = new DataColumn("nCreditPackageID", System.Type.GetType("System.Int32"));
            DataColumn colBalance = new DataColumn("Balance", System.Type.GetType("System.Decimal"));
            DataColumn colExpiryDate = new DataColumn("ExpiryDate", System.Type.GetType("System.DateTime"));

            tableToReturn.Columns.Add(colBalance);
            tableToReturn.Columns.Add(colCreditPackageID);
            tableToReturn.Columns.Add(colExpiryDate);

            DataRow r = tableToReturn.NewRow();
            r["nCreditPackageID"] = nCreditPackageID;
            r["Balance"] = balance;
            r["ExpiryDate"] = memberCreditPackage.DtExpiryDate.Value;

            return tableToReturn;
        }
コード例 #15
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        public bool SavePOS(ACMSLogic.POS pos)
        {
            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();
            //ACMSDAL.ConnectionProvider connProvider1 = new ConnectionProvider();

            try
            {
                DataTable branchReceiptNoTable = new DataTable();
                int latestReceiptNo = GetLatestReceiptNo(connProvider, pos, ref branchReceiptNoTable) + 1;
                string receiptNo = pos.StrBranchCode.ToString().Trim() + pos.NTerminalID.ToString().Trim() + latestReceiptNo.ToString().Trim();

                pos.StrReceiptNo = receiptNo;

                //Derek Instalment Plan Need to Add PaymentPlan Table Here
                //Get pos.NCategoryID here to determine if the item is Pay O/S
                //Here Can get the new Receipt No Value
                //3 Main table that always need to update

                TblReceipt receipt = new TblReceipt();
                TblReceiptEntries receiptEntries = new TblReceiptEntries();
                TblReceiptPayment receiptPayment = new TblReceiptPayment();
                TblPaymentPlan myPaymentPlan = new TblPaymentPlan();

                receipt.MainConnectionProvider = connProvider;
                receiptEntries.MainConnectionProvider = connProvider;
                receiptPayment.MainConnectionProvider = connProvider;
                myPaymentPlan.MainConnectionProvider = connProvider;

                connProvider.OpenConnection();
                connProvider.BeginTransaction("SaveReceipt");

                DataTable receiptTable = pos.ReceiptMasterTable.Copy();
                DataTable receiptEntriesTable = pos.ReceiptItemsTable.Copy();
                DataTable receiptPaymentTable = pos.ReceiptPaymentTable.Copy();
                DataTable freeMemberPackageTable = receipt.FillSchema("Select * From tblMemberPackage"); // use to store the free member package.
                DataTable freeMemberCreditPackageTable = receipt.FillSchema("Select * From tblMemberCreditPackage");

                if (pos.PaymentPlanTable != null && pos.NCategoryID != 0)
                {
                    DataTable paymentPlanTable = pos.PaymentPlanTable.Copy();

                    if (paymentPlanTable != null && paymentPlanTable.Rows.Count > 0)
                    {
                        foreach (DataRow r in paymentPlanTable.Rows)
                        {
                            r["strReceiptNo"] = pos.StrReceiptNo;

                            if (r["nInstalmentNo"].ToString() == "1")
                            {
                                r["strPaymentReceiptNo"] = pos.StrReceiptNo;

                                myPaymentPlan.IPPPrimaryEntry(r["strReceiptNo"].ToString(), Convert.ToInt32(r["nInstalmentNo"]),
                                                                r["strPaymentReceiptNo"].ToString(), Convert.ToDecimal(r["mPaymentPlanAmt"]),
                                                                Convert.ToDecimal(r["mPaidAmount"]), Convert.ToDecimal(r["mAdjustedPaymentPlanAmt"]),
                                                                Convert.ToDecimal(r["mOutstandingAmt"]), Convert.ToDateTime(r["dtPaymentDate"]),
                                                                Convert.ToDateTime(r["dtDueDate"]), Convert.ToDateTime(r["dtFinalDueDate"]),
                                                                Convert.ToInt32(r["nPaymentPlanID"]));

                            }
                            else
                            {
                                myPaymentPlan.IPPSubsequentEntry(r["strReceiptNo"].ToString(), Convert.ToInt32(r["nInstalmentNo"]),
                                                                    Convert.ToDecimal(r["mPaymentPlanAmt"]), Convert.ToDecimal(r["mPaidAmount"]),
                                                                    Convert.ToDecimal(r["mAdjustedPaymentPlanAmt"]), Convert.ToDecimal(r["mOutstandingAmt"]),
                                                                    Convert.ToDateTime(r["dtDueDate"]), Convert.ToDateTime(r["dtFinalDueDate"]),
                                                                    Convert.ToInt32(r["nPaymentPlanID"]));
                            }
                        }
                        paymentPlanTable.AcceptChanges();
                    }
                    pos.PaymentPlanTable.AcceptChanges();

                }
                else if (pos.PaymentPlanTable != null && pos.NCategoryID == 0)
                {
                    DataTable paymentPlanTable = pos.PaymentPlanTable.Copy();

                    if (paymentPlanTable != null && paymentPlanTable.Rows.Count > 0)
                    {
                        foreach (DataRow r in paymentPlanTable.Rows)
                        {
                            if (r["lastestUpdate"].ToString() == "1")
                            {
                                r["strPaymentReceiptNo"] = pos.StrReceiptNo;

                                myPaymentPlan.IPPPrimaryUpdate(Convert.ToInt32(r["nPaymentPlanID"]), r["strReceiptNo"].ToString(),
                                                                Convert.ToInt32(r["nInstalmentNo"]), r["strPaymentReceiptNo"].ToString(),
                                                                Convert.ToDecimal(r["mPaidAmount"]), Convert.ToDecimal(r["mAdjustedPaymentPlanAmt"]),
                                                                Convert.ToDecimal(r["mOutstandingAmt"]), Convert.ToDateTime(r["dtPaymentDate"]));

                            }
                            else
                            {
                                myPaymentPlan.IPPSubsequentUpdate(Convert.ToInt32(r["nPaymentPlanID"]), r["strReceiptNo"].ToString(),
                                                                    Convert.ToInt32(r["nInstalmentNo"]), Convert.ToDecimal(r["mPaidAmount"]),
                                                                    Convert.ToDecimal(r["mAdjustedPaymentPlanAmt"]), Convert.ToDecimal(r["mOutstandingAmt"]));
                            }
                        }

                        //paymentPlanTable.AcceptChanges();
                    }
                    pos.PaymentPlanTable.AcceptChanges();
                }

                receipt.SaveData(receiptTable);
                receiptEntries.SaveData(receiptEntriesTable);
                receiptPayment.SaveData(receiptPaymentTable);

                receiptEntries.StrReceiptNo = pos.StrReceiptNo;
                DataTable savedReceiptEntriesTable = receiptEntries.SelectAllWstrReceiptNoLogic();

                pos.ReceiptMasterTable.AcceptChanges();

                if (pos.StrFreebieCode.HasValue && pos.StrFreebieCode.ToString() != "")
                {
                    //Update Bill Freebie here
                    if (pos.ReceiptFreebieTable.Rows.Count > 0)
                    {
                        TblReceiptFreebie receiptFreebie = new TblReceiptFreebie();
                        receiptFreebie.MainConnectionProvider = connProvider;
                        DataTable receiptFreebieTable = pos.ReceiptFreebieTable.Copy();

                        // Save Bill Receipt Freebie
                        receiptFreebie.SaveData(receiptFreebieTable);

                        //TblProductInventory proInven = new TblProductInventory();
                        //proInven.MainConnectionProvider = connProvider;

                        //// deduct stock
                        //foreach (DataRow r in receiptFreebieTable.Rows)
                        //{
                        //    proInven.IncreaseQuantity(r["strItemCode"].ToString(), pos.StrBranchCode, -1);
                        //}
                    }
                    if (pos.ReceiptPackageTable.Rows.Count > 0)
                    {
                        // update package

                        foreach (DataRow r in pos.ReceiptPackageTable.Rows)
                        {
                            TblCreditPackage p = new TblCreditPackage();
                            p.StrCreditPackageCode = r["strPackageCode"].ToString();
                            p.SelectOne();

                            if (p.StrDescription.ToString() != "Null")
                            {
                                DataRow rowToAdd = freeMemberCreditPackageTable.NewRow();

                                ACMSLogic.MemberPackage.InitMemberCreditPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID,
                                    r["strPackageCode"].ToString(), r["strPromotionCode"].ToString(), true);

                                // Add to freeMemberPackageTable and will save
                                freeMemberCreditPackageTable.Rows.Add(rowToAdd);
                            }
                            else
                            {
                                DataRow rowToAdd = freeMemberPackageTable.NewRow();

                                ACMSLogic.MemberPackage.InitMemberPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID,
                                    r["strPackageCode"].ToString(), r["strPromotionCode"].ToString(), true);

                                // Add to freeMemberPackageTable and will save
                                freeMemberPackageTable.Rows.Add(rowToAdd);
                            }
                        }
                    }
                    //else
                    //{
                    //    throw new Exception("Bill Freebie have no free any product or package although the strFreebieCode is not null");
                    //}
                }

                if (pos.ReceiptItemsFreebiePackageTable.Rows.Count > 0)
                {
                    foreach (DataRow r in pos.ReceiptItemsFreebiePackageTable.Rows)
                    {
                        TblCreditPackage p = new TblCreditPackage();
                        p.StrCreditPackageCode = r["strPackageCode"].ToString();
                        p.SelectOne();

                        if (p.StrDescription.ToString() != "Null")
                        {
                            DataRow rowToAdd = freeMemberCreditPackageTable.NewRow();

                            ACMSLogic.MemberPackage.InitMemberCreditPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID,
                                r["strPackageCode"].ToString(), r["strPromotionCode"].ToString(), true);

                            // Add to freeMemberPackageTable and will save
                            freeMemberCreditPackageTable.Rows.Add(rowToAdd);
                        }
                        else
                        {
                            DataRow rowToAdd = freeMemberPackageTable.NewRow();
                            // Kean Yiap
                            if (pos.NCategoryID == 34)
                            {
                                MemberPackage.InitMemberPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID, r["strPackageCode"].ToString(), "",
                                    true, -1, pos.dtPackageStart, pos.NProrateDays);
                            }
                            else
                            {
                                ACMSLogic.MemberPackage.InitMemberPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID,
                                    r["strPackageCode"].ToString(), r["strPromotionCode"].ToString(), true);
                            }
                            // Add to freeMemberPackageTable and will save
                            freeMemberPackageTable.Rows.Add(rowToAdd);
                        }
                    }
                }

                if (pos.ReceiptItemsFreebieProductTable.Rows.Count > 0)
                {
                    //					Update product
                    TblReceiptFreebie receiptFreebie = new TblReceiptFreebie();
                    receiptFreebie.MainConnectionProvider = connProvider;
                    DataTable receiptItemsFreebieProductTable = pos.ReceiptFreebieTable.Clone(); // i have to use this structure bcoz i wan to save to this table;

                    foreach (DataRow r in pos.ReceiptItemsFreebieProductTable.Rows)
                    {
                        DataRow rowToAdd = receiptItemsFreebieProductTable.NewRow();
                        rowToAdd["strReceiptNo"] = pos.StrReceiptNo;
                        rowToAdd["strItemCode"] = r["strProductCode"];
                        rowToAdd["strPromotionCode"] = r["strPromotionCode"];

                        DataRow[] tempRows = savedReceiptEntriesTable.Select("nTempEntryID = " + r["nEntryID"].ToString(),
                            "", DataViewRowState.CurrentRows);

                        if (tempRows.Length > 0)
                            rowToAdd["nEntryID"] = tempRows[0]["nEntryID"];

                        receiptItemsFreebieProductTable.Rows.Add(rowToAdd);
                    }

                    receiptFreebie.SaveData(receiptItemsFreebieProductTable);

                    //TblProductInventory proInven = new TblProductInventory();
                    //proInven.MainConnectionProvider = connProvider;

                    //foreach (DataRow r in receiptItemsFreebieProductTable.Rows)
                    //{
                    //    proInven.IncreaseQuantity(r["strItemCode"].ToString(), pos.StrBranchCode, -1);
                    //}
                }

                if (freeMemberPackageTable.Rows.Count > 0)
                {
                    // update the member package to database
                    TblMemberPackage memberPackage = new TblMemberPackage();
                    memberPackage.MainConnectionProvider = connProvider;
                    memberPackage.SaveData(freeMemberPackageTable);
                }

                if (freeMemberCreditPackageTable.Rows.Count > 0)
                {
                    // update the member package to database
                    TblMemberCreditPackage memberPackage = new TblMemberCreditPackage();
                    memberPackage.MainConnectionProvider = connProvider;
                    memberPackage.SaveData(freeMemberCreditPackageTable);
                }

            //part 2
                DeleteUselessIPP(connProvider, pos);
                UpdateRegistrationFee(connProvider, pos);
                UpdateOldPackSetDeactivate(connProvider, pos); //Update when upgrade
                PostToMemberCreditPackage(connProvider, pos);
                PostToMemberPackage(connProvider, pos);
                UpdateUsedCashVoucher(connProvider, pos);

                int ParentCategoryID = pos.NCategoryID;

                if (pos.NCategoryID == 10)
                {
                    ParentCategoryID = UpgradePackage(connProvider, pos);
                    if (ParentCategoryID == 10)
                    {
                        ParentCategoryID = UpgradeCreditPackage(connProvider, pos);
                    }
                }

                TopUpCreditPackage(connProvider, pos);
                TopUpSingleTreatmentTransaction(connProvider, pos);
                MakeDeposit(connProvider, pos);

                CashVoucherTransaction(connProvider, pos);
                LockerTransaction(connProvider, pos);
                ForgetCardTransaction(connProvider, pos);
                ReplaceMembershipCardTransaction(connProvider, pos);
                //MineralWaterTransaction(connProvider, pos);
                TblRewards rewardcode = new TblRewards();
                ACMSDAL.TblCategory category = new ACMSDAL.TblCategory();
                category.NCategoryID = pos.NCategoryID;
                category.SelectOne();
                int SalesCategory = ACMS.Convert.ToInt32(category.NSalesCategoryID);

                //Derek Instalment Plan - Here it assigned the Category to the Pay O/S Receipt Record
                if (pos.NCategoryID == 0)
                {
                    ParentCategoryID = PayOutstanding(connProvider, pos);
                    pos.StrRewardsCode = rewardcode.SelectRewards(ParentCategoryID, pos.StrBranchCode);
                }
                else
                    pos.StrRewardsCode = rewardcode.SelectRewards(pos.NCategoryID, pos.StrBranchCode);

                if (pos.StrRewardsCode.HasValue && pos.StrRewardsCode.ToString() != "" && pos.StrRewardsCode.ToString() != "Null")
                {
                    TblRewards rewards = new TblRewards();
                    rewards.StrRewardsCode = pos.StrRewardsCode.ToString();
                    rewards.SelectOne();

                    double dRewardPoint = 0;

                    double dRewardPercent = (rewards.DRewardsPercent.IsNull ? 0 : rewards.DRewardsPercent.Value);
                    double dRewardValue = (rewards.DRewardsValue.IsNull ? 0 : rewards.DRewardsValue.Value);

                    //jackie 23 others give 50% GIRO
                    //if (ParentCategoryID == 23 && pos.MNettAmount > 60)//pos.MNettAmount
                    //{
                    //    dRewardPercent = 50;

                    //}

                    if (dRewardPercent > 0 && dRewardValue == 0)
                    {
                        decimal mnettTotal = 0;

                        if (pos.MOutstandingAmount > 0)
                        {
                            mnettTotal = pos.MNettAmount - (pos.MOutstandingAmount - pos.MGSTAmount);
                        }
                        else
                        {
                            mnettTotal = pos.MNettAmount;
                        }

                        dRewardPoint = ((double)mnettTotal) * dRewardPercent / 100;
                    }
                    else
                    {
                        if (pos.NCategoryID == 0)
                        {
                            dRewardPoint = dRewardValue;
                        }
                    }
                    if (pos.NThisMonthBirthday == 1)
                    {
                        DialogResult result1 = MessageBox.Show("Member is having birthday this months. Do you want to give double point?", "Warning",
                        MessageBoxButtons.YesNo);

                        if (result1 == DialogResult.Yes)
                            dRewardPoint *= 2;
                    }

                    TblRewardsTransaction rewardTran = new TblRewardsTransaction();
                    rewardTran.MainConnectionProvider = connProvider;
                    if (pos.NCategoryID == 20)
                    {
                        rewardTran.StrMembershipID = pos.StrNewMembershipID;
                    }
                    else
                    {
                        rewardTran.StrMembershipID = pos.StrMembershipID;
                    }
                    rewardTran.DtDate = pos.DtDate;
                    rewardTran.NTypeID = 1;
                    rewardTran.NEmployeeID = pos.NCashierID;
                    rewardTran.DRewardsPoints = dRewardPoint;
                    rewardTran.StrReferenceNo = pos.StrReceiptNo;
                    if (dRewardPoint > 0) // rewards point > 0 then insert records //3004
                    {
                        rewardTran.Insert();
                    }
                }

                if (pos.StrRewardsCode.ToString() == "Null") pos.StrRewardsCode = "";

                DataTable QtyTable = receiptEntries.Get_StrCodeReceiptNo(pos.StrReceiptNo);
                //check is the receipt fully paid
                string Nett = pos.MNettAmount.ToString();
                string Outstanding = pos.MOutstandingAmount.ToString();

                //if (pos.MOutstandingAmount == 0 && (pos.NCategoryID == 11 || pos.NCategoryID == 12))
                //    PostToStock(connProvider, QtyTable, pos);

                receiptTable = pos.ReceiptMasterTable.Copy();
                int PosCategory = ACMS.Convert.ToInt32(receiptTable.Rows[0]["nCategoryID"]);
                if (PosCategory == 24)
                {
                    receiptTable.Rows[0]["fDeposit"] = true;
                    receipt.SaveData(receiptTable);
                }

                if (pos.StrBillReferenceNo != "")
                {
                    receiptTable.Rows[0]["strBillReferenceNo"] = pos.StrBillReferenceNo;
                    receipt.SaveData(receiptTable);
                }

                if (pos.NCategoryID == 0 || pos.NCategoryID == 10)
                {
                    receipt.StrReceiptNo = pos.StrReceiptNo;
                    receipt.SelectOne();
                    receipt.MOutstandingAmount = Convert.ToDecimal(pos.MOutstandingAmount);
                    receipt.NCategoryID = ParentCategoryID;
                    receipt.Update();
                    //TblReceipt receipt3 = new TblReceipt();
                    //receipt3.StrReceiptNo = pos.StrReceiptNo;
                    //receipt3.SelectOne();
                    //receipt3.MOutstandingAmount = Convert.ToDecimal(pos.MOutstandingAmount);
                    //receipt3.NCategoryID = ParentCategoryID;
                    //receipt3.Update();
                }

                if (pos.StrDeposit != "")
                {
                    receipt.StrReceiptNo = pos.StrDeposit;
                    DataTable tblDeposit = receipt.SelectOne();
                    if (tblDeposit.Rows.Count > 0)
                    {
                        receipt.FDeposit = false;
                        receipt.Update();

                    }
                    else
                    {
                        TblMemberPackage ConvertedPackage = new TblMemberPackage();
                        ConvertedPackage.NPackageID = ACMS.Convert.ToSqlInt32(pos.StrDeposit);
                        ConvertedPackage.NStatusID = 1;
                        ConvertedPackage.UpdateConvertedPackageStatus();
                    }
                }

                if (pos.ReceiptItemsTable.Select("", "", DataViewRowState.ModifiedCurrent).Length > 0)
                {
                    receiptEntriesTable = pos.ReceiptItemsTable.Copy();
                    receipt.SaveData(receiptEntriesTable);
                }
                //1503
                branchReceiptNoTable.Rows[0]["nReceiptNo"] = latestReceiptNo;

                SaveUpToDateReceiptNo(connProvider, branchReceiptNoTable);
                connProvider.CommitTransaction();

                if (pos.StrDeposit != "")
                {
                    TblReceipt receipt2 = new TblReceipt();
                    receipt2.StrReceiptNo = pos.StrDeposit;
                    receipt2.SelectOne();
                    receipt2.StrChildReceiptNo = receiptNo;
                    receipt2.Update();
                }
                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (connProvider.CurrentTransaction != null)
                    connProvider.CurrentTransaction.Dispose();
                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                        connProvider.DBConnection.Close();

                }
            }
        }
コード例 #16
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        private void PostToMemberCreditPackage(ACMSDAL.ConnectionProvider connProvider, ACMSLogic.POS pos)
        {
            if (pos.NCategoryID == 7 || pos.NCategoryID == 36 || pos.NCategoryID == 37)
            {
                TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
                memberCreditPackage.MainConnectionProvider = connProvider;

                DataTable memberCreditPackageTable = memberCreditPackage.FillSchema("Select * from tblMemberCreditPackage");
                string strUpgradeFrom = "";
                string strRemarks = "";
                foreach (DataRow dr in pos.WantToUpgradeMemberPackageTable.Rows)
                {
                    strRemarks += dr["strPackageCode"].ToString() + " / " + dr["strReceiptNo"].ToString() + " / " + dr["UsageBalAmt"].ToString() + ",";
                    if (dr["nCategoryID"].ToString() == "7" || dr["nCategoryID"].ToString() == "36" || dr["nCategoryID"].ToString() == "37")
                        strUpgradeFrom += dr["nPackageID"].ToString() + "(C),";
                    else if (dr["nCategoryID"].ToString() == "8" || dr["nCategoryID"].ToString() == "9")
                        strUpgradeFrom += dr["nPackageID"].ToString() + "(B),";
                    else
                        strUpgradeFrom += dr["nPackageID"].ToString() + ",";

                    if (ACMS.Convert.ToInt32(dr["nCategoryID"]) == 5 && dr["strFreePkgCode"] != DBNull.Value)
                    {
                        TblMemberPackage mp = new TblMemberPackage();
                        mp.MainConnectionProvider = connProvider;
                        DataTable freePkgTable = mp.LoadData("select * from tblMemberPackage where strReceiptNo=@strReceiptNo and strPackageCode =@strFreePackageCode ",
                            new string[] { "@strReceiptNo", "@strFreePackageCode" }, new object[] { dr["strReceiptNo"], dr["strFreePkgCode"].ToString() });

                        if (freePkgTable.Rows.Count > 0)
                        {
                            if (dr["nCategoryID"].ToString() == "7" || dr["nCategoryID"].ToString() == "36" || dr["nCategoryID"].ToString() == "37")
                                strUpgradeFrom += freePkgTable.Rows[0]["nPackageID"].ToString() + "(C),";
                            else if (dr["nCategoryID"].ToString() == "8" || dr["nCategoryID"].ToString() == "9")
                                strUpgradeFrom += freePkgTable.Rows[0]["nPackageID"].ToString() + "(B),";
                            else
                                strUpgradeFrom += freePkgTable.Rows[0]["nPackageID"].ToString() + ",";
                        }
                    }
                }
                if (pos.WantToUpgradeMemberPackageTable.Rows.Count > 0)
                {
                    strUpgradeFrom = strUpgradeFrom.Remove(strUpgradeFrom.Length - 1, 1);
                    strRemarks = "Convert from: " + strRemarks.Remove(strRemarks.Length - 1, 1);
                }

                foreach (DataRow r in pos.ReceiptItemsTable.Rows)
                {
                    if (r["strCode"].ToString() != "JOINFEES" && r["strCode"].ToString() != "JOINFEE" && r["strCode"].ToString() != "FA")
                    {
                        int nQuantity = ACMS.Convert.ToInt32(r["nQuantity"]);

                        for (int i = 0; i < nQuantity; i++)
                        {
                            DataRow rowToAdd = memberCreditPackageTable.NewRow();

                            CreditAccount.InitMemberCreditPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID, r["strCode"].ToString(), false);
                            rowToAdd["strUpgradeFrom"] = strUpgradeFrom;
                            rowToAdd["strRemarks"] = strRemarks;
                            memberCreditPackageTable.Rows.Add(rowToAdd);
                        }
                    }
                }

                if (memberCreditPackageTable.Rows.Count > 0)
                    memberCreditPackage.SaveData(memberCreditPackageTable);
            }
        }
コード例 #17
0
ファイル: Payment.cs プロジェクト: kimykunjun/test
        private void ActionTakeWhenVoidReceiptForCategory_7(string strReceiptNo, ConnectionProvider connProvider)
        {
            TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
            memberCreditPackage.MainConnectionProvider = connProvider;
            DataTable table = memberCreditPackage.SelectAllWstrReceiptNo(strReceiptNo);

            TblMemberPackage sqlMemberPackage = new TblMemberPackage();
            sqlMemberPackage.MainConnectionProvider = connProvider;

            if (table.Rows.Count > 0)
            {
                int nCreditPackageID = 0;

                foreach (DataRow r in table.Rows)
                {
                    nCreditPackageID = ACMS.Convert.ToInt32(r["nCreditPackageID"]);
                    sqlMemberPackage.NCreditPackageID = nCreditPackageID;
                    DataTable memberPackagetable = sqlMemberPackage.SelectAllWnCreditPackageIDLogic();
                    if (Convert.ToInt32(memberPackagetable.Compute("COUNT(nStatusID)", "nStatusID=0 OR nStatusID=1")) > 0)
                        throw new Exception("The item(s) has been used, you are not allow to void the receipt");

                    r["nEmployeeID"] = User.EmployeeID;
                    r["nStatusID"] = 2;
                    r["strRemarks"] = "Voided Receipt";
                    r["dtLastEditDate"] = System.DateTime.Now;
                }
                memberCreditPackage.SaveData(table);
            }

                sqlMemberPackage.StrReceiptNo = strReceiptNo;
                DataTable tblMemPackage = sqlMemberPackage.SelectAllWstrReceiptNo(strReceiptNo);

                TblClassAttendance sqlClassAttendance = new TblClassAttendance();
                TblServiceSession sqlServiceSession = new TblServiceSession();

                sqlClassAttendance.MainConnectionProvider = connProvider;
                sqlServiceSession.MainConnectionProvider = connProvider;

                if (tblMemPackage.Rows.Count > 0)
                {
                    int nPackageID = 0;
                    foreach (DataRow row in tblMemPackage.Rows)
                    {

                        nPackageID = ACMS.Convert.ToInt32(row["nPackageID"]);
                        sqlClassAttendance.NPackageID = nPackageID;
                        DataTable classAttTable = sqlClassAttendance.SelectAllWnPackageIDLogic();
                        if (classAttTable.Rows.Count > 0)
                            throw new Exception("The item(s) has been used, you are not allow to void the receipt");
                        else
                        {
                            sqlServiceSession.NPackageID = nPackageID;
                            classAttTable = sqlServiceSession.SelectAllWnPackageIDLogic();
                            if (classAttTable.Rows.Count > 0)
                                throw new Exception("The item(s) has been used, you are not allow to void the receipt");
                        }

                        row["nEmployeeID"] = User.EmployeeID;
                        row["nStatusID"] = 2;
                        row["strRemarks"] = "Voided Receipt";
                        row["dtLastEdit"] = System.DateTime.Now;
                    }
                    sqlMemberPackage.SaveData(tblMemPackage);

            }
        }
コード例 #18
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        private void TopUpCreditPackage(ACMSDAL.ConnectionProvider connProvider, ACMSLogic.POS pos)
        {
            if (pos.NCategoryID == 18)
            {
                TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();
                memberCreditPackage.MainConnectionProvider = connProvider;

                foreach (DataRow r in pos.ReceiptItemsTable.Rows)
                {
                    int nCreditPackageID = ACMS.Convert.ToInt32(r["strCode"]);

                    memberCreditPackage.NCreditPackageID = nCreditPackageID;
                    memberCreditPackage.SelectOne();
                    memberCreditPackage.MTopupAmount = ACMS.Convert.ToDecimal(memberCreditPackage.MTopupAmount) +
                        ACMS.Convert.ToDecimal(r["mSubTotal"]);
                    memberCreditPackage.Update();
                }
            }
        }
コード例 #19
0
 private void Init()
 {
     myCreditPkg = new TblMemberCreditPackage();
 }
コード例 #20
0
ファイル: POS.cs プロジェクト: kimykunjun/test
        private int UpgradeCreditPackage(ACMSDAL.ConnectionProvider connProvider, ACMSLogic.POS pos)
        {
            int OriginalCategoryID = 10 ;

            if (pos.NCategoryID == 10 && pos.NoCredit != 0)
            {
                //delete the old package
                TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();

                //add back the uprade package
                memberCreditPackage.MainConnectionProvider = connProvider;

                DataTable memberCreditPackageTable = memberCreditPackage.FillSchema("Select * from tblMemberCreditPackage");

                foreach (DataRow r in pos.ReceiptItemsTable.Rows)
                {
                    int nQuantity = ACMS.Convert.ToInt32(r["nQuantity"]);
                    memberCreditPackage.NCreditPackageID = ACMS.Convert.ToInt32(r[17]);

                    memberCreditPackage.Delete();
                    for (int i = 0; i < nQuantity; i++)
                    {
                        DataRow rowToAdd = memberCreditPackageTable.NewRow();

                        CreditAccount.InitMemberCreditPackageRowInPOS(rowToAdd, pos.StrReceiptNo, pos.StrMembershipID, r["strCode"].ToString(), false);

                        memberCreditPackageTable.Rows.Add(rowToAdd);
                    }
                }

                if (memberCreditPackageTable.Rows.Count > 0)
                    memberCreditPackage.SaveData(memberCreditPackageTable);
            }

            OriginalCategoryID= 7;

            return OriginalCategoryID;
        }
コード例 #21
0
        /// <summary>
        /// Use Member Credit Package means use the credit to buy the package and then store in the tblMemberPackage
        /// be aware some package is not allow to purchase using credit package. Must check tblCreditPackageRestriction
        /// </summary>
        /// <returns></returns>
        public string[,] UseMemberCreditPackage(string[,] strPackageCode,
                                                int nCreditPackageID, string strSignID, string strSigKey, string strPdfExportPath, string remark)
        {
            //ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();
            DataRow[] rows, row1s = new DataRow[strPackageCode.Length / 2];
            string[,] strUsage = new string[strPackageCode.Length / 2, 3];
            //DataColumn[] dc = new DataColumn["Usage",System.Type.GetType("System.Int")];

            try
            {
                TblMemberCreditPackage memberCreditPackage = new TblMemberCreditPackage();

                //connProvider.OpenConnection();
                //connProvider.BeginTransaction("UseMemberCreditPackage");

                //memberCreditPackage.MainConnectionProvider = connProvider;
                memberCreditPackage.NCreditPackageID = nCreditPackageID;
                DataTable table = memberCreditPackage.SelectOne();

                if (table == null || table.Rows.Count == 0)
                {
                    throw new Exception("This member credit package been deleted by others");
                }

                if (ACMS.Convert.ToInt32(table.Rows[0]["nStatusID"]) > 0)
                {
                    throw new Exception("This member credit package has been deleted/expired/suspended.");
                }

                string strCreditPackageCode             = memberCreditPackage.StrCreditPackageCode.Value;
                string strMembershipID                  = memberCreditPackage.StrMembershipID.Value;
                TblCreditPackageRestriction restriction = new TblCreditPackageRestriction();
                restriction.StrCreditPackageCode = strCreditPackageCode;
                TblReceipt creditReceipt = new TblReceipt();
                if (!memberCreditPackage.StrReceiptNo.IsNull)
                {
                    creditReceipt.StrReceiptNo = memberCreditPackage.StrReceiptNo.Value;
                    creditReceipt.SelectOne();
                }

                DataTable  restricttable = restriction.SelectAllWstrCreditPackageCodeLogic();
                DataColumn colQuantity   = new DataColumn("colQuantity", System.Type.GetType("System.Int32"));
                restricttable.Columns.Add(colQuantity);

                bool isAllowDiscount = false;

                if (restricttable.Rows.Count == 0)
                {
                    throw new Exception("No allow to use credit package for this package.");
                }
                else
                {
                    for (int j = 0; j < strPackageCode.Length / 2; j++)
                    {
                        rows = restricttable.Select("strPackageCode = '" + strPackageCode[j, 0] + "'", "strCreditPackageCode");
                        rows[0]["colQuantity"] = strPackageCode[j, 1];
                        row1s[j] = rows[0];
                    }
                    if (row1s.Length == 0)
                    {
                        throw new Exception("No allow to use credit package for this package.");
                    }
                    // check later as got two package now
                    //else
                    //{
                    //    isAllowDiscount = ACMS.Convert.ToBoolean(row1s[0]["fAllowDiscount"]);
                    //}
                }

                // Must Check balance is enough to buy a Package or not
                TblCreditPackage creditPackage = new TblCreditPackage();
                creditPackage.StrCreditPackageCode = memberCreditPackage.StrCreditPackageCode.Value;
                creditPackage.SelectOne();

                decimal creditPackageValue         = ACMS.Convert.ToDecimal(creditPackage.MCreditAmount);
                decimal mmbCreditPackageFreeCredit = ACMS.Convert.ToDecimal(creditPackage.MFreeCredit);
                decimal mmbCreditPackageTopupAmt   = ACMS.Convert.ToDecimal(memberCreditPackage.MTopupAmount);

                decimal totalCreditUsage = GetCreditUsageFromMemberPackage(nCreditPackageID);

                decimal balance = (creditPackageValue + mmbCreditPackageTopupAmt + mmbCreditPackageFreeCredit) - totalCreditUsage;

                if (creditReceipt.MOutstandingAmount > 0 && !memberCreditPackage.StrReceiptNo.IsNull)
                {
                    DataTable creditUsageMemberPackage = null;
                    RefreshForPackageUsage(strMembershipID, ACMS.Convert.ToInt32(creditPackage.NCategoryID));
                    creditUsageMemberPackage = myDataTable;

                    double m70PercPaidAmount = 0;
                    if (creditUsageMemberPackage.Rows.Count > 0)
                    {
                        m70PercPaidAmount = ACMS.Convert.ToDouble(creditUsageMemberPackage.Select("nCreditPackageID=" + nCreditPackageID)[0]["PaidAmt"]) * 0.7;
                    }

                    if (totalCreditUsage > ACMS.Convert.ToDecimal(m70PercPaidAmount))
                    {
                        throw new Exception(string.Format("Total usage is more than 70% of paid amount. \n Please clear the outstanding."));
                    }
                }

                if (balance < 0)
                {
                    throw new Exception(string.Format("Balance for Member Credit Package : {0} is not enough.\n Please topup your credit.", nCreditPackageID.ToString()));
                }

                // Need to know here whether it is 1st use
                TblMemberPackage mp = new TblMemberPackage();
                //mp.MainConnectionProvider = connProvider;
                mp.NCreditPackageID = nCreditPackageID;
                DataTable temptable = mp.SelectAllWnCreditPackageIDLogic();

                bool is1stUseCreditPck = false;
                if (Convert.ToInt32(temptable.Compute("COUNT(nStatusID)", "nStatusID=0 or nStatusID=1")) == 0)
                {
                    //means news insert
                    is1stUseCreditPck = true;
                }
                int i = 0;
                foreach (DataRow drPackage in row1s)
                {
                    for (int x = 0; x < ACMS.Convert.ToInt32(drPackage[3]); x++) // quantity
                    {
                        MemberPackage memberPackage      = new MemberPackage();
                        DataTable     memberPackageTable = memberPackage.New(false, strMembershipID);
                        DataRow       memberPackageRow   = memberPackageTable.Rows[0];
                        memberPackageRow["nCreditPackageID"] = nCreditPackageID;
                        memberPackageRow["strMembershipID"]  = strMembershipID;
                        memberPackageRow["dtPurchaseDate"]   = DateTime.Now;
                        memberPackageRow["strRemarks"]       = remark;
                        memberPackageRow["strSignatureID"]   = strSignID;
                        memberPackageRow["strSigKey"]        = strSigKey;
                        memberPackageRow["strSigPdfPath"]    = strPdfExportPath;
                        memberPackageRow["strUtilData"]      = strSigKey;
                        memberPackageRow["nStatusID"]        = 0;

                        memberPackageRow["strPackageCode"] = drPackage["strPackageCode"]; //strPackageCode;
                        TblPackage package = new TblPackage();
                        package.StrPackageCode = drPackage["strPackageCode"].ToString();  // strPackageCode;
                        package.SelectOne();
                        decimal creditUsage      = 0;
                        decimal packageListPrice = ACMS.Convert.ToDecimal(package.MListPrice);

                        TblMember sqlMember = new TblMember();
                        //Check if redeemed spa single treatment from holistic in birthday month, give 50% discount
                        if ((creditPackage.NCategoryID == 36 || creditPackage.NCategoryID == 37) && (package.NCategoryID == 4 || (package.NCategoryID == 6 && package.NMaxSession == 1)) && sqlMember.MembershipThisMonthBirtdayForUtilised(strMembershipID, nCreditPackageID))
                        {
                            DialogResult result1 = MessageBox.Show("Member is having birthday this months and having 50% discount. Do you want to utilies?", "Warning",
                                                                   MessageBoxButtons.YesNo);

                            if (result1 == DialogResult.Yes)
                            {
                                double discountPercent = 50;
                                memberPackageRow["strPromotionCode"] = "120046SSD";
                                // calcualte usage * quantity
                                creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                            }
                            else
                            {
                                if (ACMS.Convert.ToBoolean(drPackage["fAllowDiscount"]))
                                {
                                    double discountPercent = creditPackage.DCreditDiscount.Value;
                                    // calcualte usage * quantity
                                    creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                                }
                                else
                                {
                                    creditUsage = packageListPrice;
                                }
                            }
                        }
                        else if (ACMS.Convert.ToBoolean(drPackage["fAllowDiscount"]))
                        {
                            double discountPercent = creditPackage.DCreditDiscount.Value;
                            // calcualte usage * quantity
                            creditUsage = packageListPrice - (packageListPrice * (decimal)discountPercent / 100);
                        }
                        else
                        {
                            creditUsage = packageListPrice;
                        }

                        decimal previousBal = balance;
                        balance = decimal.Parse(previousBal.ToString("N2")) - decimal.Parse(creditUsage.ToString("N2"));
                        if (balance < 0)
                        {
                            throw new Exception(string.Format("Balance for Member Credit Package : {0} is not enough. \n Please topup your credit.", nCreditPackageID.ToString()));
                        }

                        memberPackageRow["mCreditPackageUsagePrice"] = creditUsage;
                        memberPackageRow["strRemarks"] = memberPackageRow["strRemarks"] + " " + x;

                        //Initially designed for immediate kick start
                        if (memberPackageRow["dtStartDate"].ToString() == "")
                        {
                            int      iduration = package.NPackageDuration.Value;
                            DateTime dtNow     = DateTime.Now.Date;
                            memberPackageRow["dtStartDate"] = dtNow;
                            if (package.StrDurationUnit.ToString().Trim() == "DAY")
                            {
                                memberPackageRow["dtExpiryDate"] = dtNow.AddDays(iduration - 1).AddDays(0);
                            }
                            else if (package.StrDurationUnit.ToString().Trim() == "WEEK")
                            {
                                iduration = iduration * 7;
                                memberPackageRow["dtExpiryDate"] = dtNow.AddDays(iduration - 1).AddDays(0);
                            }
                            else
                            {
                                memberPackageRow["dtExpiryDate"] = dtNow.AddMonths(iduration).AddDays(-1);
                            }
                        }

                        mp.SaveData(memberPackageTable);
                        strUsage[i, 0] = package.StrDescription.ToString();
                        strUsage[i, 1] = creditUsage.ToString();
                    }

                    strUsage[i, 2] = drPackage[3].ToString();
                    i++;
                }

                if (is1stUseCreditPck)
                {
                    if (memberCreditPackage.DtStartDate.ToString() == "Null")
                    {
                        memberCreditPackage.NCreditPackageID = nCreditPackageID;
                        memberCreditPackage.DtStartDate      = DateTime.Now.Date;
                        memberCreditPackage.DtExpiryDate     = DateTime.Now.Date.AddMonths(ACMS.Convert.ToInt32(creditPackage.NValidMonths)).AddDays(-1);
                        memberCreditPackage.Update();
                    }
                }

                //connProvider.CommitTransaction();
            }
            catch (Exception)
            {
                //connProvider.RollbackTransaction("UseMemberCreditPackage");
                throw;
            }
            finally
            {
                //if (connProvider.CurrentTransaction != null)
                //    connProvider.CurrentTransaction.Dispose();
                //if (connProvider.DBConnection != null)
                //{
                //    if (connProvider.DBConnection.State == ConnectionState.Open)
                //        connProvider.DBConnection.Close();
                //}
            }
            return(strUsage);
        }
コード例 #22
0
        private void SaveExtensionHistory(int nCreditPackageID, string strMembershipID, DateTime dtOldExpiry, DateTime dtNewExpiry, DateTime dtStartDate, DateTime dtEndDate, 
                                            int nDaysExtended, int nStatusID, int nReasonID, string strRemarks, int nEmployeeID, DateTime dtCreateDate)
        {
            int nCreditPackageStatusID = -1;

            if (DateTime.Compare(dtNewExpiry, DateTime.Now) > 0)
            {
                nCreditPackageStatusID = 0;
            }

            ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider();

            TblMemberCreditPackage myMemberCreditPackage = new TblMemberCreditPackage();
            TblCreditPackageExtension myCreditPackageExtension = new TblCreditPackageExtension();

            myMemberCreditPackage.MainConnectionProvider = connProvider;
            myCreditPackageExtension.MainConnectionProvider = connProvider;

            connProvider.OpenConnection();
            connProvider.BeginTransaction("SaveCreditPackageExtension");

            try
            {
                //Update MemberCreditPackage - New Expiry Date & Status ID by nCreditPackageID
                myMemberCreditPackage.MemberCreditPackage_ExtensionUpdate(nCreditPackageID, nCreditPackageStatusID, dtNewExpiry, strMembershipID);

                //Add Record to Credit Package Extension
                myCreditPackageExtension.NCreditPackageID = nCreditPackageID;
                myCreditPackageExtension.DtOldExpiry = dtOldExpiry;
                myCreditPackageExtension.DtNewExpiry = dtNewExpiry;
                myCreditPackageExtension.DtStartDate = dtStartDate;
                myCreditPackageExtension.DtEndDate = dtEndDate;
                myCreditPackageExtension.NDaysExtended = nDaysExtended;
                myCreditPackageExtension.NStatusID = nStatusID;
                myCreditPackageExtension.NReasonID = nReasonID;
                myCreditPackageExtension.StrRemarks = strRemarks;
                myCreditPackageExtension.NEmployeeID = nEmployeeID;

                myCreditPackageExtension.Insert();

                //Commit Transaction
                connProvider.CommitTransaction();
                //*** Remember to Disable the Update Expiry Button for Credit Packages
            }
            catch
            {
                //RollBack Transaction
                connProvider.RollbackTransaction("SaveCreditPackageExtension");
            }
            finally
            {
                //connProvider.CurrentTransaction.Dispose();
                //connProvider.DBConnection.Close();
                if (connProvider.CurrentTransaction != null)
                {
                    connProvider.CurrentTransaction.Dispose();
                }

                if (connProvider.DBConnection != null)
                {
                    if (connProvider.DBConnection.State == ConnectionState.Open)
                    {
                        connProvider.DBConnection.Close();
                    }
                }
                myMemberCreditPackage.MainConnactionIsCreatedLocal = true;
                myCreditPackageExtension.MainConnactionIsCreatedLocal = true;
            }
        }
コード例 #23
0
ファイル: CreditAccount.cs プロジェクト: kimykunjun/test
        public void DeleteCreditPackageUsage(int nPackageID)
        {
            int nCreditPackageID;
            TblServiceSession ssUsage = new TblServiceSession();
            ssUsage.NPackageID = nPackageID;
            DataTable tblUsage = ssUsage.SelectAllWnPackageIDLogic();
            if (tblUsage.Rows.Count > 0)
                throw new Exception("You Cant deleted a Used Package.");
            TblMemberPackage mmbPckg = new TblMemberPackage();
            mmbPckg.NPackageID = nPackageID;
            DataTable table = mmbPckg.SelectOne();

            if (table == null || table.Rows.Count == 0)
                throw new Exception("The Data has been deleted from database.");

            mmbPckg.NStatusID = 2;

            mmbPckg.Update();
            nCreditPackageID = mmbPckg.NCreditPackageID.Value;

            //Check any package redeemed from this credit package
            ACMSDAL.TblMemberPackage memberPackage = new TblMemberPackage();
            string cmdText = "Select COUNT(*) from TblMemberPackage Where (nStatusID = 0 or nStatusID = 1) AND " +
                " nCreditPackageID = @nCreditPackageID ";

            int nExist = (int) memberPackage.ExecuteScalar(cmdText, new string [] {"@nCreditPackageID"}, new object[] {nCreditPackageID});
            if (nExist==0)
            {
                TblMemberCreditPackage creditPackage = new TblMemberCreditPackage();
                creditPackage.NCreditPackageID = nCreditPackageID;
                creditPackage.SelectOne();
                creditPackage.DtStartDate = SqlDateTime.Null;
                creditPackage.DtExpiryDate = SqlDateTime.Null;
                creditPackage.Update();
            }
        }