public invoice(dynamic row, string callingPage, string recieptType) { InitializeComponent(); try { if (callingPage == "Purchase") { if (recieptType == "Approved") { grdPrintPurchase.Visibility = Visibility.Visible; grdReturnProducts.Visibility = Visibility.Collapsed; _supliers = controller.GetSuppliers().ToList(); SupplierModel suplier = _supliers?.FirstOrDefault(x => x.Id == row.SuplierCode); _supplierCode = row.SuplierCode; ResponseVm responce = productController.GetProductsByCompanyAndBranch(); _products = responce.Response.Cast <ProductModel>().ToList(); _orignalLstStocks = purchaseController.GetStocksByPurchaseId(row.PurchaseId); _orignalLstPurchaseRetrun = purchaseController.GetPurchaseReturns(row.PurchaseId); if (row.Status == (int)CommonEnum.PurchaseStatus.WaitingForApproval) { BindItems(row, suplier); } else { txtFromPhone.Text = string.Empty; txtFromAddress.Text = "Any"; txtFromCity.Text = "Mohali"; //Convert.ToString(suplier?.); // txtFromEmail.Text = "*****@*****.**"; txtToPhone.Text = Convert.ToString(suplier?.Mobile); txtToAddress.Text = Convert.ToString(suplier?.Address); txtToCity.Text = string.Empty; //Convert.ToString(suplier?.); // txtToEmail.Text = suplier?.Email; List <PurchaseStockModel> purchaseStockDataWIthPurchaseStockModel = _orignalLstStocks.Select(x => new PurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.SellingPrice, x.MRP, Convert.ToInt32(x.ItemTaxPercentage), x.BatchNo, x.StockId)).ToList(); purchaseStocks = new ObservableCollection <PurchaseStockModel>(purchaseStockDataWIthPurchaseStockModel); var retrunedPurchaseStocks = GetGroupOfPurchaseStocks(purchaseStocks); List <PurchaseStockModel> stocksofetrunedPurchased = new List <PurchaseStockModel>(retrunedPurchaseStocks); ProductAmount retrunedAmount = CommonFunctions.RetrunProductAmountWithReturnProduct(stocksofetrunedPurchased, Convert.ToString(row.DiscountPercentage), string.Empty, Convert.ToString(row.TaxPercentage), Convert.ToString(row.SurChargeAmount)); List <PrintPurchaseStockModel> purchaseStockData = stocksofetrunedPurchased.Select(x => new PrintPurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, (x.Quantity - x.ReturnedQuantity) * x.CostPrice)).ToList(); // _orignalLstStocks = purchaseController.GetStocks(row.PurchaseId); // List<PurchaseStockModel> purchaseStockDataWIthPurchaseStockModel = _orignalLstStocks.Select(x => new PurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.SellingPrice, x.MRP, Convert.ToInt32(x.ItemTaxPercentage), x.BatchNo, x.StockId)).ToList(); // List<PrintPurchaseStockModel> purchaseStockData = _orignalLstStocks.Select(x => new PrintPurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.Quantity * x.CostPrice)).ToList(); // purchaseStocks = new ObservableCollection<PurchaseStockModel>(purchaseStockData); //ProductAmount amount = CommonFunctions.RetrunProductAmount(stocksofetrunedPurchased, Convert.ToString(row.DiscountPercentage), string.Empty, Convert.ToString(row.TaxPercentage), Convert.ToString(row.SurChargeAmount)); SetTextToTextBoxes(row, retrunedAmount); lstPrintPurchase.ItemsSource = purchaseStockData; Print(); } } else { List <DomainContracts.DataContracts.PrintPurchaseReturnModel> objPrintModel = new List <DomainContracts.DataContracts.PrintPurchaseReturnModel>(); grdPrintPurchase.Visibility = Visibility.Collapsed; grdReturnProducts.Visibility = Visibility.Visible; _supliers = controller.GetSuppliers().ToList(); SupplierModel suplier = _supliers?.FirstOrDefault(x => x.Id == row.SuplierCode); _supplierCode = row.SuplierCode; ResponseVm responce = productController.GetProductsByCompanyAndBranch(); _products = responce.Response.Cast <ProductModel>().ToList(); _orignalLstStocks = purchaseController.GetStocksByPurchaseId(row.PurchaseId); _orignalLstPurchaseRetrun = purchaseController.GetPurchaseReturns(row.PurchaseId); txtFromPhone.Text = Convert.ToString(suplier?.Mobile); txtFromAddress.Text = Convert.ToString(suplier?.Address); txtFromCity.Text = string.Empty; //Convert.ToString(suplier?.); //txtFromEmail.Text = suplier?.Email; txtToPhone.Text = string.Empty; txtToAddress.Text = "Any"; txtToCity.Text = "Mohali"; //Convert.ToString(suplier?.); // txtToEmail.Text = "*****@*****.**"; List <PurchaseStockModel> purchaseStockDataWIthPurchaseStockModel = _orignalLstStocks.Select(x => new PurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.SellingPrice, x.MRP, Convert.ToInt32(x.ItemTaxPercentage), x.BatchNo, x.StockId)).ToList(); purchaseStocks = new ObservableCollection <PurchaseStockModel>(purchaseStockDataWIthPurchaseStockModel); var retrunedPurchaseStocks = GetGroupOfPurchaseStocks(purchaseStocks); List <PurchaseStockModel> stocksofetrunedPurchased = new List <PurchaseStockModel>(retrunedPurchaseStocks); ProductAmount retrunedAmount = CommonFunctions.RetrunProductAmountOfReturnProduct(stocksofetrunedPurchased, Convert.ToString(row.DiscountPercentage), string.Empty, Convert.ToString(row.TaxPercentage), Convert.ToString(row.SurChargeAmount)); List <PrintPurchaseStockModel> purchaseStockData = stocksofetrunedPurchased.Select(x => new PrintPurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, (x.ReturnedQuantity) * x.CostPrice)).ToList(); objPrintModel = purchaseStockData.Select(x => new DomainContracts.DataContracts.PrintPurchaseReturnModel(x.PrintProductCode, x.PrintProductName, x.PrintQuantity, x.PrintCostPrice, x.PrintTotal, _orignalLstPurchaseRetrun.Count > 0 ? _orignalLstPurchaseRetrun.FirstOrDefault(z => z.ProductCode == x.PrintProductCode).Reason : string.Empty, _orignalLstPurchaseRetrun.Count > 0 ? _orignalLstPurchaseRetrun.FirstOrDefault(z => z.ProductCode == x.PrintProductCode).Quantity : 0)).ToList(); SetTextToTextBoxes(row, retrunedAmount); lstPrintReturnPurchase.ItemsSource = objPrintModel; Print(); // BindItems(row, suplier); } } else if (callingPage == "DirectPurchase") { grdPrintPurchase.Visibility = Visibility.Visible; grdReturnProducts.Visibility = Visibility.Collapsed; _supliers = controller.GetSuppliers().ToList(); SupplierModel suplier = _supliers?.FirstOrDefault(x => x.Id == row.SuplierCode); _supplierCode = row.SuplierCode; ResponseVm responce = productController.GetProductsByCompanyAndBranch(); _products = responce.Response.Cast <ProductModel>().ToList(); _orignalLstStocks = purchaseController.GetDirectStocks(row.PurchaseId); txtFromPhone.Text = string.Empty; txtFromAddress.Text = "Any"; txtFromCity.Text = "Mohali"; //Convert.ToString(suplier?.); // txtFromEmail.Text = "*****@*****.**"; txtToPhone.Text = Convert.ToString(suplier?.Mobile); txtToAddress.Text = Convert.ToString(suplier?.Address); txtToCity.Text = string.Empty; //Convert.ToString(suplier?.); // txtToEmail.Text = suplier?.Email; List <PurchaseStockModel> purchaseStockDataWIthPurchaseStockModel = _orignalLstStocks.Select(x => new PurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.SellingPrice, x.MRP, Convert.ToInt32(x.ItemTaxPercentage), x.BatchNo, x.StockId)).ToList(); purchaseStocks = new ObservableCollection <PurchaseStockModel>(purchaseStockDataWIthPurchaseStockModel); var retrunedPurchaseStocks = GetGroupOfPurchaseStocksForDirectPurchase(purchaseStocks); List <PurchaseStockModel> stocksofetrunedPurchased = new List <PurchaseStockModel>(retrunedPurchaseStocks); ProductAmount retrunedAmount = CommonFunctions.RetrunProductAmountWithReturnProduct(stocksofetrunedPurchased, Convert.ToString(row.DiscountPercentage), string.Empty, Convert.ToString(row.TaxPercentage), Convert.ToString(row.SurChargeAmount)); List <PrintPurchaseStockModel> purchaseStockData = stocksofetrunedPurchased.Select(x => new PrintPurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, (x.Quantity - x.ReturnedQuantity) * x.CostPrice)).ToList(); // _orignalLstStocks = purchaseController.GetStocks(row.PurchaseId); // List<PurchaseStockModel> purchaseStockDataWIthPurchaseStockModel = _orignalLstStocks.Select(x => new PurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.SellingPrice, x.MRP, Convert.ToInt32(x.ItemTaxPercentage), x.BatchNo, x.StockId)).ToList(); // List<PrintPurchaseStockModel> purchaseStockData = _orignalLstStocks.Select(x => new PrintPurchaseStockModel(x.ProductCode, GetProductName(Convert.ToInt32(x.ProductCode)), x.Quantity, x.CostPrice, x.Quantity * x.CostPrice)).ToList(); // purchaseStocks = new ObservableCollection<PurchaseStockModel>(purchaseStockData); //ProductAmount amount = CommonFunctions.RetrunProductAmount(stocksofetrunedPurchased, Convert.ToString(row.DiscountPercentage), string.Empty, Convert.ToString(row.TaxPercentage), Convert.ToString(row.SurChargeAmount)); SetTextToTextBoxes(row, retrunedAmount); lstPrintPurchase.ItemsSource = purchaseStockData; Print(); } } catch (Exception ex) { } }