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 Purchase Order 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; PO clsPO = new PO(); clsPO.GetConnection(); PODetails clsPODetails = new PODetails(); POItem clsPOItem = new POItem(clsPO.Connection, clsPO.Transaction); POItemDetails clsPOItemDetails; Contacts clsContact = new Contacts(clsPO.Connection, clsPO.Transaction); ContactDetails clsContactDetails; ContactGroups clsContactGroup = new ContactGroups(clsPO.Connection, clsPO.Transaction); ContactGroupDetails clsContactGroupDetails; Data.Unit clsUnit = new Data.Unit(clsPO.Connection, clsPO.Transaction); UnitDetails clsUnitDetails; ProductGroup clsProductGroup = new Data.ProductGroup(clsPO.Connection, clsPO.Transaction); ProductGroupDetails clsProductGroupDetails; ProductSubGroup clsProductSubGroup = new Data.ProductSubGroup(clsPO.Connection, clsPO.Transaction); ProductSubGroupDetails clsProductSubGroupDetails; Products clsProduct = new Products(clsPO.Connection, clsPO.Transaction); ProductDetails clsProductDetails; ProductVariations clsProductVariation = new ProductVariations(clsPO.Connection, clsPO.Transaction); ProductVariationDetails clsProductVariationDetails; Branch clsBranch = new Branch(clsPO.Connection, clsPO.Transaction); BranchDetails clsBranchDetails; long lngProductID = 0; long lngProductCtr = 0; while (xmlReader.Read()) { switch (xmlReader.NodeType) { case XmlNodeType.Element: if (xmlReader.Name == "PODetails") { clsPODetails.PONo = lnkPONo.Text; clsPODetails.PODate = DateTime.Parse(lblPODate.Text); clsPODetails.SupplierCode = xmlReader.GetAttribute("SupplierCode").ToString(); clsPODetails.SupplierContact = xmlReader.GetAttribute("SupplierContact").ToString(); clsPODetails.SupplierAddress = xmlReader.GetAttribute("SupplierAddress").ToString(); clsPODetails.SupplierTelephoneNo = xmlReader.GetAttribute("SupplierTelephoneNo").ToString(); clsPODetails.SupplierModeOfTerms = int.Parse(xmlReader.GetAttribute("SupplierModeOfTerms").ToString()); clsPODetails.SupplierTerms = int.Parse(xmlReader.GetAttribute("SupplierTerms").ToString()); clsPODetails.SupplierID = clsContact.Details(xmlReader.GetAttribute("SupplierCode").ToString()).ContactID; if (clsPODetails.SupplierID == 0) { clsContactDetails = new ContactDetails(); clsContactDetails.ContactCode = clsPODetails.SupplierCode; clsContactDetails.ContactName = xmlReader.GetAttribute("SupplierName").ToString(); clsContactDetails.BusinessName = clsPODetails.SupplierContact; clsContactDetails.Address = clsPODetails.SupplierAddress; clsContactDetails.TelephoneNo = clsPODetails.SupplierTelephoneNo; clsContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), clsPODetails.SupplierModeOfTerms.ToString()); clsContactDetails.Terms = clsPODetails.SupplierTerms; clsContactDetails.Remarks = "Added in from Imported PO #"; clsContactDetails.ContactGroupID = int.Parse(Contacts.DEFAULT_SUPPLIER_ID.ToString("d")); clsContactDetails.DateCreated = DateTime.Now; clsPODetails.SupplierID = clsContact.Insert(clsContactDetails); } clsPODetails.RequiredDeliveryDate = DateTime.Parse(xmlReader.GetAttribute("RequiredDeliveryDate").ToString()); clsPODetails.BranchID = clsBranch.Details(xmlReader.GetAttribute("BranchCode")).BranchID; if (clsPODetails.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"); clsPODetails.BranchID = clsBranch.Insert(clsBranchDetails); } clsPODetails.PurchaserID = long.Parse(xmlReader.GetAttribute("PurchaserID")); clsPODetails.PurchaserName = xmlReader.GetAttribute("PurchaserName"); clsPODetails.SubTotal = decimal.Parse(xmlReader.GetAttribute("SubTotal")); clsPODetails.Discount = decimal.Parse(xmlReader.GetAttribute("Discount")); clsPODetails.DiscountApplied = decimal.Parse(xmlReader.GetAttribute("DiscountApplied")); clsPODetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), xmlReader.GetAttribute("DiscountType")); clsPODetails.VAT = decimal.Parse(xmlReader.GetAttribute("VAT")); clsPODetails.VatableAmount = decimal.Parse(xmlReader.GetAttribute("VatableAmount")); clsPODetails.EVAT = decimal.Parse(xmlReader.GetAttribute("EVAT")); clsPODetails.EVatableAmount = decimal.Parse(xmlReader.GetAttribute("EVatableAmount")); clsPODetails.LocalTax = decimal.Parse(xmlReader.GetAttribute("LocalTax")); clsPODetails.Freight = decimal.Parse(xmlReader.GetAttribute("Freight")); clsPODetails.Deposit = decimal.Parse(xmlReader.GetAttribute("Deposit")); clsPODetails.UnpaidAmount = decimal.Parse(xmlReader.GetAttribute("UnpaidAmount")); clsPODetails.PaidAmount = decimal.Parse(xmlReader.GetAttribute("PaidAmount")); clsPODetails.TotalItemDiscount = decimal.Parse(xmlReader.GetAttribute("TotalItemDiscount")); clsPODetails.Status = (POStatus)Enum.Parse(typeof(POStatus), xmlReader.GetAttribute("Status")); clsPODetails.Remarks = xmlReader.GetAttribute("Remarks"); clsPODetails.SupplierDRNo = xmlReader.GetAttribute("SupplierDRNo"); clsPODetails.DeliveryDate = DateTime.Parse(xmlReader.GetAttribute("DeliveryDate")); clsPODetails.CancelledDate = DateTime.Parse(xmlReader.GetAttribute("CancelledDate")); clsPODetails.Remarks = xmlReader.GetAttribute("Remarks"); clsPODetails.CancelledRemarks = xmlReader.GetAttribute("CancelledRemarks"); clsPODetails.CancelledByID = long.Parse(xmlReader.GetAttribute("CancelledByID")); clsPO.Update(clsPODetails); } else if (xmlReader.Name == "POItem") { clsPOItemDetails = new POItemDetails(); clsPOItemDetails.POID = long.Parse(lblPOID.Text); clsPOItemDetails.ProductCode = xmlReader.GetAttribute("ProductCode"); clsPOItemDetails.BarCode = xmlReader.GetAttribute("BarCode"); clsPOItemDetails.Description = xmlReader.GetAttribute("ProductDesc"); clsPOItemDetails.ProductSubGroup = xmlReader.GetAttribute("ItemProductSubGroup"); clsPOItemDetails.ProductGroup = xmlReader.GetAttribute("ItemProductGroup"); clsPOItemDetails.ProductUnitID = Convert.ToInt32(xmlReader.GetAttribute("ItemProductUnitID")); clsPOItemDetails.ProductUnitCode = xmlReader.GetAttribute("ItemProductUnitCode"); clsPOItemDetails.Quantity = Convert.ToDecimal(xmlReader.GetAttribute("ItemQuantity")); clsPOItemDetails.UnitCost = Convert.ToDecimal(xmlReader.GetAttribute("ItemUnitCost")); clsPOItemDetails.Discount = Convert.ToDecimal(xmlReader.GetAttribute("ItemDiscount")); clsPOItemDetails.DiscountApplied = Convert.ToDecimal(xmlReader.GetAttribute("ItemDiscountApplied")); clsPOItemDetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), xmlReader.GetAttribute("ItemDiscountType")); clsPOItemDetails.Amount = Convert.ToDecimal(xmlReader.GetAttribute("ItemAmount")); clsPOItemDetails.IsVatable = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemIsVatable"))); clsPOItemDetails.VatableAmount = Convert.ToDecimal(xmlReader.GetAttribute("ItemVatableAmount")); clsPOItemDetails.EVatableAmount = Convert.ToDecimal(xmlReader.GetAttribute("ItemEVatableAmount")); clsPOItemDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemLocalTax")); clsPOItemDetails.VAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemVAT")); clsPOItemDetails.EVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemEVAT")); clsPOItemDetails.LocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemLocalTax")); clsPOItemDetails.isVATInclusive = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemisVATInclusive"))); clsPOItemDetails.IsVatable = Convert.ToBoolean(Convert.ToInt16(xmlReader.GetAttribute("ItemIsVatable"))); clsPOItemDetails.POItemStatus = (POItemStatus)Enum.Parse(typeof(POItemStatus), xmlReader.GetAttribute("ItemPOItemStatus")); clsPOItemDetails.VariationMatrixID = Convert.ToInt64(xmlReader.GetAttribute("ItemVariationMatrixID")); clsPOItemDetails.MatrixDescription = xmlReader.GetAttribute("ItemBaseVariationDescription"); clsPOItemDetails.ProductGroup = xmlReader.GetAttribute("ProductGroup"); clsPOItemDetails.ProductSubGroup = xmlReader.GetAttribute("ProductSubGroup"); clsPOItemDetails.Remarks = xmlReader.GetAttribute("ItemRemarks"); clsPOItemDetails.SellingPrice = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingPrice")); clsPOItemDetails.SellingVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingVAT")); clsPOItemDetails.SellingEVAT = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingEVAT")); clsPOItemDetails.SellingLocalTax = Convert.ToDecimal(xmlReader.GetAttribute("ItemSellingLocalTax")); clsPOItemDetails.OldSellingPrice = Convert.ToDecimal(xmlReader.GetAttribute("ItemOldSellingPrice")); clsPOItemDetails.ProductID = clsProduct.Details(clsPOItemDetails.BarCode).ProductID; lngProductID = clsPOItemDetails.ProductID; if (clsPOItemDetails.ProductID == 0) { clsPOItemDetails.ProductID = clsProduct.Details(clsPOItemDetails.ProductCode).ProductID; if (clsPOItemDetails.ProductID == 0) { //insert new product clsProductDetails = new ProductDetails(); clsProductDetails.BarCode = clsPOItemDetails.BarCode; clsProductDetails.ProductCode = clsPOItemDetails.ProductCode; clsProductDetails.ProductDesc = clsPOItemDetails.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 = clsPODetails.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 = clsPODetails.SupplierCode; clsContactDetails.ContactName = clsPODetails.SupplierContact; clsContactDetails.ModeOfTerms = (ModeOfTerms)Enum.Parse(typeof(ModeOfTerms), clsPODetails.SupplierModeOfTerms.ToString()); clsContactDetails.Terms = clsPODetails.SupplierTerms; clsContactDetails.Address = clsPODetails.SupplierAddress; clsContactDetails.BusinessName = clsPODetails.SupplierContact; clsContactDetails.TelephoneNo = clsPODetails.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); } clsPOItemDetails.ProductID = clsProduct.Insert(clsProductDetails); } else { //product code already exist but not the same barcode clsProduct.UpdateBarcode(clsPOItemDetails.ProductID, clsPOItemDetails.BarCode); } lngProductID = clsPOItemDetails.ProductID; } clsPOItem.Insert(clsPOItemDetails); clsPODetails = new PODetails(); clsPODetails.POID = clsPOItemDetails.POID; clsPODetails.DiscountApplied = Convert.ToDecimal(txtPODiscountApplied.Text); clsPODetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODiscountType.SelectedItem.Value); clsPODetails.Discount2Applied = Convert.ToDecimal(txtPODiscount2Applied.Text); clsPODetails.Discount2Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODiscount2Type.SelectedItem.Value); clsPODetails.Discount3Applied = Convert.ToDecimal(txtPODiscount2Applied.Text); clsPODetails.Discount3Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODiscount3Type.SelectedItem.Value); clsPO = new PO(clsPOItem.Connection, clsPOItem.Transaction); clsPO.UpdateDiscount(clsPOItemDetails.POID, clsPODetails.DiscountApplied, clsPODetails.DiscountType, clsPODetails.Discount2Applied, clsPODetails.Discount2Type, clsPODetails.Discount3Applied, clsPODetails.Discount3Type); clsPODetails = clsPO.Details(clsPOItemDetails.POID); UpdateFooter(clsPODetails); 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(); clsPO.CommitAndDispose(); LoadRecord(); LoadItems(); } else { string stScript = "<Script>"; stScript += "window.alert('Please select Purchase Order file to upload.')"; stScript += "</Script>"; Response.Write(stScript); } }
private Int64 SaveRecord() { PO clsPO = new PO(); clsPO.GetConnection(); lblPONo.Text = Constants.PURCHASE_ORDER_CODE + CompanyDetails.BECompanyCode + DateTime.Now.Year.ToString() + clsPO.LastTransactionNo(); PODetails clsDetails = new PODetails(); clsDetails.PONo = lblPONo.Text; clsDetails.PODate = Convert.ToDateTime(lblPODate.Text); clsDetails.SupplierID = Convert.ToInt64(cboSupplier.SelectedItem.Value); clsDetails.SupplierCode = cboSupplier.SelectedItem.Text; clsDetails.SupplierContact = txtSupplierContact.Text; clsDetails.SupplierAddress = txtSupplierAddress.Text; clsDetails.SupplierTelephoneNo = txtSupplierTelephoneNo.Text; clsDetails.SupplierTerms = Convert.ToInt32(lblTerms.Text); clsDetails.SupplierTINNo = txtSupplierTINNo.Text; clsDetails.SupplierLTONo = txtSupplierLTONo.Text; switch (lblModeOfterms.Text) { case "Days": clsDetails.SupplierModeOfTerms = 0; break; case "Months": clsDetails.SupplierModeOfTerms = 1; break; case "Years": clsDetails.SupplierModeOfTerms = 2; break; } clsDetails.RequiredDeliveryDate = Convert.ToDateTime(txtRequiredDeliveryDate.Text); clsDetails.RID = Convert.ToInt64(txtRID.Text); clsDetails.BranchID = Convert.ToInt16(cboBranch.SelectedItem.Value); clsDetails.PurchaserID = Convert.ToInt64(Session["UID"].ToString()); clsDetails.PurchaserName = Session["Name"].ToString(); clsDetails.Status = POStatus.Open; clsDetails.Remarks = txtRemarks.Text; bool boIsePurchaseOrder = bool.TryParse(lblIsePurchaseOrder.Text, out boIsePurchaseOrder) ? boIsePurchaseOrder : false; clsDetails.IncludeIneSales = boIsePurchaseOrder; Int64 id = clsPO.Insert(clsDetails); clsPO.CommitAndDispose(); return id; }