From 75c79a8f48b19a40b1a86b7206fbb5302c947567 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期五, 18 十月 2024 13:56:17 +0800
Subject: [PATCH] update

---
 jrj/project/business/QuoteFile.cpp |  144 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 143 insertions(+), 1 deletions(-)

diff --git a/jrj/project/business/QuoteFile.cpp b/jrj/project/business/QuoteFile.cpp
index 8f3644f..f9b3d37 100644
--- a/jrj/project/business/QuoteFile.cpp
+++ b/jrj/project/business/QuoteFile.cpp
@@ -2802,13 +2802,153 @@
 		return 1;
 	}
 
-	int OnCellItemChanged(TEvent* evt, int p)
+	
+	int ReCalcPOPrice()
+	{
+		int startRow = getItemHeadRow(dw_cell);
+		if (startRow < 1) return 1;
+		startRow++;
+
+		int sRow = dw_cell.GetRow();
+		int eRow = dw_cell.GetAnchorRow();
+		int sCol = dw_cell.GetColumn();
+		int eCol = dw_cell.GetAnchorCol();
+		auto Exchange = [](int& first, int& second)
+			{
+				int tmp = first;first = second;second = tmp;
+			};
+		if (sRow > eRow)Exchange(sRow, eRow);
+		if (sCol > eCol)Exchange(sCol, eCol);
+
+		if (action != L"purch") return 1;
+
+		if (sRow < startRow  && eRow < startRow) return 1;
+		if (sRow < startRow) sRow = startRow;
+		int colPrice0 = getItemCol(dw_cell, startRow - 1, L"价格");
+		int colPrice1 = getItemCol(dw_cell, startRow - 1, L"价格1");
+		int colPrice2 = getItemCol(dw_cell, startRow - 1, L"价格2");
+		int colPrice3 = getItemCol(dw_cell, startRow - 1, L"价格3");
+		int colPrice = getItemCol(dw_cell, startRow - 1, L"采购价");
+		int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
+		bool shouldRedraw = false;
+
+		if ((colPrice0 >= sCol && colPrice0 <= eCol) || (colPrice1 >= sCol && colPrice1 <= eCol)
+			|| (colPrice2 >= sCol && colPrice2 <= eCol) || (colPrice3 >= sCol && colPrice3 <= eCol))
+		{
+			for (int row = sRow; row <= eRow; row++)
+			{
+				if (dw_cell.GetItemString(row, colSKUID) == L"")continue;
+				for (int col = sCol; col <= eCol; col++)
+				{
+					if (colPrice0 == col || colPrice1 == col || colPrice2 == col || colPrice3 == col)
+					{
+						xstring pricea = L"";
+						xstring priceb = L"";
+						xstring pricec = L"";
+
+						xstring price0 = dw_cell.GetItemString(row, colPrice0);
+						xstring price1 = dw_cell.GetItemString(row, colPrice1);
+						xstring price2 = L"";
+						if (colPrice2 > 0) price2 = dw_cell.GetItemString(row, colPrice2);
+						xstring price3 = L"";
+						if (colPrice3 > 0) price3 = dw_cell.GetItemString(row, colPrice3);
+
+						xstring price = L"";
+
+						if (price0 != L"")
+						{
+							price = price0;
+							if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1)
+							{
+								alert(L"价格中没指定ABC");
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							}
+							else if (price.find(L"A") > 0 || price.find(L"a") > 0)
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							else if (price.find(L"B") > 0 || price.find(L"b") > 0)
+								if (priceb == L"") priceb = price; else priceb += L"+" + price;
+							else if (price.find(L"C") > 0 || price.find(L"c") > 0)
+								if (pricec == L"") pricec = price; else pricec += L"+" + price;
+						}
+						if (price1 != L"")
+						{
+							price = price1;
+							if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1)
+							{
+								alert(L"价格中没指定ABC");
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							}
+							else if (price.find(L"A") > 0 || price.find(L"a") > 0)
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							else if (price.find(L"B") > 0 || price.find(L"b") > 0)
+								if (priceb == L"") priceb = price; else priceb += L"+" + price;
+							else if (price.find(L"C") > 0 || price.find(L"c") > 0)
+								if (pricec == L"") pricec = price; else pricec += L"+" + price;
+						}
+						if (price2 != L"")
+						{
+							price = price2;
+							if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1)
+							{
+								alert(L"价格中没指定ABC");
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							}
+							else if (price.find(L"A") > 0 || price.find(L"a") > 0)
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							else if (price.find(L"B") > 0 || price.find(L"b") > 0)
+								if (priceb == L"") priceb = price; else priceb += L"+" + price;
+							else if (price.find(L"C") > 0 || price.find(L"c") > 0)
+								if (pricec == L"") pricec = price; else pricec += L"+" + price;
+						}
+						if (price3 != L"")
+						{
+							price = price3;
+							if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1)
+							{
+								alert(L"价格中没指定ABC");
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							}
+							else if (price.find(L"A") > 0 || price.find(L"a") > 0)
+								if (pricea == L"") pricea = price; else pricea += L"+" + price;
+							else if (price.find(L"B") > 0 || price.find(L"b") > 0)
+								if (priceb == L"") priceb = price; else priceb += L"+" + price;
+							else if (price.find(L"C") > 0 || price.find(L"c") > 0)
+								if (pricec == L"") pricec = price; else pricec += L"+" + price;
+						}
+						price = pricec;
+						if (priceb != L"")
+						{
+							if (price == L"")
+								price = priceb;
+							else
+								price += L"+" + priceb;
+						}
+						if (pricea != L"")
+						{
+							if (price == L"")
+								price = pricea;
+							else
+								price += L"+" + pricea;
+						}
+						dw_cell.SetItemString(row, colPrice, price);
+						shouldRedraw = true;
+						
+					}
+				}
+			}
+		}
+		if(shouldRedraw)dw_cell.Redraw();
+		return 1;
+	}
+
+	int OnCellItemChanged(TEvent* evt, LPARAM p)
 	{
 		CELLNMHDR&  hdr = *(CELLNMHDR*)evt->notify.pnmh;
 		xstring value = hdr.data;
 		int row = hdr.currentrow;
 		int col = hdr.currentcol;
 
+		
 		trace(L"\r\n----row:" + xstring(row) + L"--col:" + xstring(col));
 		trace(L"\r\n----row:" + xstring(row) + L"--col:" + xstring(col));
 		trace(L"\r\n--value:" + dw_cell.GetItemString(row, col) + L"--orig:" + orivalue);
@@ -3458,6 +3598,7 @@
 		else if (comdid == L"xmPurched")
 		{
 			//if(makeMessage(L"/task/quote/purchar/backtosaler")==-1) return 1;
+			//dw_cell.SetRowColumn(dw_cell.GetRow(), dw_cell.GetColumn());
 			return OnSaleBack();
 		}
 		else if (comdid == L"xmPurch2")
@@ -3566,6 +3707,7 @@
 				}
 			}
 			SendCtrlCmd(dw_cell, cmd);
+			if (comdid == L"IK_xmEditCut"|| comdid == L"IK_xmEditCut")ReCalcPOPrice();
 			return 1;
 		}
 		else if (comdid == L"xmFormatCellDeleteRow")

--
Gitblit v1.9.3