Ejemplo n.º 1
0
		private Int64 SaveRecord()
		{
			
			ContactDetails clsDetails = new ContactDetails();

			clsDetails.ContactCode = txtVendorCode.Text;
			clsDetails.ContactName = txtVendorName.Text;
			clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboModeOfTerms.SelectedItem.Value);
			clsDetails.Terms = Convert.ToInt32(txtTerms.Text);
			clsDetails.Address = txtAddress.Text;
			clsDetails.BusinessName = txtBusinessName.Text;
			clsDetails.TelephoneNo = txtTelephoneNo.Text;
			clsDetails.Remarks = txtRemarks.Text;
			clsDetails.Debit = Convert.ToDecimal(txtDebit.Text);
			clsDetails.Credit = Convert.ToDecimal(txtCredit.Text);
            clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;

            //if (chkIsCreditAllowed.Checked == false)
                
            //else
            //    clsDetails.IsCreditAllowed = 1;
			clsDetails.CreditLimit = Convert.ToDecimal(txtCreditLimit.Text);
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);
            // 13Mar2015 : Added for Pharmaceuticals
            clsDetails.TINNo = txtTINNo.Text;
            clsDetails.LTONo = txtLTONo.Text;

			Contacts clsContact = new Contacts();
			Int64 id = clsContact.Insert(clsDetails);
			clsContact.CommitAndDispose();

			return id;
		}
Ejemplo n.º 2
0
		public void Suspend(Int64 TransactionID, decimal GrossSales, decimal SubTotal, decimal NetSales, ContactDetails details)
		{
			try
			{
                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

				string SQL = "UPDATE tblTransactions SET " +
								"CustomerID			=	@CustomerID," +
								"CustomerName		=	@CustomerName, " +
                                "CustomerGroupName	=	@CustomerGroupName, " +
								"TransactionStatus	=	@TransactionStatus, " +
                                "GrossSales		    =	@GrossSales, " +
                                "SubTotal			=	@SubTotal, " +
                                "NetSales			=	@NetSales, " +
								"DateSuspended		=	NOW(), " +
                                "LastModified	    =	NOW() " +
							"WHERE TransactionID		=	@TransactionID;";

                cmd.Parameters.AddWithValue("@CustomerID", details.ContactID);
                cmd.Parameters.AddWithValue("@CustomerName", details.ContactName);
                cmd.Parameters.AddWithValue("@CustomerGroupName", details.ContactGroupName);
                cmd.Parameters.AddWithValue("@GrossSales", GrossSales);
                cmd.Parameters.AddWithValue("@SubTotal", SubTotal);
                cmd.Parameters.AddWithValue("@NetSales", NetSales);
                cmd.Parameters.AddWithValue("@TransactionStatus", TransactionStatus.Suspended.ToString("d"));
                cmd.Parameters.AddWithValue("@TransactionID", TransactionID);

                cmd.CommandText = SQL;
				base.ExecuteNonQuery(cmd);
			}
			catch (Exception ex)
			{
				throw base.ThrowException(ex);
			}
		}
Ejemplo n.º 3
0
        private void SaveRecord()
        {
            Contacts clsContact = new Contacts();
            ContactDetails clsDetails = new ContactDetails();

            clsDetails.ContactID = Convert.ToInt32(lblContactID.Text);
            clsDetails.ContactCode = txtContactCode.Text;
            clsDetails.ContactName = txtContactName.Text;
            clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboModeOfTerms.SelectedItem.Value);
            clsDetails.Terms = Convert.ToInt32(txtTerms.Text);
            clsDetails.Address = txtAddress.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtTelephoneNo.Text;
            clsDetails.Remarks = txtRemarks.Text;
            clsDetails.Debit = Convert.ToDecimal(txtDebit.Text);
            clsDetails.Credit = Convert.ToDecimal(txtCredit.Text);
            clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
            //if (chkIsCreditAllowed.Checked == false)
            //    clsDetails.IsCreditAllowed = 0;
            //else
            //    clsDetails.IsCreditAllowed = 1;
            clsDetails.CreditLimit = Convert.ToDecimal(txtCreditLimit.Text);
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

            clsContact.Update(clsDetails);

            clsContact.CommitAndDispose();
        }
Ejemplo n.º 4
0
        private ContactDetails setDetails(System.Data.DataTable dt)
        {
            ContactDetails Details = new ContactDetails();

            try
            {
                foreach(System.Data.DataRow dr in dt.Rows)
                {
                    Details.ContactID = Int64.Parse(dr["ContactID"].ToString());
                    Details.SequenceNo = Int32.Parse(dr["SequenceNo"].ToString());
                    Details.ContactCode = "" + dr["ContactCode"].ToString();
                    Details.ContactName = "" + dr["ContactName"].ToString();
                    Details.ContactGroupID = Int32.Parse(dr["ContactGroupID"].ToString());
                    Details.ContactGroupName = "" + dr["ContactGroupName"].ToString();
                    Details.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), dr["ModeOfTerms"].ToString());
                    Details.Terms = Int32.Parse(dr["Terms"].ToString());
                    Details.Address = "" + dr["Address"].ToString();
                    Details.BusinessName = "" + dr["BusinessName"].ToString();
                    Details.TelephoneNo = "" + dr["TelephoneNo"].ToString();
                    Details.Remarks = "" + dr["Remarks"].ToString();
                    Details.Debit = decimal.Parse(dr["Debit"].ToString());
                    Details.Credit =decimal.Parse(dr["Credit"].ToString());
                    Details.CreditLimit = decimal.Parse(dr["CreditLimit"].ToString());
                    Details.IsCreditAllowed = bool.Parse(dr["IsCreditAllowed"].ToString());
                    Details.DateCreated = DateTime.Parse(dr["DateCreated"].ToString());
                    Details.Deleted = bool.Parse(dr["Deleted"].ToString());
                    Details.DepartmentID = Int16.Parse(dr["DepartmentID"].ToString());
                    Details.DepartmentName = "" + dr["DepartmentName"].ToString();
                    Details.PositionID = Int16.Parse(dr["PositionID"].ToString());
                    Details.PositionName = "" + dr["PositionName"].ToString();
                    Details.LastCheckInDate = DateTime.Parse(dr["LastCheckInDate"].ToString());
                    Details.TINNo = "" + dr["TINNo"].ToString();
                    Details.LTONo = "" + dr["LTONo"].ToString();
                    Details.PriceLevel = (PriceLevel)Enum.Parse(typeof(PriceLevel), dr["PriceLevel"].ToString());

                    Details.isLock = bool.Parse(dr["isLock"].ToString());
                }

                // Sep 14, 2011 : Lemu - for reward points
                ContactReward clsContactReward = new ContactReward(base.Connection, base.Transaction);
                Details.RewardDetails = clsContactReward.Details(Details.ContactID);

                // Nov 2, 2011 : Lemu - for credit
                ContactCreditCardInfos clsContactCredit = new ContactCreditCardInfos(base.Connection, base.Transaction);
                Details.CreditDetails = clsContactCredit.Details(Details.ContactID);
                Details.CreditDetails.CreditLimit = Details.CreditLimit;

                if (!Details.IsCreditAllowed)
                    Details.CreditDetails.CreditActive = Details.IsCreditAllowed;
                else
                {
                    Details.CreditDetails.CreditActive = checkCreditActive(Details.CreditDetails.CreditCardStatus);
                }

                // Oct 12, 2013 : - get additional details
                Details.AdditionalDetails = new ContactAddOns(base.Connection, base.Transaction).Details(Details.ContactID);
            }
            catch (Exception ex) { throw base.ThrowException(ex); }
            return Details;
        }
Ejemplo n.º 5
0
        public Int32 Save(ContactDetails Details)
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                string SQL = "CALL procSaveContact(@ContactID, @SequenceNo, @ContactCode, @ContactName, @ContactGroupID, @ModeOfTerms," +
                                            "@Terms, @Address, @BusinessName, @TelephoneNo, @Remarks, @Debit, @Credit," +
                                            "@CreditLimit, @IsCreditAllowed, @DateCreated, @Deleted, @DepartmentID," +
                                            "@PositionID, @isLock, @CreatedOn, @LastModified);";

                cmd.Parameters.AddWithValue("ContactID", Details.ContactID);
                cmd.Parameters.AddWithValue("SequenceNo", Details.SequenceNo);
                cmd.Parameters.AddWithValue("ContactCode", Details.ContactCode);
                cmd.Parameters.AddWithValue("ContactName", Details.ContactName);
                cmd.Parameters.AddWithValue("ContactGroupID", Details.ContactGroupID);
                cmd.Parameters.AddWithValue("ModeOfTerms", Details.ModeOfTerms);
                cmd.Parameters.AddWithValue("Terms", Details.Terms);
                cmd.Parameters.AddWithValue("Address", Details.Address);
                cmd.Parameters.AddWithValue("BusinessName", Details.BusinessName);
                cmd.Parameters.AddWithValue("TelephoneNo", Details.TelephoneNo);
                cmd.Parameters.AddWithValue("Remarks", Details.Remarks);
                cmd.Parameters.AddWithValue("Debit", Details.Debit);
                cmd.Parameters.AddWithValue("Credit", Details.Credit);
                cmd.Parameters.AddWithValue("CreditLimit", Details.CreditLimit);
                cmd.Parameters.AddWithValue("IsCreditAllowed", Details.IsCreditAllowed);
                cmd.Parameters.AddWithValue("DateCreated", Details.DateCreated);
                cmd.Parameters.AddWithValue("Deleted", Details.Deleted);
                cmd.Parameters.AddWithValue("DepartmentID", Details.DepartmentID);
                cmd.Parameters.AddWithValue("PositionID", Details.PositionID);
                cmd.Parameters.AddWithValue("isLock", Details.isLock);
                cmd.Parameters.AddWithValue("CreatedOn", Details.CreatedOn == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.CreatedOn);
                cmd.Parameters.AddWithValue("LastModified", Details.LastModified == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.LastModified);

                cmd.CommandText = SQL;
                return base.ExecuteNonQuery(cmd);
            }
            catch (Exception ex)
            {
                throw base.ThrowException(ex);
            }
        }
Ejemplo n.º 6
0
		public void Update(ContactDetails Details)
		{
			try 
			{
                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;
				
				string SQL=	"UPDATE tblContacts SET " +
                                "SequenceNo	    =	@SequenceNo, " +
					            "ContactCode	=	@ContactCode, " +
					            "ContactName	=	@ContactName, " +
					            "ContactGroupID =	@ContactGroupID, " +
					            "ModeOfTerms	=	@ModeOfTerms, " +
					            "Terms			=	@Terms, " +
					            "Address		=	@Address, " +
					            "BusinessName	=	@BusinessName, " +
					            "TelephoneNo	=	@TelephoneNo, " +
					            "Remarks		=	@Remarks, " +
					            "Debit			=	@Debit, " +
					            "Credit			=	@Credit, " +
					            "CreditLimit	=	@CrdtLimit, " +
					            "IsCreditAllowed =	@IsCreditAllowed, " +
                                "DepartmentID   =   @DepartmentID, " +
                                "PositionID     =   @PositionID, " +
                                "TINNo          =   @TINNo, " +
                                "LTONo          =   @LTONo " +
					        "WHERE ContactID = @ContactID;";


                cmd.Parameters.AddWithValue("@SequenceNo", Details.SequenceNo);
                cmd.Parameters.AddWithValue("@ContactCode", Details.ContactCode);
                cmd.Parameters.AddWithValue("@ContactName", Details.ContactName);
                cmd.Parameters.AddWithValue("@ContactGroupID", Details.ContactGroupID);
                cmd.Parameters.AddWithValue("@ModeOfTerms", Details.ModeOfTerms.ToString("d"));
                cmd.Parameters.AddWithValue("@Terms", Details.Terms);
                cmd.Parameters.AddWithValue("@Address", Details.Address);
                cmd.Parameters.AddWithValue("@BusinessName", Details.BusinessName);
                cmd.Parameters.AddWithValue("@TelephoneNo", Details.TelephoneNo);
                cmd.Parameters.AddWithValue("@Remarks", Details.Remarks);
                cmd.Parameters.AddWithValue("@Debit", Details.Debit);
                cmd.Parameters.AddWithValue("@Credit", Details.Credit);
                cmd.Parameters.AddWithValue("@CrdtLimit", Details.CreditLimit);
                cmd.Parameters.AddWithValue("@IsCreditAllowed", Details.IsCreditAllowed);
                cmd.Parameters.AddWithValue("@DepartmentID", Details.DepartmentID);
                cmd.Parameters.AddWithValue("@PositionID", Details.PositionID);
                cmd.Parameters.AddWithValue("@TINNo", Details.TINNo);
                cmd.Parameters.AddWithValue("@LTONo", Details.LTONo);
                cmd.Parameters.AddWithValue("@ContactID", Details.ContactID);

                cmd.CommandText = SQL;
				base.ExecuteNonQuery(cmd);

                //Sep 15, 2013 Include the sepecific details if there's any
                if (Details.AdditionalDetails.ContactID != 0) _ContactAddOns.Save(Details.AdditionalDetails);
			}

			catch (Exception ex)
			{
				throw base.ThrowException(ex);
			}	
		}
Ejemplo n.º 7
0
		public long Insert(ContactDetails Details)
		{
			try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

				string SQL="INSERT INTO tblContacts (" +
                                "SequenceNo, " + 
					            "ContactCode, " + 
					            "ContactName, " +
					            "ContactGroupID, " +
					            "ModeOfTerms, " +
					            "Terms, " +
					            "Address, " +
					            "BusinessName, " +
					            "TelephoneNo, " +
					            "Remarks, " +
					            "Debit, " +
					            "Credit, " +
					            "CreditLimit, " +
					            "IsCreditAllowed, " +
					            "DateCreated," +
                                "DepartmentID," +
                                "PositionID," +
                                "TINNo," +
                                "LTONo" +
					        ") VALUES (" +
                                "@SequenceNo, " +
					            "@ContactCode, " +
					            "@ContactName, " +
					            "@ContactGroupID, " +
					            "@ModeOfTerms, " +
					            "@Terms, " +
					            "@Address, " +
					            "@BusinessName, " +
					            "@TelephoneNo, " +
					            "@Remarks, " +
					            "@Debit, " +
					            "@Credit, " +
					            "@CrdtLimit, " +
					            "@IsCreditAllowed, " +
					            "@DateCreated," +
                                "@DepartmentID," +
                                "@PositionID," +
                                "@TINNo," +
                                "@LTONo" +
					        ");";
				  	 			
                cmd.Parameters.AddWithValue("@SequenceNo", Details.SequenceNo);
                cmd.Parameters.AddWithValue("@ContactCode", Details.ContactCode);
                cmd.Parameters.AddWithValue("@ContactName", Details.ContactName);
                cmd.Parameters.AddWithValue("@ContactGroupID", Details.ContactGroupID);
                cmd.Parameters.AddWithValue("@ModeOfTerms", Details.ModeOfTerms.ToString("d"));
                cmd.Parameters.AddWithValue("@Terms", Details.Terms);
                cmd.Parameters.AddWithValue("@Address", Details.Address);
                cmd.Parameters.AddWithValue("@BusinessName", Details.BusinessName);
                cmd.Parameters.AddWithValue("@TelephoneNo", Details.TelephoneNo);
                cmd.Parameters.AddWithValue("@Remarks", Details.Remarks);
                cmd.Parameters.AddWithValue("@Debit", Details.Debit);
                cmd.Parameters.AddWithValue("@Credit", Details.Credit);
                cmd.Parameters.AddWithValue("@CrdtLimit", Details.CreditLimit);
                cmd.Parameters.AddWithValue("@IsCreditAllowed", Details.IsCreditAllowed);
                cmd.Parameters.AddWithValue("@DepartmentID", Details.DepartmentID);
                cmd.Parameters.AddWithValue("@PositionID", Details.PositionID);
                cmd.Parameters.AddWithValue("@TINNo", Details.TINNo);
                cmd.Parameters.AddWithValue("@LTONo", Details.LTONo);
                cmd.Parameters.AddWithValue("@DateCreated", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

                cmd.CommandText = SQL;
                base.ExecuteNonQuery(cmd);

				Int64 iID = Int64.Parse(base.getLAST_INSERT_ID(this));

                // 15Sep2013 : Include the sepecific details if there's any
                if (!string.IsNullOrEmpty(Details.AdditionalDetails.Salutation))
                {
                    Details.AdditionalDetails.ContactID = iID;
                    _ContactAddOns.Save(Details.AdditionalDetails);
                }
                else
                {
                    Details.AdditionalDetails.ContactID = iID;
                    Details.AdditionalDetails.Salutation = "Mr";
                    Details.AdditionalDetails.FirstName = Details.ContactCode;
                    Details.AdditionalDetails.LastName = Details.ContactName;
                    Details.AdditionalDetails.Address1 = Details.Address;
                    Details.AdditionalDetails.AnniversaryDate = DateTime.Now;
                    Details.AdditionalDetails.BirthDate = Details.DateCreated;
                    Details.AdditionalDetails.BusinessPhoneNo = Details.TelephoneNo;
                    Details.AdditionalDetails.CountryCode = "PH";
                    Details.AdditionalDetails.CountryID = 1;
                }

				return iID;
			}
			catch (Exception ex)
			{
				throw base.ThrowException(ex);
			}	
		}
Ejemplo n.º 8
0
        private void Upload1()
        {
            //string fn = System.IO.Path.GetFileName(TextBox1.Text);
            //string SaveLocation = "/RetailPlus/temp/uploaded_" + fn;

            //System.IO.File.Copy(TextBox1.Text, SaveLocation);
            //txtPath.PostedFile.SaveAs(SaveLocation);
            XmlTextReader xmlReader = new XmlTextReader(TextBox1.Text);
            xmlReader.WhitespaceHandling = WhitespaceHandling.None;

            Branch clsBranch = new Branch();
            BranchDetails clsBranchDetails = clsBranch.Details(Convert.ToInt16(cboBranchUpload.SelectedItem.Value.ToString()));
            clsBranch.CommitAndDispose();

            RemoteBranchInventory clsBranchInventory = new RemoteBranchInventory();
            clsBranchInventory.GetConnectionToBranch(clsBranchDetails.DBIP);

            Contacts clsBranchContact = new Contacts(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ContactDetails clsBranchContactDetails;

            ContactGroups clsBranchContactGroup = new ContactGroups(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ContactGroupDetails clsContactGroupDetails;

            Data.Unit clsBranchUnit = new Data.Unit(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            UnitDetails clsUnitDetails;

            ProductGroup clsBranchProductGroup = new Data.ProductGroup(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ProductGroupDetails clsBranchProductGroupDetails;

            ProductSubGroup clsBranchProductSubGroup = new Data.ProductSubGroup(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ProductSubGroupDetails clsBranchProductSubGroupDetails;

            //Data.Variation clsBranchVariation = new Variation(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            Products clsBranchProduct = new Products(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ProductDetails clsBranchProductDetails;

            ProductVariations clsBranchProductVariation = new ProductVariations(clsBranchInventory.Connection, clsBranchInventory.Transaction);
            ProductVariationDetails clsBranchProductVariationDetails;

            long lngBranchProductID = 0; long lngProductCtr = 0; long lngProductInserted = 0;

            while (xmlReader.Read())
            {
                switch (xmlReader.NodeType)
                {
                    case XmlNodeType.Element:

                        if (xmlReader.Name == "Item")
                        {
                            lngProductCtr++;

                            clsBranchProductDetails = new ProductDetails();
                            clsBranchProductDetails.BarCode = xmlReader.GetAttribute("BarCode");
                            clsBranchProductDetails.ProductCode = xmlReader.GetAttribute("ProductCode");
                            lblError.Text += "Checking <b>" + clsBranchProductDetails.ProductCode + "</b> if exist... ";

                            //check product by barcode
                            clsBranchProductDetails.ProductID = clsBranchProduct.Details(Constants.BRANCH_ID_MAIN, clsBranchProductDetails.BarCode).ProductID;
                            lngBranchProductID = clsBranchProductDetails.ProductID;
                            if (clsBranchProductDetails.ProductID != 0)
                            {
                                lblError.Text += " [Y] barcode exist... next item...<br />";
                                break;
                            }

                            //check product by product code
                            clsBranchProductDetails.ProductID = clsBranchProduct.Details(Constants.BRANCH_ID_MAIN, clsBranchProductDetails.ProductCode).ProductID;
                            lngBranchProductID = clsBranchProductDetails.ProductID;
                            if (clsBranchProductDetails.ProductID != 0)
                            {
                                clsBranchProduct.UpdateBarcode(clsBranchProductDetails.ProductID, clsBranchProductDetails.BarCode);
                                lblError.Text += " [Y] barcode not exist, product code exist. barcode updated. next item...<br />";
                                break;
                            }

                            lblError.Text += " [N] inserting product... ";

                            clsBranchProductDetails.BarCode = xmlReader.GetAttribute("BarCode");
                            clsBranchProductDetails.ProductDesc = xmlReader.GetAttribute("ProductDesc");
                            clsBranchProductDetails.ProductGroupCode = xmlReader.GetAttribute("ProductGroupCode");
                            clsBranchProductDetails.ProductGroupName = xmlReader.GetAttribute("ProductGroupName");
                            clsBranchProductDetails.ProductSubGroupCode = xmlReader.GetAttribute("ProductSubGroupCode");
                            clsBranchProductDetails.ProductSubGroupName = xmlReader.GetAttribute("ProductSubGroupName");
                            clsBranchProductDetails.BaseUnitCode = xmlReader.GetAttribute("BaseUnitCode");
                            clsBranchProductDetails.BaseUnitName = xmlReader.GetAttribute("BaseUnitName");
                            clsBranchProductDetails.DateCreated = DateTime.Now;
                            clsBranchProductDetails.Price = Convert.ToDecimal(xmlReader.GetAttribute("Price"));
                            clsBranchProductDetails.PurchasePrice = Convert.ToDecimal(xmlReader.GetAttribute("PurchasePrice"));
                            clsBranchProductDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(xmlReader.GetAttribute("IncludeInSubtotalDiscount"));
                            clsBranchProductDetails.VAT = Convert.ToDecimal(xmlReader.GetAttribute("VAT"));
                            clsBranchProductDetails.EVAT = Convert.ToDecimal(xmlReader.GetAttribute("EVAT"));
                            clsBranchProductDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("LocalTax"));
                            clsBranchProductDetails.Quantity = 0;
                            clsBranchProductDetails.MinThreshold = Convert.ToDecimal(xmlReader.GetAttribute("MinThreshold"));
                            clsBranchProductDetails.MaxThreshold = Convert.ToDecimal(xmlReader.GetAttribute("MaxThreshold"));
                            clsBranchProductDetails.ChartOfAccountIDPurchase = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDPurchase"));
                            clsBranchProductDetails.ChartOfAccountIDSold = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDSold"));
                            clsBranchProductDetails.ChartOfAccountIDInventory = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDInventory"));
                            clsBranchProductDetails.ChartOfAccountIDTaxPurchase = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDTaxPurchase"));
                            clsBranchProductDetails.ChartOfAccountIDTaxSold = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDTaxSold"));
                            clsBranchProductDetails.IsItemSold = Convert.ToBoolean(xmlReader.GetAttribute("IsItemSold"));
                            clsBranchProductDetails.WillPrintProductComposition = Convert.ToBoolean(xmlReader.GetAttribute("WillPrintProductComposition"));
                            clsBranchProductDetails.UpdatedBy = long.Parse(xmlReader.GetAttribute("UpdatedBy"));
                            clsBranchProductDetails.UpdatedOn = Convert.ToDateTime(xmlReader.GetAttribute("UpdatedOn"));
                            clsBranchProductDetails.PercentageCommision = decimal.Parse(xmlReader.GetAttribute("PercentageCommision"));
                            clsBranchProductDetails.QuantityIN = decimal.Parse(xmlReader.GetAttribute("QuantityIN"));
                            clsBranchProductDetails.QuantityOUT = decimal.Parse(xmlReader.GetAttribute("QuantityOUT"));

                            clsBranchProductDetails.SupplierCode = xmlReader.GetAttribute("ContactCode");
                            clsBranchProductDetails.SupplierID = clsBranchContact.Details(clsBranchProductDetails.SupplierCode).ContactID;
                            if (clsBranchProductDetails.SupplierID == 0)
                            {
                                clsBranchContactDetails = new ContactDetails();
                                clsBranchContactDetails.ContactGroupID = clsBranchContactGroup.Details(xmlReader.GetAttribute("ContactGroupCode")).ContactGroupID;
                                if (clsBranchContactDetails.ContactGroupID == 0)
                                {
                                    clsContactGroupDetails = new ContactGroupDetails();
                                    clsContactGroupDetails.ContactGroupCode = xmlReader.GetAttribute("ContactCode");
                                    clsContactGroupDetails.ContactGroupName = xmlReader.GetAttribute("ContactCode");
                                    clsContactGroupDetails.ContactGroupCategory = (ContactGroupCategory)Enum.Parse(typeof(ContactGroupCategory), xmlReader.GetAttribute("ContactGroupCategory"));
                                    clsBranchContactDetails.ContactGroupID = clsBranchContactGroup.Insert(clsContactGroupDetails);
                                }

                                clsBranchContactDetails.ContactCode = xmlReader.GetAttribute("ContactCode");
                                clsBranchContactDetails.ContactName = xmlReader.GetAttribute("ContactName");

                                clsBranchContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), xmlReader.GetAttribute("ModeOfTerms"));
                                clsBranchContactDetails.Terms = Convert.ToInt32(xmlReader.GetAttribute("Terms"));
                                clsBranchContactDetails.Address = xmlReader.GetAttribute("Address");
                                clsBranchContactDetails.BusinessName = xmlReader.GetAttribute("BusinessName");
                                clsBranchContactDetails.TelephoneNo = xmlReader.GetAttribute("TelephoneNo");
                                clsBranchContactDetails.Remarks = xmlReader.GetAttribute("Remarks");
                                clsBranchContactDetails.Debit = Convert.ToDecimal(xmlReader.GetAttribute("Debit"));
                                clsBranchContactDetails.Credit = Convert.ToDecimal(xmlReader.GetAttribute("Credit"));
                                clsBranchContactDetails.IsCreditAllowed = Convert.ToBoolean(xmlReader.GetAttribute("IsCreditAllowed"));
                                clsBranchContactDetails.CreditLimit = Convert.ToDecimal(xmlReader.GetAttribute("CreditLimit"));
                                clsBranchContactDetails.ContactID = clsBranchContact.Insert(clsBranchContactDetails);
                            }

                            clsBranchProductDetails.BaseUnitCode = xmlReader.GetAttribute("BaseUnitCode");
                            clsBranchProductDetails.BaseUnitID = clsBranchUnit.Details(clsBranchProductDetails.BaseUnitCode).UnitID;
                            if (clsBranchProductDetails.BaseUnitID == 0)
                            {
                                clsUnitDetails = new UnitDetails();
                                clsUnitDetails.UnitCode = xmlReader.GetAttribute("BaseUnitCode");
                                clsUnitDetails.UnitName = xmlReader.GetAttribute("BaseUnitName");
                                clsBranchProductDetails.BaseUnitID = clsBranchUnit.Insert(clsUnitDetails);
                            }


                            clsBranchProductDetails.ProductGroupCode = xmlReader.GetAttribute("ProductGroupCode");
                            clsBranchProductDetails.ProductGroupID = clsBranchProductGroup.Details(clsBranchProductDetails.ProductGroupCode).ProductGroupID;
                            if (clsBranchProductDetails.ProductGroupID == 0)
                            {
                                lblError.Text += "inserting product group....";
                                clsBranchProductGroupDetails = new ProductGroupDetails();
                                clsBranchProductGroupDetails.ProductGroupCode = xmlReader.GetAttribute("ProductGroupCode");
                                clsBranchProductGroupDetails.ProductGroupName = xmlReader.GetAttribute("ProductGroupName");
                                clsBranchProductGroupDetails.UnitDetails = new UnitDetails
                                {
                                    UnitID = clsBranchProductDetails.BaseUnitID
                                };
                                clsBranchProductGroupDetails.Price = clsBranchProductDetails.Price;
                                clsBranchProductGroupDetails.PurchasePrice = clsBranchProductDetails.PurchasePrice;
                                clsBranchProductGroupDetails.IncludeInSubtotalDiscount = clsBranchProductDetails.IncludeInSubtotalDiscount;
                                clsBranchProductGroupDetails.VAT = clsBranchProductDetails.VAT;
                                clsBranchProductGroupDetails.EVAT = clsBranchProductDetails.EVAT;
                                clsBranchProductGroupDetails.LocalTax = clsBranchProductDetails.LocalTax;
                                clsBranchProductDetails.ProductGroupID = clsBranchProductGroup.Insert(clsBranchProductGroupDetails);
                            }

                            clsBranchProductDetails.ProductSubGroupCode = xmlReader.GetAttribute("ProductSubGroupCode");
                            clsBranchProductDetails.ProductSubGroupID = clsBranchProductSubGroup.Details(clsBranchProductDetails.ProductSubGroupCode).ProductSubGroupID;
                            if (clsBranchProductDetails.ProductSubGroupID == 0)
                            {
                                lblError.Text += "inserting product sub-group....";
                                clsBranchProductSubGroupDetails = new ProductSubGroupDetails();
                                clsBranchProductSubGroupDetails.ProductGroupID = clsBranchProductDetails.ProductGroupID;
                                clsBranchProductSubGroupDetails.ProductSubGroupCode = xmlReader.GetAttribute("ProductSubGroupCode");
                                clsBranchProductSubGroupDetails.ProductSubGroupName = xmlReader.GetAttribute("ProductSubGroupName");
                                clsBranchProductSubGroupDetails.BaseUnitID = clsBranchProductDetails.BaseUnitID;
                                clsBranchProductSubGroupDetails.Price = clsBranchProductDetails.Price;
                                clsBranchProductSubGroupDetails.PurchasePrice = clsBranchProductDetails.PurchasePrice;
                                clsBranchProductSubGroupDetails.IncludeInSubtotalDiscount = clsBranchProductDetails.IncludeInSubtotalDiscount;
                                clsBranchProductSubGroupDetails.VAT = clsBranchProductDetails.VAT;
                                clsBranchProductSubGroupDetails.EVAT = clsBranchProductDetails.EVAT;
                                clsBranchProductSubGroupDetails.LocalTax = clsBranchProductDetails.LocalTax;
                                clsBranchProductDetails.ProductSubGroupID = clsBranchProductSubGroup.Insert(clsBranchProductSubGroupDetails);
                            }

                            clsBranchProductDetails.ProductID = clsBranchProduct.Insert(clsBranchProductDetails);
                            lngBranchProductID = clsBranchProductDetails.ProductID;
                            lngProductInserted++;

                            lblError.Text += " [done]. next item...<br />";
                        }
                        else if (xmlReader.Name == "Variation")
                        {
                            if (lngBranchProductID != 0)
                            {
                                clsBranchProductVariationDetails = new ProductVariationDetails();

                                clsBranchProductVariationDetails.VariationID = clsBranchProductVariation.Details(lngBranchProductID, xmlReader.GetAttribute("VariationCode")).VariationID;
                                if (clsBranchProductVariationDetails.VariationID == 0)
                                {
                                    clsBranchProductVariationDetails.ProductID = lngBranchProductID;
                                    clsBranchProductVariationDetails.VariationCode = xmlReader.GetAttribute("VariationCode");
                                    clsBranchProductVariationDetails.VariationType = xmlReader.GetAttribute("VariationType");

                                    clsBranchProductVariation.Insert(clsBranchProductVariationDetails);
                                }
                            }
                        }
                        else
                        {
                            lblError.Text += "<b>" + xmlReader.Name + ":</b>" + xmlReader.Value + "<br />";
                        }
                        break;
                    case XmlNodeType.Text:
                        lblError.Text += "<b>" + xmlReader.LocalName + ":</b>" + xmlReader.Value + "<br />";
                        break;
                }
            }
            xmlReader.Close();

            clsBranchInventory.CommitAndDispose();
            lblError.Text = "<b>" + lngProductInserted.ToString() + " out of " + lngProductCtr.ToString() + " has been successfully transferred.</b><br /><br />" + lblError.Text;
        }
Ejemplo n.º 9
0
        private void SaveRecord()
        {
            Security.AccessUserDetails clsAccessUserDetails = (Security.AccessUserDetails)Session["AccessUserDetails"];

            Contacts clsContact = new Contacts();
            ContactDetails clsDetails = new ContactDetails();

            clsDetails.ContactID = Convert.ToInt32(lblContactID.Text);
            clsDetails.ContactCode = txtContactCode.Text;
            clsDetails.ContactName = txtLastName.Text + ", " + txtFirstName.Text + " " + txtMiddleName.Text;
            clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), cboModeOfTerms.SelectedItem.Value);
            clsDetails.Terms = Convert.ToInt32(txtTerms.Text);
            clsDetails.Address = txtAddress.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtTelephoneNo.Text;
            clsDetails.Remarks = txtRemarks.Text;
            clsDetails.Debit = Convert.ToDecimal(txtDebit.Text);
            clsDetails.Credit = Convert.ToDecimal(txtCredit.Text);
            clsDetails.IsCreditAllowed = chkIsCreditAllowed.Checked;
            clsDetails.CreditLimit = Convert.ToDecimal(txtCreditLimit.Text);
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

            ContactAddOnDetails clsAddOnDetails = new ContactAddOnDetails();
            clsAddOnDetails.ContactID = clsDetails.ContactID;
            clsAddOnDetails.Salutation = cboSalutation.SelectedItem.Value;
            clsAddOnDetails.FirstName = txtFirstName.Text;
            clsAddOnDetails.MiddleName = txtMiddleName.Text;
            clsAddOnDetails.LastName = txtLastName.Text;
            clsAddOnDetails.SpouseName = "";
            DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
            dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.BirthDate = dteBirthDate;
            clsAddOnDetails.SpouseBirthDate = Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.AnniversaryDate = Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.Address1 = txtAddress.Text;
            clsAddOnDetails.Address2 = string.Empty;
            clsAddOnDetails.City = string.Empty;
            clsAddOnDetails.State = string.Empty;
            clsAddOnDetails.ZipCode = string.Empty;
            clsAddOnDetails.CountryID = Constants.C_DEF_COUNTRY_ID;
            clsAddOnDetails.CountryCode = Constants.C_DEF_COUNTRY_CODE;
            clsAddOnDetails.BusinessPhoneNo = txtTelephoneNo.Text;
            clsAddOnDetails.HomePhoneNo = string.Empty;
            clsAddOnDetails.MobileNo = txtMobileNo.Text;
            clsAddOnDetails.FaxNo = string.Empty;
            clsAddOnDetails.EmailAddress = string.Empty;

            clsDetails.AdditionalDetails = clsAddOnDetails;

            clsContact.Update(clsDetails);
            clsContact.CommitAndDispose();
        }
Ejemplo n.º 10
0
        private void Import()
        {
            if (txtPath.HasFile)
            {
                string fn = System.IO.Path.GetFileName(txtPath.PostedFile.FileName);

                if (fn.Contains("_" + Constants.PURCHASE_ORDER_CODE) == false)
                {
                    string stScript = "<Script>";
                    stScript += "window.alert('Please select a VALID Transfer In file to upload.')";
                    stScript += "</Script>";
                    Response.Write(stScript);
                    return;
                }

                string SaveLocation = "/RetailPlus/temp/uploaded_" + fn;

                txtPath.PostedFile.SaveAs(SaveLocation);
                XmlTextReader xmlReader = new XmlTextReader(SaveLocation);
                xmlReader.WhitespaceHandling = WhitespaceHandling.None;

                TransferOut clsTransferOut = new TransferOut();
                clsTransferOut.GetConnection();
                TransferOutDetails clsTransferOutDetails = new TransferOutDetails();

                TransferOutItem clsTransferOutItem = new TransferOutItem(clsTransferOut.Connection, clsTransferOut.Transaction);
                TransferOutItemDetails clsTransferOutItemDetails;

                Contacts clsContact = new Contacts(clsTransferOut.Connection, clsTransferOut.Transaction);
                ContactDetails clsContactDetails;

                ContactGroups clsContactGroup = new ContactGroups(clsTransferOut.Connection, clsTransferOut.Transaction);
                ContactGroupDetails clsContactGroupDetails;

                Data.Unit clsUnit = new Data.Unit(clsTransferOut.Connection, clsTransferOut.Transaction);
                UnitDetails clsUnitDetails;

                ProductGroup clsProductGroup = new Data.ProductGroup(clsTransferOut.Connection, clsTransferOut.Transaction);
                ProductGroupDetails clsProductGroupDetails;

                ProductSubGroup clsProductSubGroup = new Data.ProductSubGroup(clsTransferOut.Connection, clsTransferOut.Transaction);
                ProductSubGroupDetails clsProductSubGroupDetails;

                Products clsProduct = new Products(clsTransferOut.Connection, clsTransferOut.Transaction);
                ProductDetails clsProductDetails;

                ProductVariations clsProductVariation = new ProductVariations(clsTransferOut.Connection, clsTransferOut.Transaction);
                ProductVariationDetails clsProductVariationDetails;

                Branch clsBranch = new Branch(clsTransferOut.Connection, clsTransferOut.Transaction);
                BranchDetails clsBranchDetails;

                long lngProductID = 0; long lngProductCtr = 0;

                while (xmlReader.Read())
                {
                    switch (xmlReader.NodeType)
                    {
                        case XmlNodeType.Element:

                            if (xmlReader.Name == "TransferOutDetails")
                            {
                                clsTransferOutDetails.TransferOutNo = lnkTransferOutNo.Text;
                                clsTransferOutDetails.TransferOutDate = DateTime.Parse(lblTransferOutDate.Text);

                                clsTransferOutDetails.SupplierCode = xmlReader.GetAttribute("SupplierCode").ToString();
                                clsTransferOutDetails.SupplierContact = xmlReader.GetAttribute("SupplierContact").ToString();
                                clsTransferOutDetails.SupplierAddress = xmlReader.GetAttribute("SupplierAddress").ToString();
                                clsTransferOutDetails.SupplierTelephoneNo = xmlReader.GetAttribute("SupplierTelephoneNo").ToString();
                                clsTransferOutDetails.SupplierModeOfTerms = int.Parse(xmlReader.GetAttribute("SupplierModeOfTerms").ToString());
                                clsTransferOutDetails.SupplierTerms = int.Parse(xmlReader.GetAttribute("SupplierTerms").ToString());
                                clsTransferOutDetails.SupplierID = clsContact.Details(xmlReader.GetAttribute("SupplierCode").ToString()).ContactID;
                                if (clsTransferOutDetails.SupplierID == 0)
                                {
                                    clsContactDetails = new ContactDetails();
                                    clsContactDetails.ContactCode = clsTransferOutDetails.SupplierCode;
                                    clsContactDetails.ContactName = xmlReader.GetAttribute("SupplierName").ToString();
                                    clsContactDetails.BusinessName = clsTransferOutDetails.SupplierContact;
                                    clsContactDetails.Address = clsTransferOutDetails.SupplierAddress;
                                    clsContactDetails.TelephoneNo = clsTransferOutDetails.SupplierTelephoneNo;
                                    clsContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), clsTransferOutDetails.SupplierModeOfTerms.ToString());
                                    clsContactDetails.Terms = clsTransferOutDetails.SupplierTerms;
                                    clsContactDetails.Remarks = "Added in from Imported TransferOut #";
                                    clsContactDetails.ContactGroupID = int.Parse(Contacts.DEFAULT_SUPPLIER_ID.ToString("d"));
                                    clsContactDetails.DateCreated = DateTime.Now;
                                    clsTransferOutDetails.SupplierID = clsContact.Insert(clsContactDetails);
                                }
                                clsTransferOutDetails.RequiredDeliveryDate = DateTime.Parse(xmlReader.GetAttribute("RequiredDeliveryDate").ToString());
                                clsTransferOutDetails.BranchID = clsBranch.Details(xmlReader.GetAttribute("BranchCode")).BranchID;
                                if (clsTransferOutDetails.BranchID == 0)
                                {
                                    clsBranchDetails = new BranchDetails();
                                    clsBranchDetails.BranchCode = xmlReader.GetAttribute("BranchCode");
                                    clsBranchDetails.BranchName = xmlReader.GetAttribute("BranchName");
                                    clsBranchDetails.Address = xmlReader.GetAttribute("BranchAddress");
                                    clsBranchDetails.DBIP = xmlReader.GetAttribute("BranchDBIP");
                                    clsBranchDetails.DBPort = xmlReader.GetAttribute("BranchDBPort");
                                    clsBranchDetails.Remarks = xmlReader.GetAttribute("BranchRemarks");
                                    clsTransferOutDetails.BranchID = clsBranch.Insert(clsBranchDetails);
                                }

                                clsTransferOutDetails.TransferrerID = long.Parse(xmlReader.GetAttribute("TransferrerID"));
                                clsTransferOutDetails.TransferrerName = xmlReader.GetAttribute("TransferrerName");

                                clsTransferOutDetails.SubTotal = decimal.Parse(xmlReader.GetAttribute("SubTotal"));
                                clsTransferOutDetails.Discount = decimal.Parse(xmlReader.GetAttribute("Discount"));
                                clsTransferOutDetails.DiscountApplied = decimal.Parse(xmlReader.GetAttribute("DiscountApplied"));
                                clsTransferOutDetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), xmlReader.GetAttribute("DiscountType"));
                                clsTransferOutDetails.VAT = decimal.Parse(xmlReader.GetAttribute("VAT"));
                                clsTransferOutDetails.VatableAmount = decimal.Parse(xmlReader.GetAttribute("VatableAmount"));
                                clsTransferOutDetails.EVAT = decimal.Parse(xmlReader.GetAttribute("EVAT"));
                                clsTransferOutDetails.EVatableAmount = decimal.Parse(xmlReader.GetAttribute("EVatableAmount"));
                                clsTransferOutDetails.LocalTax = decimal.Parse(xmlReader.GetAttribute("LocalTax"));
                                clsTransferOutDetails.Freight = decimal.Parse(xmlReader.GetAttribute("Freight"));
                                clsTransferOutDetails.Deposit = decimal.Parse(xmlReader.GetAttribute("Deposit"));
                                clsTransferOutDetails.UnpaidAmount = decimal.Parse(xmlReader.GetAttribute("UnpaidAmount"));
                                clsTransferOutDetails.PaidAmount = decimal.Parse(xmlReader.GetAttribute("PaidAmount"));
                                clsTransferOutDetails.TotalItemDiscount = decimal.Parse(xmlReader.GetAttribute("TotalItemDiscount"));
                                clsTransferOutDetails.Status = (TransferOutStatus)Enum.Parse(typeof(TransferOutStatus), xmlReader.GetAttribute("Status"));
                                clsTransferOutDetails.Remarks = xmlReader.GetAttribute("Remarks");
                                clsTransferOutDetails.SupplierDRNo = xmlReader.GetAttribute("SupplierDRNo");
                                clsTransferOutDetails.DeliveryDate = DateTime.Parse(xmlReader.GetAttribute("DeliveryDate"));
                                clsTransferOutDetails.CancelledDate = DateTime.Parse(xmlReader.GetAttribute("CancelledDate"));
                                clsTransferOutDetails.Remarks = xmlReader.GetAttribute("Remarks");
                                clsTransferOutDetails.CancelledRemarks = xmlReader.GetAttribute("CancelledRemarks");
                                clsTransferOutDetails.CancelledByID = long.Parse(xmlReader.GetAttribute("CancelledByID"));

                                clsTransferOut.Update(clsTransferOutDetails);

                            }
                            else if (xmlReader.Name == "TransferOutItem")
                            {
                                clsTransferOutItemDetails = new TransferOutItemDetails();
                                clsTransferOutItemDetails.TransferOutID = long.Parse(lblTransferOutID.Text);

                                clsTransferOutItemDetails.ProductCode = xmlReader.GetAttribute("ProductCode");
                                clsTransferOutItemDetails.BarCode = xmlReader.GetAttribute("BarCode");
                                clsTransferOutItemDetails.Description = xmlReader.GetAttribute("ProductDesc");
                                clsTransferOutItemDetails.ProductSubGroup = xmlReader.GetAttribute("ItemProductSubGroup");
                                clsTransferOutItemDetails.ProductGroup = xmlReader.GetAttribute("ItemProductGroup");
                                clsTransferOutItemDetails.ProductUnitID = Convert.ToInt32(xmlReader.GetAttribute("ItemProductUnitID"));
                                clsTransferOutItemDetails.ProductUnitCode = xmlReader.GetAttribute("ItemProductUnitCode");
                                clsTransferOutItemDetails.Quantity = Convert.ToDecimal(xmlReader.GetAttribute("ItemQuantity"));
                                clsTransferOutItemDetails.UnitCost = Convert.ToDecimal(xmlReader.GetAttribute("ItemUnitCost"));
                                clsTransferOutItemDetails.Discount = Convert.ToDecimal(xmlReader.GetAttribute("ItemDiscount"));
                                clsTransferOutItemDetails.DiscountApplied = Convert.ToDecimal(xmlReader.GetAttribute("ItemDiscountApplied"));
                                clsTransferOutItemDetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), xmlReader.GetAttribute("ItemDiscountType"));
                                clsTransferOutItemDetails.Amount = Convert.ToDecimal(xmlReader.GetAttribute("ItemAmount"));
                                clsTransferOutItemDetails.IsVatable = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemIsVatable")));
                                clsTransferOutItemDetails.VatableAmount = Convert.ToDecimal(xmlReader.GetAttribute("ItemVatableAmount"));
                                clsTransferOutItemDetails.EVatableAmount = Convert.ToDecimal(xmlReader.GetAttribute("ItemEVatableAmount"));
                                clsTransferOutItemDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemLocalTax"));
                                clsTransferOutItemDetails.VAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemVAT"));
                                clsTransferOutItemDetails.EVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemEVAT"));
                                clsTransferOutItemDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemLocalTax"));
                                clsTransferOutItemDetails.isVATInclusive = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemisVATInclusive")));
                                clsTransferOutItemDetails.IsVatable = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemIsVatable")));
                                clsTransferOutItemDetails.TransferOutItemStatus = (TransferOutItemStatus)Enum.Parse(typeof(TransferOutItemStatus), xmlReader.GetAttribute("ItemTransferOutItemStatus"));
                                clsTransferOutItemDetails.VariationMatrixID = Convert.ToInt64(xmlReader.GetAttribute("ItemVariationMatrixID"));
                                clsTransferOutItemDetails.MatrixDescription = xmlReader.GetAttribute("ItemBaseVariationDescription");
                                clsTransferOutItemDetails.ProductGroup = xmlReader.GetAttribute("ProductGroup");
                                clsTransferOutItemDetails.ProductSubGroup = xmlReader.GetAttribute("ProductSubGroup");
                                clsTransferOutItemDetails.Remarks = xmlReader.GetAttribute("ItemRemarks");
                                clsTransferOutItemDetails.SellingPrice = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingPrice"));
                                clsTransferOutItemDetails.SellingVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingVAT"));
                                clsTransferOutItemDetails.SellingEVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingEVAT"));
                                clsTransferOutItemDetails.SellingLocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingLocalTax"));
                                clsTransferOutItemDetails.OldSellingPrice = Convert.ToDecimal(xmlReader.GetAttribute("ItemOldSellingPrice"));

                                clsTransferOutItemDetails.ProductID = clsProduct.Details(clsTransferOutItemDetails.BarCode).ProductID;
                                lngProductID = clsTransferOutItemDetails.ProductID;
                                if (clsTransferOutItemDetails.ProductID == 0)
                                {
                                    clsTransferOutItemDetails.ProductID = clsProduct.Details(clsTransferOutItemDetails.ProductCode).ProductID;
                                    if (clsTransferOutItemDetails.ProductID == 0)
                                    {
                                        //insert new product
                                        clsProductDetails = new ProductDetails();
                                        clsProductDetails.BarCode = clsTransferOutItemDetails.BarCode;
                                        clsProductDetails.ProductCode = clsTransferOutItemDetails.ProductCode;
                                        clsProductDetails.ProductDesc = clsTransferOutItemDetails.Description;
                                        clsProductDetails.ProductGroupCode = xmlReader.GetAttribute("ProductGroupCode");
                                        clsProductDetails.ProductGroupName = xmlReader.GetAttribute("ProductGroupName");
                                        clsProductDetails.ProductSubGroupCode = xmlReader.GetAttribute("ProductSubGroupCode");
                                        clsProductDetails.ProductSubGroupName = xmlReader.GetAttribute("ProductSubGroupName");
                                        clsProductDetails.BaseUnitCode = xmlReader.GetAttribute("BaseUnitCode");
                                        clsProductDetails.BaseUnitName = xmlReader.GetAttribute("BaseUnitName");
                                        clsProductDetails.DateCreated = DateTime.Now;
                                        clsProductDetails.Price = Convert.ToDecimal(xmlReader.GetAttribute("Price"));
                                        clsProductDetails.PurchasePrice = Convert.ToDecimal(xmlReader.GetAttribute("PurchasePrice"));
                                        clsProductDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(xmlReader.GetAttribute("IncludeInSubtotalDiscount"));
                                        clsProductDetails.VAT = Convert.ToDecimal(xmlReader.GetAttribute("VAT"));
                                        clsProductDetails.EVAT = Convert.ToDecimal(xmlReader.GetAttribute("EVAT"));
                                        clsProductDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("LocalTax"));
                                        clsProductDetails.Quantity = 0;
                                        clsProductDetails.MinThreshold = Convert.ToDecimal(xmlReader.GetAttribute("MinThreshold"));
                                        clsProductDetails.MaxThreshold = Convert.ToDecimal(xmlReader.GetAttribute("MaxThreshold"));
                                        clsProductDetails.ChartOfAccountIDPurchase = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDPurchase"));
                                        clsProductDetails.ChartOfAccountIDSold = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDSold"));
                                        clsProductDetails.ChartOfAccountIDInventory = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDInventory"));
                                        clsProductDetails.ChartOfAccountIDTaxPurchase = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDTaxPurchase"));
                                        clsProductDetails.ChartOfAccountIDTaxSold = int.Parse(xmlReader.GetAttribute("ChartOfAccountIDTaxSold"));
                                        clsProductDetails.IsItemSold = Convert.ToBoolean(xmlReader.GetAttribute("IsItemSold"));
                                        clsProductDetails.WillPrintProductComposition = Convert.ToBoolean(xmlReader.GetAttribute("WillPrintProductComposition"));
                                        clsProductDetails.UpdatedBy = long.Parse(xmlReader.GetAttribute("UpdatedBy"));
                                        clsProductDetails.UpdatedOn = Convert.ToDateTime(xmlReader.GetAttribute("UpdatedOn"));
                                        clsProductDetails.PercentageCommision = decimal.Parse(xmlReader.GetAttribute("PercentageCommision"));
                                        clsProductDetails.QuantityIN = clsProductDetails.Quantity;
                                        clsProductDetails.QuantityOUT = 0;

                                        clsProductDetails.SupplierCode = clsTransferOutDetails.SupplierCode;
                                        clsProductDetails.SupplierID = clsContact.Details(clsProductDetails.SupplierCode).ContactID;
                                        if (clsProductDetails.SupplierID == 0)
                                        {
                                            clsContactDetails = new ContactDetails();
                                            clsContactDetails.ContactGroupID = clsContactGroup.Details(int.Parse(ContactGroupCategory.SUPPLIER.ToString("d"))).ContactGroupID;
                                            if (clsContactDetails.ContactGroupID == 0)
                                            {
                                                clsContactGroupDetails = new ContactGroupDetails();
                                                clsContactGroupDetails.ContactGroupCode = xmlReader.GetAttribute("SUP");
                                                clsContactGroupDetails.ContactGroupName = xmlReader.GetAttribute("Default Supplier Group");
                                                clsContactGroupDetails.ContactGroupCategory = ContactGroupCategory.SUPPLIER;
                                                clsContactDetails.ContactGroupID = clsContactGroup.Insert(clsContactGroupDetails);
                                            }

                                            clsContactDetails.ContactCode = clsTransferOutDetails.SupplierCode;
                                            clsContactDetails.ContactName = clsTransferOutDetails.SupplierContact;

                                            clsContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), clsTransferOutDetails.SupplierModeOfTerms.ToString());
                                            clsContactDetails.Terms = clsTransferOutDetails.SupplierTerms;
                                            clsContactDetails.Address = clsTransferOutDetails.SupplierAddress;
                                            clsContactDetails.BusinessName = clsTransferOutDetails.SupplierContact;
                                            clsContactDetails.TelephoneNo = clsTransferOutDetails.SupplierTelephoneNo;
                                            clsContactDetails.Remarks = "Added in XML import";
                                            clsContactDetails.Debit = 0;
                                            clsContactDetails.Credit = 0;
                                            clsContactDetails.IsCreditAllowed = false;
                                            clsContactDetails.CreditLimit = 0;
                                            clsProductDetails.SupplierID = clsContact.Insert(clsContactDetails);
                                        }

                                        clsProductDetails.BaseUnitID = clsUnit.Details(clsProductDetails.BaseUnitCode).UnitID;
                                        if (clsProductDetails.BaseUnitID == 0)
                                        {
                                            clsUnitDetails = new UnitDetails();
                                            clsUnitDetails.UnitCode = clsProductDetails.BaseUnitCode;
                                            clsUnitDetails.UnitName = clsProductDetails.BaseUnitName;
                                            clsProductDetails.BaseUnitID = clsUnit.Insert(clsUnitDetails);
                                        }

                                        clsProductDetails.ProductGroupID = clsProductGroup.Details(clsProductDetails.ProductGroupCode).ProductGroupID;
                                        if (clsProductDetails.ProductGroupID == 0)
                                        {
                                            clsProductGroupDetails = new ProductGroupDetails();
                                            clsProductGroupDetails.ProductGroupCode = clsProductDetails.ProductGroupCode;
                                            clsProductGroupDetails.ProductGroupName = clsProductDetails.ProductGroupName;
                                            clsProductGroupDetails.UnitDetails = new UnitDetails
                                            {
                                                UnitID = clsProductDetails.BaseUnitID
                                            };
                                            clsProductGroupDetails.Price = clsProductDetails.Price;
                                            clsProductGroupDetails.PurchasePrice = clsProductDetails.PurchasePrice;
                                            clsProductGroupDetails.IncludeInSubtotalDiscount = clsProductDetails.IncludeInSubtotalDiscount;
                                            clsProductGroupDetails.VAT = clsProductDetails.VAT;
                                            clsProductGroupDetails.EVAT = clsProductDetails.EVAT;
                                            clsProductGroupDetails.LocalTax = clsProductDetails.LocalTax;
                                            clsProductDetails.ProductGroupID = clsProductGroup.Insert(clsProductGroupDetails);
                                        }

                                        clsProductDetails.ProductSubGroupID = clsProductSubGroup.Details(clsProductDetails.ProductSubGroupCode).ProductSubGroupID;
                                        if (clsProductDetails.ProductSubGroupID == 0)
                                        {
                                            clsProductSubGroupDetails = new ProductSubGroupDetails();
                                            clsProductSubGroupDetails.ProductGroupID = clsProductDetails.ProductGroupID;
                                            clsProductSubGroupDetails.ProductSubGroupCode = clsProductDetails.ProductSubGroupCode;
                                            clsProductSubGroupDetails.ProductSubGroupName = clsProductDetails.ProductSubGroupName;
                                            clsProductSubGroupDetails.BaseUnitID = clsProductDetails.BaseUnitID;
                                            clsProductSubGroupDetails.Price = clsProductDetails.Price;
                                            clsProductSubGroupDetails.PurchasePrice = clsProductDetails.PurchasePrice;
                                            clsProductSubGroupDetails.IncludeInSubtotalDiscount = clsProductDetails.IncludeInSubtotalDiscount;
                                            clsProductSubGroupDetails.VAT = clsProductDetails.VAT;
                                            clsProductSubGroupDetails.EVAT = clsProductDetails.EVAT;
                                            clsProductSubGroupDetails.LocalTax = clsProductDetails.LocalTax;
                                            clsProductDetails.ProductSubGroupID = clsProductSubGroup.Insert(clsProductSubGroupDetails);
                                        }

                                        clsTransferOutItemDetails.ProductID = clsProduct.Insert(clsProductDetails);
                                    }
                                    else
                                    {
                                        //product code already exist but not the same barcode
                                        clsProduct.UpdateBarcode(clsTransferOutItemDetails.ProductID, clsTransferOutItemDetails.BarCode);
                                    }
                                    lngProductID = clsTransferOutItemDetails.ProductID;
                                }

                                clsTransferOutItem.Insert(clsTransferOutItemDetails);

                                clsTransferOutDetails = new TransferOutDetails();
                                clsTransferOutDetails.TransferOutID = clsTransferOutItemDetails.TransferOutID;
                                clsTransferOutDetails.DiscountApplied = Convert.ToDecimal(txtTransferOutDiscountApplied.Text);
                                clsTransferOutDetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboTransferOutDiscountType.SelectedItem.Value);

                                clsTransferOutDetails.Discount2Applied = Convert.ToDecimal(txtTransferOutDiscount2Applied.Text);
                                clsTransferOutDetails.Discount2Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboTransferOutDiscount2Type.SelectedItem.Value);

                                clsTransferOutDetails.Discount3Applied = Convert.ToDecimal(txtTransferOutDiscount2Applied.Text);
                                clsTransferOutDetails.Discount3Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboTransferOutDiscount3Type.SelectedItem.Value);

                                clsTransferOut = new TransferOut(clsTransferOutItem.Connection, clsTransferOutItem.Transaction);
                                clsTransferOut.UpdateDiscount(clsTransferOutItemDetails.TransferOutID, clsTransferOutDetails.DiscountApplied, clsTransferOutDetails.DiscountType, clsTransferOutDetails.Discount2Applied, clsTransferOutDetails.Discount2Type, clsTransferOutDetails.Discount3Applied, clsTransferOutDetails.Discount3Type);

                                clsTransferOutDetails = clsTransferOut.Details(clsTransferOutItemDetails.TransferOutID);
                                UpdateFooter(clsTransferOutDetails);

                                lngProductCtr++;
                            }
                            else if (xmlReader.Name == "Variation")
                            {
                                if (lngProductID != 0)
                                {
                                    clsProductVariationDetails = new ProductVariationDetails();

                                    clsProductVariationDetails.VariationID = clsProductVariation.Details(lngProductID, xmlReader.GetAttribute("VariationCode")).VariationID;
                                    if (clsProductVariationDetails.VariationID == 0)
                                    {
                                        clsProductVariationDetails.ProductID = lngProductID;
                                        clsProductVariationDetails.VariationCode = xmlReader.GetAttribute("VariationCode");
                                        clsProductVariationDetails.VariationType = xmlReader.GetAttribute("VariationType");

                                        clsProductVariation.Insert(clsProductVariationDetails);
                                    }
                                }
                            }
                            else
                            {
                                //lblError.Text += "<b>" + xmlReader.Name + ":</b>" + xmlReader.Value + "<br />";
                            }
                            break;
                        case XmlNodeType.Text:
                            //lblError.Text += "<b>" + xmlReader.LocalName + ":</b>" + xmlReader.Value + "<br />";
                            break;
                    }
                }
                xmlReader.Close();

                clsTransferOut.CommitAndDispose();
                LoadRecord();
                LoadItems();
            }
            else
            {
                string stScript = "<Script>";
                stScript += "window.alert('Please select Transfer In file to upload.')";
                stScript += "</Script>";
                Response.Write(stScript);
            }
        }
Ejemplo n.º 11
0
		private void Upload()
		{
			if( ( txtPath.PostedFile != null ) && ( txtPath.PostedFile.ContentLength > 0 ) )
			{
				string fn = System.IO.Path.GetFileName(txtPath.PostedFile.FileName);
				string SaveLocation = "/RetailPlus/temp/uploaded_" + fn;

				txtPath.PostedFile.SaveAs(SaveLocation);
				XmlTextReader reader = new XmlTextReader(SaveLocation);
				reader.WhitespaceHandling = WhitespaceHandling.None;

				Stock clsStock = new Stock();
				clsStock.GetConnection();

				string strStockTransactionNo = null;
				long StockID = 0;
				long ContactID = 0;
				int UnitID = 0;
				long ProductGroupID = 0;
				long ProductSubGroupID = 0;
				long ProductID = 0;
				long ProductBaseMatrixID = 0;

				VariationDetails clsVariationDetails;
				int VariationID = 0;

				StockItemDetails clsStockItemDetails = new StockItemDetails();

				while (reader.Read()) 
				{
					switch (reader.NodeType) 
					{
						case XmlNodeType.Element:
							if (reader.Name == "Stock") 
							{
								strStockTransactionNo = reader.GetAttribute("TransactionNo");

								StockID = clsStock.Details(reader.GetAttribute("TransactionNo")).StockID;
								if (StockID > 0)
								{
									clsStock.CommitAndDispose();
									Label1.Text = "<b>This file has already been added to inventory.<br />";
									Label1.Text += "Please refer to transaction No: " + strStockTransactionNo + ".</b>";
									reader.Close();
									return;
								}
								Contacts clsContact = new Contacts(clsStock.Connection, clsStock.Transaction);
								ContactID = clsContact.Details(reader.GetAttribute("ContactCode")).ContactID;
								if (ContactID == 0)
								{
									ContactDetails clsContactDetails = new ContactDetails();
									clsContactDetails.ContactCode = reader.GetAttribute("ContactCode");
									clsContactDetails.ContactName = reader.GetAttribute("ContactName");
									clsContactDetails.ContactGroupID = Convert.ToInt32(reader.GetAttribute("ContactGroupID"));
                                    clsContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), reader.GetAttribute("ModeOfTerms"));
									clsContactDetails.Terms = Convert.ToInt32(reader.GetAttribute("Terms"));
									clsContactDetails.Address = reader.GetAttribute("Address");
									clsContactDetails.BusinessName = reader.GetAttribute("BusinessName");
									clsContactDetails.TelephoneNo = reader.GetAttribute("TelephoneNo");
									clsContactDetails.Remarks = reader.GetAttribute("Remarks");
									clsContactDetails.Debit = Convert.ToDecimal(reader.GetAttribute("Debit"));
									clsContactDetails.Credit = Convert.ToDecimal(reader.GetAttribute("Credit"));
									clsContactDetails.IsCreditAllowed = Convert.ToBoolean(reader.GetAttribute("IsCreditAllowed"));
									clsContactDetails.CreditLimit = Convert.ToDecimal(reader.GetAttribute("CreditLimit"));
									ContactID = clsContact.Insert(clsContactDetails);
								}

                                StockDetails clsStockDetails = new StockDetails();
								clsStockDetails.TransactionNo = reader.GetAttribute("TransactionNo");
								clsStockDetails.StockTypeID = Convert.ToInt16(Constants.STOCK_TYPE_TRANSFER_FROM_BRANCH_ID);
								clsStockDetails.StockDate = DateTime.Now;
								clsStockDetails.SupplierID = ContactID;
								clsStockDetails.Remarks = reader.GetAttribute("StockRemarks") + Environment.NewLine + "Original Stock Date: " + reader.GetAttribute("StockDate");
								
								StockItemDetails[] itemDetails = new StockItemDetails[0];
								clsStockDetails.StockItems = itemDetails;

								StockID = clsStock.Insert(clsStockDetails);
							}
							else if (reader.Name == "Item") 
							{
								Data.Unit clsUnit = new Data.Unit(clsStock.Connection, clsStock.Transaction);
								UnitID = clsUnit.Details(reader.GetAttribute("ProductUnitCode")).UnitID;
								if (UnitID == 0) 
								{
									UnitDetails clsUnitDetails = new UnitDetails();
									clsUnitDetails.UnitCode = reader.GetAttribute("ProductUnitCode");
									clsUnitDetails.UnitName = reader.GetAttribute("ProductUnitName");
									UnitID = clsUnit.Insert(clsUnitDetails);
								}

								ProductGroup clsProductGroup = new ProductGroup(clsStock.Connection, clsStock.Transaction);
								ProductGroupID = clsProductGroup.Details(reader.GetAttribute("ProductGroupCode")).ProductGroupID;
								if (ProductGroupID == 0) 
								{
									Label1.Text += "inserting product group....";
									ProductGroupDetails clsProductGroupDetails = new ProductGroupDetails();
									clsProductGroupDetails.ProductGroupCode = reader.GetAttribute("ProductGroupCode");
									clsProductGroupDetails.ProductGroupName = reader.GetAttribute("ProductGroupName");
                                    clsProductGroupDetails.UnitDetails = new UnitDetails
                                    {
                                        UnitID = UnitID
                                    };
									clsProductGroupDetails.Price = Convert.ToDecimal(reader.GetAttribute("Price"));
									clsProductGroupDetails.PurchasePrice = Convert.ToDecimal(reader.GetAttribute("PurchasePrice"));
									clsProductGroupDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(reader.GetAttribute("IncludeInSubtotalDiscount"));
									clsProductGroupDetails.VAT = Convert.ToDecimal(reader.GetAttribute("VAT"));
									clsProductGroupDetails.EVAT = Convert.ToDecimal(reader.GetAttribute("EVAT"));
									clsProductGroupDetails.LocalTax = Convert.ToDecimal(reader.GetAttribute("LocalTax"));
									ProductGroupID = clsProductGroup.Insert(clsProductGroupDetails);
								}
								
								ProductSubGroup clsProductSubGroup = new ProductSubGroup(clsStock.Connection, clsStock.Transaction);
								ProductSubGroupID = clsProductSubGroup.Details(reader.GetAttribute("ProductSubGroupCode")).ProductSubGroupID;
								if (ProductSubGroupID == 0) 
								{
									Label1.Text += "inserting product sub-group....";
									ProductSubGroupDetails clsProductSubGroupDetails = new ProductSubGroupDetails();
									clsProductSubGroupDetails.ProductGroupID = ProductGroupID;
									clsProductSubGroupDetails.ProductSubGroupCode = reader.GetAttribute("ProductSubGroupCode");
									clsProductSubGroupDetails.ProductSubGroupName = reader.GetAttribute("ProductSubGroupName");
									clsProductSubGroupDetails.BaseUnitID = UnitID;
									clsProductSubGroupDetails.Price = Convert.ToDecimal(reader.GetAttribute("Price"));
									clsProductSubGroupDetails.PurchasePrice = Convert.ToDecimal(reader.GetAttribute("PurchasePrice"));
									clsProductSubGroupDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(reader.GetAttribute("IncludeInSubtotalDiscount"));
									clsProductSubGroupDetails.VAT = Convert.ToDecimal(reader.GetAttribute("VAT"));
									clsProductSubGroupDetails.EVAT = Convert.ToDecimal(reader.GetAttribute("EVAT"));
									clsProductSubGroupDetails.LocalTax = Convert.ToDecimal(reader.GetAttribute("LocalTax"));
									ProductSubGroupID = clsProductSubGroup.Insert(clsProductSubGroupDetails);
								}

								Products clsProduct = new Products(clsStock.Connection, clsStock.Transaction);
                                ProductID = clsProduct.Details(reader.GetAttribute("BarCode")).ProductID;
								if (ProductID == 0) 
								{
									Label1.Text += "inserting product....";
									ProductDetails clsProductDetails = new ProductDetails();
									clsProductDetails.ProductCode  = reader.GetAttribute("ProductCode");
									clsProductDetails.BarCode  = reader.GetAttribute("BarCode");
									clsProductDetails.ProductDesc = reader.GetAttribute("ProductDesc");
									clsProductDetails.ProductGroupID = ProductGroupID; 
									clsProductDetails.ProductSubGroupID  = ProductSubGroupID;
									clsProductDetails.ProductDesc  = reader.GetAttribute("ProductDesc");
									clsProductDetails.BaseUnitID = UnitID;
									clsProductDetails.Price = Convert.ToDecimal(reader.GetAttribute("Price")); 
									clsProductDetails.PurchasePrice = Convert.ToDecimal(reader.GetAttribute("PurchasePrice")); 
									clsProductDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(reader.GetAttribute("IncludeInSubtotalDiscount")); 
									clsProductDetails.VAT = Convert.ToDecimal(reader.GetAttribute("VAT")); 
									clsProductDetails.EVAT = Convert.ToDecimal(reader.GetAttribute("EVAT")); 
									clsProductDetails.LocalTax = Convert.ToDecimal(reader.GetAttribute("LocalTax")); 
									clsProductDetails.Quantity = 0;
									clsProductDetails.MinThreshold = Convert.ToDecimal(reader.GetAttribute("MinThreshold"));
									clsProductDetails.MaxThreshold = Convert.ToDecimal(reader.GetAttribute("MaxThreshold"));
									clsProductDetails.SupplierID = Contacts.DEFAULT_SUPPLIER_ID;
									ProductID = clsProduct.Insert(clsProductDetails);
								}

                                //ProductVariationsMatrix clsProductVariationsMatrix = new ProductVariationsMatrix(clsStock.Connection, clsStock.Transaction);
                                //ProductBaseMatrixID = clsProductVariationsMatrix.BaseDetails(0, 0, ProductID, reader["ItemBaseVariationDescription"].ToString()).MatrixID;
                                //if (ProductBaseMatrixID == 0)
                                //{
                                //    ProductBaseMatrixDetails clsBaseDetails = new ProductBaseMatrixDetails();
                                //    clsBaseDetails.ProductID = ProductID;
                                //    clsBaseDetails.Description = reader.GetAttribute("ItemBaseVariationDescription");
                                //    clsBaseDetails.UnitID = UnitID;
                                //    clsBaseDetails.Price = Convert.ToDecimal(reader.GetAttribute("Price"));
                                //    clsBaseDetails.PurchasePrice = Convert.ToDecimal(reader.GetAttribute("PurchasePrice"));
                                //    clsBaseDetails.IncludeInSubtotalDiscount = Convert.ToBoolean(reader.GetAttribute("IncludeInSubtotalDiscount"));
                                //    clsBaseDetails.Quantity = 0;
                                //    clsBaseDetails.VAT = Convert.ToDecimal(reader.GetAttribute("VAT"));
                                //    clsBaseDetails.EVAT = Convert.ToDecimal(reader.GetAttribute("EVAT"));
                                //    clsBaseDetails.LocalTax = Convert.ToDecimal(reader.GetAttribute("LocalTax"));
                                //    clsBaseDetails.MinThreshold = Convert.ToDecimal(reader.GetAttribute("MinThreshold"));
                                //    clsBaseDetails.MaxThreshold = Convert.ToDecimal(reader.GetAttribute("MaxThreshold"));
                                //    ProductBaseMatrixID = clsProductVariationsMatrix.InsertBaseVariation(clsBaseDetails);
                                //    clsBaseDetails.MatrixID = ProductBaseMatrixID;
                                //}

								clsStockItemDetails = new StockItemDetails();
								clsStockItemDetails.StockID = StockID;
								clsStockItemDetails.ProductID = ProductID;
								clsStockItemDetails.VariationMatrixID = ProductBaseMatrixID;
								clsStockItemDetails.ProductUnitID = UnitID;
								clsStockItemDetails.StockTypeID = Convert.ToInt16(Constants.STOCK_TYPE_TRANSFER_FROM_BRANCH_ID);
								clsStockItemDetails.StockDate = DateTime.Now;
								clsStockItemDetails.Quantity = Convert.ToDecimal(reader.GetAttribute("ItemQuantity"));
								clsStockItemDetails.Remarks = reader.GetAttribute("ItemRemarks");

                                Security.AccessUserDetails clsAccessUserDetails = (Security.AccessUserDetails)Session["AccessUserDetails"];
                                clsStock.AddItem(Constants.BRANCH_ID_MAIN, strStockTransactionNo, clsAccessUserDetails.Name, clsStockItemDetails, StockDirections.Increment);
							}
							else if (reader.Name == "Variation" && reader.GetAttribute("VariationCode") != null)
							{
								Variation clsVariation = new Variation(clsStock.Connection, clsStock.Transaction);
								VariationID = clsVariation.Details(reader.GetAttribute("VariationCode")).VariationID;
								if (VariationID == 0 ) 
								{	
									clsVariationDetails = new VariationDetails();
									clsVariationDetails.VariationCode = reader.GetAttribute("VariationCode");
									clsVariationDetails.VariationType = reader.GetAttribute("VariationType");
									VariationID = clsVariation.Insert(clsVariationDetails);
								}

								ProductVariationDetails clsProductVariationDetails = new ProductVariationDetails();
								clsProductVariationDetails.ProductID = ProductID;
								clsProductVariationDetails.VariationID = VariationID;

								ProductVariations clsProductVariation = new ProductVariations(clsStock.Connection, clsStock.Transaction);
								if (clsProductVariation.isExist(clsProductVariationDetails) == false)
								{
									long ProductVariationID = clsProductVariation.Insert(clsProductVariationDetails);
								}

							}
							else if (reader.Name == "VariationMatrix" && reader.GetAttribute("VariationCode") != null)
							{
								Variation clsVariation = new Variation(clsStock.Connection, clsStock.Transaction);
								VariationID = clsVariation.Details(reader.GetAttribute("VariationCode")).VariationID;
								if (VariationID == 0) 
								{
									clsVariationDetails = new VariationDetails();
									clsVariationDetails.VariationCode = reader.GetAttribute("VariationCode");
									clsVariationDetails.VariationType = reader.GetAttribute("VariationType");
									VariationID = clsVariation.Insert(clsVariationDetails);
								}

								ProductVariationsMatrix clsProductVariationsMatrix = new ProductVariationsMatrix(clsStock.Connection, clsStock.Transaction);
								if (clsProductVariationsMatrix.isExist(ProductBaseMatrixID, VariationID) == false)
								{
									ProductVariationsMatrixDetails clsProductVariationsMatrixDetails = new ProductVariationsMatrixDetails();
                                    clsProductVariationsMatrixDetails.ProductID = ProductID;
                                    clsProductVariationsMatrixDetails.MatrixID = ProductBaseMatrixID;
									clsProductVariationsMatrixDetails.VariationID = VariationID;
									clsProductVariationsMatrixDetails.Description = reader.GetAttribute("Description");
									clsProductVariationsMatrix.SaveVariation(clsProductVariationsMatrixDetails);
								}
							}
							else
							{
								Label1.Text = "<b>Reader Name:<b>" + reader.Name + "<br />";
							}
							break;
						case XmlNodeType.Text:
							Label1.Text = "<b>" + reader.LocalName + ":<b>" + reader.Value + "<br />";
							break;
					}       
				}
				reader.Close();
				
				clsStock.CommitAndDispose();
				Label1.Text = "<b>Transaction No.: " + strStockTransactionNo + " has been successfully transferred.<br />";
			}
			else
			{
				Response.Write("Please select a file to upload.");
			}

		}
Ejemplo n.º 12
0
        //public bool ApplyPromoValue(ContactDetails clsContactDetails, Int64 ProductID, Int64 VariationMatrixID, out PromoTypes PromoType, out decimal PromoQuantity, out decimal PromoValue, out bool InPercent, int BranchID = 0)
        //{
        //    Int64 ContactID = clsContactDetails.ContactID;

        //    string ContactIDs = "";

        //    if (clsContactDetails.ContactID != Constants.ZERO)
        //    {
        //        if (!string.IsNullOrEmpty(ContactIDs))
        //            ContactIDs = "," + clsContactDetails.ContactID.ToString();
        //        else
        //            ContactIDs = clsContactDetails.ContactID.ToString();
        //    }

        //    // rewardcardmember
        //    if (clsContactDetails.RewardDetails.RewardCardStatus == RewardCardStatus.ManualActivated)
        //    {
        //        if (!string.IsNullOrEmpty(ContactIDs))
        //            ContactIDs = "," + Constants.PLUSCARDMEMBERSID_STRING;
        //        else
        //            ContactIDs = Constants.PLUSCARDMEMBERSID_STRING;
        //    }

        //    // icc card members
        //    if (clsContactDetails.CreditDetails.GuarantorID == Constants.ZERO &&
        //        clsContactDetails.CreditDetails.CreditCardStatus == CreditCardStatus.ManualActivated)
        //    {
        //        if (!string.IsNullOrEmpty(ContactIDs))
        //            ContactIDs = "," + Constants.PLUSCARDMEMBERSID_STRING;
        //        else
        //            ContactIDs = Constants.PLUSCARDMEMBERSID_STRING;
        //    }


        //    PromoType = PromoTypes.NotApplicable;
        //    PromoQuantity = 0;
        //    PromoValue = 0;
        //    InPercent = false;

        //    bool boHasPromo = false;

        //    try
        //    {
        //        Data.Products clsProduct = new Data.Products(base.Connection, base.Transaction);
        //        Data.ProductDetails clsProductDetails = clsProduct.Details1(BranchID, ProductID);

        //        Int64 ProductSubGroupID = clsProductDetails.ProductSubGroupID;
        //        Int64 ProductGroupID = clsProductDetails.ProductGroupID;

        //        MySqlCommand cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        string SQL = "SELECT " +
        //                        "PromoID  " +
        //                    "FROM tblPromo " +
        //                    "WHERE 1=1 " +
        //                        "AND Status = 1 " +
        //                        "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                        "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd.CommandText = SQL;
        //        string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            boHasPromo = true;
        //            break;
        //        }

        //        if (boHasPromo == false)	//return agad if no Promo is affected by date
        //            return boHasPromo;

        //        /*******************************Up to Contact, Group, Sub, Prod and VarM ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Sub, Prod and VariationsMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Prod and VariationsMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, VariationsMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Group, Sub, Prod ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Sub, Prod ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Prod ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Group, Sub only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact, Sub only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Contact only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = @ContactID " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ContactID", ContactID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Group, Sub, Prod and VarM ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Sub, Prod and VariationMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID =0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Prod and VariationMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);
        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to VariationsMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = @VariationMatrixID " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to group, Sub, Prod ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Sub, Prod ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to group, Sub, Prod and VariationMatrix ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = @ProductID " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductID", ProductID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to group, Sub ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to Sub ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = @ProductSubGroupID " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to group ID only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = @ProductGroupID " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //        /*******************************Up to all only*****************************/
        //        SQL = "SELECT " +
        //                    "PromoItemsID, " +
        //                    "a.PromoID, " +
        //                    "PromoTypeID, " +
        //                    "ProductGroupID, " +
        //                    "ProductSubGroupID, " +
        //                    "ProductID,  " +
        //                    "VariationMatrixID, " +
        //                    "Quantity,  " +
        //                    "PromoValue,  " +
        //                    "InPercent  " +
        //                "FROM tblPromoItems a  " +
        //                "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
        //                "WHERE ContactID = 0 " +
        //                    "AND ProductGroupID = 0 " +
        //                    "AND ProductSubGroupID = 0 " +
        //                    "AND ProductID = 0 " +
        //                    "AND VariationMatrixID = 0 " +
        //                    "AND Status = 1 " +
        //                    "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
        //                    "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

        //        cmd = new MySqlCommand();
        //        cmd.CommandType = System.Data.CommandType.Text;

        //        cmd.CommandText = SQL;
        //        dt = new System.Data.DataTable(strDataTableName);
        //        base.MySqlDataAdapterFill(cmd, dt);

        //        foreach (System.Data.DataRow dr in dt.Rows)
        //        {
        //            PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
        //            PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
        //            PromoValue = decimal.Parse(dr["PromoValue"].ToString());
        //            InPercent = bool.Parse(dr["InPercent"].ToString());
        //            return boHasPromo;
        //        }

        //    }
        //    catch (Exception ex)
        //    {
        //        base.ThrowException(ex);
        //    }
        //    return false;
        //}

		public bool ApplyPromoValue(ContactDetails clsContactDetails, Int64 ProductID, Int64 VariationMatrixID, out PromoTypes PromoType, out decimal PromoQuantity, out decimal PromoValue, out bool InPercent, int BranchID = 0)
		{
            Int64 ContactID = clsContactDetails.ContactID;

            string strSpecialContactIDs = "";

            // rewardcardmember
            // make sure that it is not the default
            if (clsContactDetails.ContactID != Constants.C_RETAILPLUS_CUSTOMERID &&
                clsContactDetails.RewardDetails.RewardActive)
            {
                if (!string.IsNullOrEmpty(strSpecialContactIDs))
                    strSpecialContactIDs += "," + Constants.PLUSCARDMEMBERSID_STRING;
                else
                    strSpecialContactIDs = Constants.PLUSCARDMEMBERSID_STRING;
            }

            // icc card members
            // make sure that it is not the default
            if (clsContactDetails.ContactID != Constants.C_RETAILPLUS_CUSTOMERID && 
                clsContactDetails.CreditDetails.GuarantorID == Constants.ZERO &&
                clsContactDetails.CreditDetails.CreditActive)
            {
                if (!string.IsNullOrEmpty(strSpecialContactIDs))
                    strSpecialContactIDs += "," + Constants.ICCARDMEMBERSID_STRING;
                else
                    strSpecialContactIDs = Constants.ICCARDMEMBERSID_STRING;
            }

            // gcc card members
            // make sure that it is not the default
            if (clsContactDetails.ContactID != Constants.C_RETAILPLUS_CUSTOMERID && 
                clsContactDetails.CreditDetails.GuarantorID != Constants.ZERO &&
                clsContactDetails.CreditDetails.CreditActive)
            {
                if (!string.IsNullOrEmpty(strSpecialContactIDs))
                    strSpecialContactIDs += "," + Constants.GCCARDMEMBERSID_STRING;
                else
                    strSpecialContactIDs = Constants.GCCARDMEMBERSID_STRING;
            }
            

            PromoType = PromoTypes.NotApplicable;
            PromoQuantity = 0;
            PromoValue = 0;
            InPercent = false;

            bool boHasPromo = false;

            try
            {
                Data.Products clsProduct = new Data.Products(base.Connection, base.Transaction);
                Data.ProductDetails clsProductDetails = clsProduct.Details1(BranchID, ProductID);

                Int64 ProductSubGroupID = clsProductDetails.ProductSubGroupID;
                Int64 ProductGroupID = clsProductDetails.ProductGroupID;

                MySqlCommand cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                string SQL = "SELECT " +
                                "PromoID  " +
                            "FROM tblPromo " +
                            "WHERE 1=1 " +
                                "AND Status = 1 " +
                                "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                                "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i');";

                cmd.CommandText = SQL;
                string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    boHasPromo = true;
                    break;
                }

                if (boHasPromo == false)	//return agad if no Promo is affected by date
                    return boHasPromo;

                /*******************************Up to Contact, Group, Sub, Prod and VarM ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Sub, Prod and VariationsMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Prod and VariationsMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, VariationsMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Group, Sub, Prod ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Sub, Prod ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Prod ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Group, Sub only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact, Sub only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Contact only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = @ContactID " : "ContactID IN (@ContactID, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ContactID", ContactID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Group, Sub, Prod and VarM ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Sub, Prod and VariationMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID =0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Prod and VariationMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductID", ProductID);
                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to VariationsMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = @VariationMatrixID " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@VariationMatrixID", VariationMatrixID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to group, Sub, Prod ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Sub, Prod ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);
                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to group, Sub, Prod and VariationMatrix ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = @ProductID " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductID", ProductID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to group, Sub ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);
                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to Sub ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = @ProductSubGroupID " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductSubGroupID", ProductSubGroupID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to group ID only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = @ProductGroupID " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.AddWithValue("@ProductGroupID", ProductGroupID);

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

                /*******************************Up to all only*****************************/
                SQL = "SELECT " +
                            "PromoItemsID, " +
                            "a.PromoID, " +
                            "PromoTypeID, " +
                            "ProductGroupID, " +
                            "ProductSubGroupID, " +
                            "ProductID,  " +
                            "VariationMatrixID, " +
                            "Quantity,  " +
                            "PromoValue,  " +
                            "InPercent  " +
                        "FROM tblPromoItems a  " +
                        "INNER JOIN tblPromo b ON a.PromoID = b.PromoID " +
                        "WHERE " + (string.IsNullOrEmpty(strSpecialContactIDs) ? "ContactID = 0 " : "ContactID IN (0, " + strSpecialContactIDs + ") ") +
                            "AND ProductGroupID = 0 " +
                            "AND ProductSubGroupID = 0 " +
                            "AND ProductID = 0 " +
                            "AND VariationMatrixID = 0 " +
                            "AND Status = 1 " +
                            "AND DATE_FORMAT(StartDate, '%Y-%m-%d %H:%i') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') " +
                            "AND DATE_FORMAT(EndDate, '%Y-%m-%d %H:%i') >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') ORDER BY PromoValue ASC LIMIT 1;";

                cmd = new MySqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.CommandText = SQL;
                dt = new System.Data.DataTable(strDataTableName);
                base.MySqlDataAdapterFill(cmd, dt);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    PromoType = (PromoTypes)Enum.Parse(typeof(PromoTypes), dr["PromoTypeID"].ToString());
                    PromoQuantity = decimal.Parse(dr["Quantity"].ToString());
                    PromoValue = decimal.Parse(dr["PromoValue"].ToString());
                    InPercent = bool.Parse(dr["InPercent"].ToString());
                    return boHasPromo;
                }

            }
            catch (Exception ex)
            {
                base.ThrowException(ex);
            }
			return false;
		}
Ejemplo n.º 13
0
        private Int64 SaveRecord()
        {

            ContactDetails clsDetails = new ContactDetails();

            clsDetails.ContactCode = txtContactCode.Text;
            clsDetails.ContactName = txtLastName.Text + ", " + txtFirstName.Text + " " + txtMiddleName.Text;
            clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = ModeOfTerms.Days;
            clsDetails.Terms = Convert.ToInt32("0");
            clsDetails.Address = txtAddress.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtTelephoneNo.Text;
            clsDetails.Remarks = txtRemarks.Text;
            clsDetails.Debit = Convert.ToDecimal("0");
            clsDetails.Credit = Convert.ToDecimal("0");
            clsDetails.IsCreditAllowed = true;
            clsDetails.CreditLimit = Convert.ToDecimal(0);
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

            ContactAddOnDetails clsAddOnDetails = new ContactAddOnDetails();
            clsAddOnDetails.ContactID = clsDetails.ContactID;
            clsAddOnDetails.Salutation = cboSalutation.SelectedItem.Value;
            clsAddOnDetails.FirstName = txtFirstName.Text;
            clsAddOnDetails.MiddleName = txtMiddleName.Text;
            clsAddOnDetails.LastName = txtLastName.Text;
            clsAddOnDetails.SpouseName = "";
            DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
            dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.BirthDate = dteBirthDate;
            clsAddOnDetails.SpouseBirthDate = Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.AnniversaryDate = Constants.C_DATE_MIN_VALUE;
            clsAddOnDetails.Address1 = txtAddress.Text;
            clsAddOnDetails.Address2 = string.Empty;
            clsAddOnDetails.City = string.Empty;
            clsAddOnDetails.State = string.Empty;
            clsAddOnDetails.ZipCode = string.Empty;
            clsAddOnDetails.CountryID = Constants.C_DEF_COUNTRY_ID;
            clsAddOnDetails.CountryCode = Constants.C_DEF_COUNTRY_CODE;
            clsAddOnDetails.BusinessPhoneNo = txtTelephoneNo.Text;
            clsAddOnDetails.HomePhoneNo = string.Empty;
            clsAddOnDetails.MobileNo = txtMobileNo.Text;
            clsAddOnDetails.FaxNo = string.Empty;
            clsAddOnDetails.EmailAddress = string.Empty;

            clsDetails.AdditionalDetails = clsAddOnDetails;

            Contacts clsContact = new Contacts();
            Int64 id = clsContact.Insert(clsDetails);
            clsContact.CommitAndDispose();

            return id;
        }
Ejemplo n.º 14
0
        private void IssueCreditCard()
        {
            if (mboIsInTransaction)
            {
                MessageBox.Show("Sorry you cannot issue a Credit Card while there is an ongoing transaction." + Environment.NewLine + "Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardIssuance);

            if (loginresult == DialogResult.OK)
            {
                try
                {
                    DialogResult result;
                    Data.CardTypeDetails clsCardTypeDetails = new Data.CardTypeDetails();
                    Data.ContactDetails clsGuarantorDetails = new AceSoft.RetailPlus.Data.ContactDetails();
                    ContactCreditTypeSelectWnd clsContactCreditTypeSelectWnd = new ContactCreditTypeSelectWnd();
                    clsContactCreditTypeSelectWnd.TerminalDetails = mclsTerminalDetails;
                    clsContactCreditTypeSelectWnd.ShowDialog(this);
                    clsCardTypeDetails = clsContactCreditTypeSelectWnd.CardTypeDetails;
                    result = clsContactCreditTypeSelectWnd.Result;
                    clsContactCreditTypeSelectWnd.Close();
                    clsContactCreditTypeSelectWnd.Dispose();

                    if (result != DialogResult.OK)
                    { return; }

                    Data.ContactDetails clsContactDetails;
                    ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;

                    if (clsCardTypeDetails.WithGuarantor)
                    {
                        MessageBox.Show("Please select a GUARANTOR to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                        clsContactWnd.Header = "Select GUARANTOR to issue Credit Card.";
                        clsContactWnd.ShowDialog(this);
                        clsGuarantorDetails = clsContactWnd.Details;
                        result = clsContactWnd.Result;
                        clsContactWnd.Close();
                        clsContactWnd.Dispose();

                        if (result != DialogResult.OK)
                        { return; }

                        MessageBox.Show(clsGuarantorDetails.ContactName + " has been selected as guarantor." + Environment.NewLine + "Please select the CUSTOMER to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Select CUSTOMER to issue Credit Card.";
                    clsContactWnd.ShowDialog(this);
                    clsContactDetails = clsContactWnd.Details;
                    result = clsContactWnd.Result;
                    clsContactWnd.Close();
                    clsContactWnd.Dispose();

                    if (result != DialogResult.OK)
                    { return; }

                    if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
                    { return; }

                    if (!clsCardTypeDetails.WithGuarantor) clsGuarantorDetails = clsContactDetails;

                    clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                    clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
                    clsContact.CommitAndDispose();

                    if (clsContactDetails.CreditDetails.CreditCardNo != string.Empty && clsContactDetails.CreditDetails.CreditCardNo != null)
                    {
                        clsEvent.AddEventLn("Cancelled!");
                        clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt"));
                        MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt") + "." +
                                        Environment.NewLine + " Please select another customer to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

                    ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
                    clsContactCreditWnd.Header = "Credit Card Issuance";
                    clsContactCreditWnd.CardTypeDetails = clsCardTypeDetails;
                    clsContactCreditWnd.Guarantor = clsGuarantorDetails;
                    clsContactCreditWnd.ContactDetails = clsContactDetails;
                    clsContactCreditWnd.CreditCardStatus = CreditCardStatus.New;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
                    clsContactCreditWnd.ShowDialog(this);
                    result = clsContactCreditWnd.Result;
                    clsContactDetails = clsContactCreditWnd.ContactDetails;
                    clsContactCreditWnd.Close();
                    clsContactCreditWnd.Dispose();

                    if (result == DialogResult.OK)
                    {
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        if (clsProducts.Details(Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE).ProductID == 0)
                        {
                            clsProducts.CREATE_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT();
                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "CREDIT_CARD_MEMBERSHIP_FEE_BARCODE product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

                        MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + "." +
                                        Environment.NewLine + "Please collect the payment then close the transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        clsEvent.AddEventLn("Done!", true);
                        clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                        clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE + "transaction for customer: ");
                        LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
                        if (!this.CreateTransaction()) return;

                        txtBarCode.Text = Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE;
                        ReadBarCode();
                        int iRow = dgItems.CurrentRowIndex;

                        txtBarCode.Text = "";
                        CloseTransaction();

                        clsLocalDB.CommitAndDispose();
                    }
                    else { clsEvent.AddEventLn("Cancelled!"); }
                }
                catch (Exception ex)
                {
                    InsertErrorLogToFile(ex, "ERROR!!! Issuing internal credit-card.");
                }
                Cursor.Current = Cursors.Default;
            }

        }
Ejemplo n.º 15
0
		public void UpdateContact(Int64 TransactionID, DateTime TransactionDate, ContactDetails details)
		{
			try
			{
                string SQL = "CALL procTransactionContactUpdate(@TransactionID, @CustomerID, @CustomerName, @CustomerGroupName, @ModeOfTerms, @Terms);";

				MySqlCommand cmd = new MySqlCommand();
				cmd.CommandType = System.Data.CommandType.Text;
				cmd.CommandText = SQL;

				cmd.Parameters.AddWithValue("@TransactionID", TransactionID);
				cmd.Parameters.AddWithValue("@CustomerID", details.ContactID);
				cmd.Parameters.AddWithValue("@CustomerName", details.ContactName);
                cmd.Parameters.AddWithValue("@CustomerGroupName", details.ContactGroupName);
                cmd.Parameters.AddWithValue("@ModeOfTerms", details.ModeOfTerms.ToString("d"));
                cmd.Parameters.AddWithValue("@Terms", details.Terms);

				base.ExecuteNonQuery(cmd);
			}
			catch (Exception ex)
			{
				throw base.ThrowException(ex);
			}
		}
Ejemplo n.º 16
0
        private void SaveRecord()
        {
            Contacts clsContact = new Contacts();
            ContactDetails clsDetails = new ContactDetails();

            clsDetails.ContactID = Convert.ToInt32(lblContactID.Text);
            clsDetails.ContactCode = lblCustomerCode.Text;
            clsDetails.ContactName = txtLastName.Text + ", " + txtFirstName.Text + " " + txtMiddleName.Text;
            clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = ModeOfTerms.Months;
            clsDetails.Terms = 0;
            clsDetails.Address = txtAddress1.Text + " " + txtAddress2.Text + " " + txtCity.Text + " " + txtState.Text + " " + txtZipCode.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtBusinessPhoneNo.Text;
            clsDetails.Remarks = txtRemarks.Text;
            clsDetails.Debit = 0;
            clsDetails.Credit = 0;
            clsDetails.IsCreditAllowed = false;
            clsDetails.CreditLimit = 0;
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

            DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
            DateTime dteSpouseBirthDate = Constants.C_DATE_MIN_VALUE;
            DateTime dteAnniversaryDate = Constants.C_DATE_MIN_VALUE;

            dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
            dteSpouseBirthDate = DateTime.TryParse(txtSpouseBirthDate.Text, out dteSpouseBirthDate) ? dteSpouseBirthDate : Constants.C_DATE_MIN_VALUE;
            dteAnniversaryDate = DateTime.TryParse(txtAnniversaryDate.Text, out dteAnniversaryDate) ? dteAnniversaryDate : Constants.C_DATE_MIN_VALUE;

            ContactAddOnDetails clsAddOnDetails = new ContactAddOnDetails();
            clsAddOnDetails.ContactID = clsDetails.ContactID;
            clsAddOnDetails.Salutation = cboSalutation.SelectedItem.Value;
            clsAddOnDetails.FirstName = txtFirstName.Text;
            clsAddOnDetails.MiddleName = txtMiddleName.Text;
            clsAddOnDetails.LastName = txtLastName.Text;
            clsAddOnDetails.SpouseName = txtSpouseName.Text;
            clsAddOnDetails.BirthDate = dteBirthDate;
            clsAddOnDetails.SpouseBirthDate = dteSpouseBirthDate;
            clsAddOnDetails.AnniversaryDate = dteAnniversaryDate;
            clsAddOnDetails.Address1 = txtAddress1.Text;
            clsAddOnDetails.Address2 = txtAddress2.Text;
            clsAddOnDetails.City = txtCity.Text;
            clsAddOnDetails.State = txtState.Text;
            clsAddOnDetails.ZipCode = txtZipCode.Text;
            clsAddOnDetails.CountryID = int.Parse(cboCountry.SelectedItem.Value);
            clsAddOnDetails.CountryCode = cboCountry.SelectedItem.Text;
            clsAddOnDetails.BusinessPhoneNo = txtBusinessPhoneNo.Text;
            clsAddOnDetails.HomePhoneNo = txtHomePhoneNo.Text;
            clsAddOnDetails.MobileNo = txtMobileNo.Text;
            clsAddOnDetails.FaxNo = txtFaxNo.Text;
            clsAddOnDetails.EmailAddress = txtEmailAddress.Text;

            clsDetails.AdditionalDetails = clsAddOnDetails;

            clsContact.Update(clsDetails);

            clsContact.CommitAndDispose();
        }
Ejemplo n.º 17
0
		public void UpdateAgent(Int64 TransactionID, DateTime TransactionDate, ContactDetails details)
		{
			try
			{
				string SQL = "CALL procTransactionAgentUpdate(@TransactionID, @AgentID, @AgentName, @AgentPositionName, @AgentDepartmentName);";

				MySqlCommand cmd = new MySqlCommand();
				cmd.CommandType = System.Data.CommandType.Text;
				cmd.CommandText = SQL;

				cmd.Parameters.AddWithValue("@TransactionID", TransactionID);
				cmd.Parameters.AddWithValue("@AgentID", details.ContactID);
				cmd.Parameters.AddWithValue("@AgentName", details.ContactName);
				cmd.Parameters.AddWithValue("@AgentPositionName", details.PositionName);
				cmd.Parameters.AddWithValue("@AgentDepartmentName", details.DepartmentName);

				base.ExecuteNonQuery(cmd);
			}
			catch (Exception ex)
			{
				throw base.ThrowException(ex);
			}
		}
Ejemplo n.º 18
0
        private Int64 SaveRecord()
        {
            ContactDetails clsDetails = new ContactDetails();

            ERPConfig clsERPConfig = new ERPConfig();
            BarcodeHelper ean13 = new BarcodeHelper(BarcodeHelper.CustomerCode_Country_Code, BarcodeHelper.CustomerCode_ManufacturerCode, clsERPConfig.get_LastCustomerCode());
            clsDetails.ContactCode = ean13.CountryCode + ean13.ManufacturerCode + ean13.ProductCode + ean13.ChecksumDigit;
            clsERPConfig.CommitAndDispose();

            clsDetails.ContactName = txtLastName.Text + ", " + txtFirstName.Text + " " + txtMiddleName.Text;
            clsDetails.ContactGroupID = Convert.ToInt32(cboGroup.SelectedItem.Value);
            clsDetails.ModeOfTerms = ModeOfTerms.Months;
            clsDetails.Terms = 0;
            clsDetails.Address = txtAddress1.Text + " " + txtAddress2.Text + " " + txtCity.Text + " " + txtState.Text + " " + txtZipCode.Text;
            clsDetails.BusinessName = txtBusinessName.Text;
            clsDetails.TelephoneNo = txtBusinessPhoneNo.Text;
            clsDetails.Remarks = txtRemarks.Text;
            clsDetails.Debit = 0;
            clsDetails.Credit = 0;
            clsDetails.IsCreditAllowed = false;
            clsDetails.CreditLimit = 0;
            clsDetails.DepartmentID = Convert.ToInt16(cboDepartment.SelectedItem.Value);
            clsDetails.PositionID = Convert.ToInt16(cboPosition.SelectedItem.Value);

            DateTime dteBirthDate = Constants.C_DATE_MIN_VALUE;
            DateTime dteSpouseBirthDate = Constants.C_DATE_MIN_VALUE;
            DateTime dteAnniversaryDate = Constants.C_DATE_MIN_VALUE;

            dteBirthDate = DateTime.TryParse(txtBirthDate.Text, out dteBirthDate) ? dteBirthDate : Constants.C_DATE_MIN_VALUE;
            dteSpouseBirthDate = DateTime.TryParse(txtSpouseBirthDate.Text, out dteSpouseBirthDate) ? dteSpouseBirthDate : Constants.C_DATE_MIN_VALUE;
            dteAnniversaryDate = DateTime.TryParse(txtAnniversaryDate.Text, out dteAnniversaryDate) ? dteAnniversaryDate : Constants.C_DATE_MIN_VALUE;

            ContactAddOnDetails clsAddOnDetails = new ContactAddOnDetails();
            clsAddOnDetails.ContactID = clsDetails.ContactID;
            clsAddOnDetails.Salutation = cboSalutation.SelectedItem.Value;
            clsAddOnDetails.FirstName = txtFirstName.Text;
            clsAddOnDetails.MiddleName = txtMiddleName.Text;
            clsAddOnDetails.LastName = txtLastName.Text;
            clsAddOnDetails.SpouseName = txtSpouseName.Text;
            clsAddOnDetails.BirthDate = dteBirthDate;
            clsAddOnDetails.SpouseBirthDate = dteSpouseBirthDate;
            clsAddOnDetails.AnniversaryDate = dteAnniversaryDate;
            clsAddOnDetails.Address1 = txtAddress1.Text;
            clsAddOnDetails.Address2 = txtAddress2.Text;
            clsAddOnDetails.City = txtCity.Text;
            clsAddOnDetails.State = txtState.Text;
            clsAddOnDetails.ZipCode = txtZipCode.Text;
            clsAddOnDetails.CountryID = int.Parse(cboCountry.SelectedItem.Value);
            clsAddOnDetails.CountryCode = cboCountry.SelectedItem.Text;
            clsAddOnDetails.BusinessPhoneNo = txtBusinessPhoneNo.Text;
            clsAddOnDetails.HomePhoneNo = txtHomePhoneNo.Text;
            clsAddOnDetails.MobileNo = txtMobileNo.Text;
            clsAddOnDetails.FaxNo = txtFaxNo.Text;
            clsAddOnDetails.EmailAddress = txtEmailAddress.Text;

            clsDetails.AdditionalDetails = clsAddOnDetails;

            Contacts clsContact = new Contacts();
            Int64 id = clsContact.Insert(clsDetails);
            clsContact.CommitAndDispose();

            return id;
        }