DesignFrom.cpp 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940
  1. // DesignFrom.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "DesignFrom.h"
  6. #include "MyMdi.H"
  7. #include "ModifyDinDan.h"
  8. #include "ClientRequirement.h"
  9. #include "ChooseDesignSkin.h"
  10. #include "./helper/ffsco.h"
  11. #include "SelectPhotoDlg.h"
  12. #include "ShowPic.h"
  13. #include "Login2.h"
  14. #include "ShowCut.h"
  15. #include "CompressOption.h"
  16. #include "DlgChuXiuInfo.h"
  17. #include "N8Process.h"
  18. #include "DlgN8ViewReuslt.h"
  19. #include "DlgCloudSelection.h"
  20. #include "DlgCloundResult.h"
  21. #ifdef _DEBUG
  22. #define new DEBUG_NEW
  23. #undef THIS_FILE
  24. static char THIS_FILE[] = __FILE__;
  25. #endif
  26. #pragma comment(lib, "Shlwapi.lib")
  27. IMPLEMENT_DYNCREATE(DesignFrom, MyFormView)
  28. DesignFrom::DesignFrom() : MyFormView(DesignFrom::IDD)
  29. {
  30. m_filter = _T("");
  31. m_nAdd = 0;
  32. if (g_bAllBranch)
  33. {
  34. m_nAdd = 1;
  35. }
  36. }
  37. DesignFrom::~DesignFrom()
  38. {
  39. }
  40. void DesignFrom::DoDataExchange(CDataExchange* pDX)
  41. {
  42. MyFormView::DoDataExchange(pDX);
  43. DDX_Control(pDX, IDC_COMBO1, m_combo1);
  44. DDX_Control(pDX, IDC_LIST2, m_List1);
  45. DDX_Control(pDX, IDC_STATIC1, m_static1);
  46. DDX_CBString(pDX, IDC_COMBO1, m_filter);
  47. }
  48. BEGIN_MESSAGE_MAP(DesignFrom, MyFormView)
  49. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  50. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  51. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  52. ON_WM_TIMER()
  53. ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto)
  54. ON_BN_CLICKED(IDC_BUTexportphoto, OnBUTexportphoto)
  55. ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto)
  56. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  57. ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
  58. ON_BN_CLICKED(IDC_BUTimportphoto2, OnBUTimportphoto2)
  59. ON_BN_CLICKED(IDC_BUTimportphoto3, OnBUTimportphoto3)
  60. ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
  61. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  62. ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter)
  63. ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3)
  64. ON_BN_CLICKED(BTN_CloundXY, OnBnClickedCloundxy)
  65. ON_BN_CLICKED(BTN_RESULT, OnBnClickedResult)
  66. END_MESSAGE_MAP()
  67. #ifdef _DEBUG
  68. void DesignFrom::AssertValid() const
  69. {
  70. MyFormView::AssertValid();
  71. }
  72. void DesignFrom::Dump(CDumpContext& dc) const
  73. {
  74. MyFormView::Dump(dc);
  75. }
  76. #endif //_DEBUG
  77. /////////////////////////////////////////////////////////////////////////////
  78. void DesignFrom::OnInitialUpdate()
  79. {
  80. MyFormView::OnInitialUpdate();
  81. CMyMdi Mdi;
  82. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  83. GetDlgItem(IDC_BUTimportphoto3)->EnableWindow(IsHasRights2new(12));
  84. GetDlgItem(IDC_BUTTON3)->EnableWindow(IsHasRights2new(12));
  85. GetDlgItem(IDC_BUTshowphoto)->EnableWindow(IsHasRights2new(15));
  86. CRect rc2;
  87. GetWindowRect(rc2);
  88. ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
  89. EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);
  90. if (g_bAllBranch == 0)
  91. {
  92. int idarray[] = { IDC_BUTexportphoto, IDC_BUTimportphoto, IDC_BUTimportphoto2, IDC_BUTimportphoto3, IDC_BUTshowphoto, IDC_BUTTON3, IDC_BUTclose };
  93. int idcount = 7;
  94. int btnwid;
  95. CRect prerc;
  96. for (int a = idcount - 2; a >= 0; a--)
  97. {
  98. GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
  99. ScreenToClient(prerc);
  100. GetDlgItem(idarray[a])->GetWindowRect(rc2);
  101. ScreenToClient(rc2);
  102. btnwid = rc2.Width();
  103. rc2.right = prerc.left;
  104. rc2.left = rc2.right - btnwid;
  105. GetDlgItem(idarray[a])->MoveWindow(rc2);
  106. }
  107. }
  108. else
  109. {
  110. GetDlgItem(IDC_BUTshowphoto)->ShowWindow(SW_HIDE);
  111. GetDlgItem(IDC_BUTprint3)->ShowWindow(SW_SHOWNORMAL);
  112. int idarray[] = { IDC_BUTprint3, IDC_BUTexportphoto, IDC_BUTimportphoto, IDC_BUTimportphoto2, IDC_BUTimportphoto3, IDC_BUTTON3, IDC_BUTclose };
  113. int idcount = 7;
  114. int btnwid;
  115. CRect prerc;
  116. for (int a = idcount - 2; a >= 0; a--)
  117. {
  118. GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
  119. ScreenToClient(prerc);
  120. GetDlgItem(idarray[a])->GetWindowRect(rc2);
  121. ScreenToClient(rc2);
  122. btnwid = rc2.Width();
  123. rc2.right = prerc.left;
  124. rc2.left = rc2.right - btnwid;
  125. GetDlgItem(idarray[a])->MoveWindow(rc2);
  126. }
  127. }
  128. m_static1.SetFont(&g_titlefont);
  129. // Jeff.在精修状态后添加精修日期;
  130. if (g_bAllBranch == 0)
  131. {
  132. #ifdef CHILD_VERSION
  133. // 19 列;
  134. m_List1.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;精修,100;精修日期,100;设计,100;设计日期,100;看设计,100;看设计日期,100;加急,100;取件日期,100;看设计要求,100;接单人,100;看设计人,100;设计师,100;套系名称,100;套系价格,100;手机,100;固定电话,100");
  135. #else
  136. // 19 列;
  137. m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;精修,100;精修日期,100;设计,100;设计日期,100;看设计,100;看设计日期,100;加急,100;取件日期,100;看设计要求,100;接单人,100;看设计人,100;设计师,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100");
  138. #endif
  139. m_List1.LoadColumnInfo(119);
  140. }
  141. else
  142. {
  143. #ifdef CHILD_VERSION
  144. // 20 列;
  145. m_List1.SetHeadings("店名,100;订单号,100;家长姓名,100;宝宝姓名,100;精修,100;精修日期,100;设计,100;设计日期,100;看设计,100;看设计日期,100;加急,100;取件日期,100;看设计要求,100;接单人,100;看设计人,100;设计师,100;套系名称,100;套系价格,100;手机,100;固定电话,100");
  146. #else
  147. m_List1.SetHeadings("店名,100;订单号,100;男宾姓名,100;女宾姓名,100;精修,100;精修日期,100;设计,100;设计日期,100;看设计,100;看设计日期,100;加急,100;取件日期,100;看设计要求,100;接单人,100;看设计人,100;设计师,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100");
  148. #endif
  149. m_List1.LoadColumnInfo(199);
  150. }
  151. GetData();
  152. m_combo1.AddString(g_user.name);
  153. m_combo1.GetWindowRect(rc2);
  154. ScreenToClient(rc2);
  155. rc2.bottom += 200;
  156. m_combo1.MoveWindow(rc2);
  157. GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2);
  158. SetComboHei(&m_combo1, rc2.Height());
  159. GetDlgItem(IDC_BUTexportphoto)->EnableWindow(IsHasRights2new(11));
  160. m_bN8 = AfxGetApp()->GetProfileInt(LYFZVERSION, "N8SampleChoose", 0);
  161. if ( m_bN8 )
  162. {
  163. SetDlgItemText(IDC_STATIC1,_T("N8选版"));
  164. SetDlgItemText(IDC_BUTimportphoto, _T("导入N8选版"));
  165. SetDlgItemText(IDC_BUTTON3, _T("导出N8选版"));
  166. SetDlgItemText(IDC_BUTshowphoto, _T("N8选版"));
  167. GetDlgItem(IDC_BUTimportphoto2)->ShowWindow(SW_HIDE);
  168. GetDlgItem(IDC_BUTimportphoto3)->ShowWindow(SW_HIDE);
  169. // 移动按钮位置;
  170. CRect rc;
  171. GetDlgItem(IDC_BUTimportphoto)->GetWindowRect(rc);
  172. ScreenToClient(rc);
  173. printf("top:%d, left:%d, right:%d, bottom:%d, width=%d\n", rc.top, rc.left, rc.right, rc.bottom, rc.Width());
  174. rc.OffsetRect(rc.Width() + 1, 0);
  175. GetDlgItem(IDC_BUTshowphoto)->MoveWindow(rc);
  176. rc.OffsetRect(rc.Width() + 1, 0);
  177. GetDlgItem(IDC_BUTTON3)->MoveWindow(rc);
  178. }
  179. if ( !g_bEnableClound )
  180. {
  181. GetDlgItem(BTN_CloundXY)->ShowWindow(SW_HIDE);
  182. GetDlgItem(BTN_RESULT)->ShowWindow(SW_HIDE);
  183. }
  184. }
  185. void DesignFrom::FillGrid(BOOL bStatus)
  186. {
  187. if (g_bSearchFilter) // 开启条件查询;
  188. {
  189. m_List1.DeleteAllItems2();
  190. int ii = 0;
  191. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  192. int count = 0;
  193. {
  194. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  195. {
  196. if (g_filterdate1 != "")
  197. {
  198. // 查询条件==设计日期; 原本在列5
  199. if (m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) < g_filterdate1 || m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) > g_filterdate2)
  200. continue;
  201. }
  202. if (g_waiter1 != "")
  203. {
  204. // 查询条件==设计师; 原本在列13
  205. if (m_List1array.ElementAt(ii).ElementAt(14 + m_nAdd) != g_waiter1)
  206. continue;
  207. }
  208. if (g_bAllBranch && g_filterbranch != "")
  209. {
  210. if (m_List1array.ElementAt(ii).ElementAt(0) != g_filterbranch)
  211. continue;
  212. }
  213. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  214. }
  215. }
  216. m_List1.m_arLabels.SetSize(count, 1);
  217. ii = count;
  218. m_List1.m_LabelCount = ii;
  219. m_List1.SetItemCountEx(ii);
  220. CString str;
  221. str.Format("单数:%d", ii);
  222. SetDlgItemText(IDC_STATIC2, str);
  223. }
  224. else // 未开启条件查询;
  225. {
  226. m_List1.DeleteAllItems2();
  227. int ii = 0;
  228. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  229. int count = 0;
  230. if (m_filter.IsEmpty())
  231. {
  232. if (bStatus)
  233. {
  234. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  235. {
  236. // 查询条件==精修状态&&设计状态(原本列4);
  237. if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK" && m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK")
  238. {
  239. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  240. }
  241. }
  242. }
  243. else
  244. {
  245. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  246. {
  247. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  248. }
  249. }
  250. }
  251. else
  252. {
  253. if (bStatus)
  254. {
  255. int type = GetType(m_filter);
  256. if (type == 1)//电话
  257. {
  258. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  259. {
  260. // 查询条件==精修状态&&设计状态 &&(手机(原列16)||座机(原列17))
  261. if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK" &&
  262. m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK" &&
  263. (m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(18 + m_nAdd).Find(m_filter) != -1))
  264. {
  265. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  266. }
  267. }
  268. }
  269. else if (type == 2)//拼音
  270. {
  271. m_filter.MakeUpper();
  272. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  273. {
  274. // 查询条件==精修状态&&设计状态 &&(拼音1(原列18)||拼音2(原列19))
  275. if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK"
  276. &&m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"
  277. && (m_List1array.ElementAt(ii).ElementAt(19 + m_nAdd).Find(m_filter) != -1 || m_List1array.ElementAt(ii).ElementAt(20 + m_nAdd).Find(m_filter) != -1))
  278. {
  279. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  280. }
  281. }
  282. }
  283. else
  284. {
  285. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  286. {
  287. // 查询条件==精修状态&&设计状态 &&(……)
  288. if (m_List1array.ElementAt(ii).ElementAt(3 + m_nAdd) == "OK" &&
  289. m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK" &&
  290. (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \
  291. m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || \
  292. m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 || \
  293. m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1 || \
  294. m_List1array.ElementAt(ii).ElementAt(12).Find(m_filter) != -1 || \
  295. m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1 || \
  296. m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 || \
  297. m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 || \
  298. m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 || \
  299. m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 || \
  300. m_List1array.ElementAt(ii).ElementAt(18).Find(m_filter) != -1 || \
  301. m_List1array.ElementAt(ii).ElementAt(19).Find(m_filter) != -1))
  302. {
  303. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  304. }
  305. }
  306. }
  307. }
  308. else
  309. {
  310. int type = GetType(m_filter);
  311. if (type == 1)//电话
  312. {
  313. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  314. {
  315. // 查询条件==手机(原列16)||座机(原列17)
  316. if (m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1 ||
  317. m_List1array.ElementAt(ii).ElementAt(18 + m_nAdd).Find(m_filter) != -1)
  318. {
  319. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  320. }
  321. }
  322. }
  323. else if (type == 2)//拼音
  324. {
  325. m_filter.MakeUpper();
  326. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  327. {
  328. // 查询条件==精拼音1(原列18)||拼音2(原列19)
  329. if (m_List1array.ElementAt(ii).ElementAt(19 + m_nAdd).Find(m_filter) != -1 ||
  330. m_List1array.ElementAt(ii).ElementAt(20 + m_nAdd).Find(m_filter) != -1)
  331. {
  332. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  333. }
  334. }
  335. }
  336. else
  337. {
  338. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  339. {
  340. if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 ||
  341. m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 ||
  342. m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 ||
  343. m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1 ||
  344. m_List1array.ElementAt(ii).ElementAt(12).Find(m_filter) != -1 ||
  345. m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1 ||
  346. m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 ||
  347. m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 ||
  348. m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 ||
  349. m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 ||
  350. m_List1array.ElementAt(ii).ElementAt(18).Find(m_filter) != -1 ||
  351. m_List1array.ElementAt(ii).ElementAt(19).Find(m_filter) != -1)
  352. {
  353. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  354. }
  355. }
  356. }
  357. }
  358. }
  359. m_List1.m_arLabels.SetSize(count, 1);
  360. ii = count;
  361. m_List1.m_LabelCount = ii;
  362. m_List1.SetItemCountEx(ii);
  363. CString str;
  364. str.Format("单数:%d", ii);
  365. SetDlgItemText(IDC_STATIC2, str);
  366. }
  367. if (!g_id.IsEmpty())
  368. {
  369. for (int i = 0; i < m_List1.GetItemCount(); i++)
  370. {
  371. if (g_id == m_List1.GetItemText(i, 0 + m_nAdd))
  372. {
  373. m_List1.SetItemState(i, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
  374. m_List1.EnsureVisible(i, FALSE);
  375. break;
  376. }
  377. }
  378. }
  379. }
  380. void DesignFrom::OnBUTclose()
  381. {
  382. GetParent()->SendMessage(WM_CLOSE);
  383. }
  384. void DesignFrom::OnSelchangeCombo1()
  385. {
  386. SetTimer(1, 100, NULL);
  387. }
  388. void DesignFrom::OnTimer(UINT nIDEvent)
  389. {
  390. KillTimer(nIDEvent);
  391. OnButton1();
  392. }
  393. BOOL DesignFrom::PreTranslateMessage(MSG* pMsg)
  394. {
  395. try
  396. {
  397. if (pMsg->message == WM_KEYDOWN)
  398. {
  399. switch (pMsg->wParam)
  400. {
  401. case VK_RETURN:
  402. OnButton1();
  403. return 1;
  404. case 0x43: // copy
  405. if ((GetKeyState(VK_CONTROL) & 0x80))
  406. {
  407. GetFocus()->SendMessage(WM_COPY);
  408. return TRUE;
  409. }
  410. break;
  411. case 0x56: //Ctrl + V:
  412. if ((GetKeyState(VK_CONTROL) & 0x80))
  413. {
  414. GetFocus()->SendMessage(WM_PASTE);
  415. return TRUE;
  416. }
  417. break;
  418. case 0x58: // cut
  419. if ((GetKeyState(VK_CONTROL) & 0x80))
  420. {
  421. GetFocus()->SendMessage(WM_CUT);
  422. return TRUE;
  423. }
  424. break;
  425. case 0x5A: //undo
  426. case 0x59: //redo
  427. if ((GetKeyState(VK_CONTROL) & 0x80))
  428. {
  429. GetFocus()->SendMessage(WM_UNDO);
  430. return TRUE;
  431. }
  432. break;
  433. }
  434. }
  435. else if (pMsg->message == WM_LBUTTONDBLCLK)
  436. {
  437. CPoint pt;
  438. CRect rc, rc2;
  439. ::GetCursorPos(&pt);
  440. m_List1.GetWindowRect(rc2);
  441. if (rc2.PtInRect(pt) == 0)
  442. return MyFormView::PreTranslateMessage(pMsg);
  443. pt.x -= rc2.left;
  444. pt.y -= rc2.top;
  445. POSITION pos;
  446. pos = m_List1.GetFirstSelectedItemPosition();
  447. if (pos == NULL)return MyFormView::PreTranslateMessage(pMsg);
  448. int iItem = m_List1.GetNextSelectedItem(pos);
  449. m_List1.GetSubItemRect(iItem, 11 + m_nAdd, LVIR_BOUNDS, rc);
  450. if (rc.PtInRect(pt))
  451. {
  452. CClientRequirement dlg;
  453. CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  454. CString str;
  455. if (g_bAllBranch == 0)
  456. {
  457. for (int i = 0; i < m_List1arraybak.GetSize(); i++)
  458. {
  459. if (m_List1arraybak.ElementAt(i).ElementAt(0 + m_nAdd) == id)
  460. {
  461. str = m_List1arraybak.ElementAt(i).ElementAt(11 + m_nAdd);
  462. break;
  463. }
  464. }
  465. }
  466. else
  467. {
  468. CString branch = m_List1.GetItemText(iItem, 0);
  469. for (int i = 0; i < m_List1arraybak.GetSize(); i++)
  470. {
  471. if (m_List1arraybak.ElementAt(i).ElementAt(0 + m_nAdd) == id && branch == m_List1array.ElementAt(i).ElementAt(0))
  472. {
  473. str = m_List1arraybak.ElementAt(i).ElementAt(11 + m_nAdd);
  474. break;
  475. }
  476. }
  477. }
  478. dlg.m_bz2 = str;
  479. dlg.m_bSave = 0;
  480. dlg.DoModal();
  481. }
  482. }
  483. }
  484. catch (...)
  485. {
  486. }
  487. return MyFormView::PreTranslateMessage(pMsg);
  488. }
  489. extern int CALLBACK BrowseProc(HWND hwnd, UINT msg, LPARAM lParam, LPARAM lpData);
  490. /*{
  491. switch(msg)
  492. {
  493. case BFFM_INITIALIZED:
  494. SendMessage(hwnd, BFFM_SETSELECTION, TRUE, NULL);
  495. break;
  496. case BFFM_SELCHANGED:
  497. {
  498. char szFileName[MAX_PATH];
  499. LPITEMIDLIST pidlCurrent = (LPITEMIDLIST)lParam;
  500. SHGetPathFromIDList(pidlCurrent, szFileName);
  501. SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szFileName);
  502. }
  503. break;
  504. }
  505. return 0;
  506. }*/
  507. void DesignFrom::GetSavePath(CString &path)
  508. {
  509. char lpszDisplayName[MAX_PATH], szFileName[MAX_PATH];
  510. LPITEMIDLIST pidlDesktop, pidlCurrent;
  511. if (SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop) == NOERROR)
  512. {
  513. BROWSEINFO bi;
  514. bi.hwndOwner = this->m_hWnd;
  515. bi.pidlRoot = pidlDesktop;
  516. bi.pszDisplayName = lpszDisplayName;
  517. bi.lpszTitle = "\n文档保存的目录:";
  518. bi.ulFlags = BIF_STATUSTEXT&BIF_RETURNONLYFSDIRS;
  519. bi.lpfn = BrowseProc;
  520. bi.lParam = 0;
  521. bi.iImage = 0;
  522. pidlCurrent = SHBrowseForFolder(&bi);
  523. SHGetPathFromIDList(pidlCurrent, szFileName);
  524. path = szFileName;
  525. }
  526. }
  527. int DesignFrom::FindArray(CStringArray *pArray, CString Str)
  528. {
  529. for (int i = 0; i < pArray->GetSize(); i++)
  530. {
  531. if (pArray->ElementAt(i) == Str)
  532. return i;
  533. }
  534. return -1;
  535. }
  536. //-----------------------------------------------------------------
  537. // remark by Jeff 2014-12-12
  538. // 函数:GetNo
  539. // 描述:从str中解析出每个相片名,然后存入空的CStringArray中;
  540. // 参数:
  541. // str:选好的相片名串,如:"001,002,003" 后分隔符改为"|",结果应是"001|002|003"
  542. // array:空的数组,用来存放解析后的相片名;
  543. // 返回:
  544. // 注意:更换分隔符造成的问题,在该函数已解决;
  545. //-----------------------------------------------------------------
  546. void DesignFrom::GetNo(CString str, CStringArray &array)
  547. {
  548. if (!str.IsEmpty())
  549. {
  550. #ifdef USE_SEP_VEB
  551. int pos = str.Find(SEPS_VEB);
  552. #else
  553. int pos = str.Find(",");
  554. #endif
  555. while (pos != -1)
  556. {
  557. if (FindArray(&array, str.Left(pos)) == -1)
  558. array.Add(str.Left(pos));
  559. str = str.Right(str.GetLength() - pos - 1);
  560. #ifdef USE_SEP_VEB
  561. pos = str.Find(SEPS_VEB);
  562. #else
  563. pos = str.Find(",");
  564. #endif
  565. }
  566. if (FindArray(&array, str) == -1)
  567. array.Add(str);
  568. }
  569. }
  570. //-----------------------------------------------------------------
  571. // remark by Jeff 2014-12-12
  572. // 函数:GetSelName
  573. // 描述:
  574. // 参数:
  575. // name:由GetNo解析出来后的单个相片名,如:"001"
  576. // spnamearray:订单下的商品数组,case 50所得;
  577. // 返回:
  578. // 注意:更换分隔符造成的问题,在该函数已解决;
  579. //-----------------------------------------------------------------
  580. CString DesignFrom::GetSelName(CString name, CArray<CStringArray, CStringArray>&spnamearray)
  581. {
  582. CString ret;
  583. #ifdef USE_SEP_VEB
  584. name = SEPS_VEB + name + SEPS_VEB;
  585. #else
  586. name = "," + name + ",";
  587. #endif
  588. CString str;
  589. for (int i = 0; i < spnamearray.GetSize(); i++)
  590. {
  591. #ifdef USE_SEP_VEB
  592. str = SEPS_VEB + spnamearray.ElementAt(i).ElementAt(8) + SEPS_VEB;
  593. #else
  594. str = "," + spnamearray.ElementAt(i).ElementAt(8) + ",";
  595. #endif
  596. if (str.Find(name) != -1)
  597. {
  598. ret += spnamearray.ElementAt(i).ElementAt(5);
  599. ret += ";";
  600. }
  601. }
  602. ret.TrimRight(";");
  603. ret.Replace("*", "x");
  604. return ret;
  605. }
  606. //-----------------------------------------------------------------
  607. // remark by Jeff 2014-12-12
  608. // 函数:GetSelName2
  609. // 描述:
  610. // 参数:
  611. // name:由GetNo解析出来后的单个相片名,如:"001"
  612. // spnamearray:订单下的商品数组,case 50所得;
  613. // 返回:
  614. // 注意:更换分隔符造成的问题,在该函数已解决;
  615. //-----------------------------------------------------------------
  616. CString DesignFrom::GetSelName2(CString name, CArray<CStringArray, CStringArray>&spnamearray)
  617. {
  618. CString ret;
  619. #ifdef USE_SEP_VEB
  620. name = SEPS_VEB + name + SEPS_VEB;
  621. #else
  622. name = "," + name + ",";
  623. #endif
  624. CString str;
  625. for (int i = 0; i < spnamearray.GetSize(); i++)
  626. {
  627. #ifdef USE_SEP_VEB
  628. str = SEPS_VEB + spnamearray.ElementAt(i).ElementAt(8) + SEPS_VEB;
  629. #else
  630. str = "," + spnamearray.ElementAt(i).ElementAt(8) + ",";
  631. #endif
  632. if (str.Find(name) != -1)
  633. {
  634. ret += spnamearray.ElementAt(i).ElementAt(5);
  635. ret += ";";
  636. }
  637. }
  638. ret.TrimRight(";");
  639. ret.Replace("*", "x");
  640. return ret;
  641. }
  642. void DesignFrom::OnBUTexportphoto() // 导出精修好的片 按钮;
  643. {
  644. // 判断登陆用户是否有导出原片的权限;
  645. if ( !IsHasRights2new(11) )
  646. {
  647. AfxMessageBox(_T("您无权限导出原片!"),MB_ICONINFORMATION);
  648. return;
  649. }
  650. // 获取列表信息:域名、订单号、景点名、顾客信息;
  651. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  652. if ( pos == NULL )
  653. {
  654. AfxMessageBox(_T("请选中您要导出原片的订单!"), MB_ICONINFORMATION);
  655. return;
  656. }
  657. INT nItemCount = m_List1.GetItemCount();
  658. INT nSelectedItem = m_List1.GetNextSelectedItem(pos);
  659. CString strBranchId = _T("");
  660. CString strOrderNum = _T("");
  661. // 初修列表不支持景点名,需要从其他地方获取;
  662. CString strScenery = _T("");
  663. CString strCustomerInfo = _T("");
  664. // 获取域名;
  665. if ( g_bAllBranch )
  666. {// 多店汇总时;
  667. strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) );
  668. }
  669. else
  670. {
  671. if ( g_branchname.IsEmpty() )
  672. {// 连接本店时;
  673. strBranchId = g_domain;
  674. }
  675. else
  676. {// 连接分店时;
  677. strBranchId = GetDomainFromBranch( g_branchname );
  678. }
  679. }
  680. // 获取订单号;
  681. strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
  682. // 获取顾客信息;
  683. strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd);
  684. // 获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单;
  685. IsGrowthTx IsGrowthtxdlg;
  686. IsGrowthtxdlg.m_mode = 1;
  687. IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
  688. IsGrowthtxdlg.DoModal();
  689. if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
  690. {
  691. return;
  692. }
  693. if ( IsGrowthtxdlg.m_bGrowthTx )
  694. {// 读取dindanjd表里的成长套系名,并返回选中的成长套系名;
  695. strScenery = IsGrowthtxdlg.m_seltxname;
  696. if ( strScenery == _T("全部") )
  697. {
  698. strScenery.Empty();
  699. }
  700. }
  701. // 导出原片时,是否压缩导出;
  702. DWORD dwExportPix = INVALID_COPY_PIX; // 通过其他对话框,选择导出时压缩的像素;
  703. /////////////////////////////////////////////////////////////////////////////////////////////////
  704. if ( g_pIMGProcess == NULL )
  705. {
  706. return ;
  707. }
  708. // 获取完信息,开始导出原片;
  709. ImgExportInterface *pExport = NULL;
  710. g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
  711. if ( pExport )
  712. {
  713. pExport->ExportFurtherImg(
  714. TRUE,
  715. strBranchId,
  716. strOrderNum,
  717. strCustomerInfo,
  718. !strScenery.IsEmpty(),
  719. strScenery,
  720. _T("*.jpg|*.jpeg"),
  721. dwExportPix,
  722. _T("*.nef|*.cr2|*.raw|*.ra2"),
  723. FALSE,
  724. FALSE
  725. );
  726. }
  727. g_pIMGProcess->Release();
  728. WriteOptLog(_T("导出精修,订单号:%s"),strOrderNum);
  729. // 结束;
  730. }
  731. void DesignFrom::OnBUTimportphoto() // 导入设计版/N8选版 按钮;
  732. {
  733. // 获取列表信息;
  734. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  735. if ( pos == NULL )
  736. {
  737. AfxMessageBox(_T("请选中您要导片的订单号!"), MB_ICONINFORMATION);
  738. return;
  739. }
  740. INT nItemCount = m_List1.GetItemCount();
  741. INT nSelectedItem = m_List1.GetNextSelectedItem(pos);
  742. // 订单的设计信息店名、域名、订单号、景点名、顾客信息、设计状态、设计日期、设计师;
  743. CString strBranchName = _T("");
  744. CString strBranchId = _T("");
  745. CString strOrderNum = _T("");
  746. CString strScenery = _T("");
  747. CString strCustomerInfo = _T("");
  748. CString strDesignState = _T("");
  749. CString strDesignDate = _T("");
  750. CString strDesigner = _T("");
  751. // 获取域名;
  752. if ( g_bAllBranch )
  753. {// 多店汇总时;
  754. strBranchName = m_List1.GetItemText(nSelectedItem, 0);
  755. strBranchId = GetDomainFromBranch( strBranchName );
  756. }
  757. else
  758. {
  759. if ( g_branchname.IsEmpty() )
  760. {// 连接本店时;
  761. strBranchName = _T("");
  762. strBranchId = g_domain;
  763. }
  764. else
  765. {// 连接分店时;
  766. strBranchName = g_branchname;
  767. strBranchId = GetDomainFromBranch( g_branchname );
  768. }
  769. }
  770. // 获取订单号;
  771. strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
  772. // 获取设计师;
  773. strDesigner = m_List1.GetItemText(nSelectedItem, 14 + m_nAdd);
  774. // 获取设计状态;
  775. strDesignState = m_List1.GetItemText(nSelectedItem, 5 + m_nAdd);
  776. // 获取设计日期;
  777. strDesignDate = m_List1.GetItemText(nSelectedItem, 6 + m_nAdd);
  778. // 获取顾客信息;
  779. strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd);
  780. CDlgChuXiuInfo xpdlg;
  781. xpdlg.m_nXiupianMode = 1;
  782. xpdlg.m_strOrderNumber = strOrderNum;
  783. xpdlg.m_strXiupianRen = strDesigner;
  784. if ( strDesignState == _T("OK") )
  785. xpdlg.m_nXiupianStatus = 0;
  786. else if ( strDesignState == _T("设计中"))
  787. xpdlg.m_nXiupianStatus = 1;
  788. else if ( strDesignState == _T("未设计"))
  789. xpdlg.m_nXiupianStatus = 2;
  790. CString strSQL = _T("");
  791. if( xpdlg.DoModal() == IDOK )
  792. {
  793. if ( xpdlg.m_bGrowthTx )
  794. strScenery = xpdlg.m_strScenery;
  795. if ( xpdlg.m_nXiupianStatus == 0 )
  796. strDesignState = _T("OK");
  797. else if ( xpdlg.m_nXiupianStatus == 1)
  798. strDesignState = _T("设计中");
  799. else if ( xpdlg.m_nXiupianStatus == 2 )
  800. strDesignState = _T("未设计");
  801. strDesigner = xpdlg.m_strXiupianRen;
  802. if (strDesignDate.IsEmpty())
  803. strSQL.Format(_T("update dindan set waiter4 = '%s', status5 = '%s', time10 = '%s' where id = '%s'"), strDesigner, strDesignState, g_date, strOrderNum);
  804. else
  805. strSQL.Format(_T("update dindan set waiter4 = '%s', status5 = '%s' where id = '%s'"), strDesigner, strDesignState, strOrderNum);
  806. /////////////////////////////////////////////////////////////////////////////////////////////////
  807. // 构建数据包;
  808. g_sendhead.bsql = TRUE;
  809. if ( g_bAllBranch )
  810. {// 多店汇总时;
  811. g_branchip = GetBranchIPbyId(strBranchId);
  812. g_pMainWnd->OnDisconnect();
  813. g_branchname = strBranchName;
  814. g_bBranchModify = TRUE;
  815. g_pMainWnd->ProcessChatMessageRequest2(strSQL);
  816. g_pMainWnd->OnDisconnect();
  817. g_bBranchModify = FALSE;
  818. g_branchip = g_branchname = _T("");
  819. }
  820. else
  821. {// 连接本店或分店时;
  822. g_pMainWnd->ProcessChatMessageRequest2(strSQL);
  823. }
  824. // 刷新界面数据;
  825. if (g_bSendOK == 0)
  826. {
  827. OutputDebugString(_T("接收服务器数据失败!\n"));
  828. return;
  829. }
  830. if (g_bAllBranch == 0)
  831. {// 连接本店或分店时;
  832. GetData();
  833. }
  834. else
  835. {// 多店汇总时;
  836. for (int i = 0; i < m_List1array.GetSize(); i++)
  837. {
  838. if (strOrderNum == m_List1array.ElementAt(i).ElementAt(1) && strBranchName == m_List1array.ElementAt(i).ElementAt(0))
  839. {
  840. m_List1array.ElementAt(i).SetAt(5 + m_nAdd, strDesignState);
  841. if (strDesignDate.IsEmpty())
  842. m_List1array.ElementAt(i).SetAt(6 + m_nAdd, g_date);
  843. m_List1array.ElementAt(i).SetAt(14 + m_nAdd, strDesigner);
  844. FillGrid();
  845. break;
  846. }
  847. }
  848. }
  849. }
  850. else
  851. {
  852. // 开始导入初修片;
  853. if ( MessageBox(_T("是否现在开始导入设计片!"), _T("导片提示:导入设计片"), MB_TOPMOST|MB_YESNO|MB_ICONWARNING ) != IDYES )
  854. {// 是否马上导入相片;
  855. return;
  856. }
  857. if ( xpdlg.m_bGrowthTx )
  858. strScenery = xpdlg.m_strScenery;
  859. if ( xpdlg.m_bGrowthTx && strScenery.IsEmpty() )
  860. {
  861. AfxMessageBox(_T("儿童成长套系导片必须选择套系名!"));
  862. return;
  863. }
  864. }
  865. /////////////////////////////////////////////////////////////////////////////////////////////////
  866. if ( g_pIMGProcess == NULL )
  867. {
  868. return;
  869. }
  870. // 获取完信息,开始导入设计片;
  871. ImgImportInterface *pImport = NULL;
  872. g_pIMGProcess->QueryInterface(IID_ImgImportInterface, (void**)&pImport);
  873. if ( pImport )
  874. {
  875. if ( m_bN8 && PathFileExists(g_szN8Path) )
  876. {// N8选版功能启用;
  877. pImport->ImportN8(g_szN8ViewUserDir, strBranchId, strOrderNum, strCustomerInfo, !strScenery.IsEmpty(), strScenery, FALSE);
  878. WriteOptLog(_T("导入N8,订单号:%s"),strOrderNum);
  879. }
  880. else
  881. {
  882. pImport->ImportDesignImg(
  883. FALSE, // 相片源的类型:true = 选择文件夹形式; false = 选择文件形式;
  884. strBranchId, // 分店域名;
  885. strOrderNum, // 订单号;
  886. strCustomerInfo, // 顾客信息;
  887. !strScenery.IsEmpty(), // 导入时是否生成景点名;
  888. strScenery, // 要导入并生成的景点名;
  889. _T("*.jpg|*.jpeg"), // 要导入的扩展名;
  890. INVALID_COPY_PIX, // 要导入的相片的压缩像素大小;INVALID_COPY_PIX表示不压缩,原比例导入;
  891. _T("*.nef|*.cr2|*.raw|*.ra2"), // 导入相片时,附加要导入的扩展名;附加的相片不设置压缩像素;
  892. FALSE, // 导入操作时,是否生成缩略图;只生成lpImportExt的;
  893. INVALID_COPY_PIX, // 要生成的缩略图的像素大小;
  894. FALSE // 目标文件存在是否复制,只针对lpImportExt和lpImportWithExt对应的文件,缩略图直接覆盖;
  895. );
  896. WriteOptLog(_T("导入设计,订单号:%s"),strOrderNum);
  897. }
  898. g_pIMGProcess->Release();
  899. }
  900. // 结束;
  901. }
  902. // Jeff:选设计版按钮;
  903. void DesignFrom::OnBUTshowphoto() //Jeff:选设计版、N8按钮;
  904. {
  905. POSITION pos;
  906. pos = m_List1.GetFirstSelectedItemPosition();
  907. if (pos == NULL)
  908. {
  909. AfxMessageBox("请先选中您要查看的定单!", MB_ICONINFORMATION);
  910. return;
  911. }
  912. int nSelectedItem = m_List1.GetNextSelectedItem(pos);
  913. // 订单号;
  914. CString strOrderNum = m_List1.GetItemText(nSelectedItem, 0);
  915. // 设计状态;
  916. CString strDesignStatus = m_List1.GetItemText(nSelectedItem, 5);
  917. // 设计日期;
  918. CString strDesignDate = m_List1.GetItemText(nSelectedItem, 6);
  919. // 选设计人;
  920. CString strXuanPainRen = m_List1.GetItemText(nSelectedItem, 13);
  921. //////////////////////////////////////////////////////////////////////////
  922. if ( m_bN8 && PathFileExists(g_szN8Path) )
  923. {// N8选版;
  924. // SETUP1.获取List控件的记录信息和域名信息;
  925. CString strTemp = _T("");
  926. CString strBranchId = _T("");
  927. CString strBranchName =_T("");
  928. CString strScenery = _T("");
  929. // 获取域名;
  930. if ( g_bAllBranch )
  931. {// 多店汇总;
  932. strBranchName = m_List1.GetItemText(nSelectedItem, 0);
  933. strBranchId = GetDomainFromBranch(strBranchName);
  934. }
  935. else
  936. {
  937. if ( g_branchname.IsEmpty() )
  938. {// 连接本店时;
  939. strBranchId = g_domain;
  940. }
  941. else
  942. {//连接分店时;
  943. strBranchName = g_branchname;
  944. strBranchId = GetDomainFromBranch( g_branchname );
  945. }
  946. }
  947. // SETUP2.获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单;
  948. IsGrowthTx IsGrowthtxdlg;
  949. IsGrowthtxdlg.m_mode = 1;
  950. IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
  951. IsGrowthtxdlg.DoModal();
  952. if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
  953. {
  954. return;
  955. }
  956. if ( IsGrowthtxdlg.m_bGrowthTx )
  957. {
  958. // 读取dindanjd表里的成长套系名,并返回选中的成长套系名;
  959. strScenery = IsGrowthtxdlg.m_seltxname;
  960. }
  961. // SETUP3.获得选版目录,并判断是否存在或已选;
  962. BOOL bViewFinish = FALSE;
  963. CString strUserPath = _T("");
  964. CString strUserPath2 = _T("");
  965. if ( strBranchId != g_domain )
  966. {
  967. if ( IsGrowthtxdlg.m_bGrowthTx )
  968. {
  969. strUserPath.Format(_T("%s\\%s"), strBranchId, strOrderNum);
  970. strUserPath2.Format(_T("%s\\%s"), strBranchId, strOrderNum);
  971. }
  972. else
  973. {
  974. strUserPath.Format(_T("%s\\%s"), strBranchId, strOrderNum);
  975. strUserPath2.Format(_T("%s\\[已选]%s"), strBranchId, strOrderNum);
  976. }
  977. }
  978. else
  979. {
  980. if ( IsGrowthtxdlg.m_bGrowthTx )
  981. {
  982. strUserPath.Format(_T("%s"), strOrderNum);
  983. strUserPath2.Format(_T("%s"), strOrderNum);
  984. }
  985. else
  986. {
  987. strUserPath.Format(_T("%s"), strOrderNum);
  988. strUserPath2.Format(_T("[已选]%s"), strOrderNum);
  989. }
  990. }
  991. if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
  992. {
  993. strUserPath += _T("\\[已选]") + strScenery;
  994. }
  995. strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
  996. if ( PathFileExists(strTemp) )
  997. {
  998. if (IsGrowthtxdlg.m_bGrowthTx)
  999. AfxMessageBox(_T("该套系选版已完成!"));
  1000. else
  1001. AfxMessageBox(_T("该订单选版已完成!"));
  1002. bViewFinish = TRUE;
  1003. }
  1004. else
  1005. {
  1006. strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath);
  1007. if ( !PathFileExists(strTemp) )
  1008. {
  1009. if (IsGrowthtxdlg.m_bGrowthTx)
  1010. AfxMessageBox(_T("未找到该套系数据,选版未设计!"));
  1011. else
  1012. AfxMessageBox(_T("未找到该订单数据,选版未设计!"));
  1013. return;
  1014. }
  1015. }
  1016. //////////////////////////////////////////////////////////////////////////
  1017. // 传参N8运行;
  1018. CString strParamter = _T("");
  1019. strParamter.Format(_T("/t \"<task userfolder='%s' staffid='%s' serverip='%s'/>\""),
  1020. strUserPath,
  1021. g_user.account,
  1022. g_szN8SvIP);
  1023. //strUserPath = strTemp;
  1024. //////////////////////////////////////////////////////////////////////////
  1025. #ifdef CHILD_VERSION
  1026. if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
  1027. strTemp.Format(_T("id = '%s' and growthxname = '%s'"), strOrderNum, strScenery, strOrderNum, strOrderNum);
  1028. else
  1029. strTemp.Format(_T("id = '%s'"), strOrderNum, strOrderNum, strOrderNum);
  1030. #else
  1031. strTemp.Format(_T("id = '%s'"), strOrderNum, strOrderNum, strOrderNum);
  1032. #endif//CHILD_VERSION
  1033. g_sendhead.bsql = FALSE;
  1034. g_sendhead.code[0] = 50; // dindansp;
  1035. g_sendhead.tabcount = 1;
  1036. if( g_bAllBranch )
  1037. {//多店汇总时;
  1038. g_branchip = GetBranchIPbyId(strBranchId);
  1039. g_pMainWnd->OnDisconnect();
  1040. g_branchname = strBranchName;
  1041. g_bBranchModify = TRUE;
  1042. g_pMainWnd->ProcessChatMessageRequest2(strTemp);
  1043. g_pMainWnd->OnDisconnect();
  1044. g_bBranchModify = FALSE;
  1045. g_branchip = g_branchname = _T("");
  1046. }
  1047. else
  1048. {// 连接本店或分店时;
  1049. g_pMainWnd->ProcessChatMessageRequest2(strTemp);
  1050. }
  1051. if( !g_bSendOK )
  1052. return ;
  1053. CArray<CStringArray, CStringArray> Arydindansp;
  1054. DataToArray( &Arydindansp );
  1055. //////////////////////////////////////////////////////////////////////////
  1056. strTemp.Format(_T("%s\\选版结果\\"), strUserPath);
  1057. if ( !PathFileExists(strTemp) )
  1058. {
  1059. CreateDirectory(strTemp,NULL);
  1060. }
  1061. N8Process::CResultProduct rp;
  1062. if ( !PathFileExists(strTemp + _T("Product.data")) )
  1063. rp.CreateXML(strTemp + _T("Product.data"));
  1064. rp.SetXMLPath(strTemp + _T("Product.data"));
  1065. N8Process::CResultVgProduct rvgp;
  1066. if ( !PathFileExists(strTemp + _T("VgProduct.data")) )
  1067. rvgp.CreateXML(strTemp + _T("VgProduct.data"));
  1068. rvgp.SetXMLPath(strTemp + _T("VgProduct.data"));
  1069. for ( int i = 0; i < Arydindansp.GetSize(); i++ )
  1070. {
  1071. rp.InsertItem(Arydindansp.ElementAt(i).ElementAt(1), NULL, Arydindansp.ElementAt(i).ElementAt(5), NULL, NULL);
  1072. rvgp.InsertItem(Arydindansp.ElementAt(i).ElementAt(1), NULL, Arydindansp.ElementAt(i).ElementAt(5), NULL, NULL);
  1073. }
  1074. STARTUPINFO si;
  1075. PROCESS_INFORMATION pi;
  1076. ZeroMemory(&si, sizeof(STARTUPINFO));
  1077. si.cb = sizeof(STARTUPINFO);
  1078. ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
  1079. TCHAR szCommonLine[MAX_PATH] = {0};
  1080. sprintf(szCommonLine, _T("%s"), strParamter);
  1081. if ( !CreateProcess(g_szN8Path, szCommonLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) )
  1082. {
  1083. return;
  1084. }
  1085. WaitForSingleObject(pi.hProcess, INFINITE);
  1086. AfxMessageBox(_T("选版结束"));
  1087. if ( !bViewFinish )
  1088. {
  1089. strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
  1090. if ( PathFileExists(strTemp) )
  1091. {
  1092. bViewFinish = TRUE;
  1093. }
  1094. }
  1095. CString strViewFinishXml = _T("");
  1096. if ( bViewFinish )
  1097. {
  1098. strTemp.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
  1099. if ( PathFileExists(strTemp) )
  1100. {
  1101. CString strXML = _T("");
  1102. strTemp.TrimRight(_T("\\"));
  1103. int nIndex = strTemp.ReverseFind(_T('\\'));
  1104. if ( nIndex != -1 )
  1105. {
  1106. strXML = strTemp.Mid(nIndex+1);
  1107. strTemp = strTemp.Left(nIndex);
  1108. }
  1109. strViewFinishXml.Format(_T("%s\\%s.xml"), strTemp, strXML);
  1110. if ( !PathFileExists(strViewFinishXml) )
  1111. {
  1112. strViewFinishXml.Empty();
  1113. }
  1114. }
  1115. }
  1116. printf("\t目录1:%s\n,\t目录2:%s",strUserPath,strUserPath2);
  1117. CDlgN8ViewReuslt N8dlg;
  1118. if ( !bViewFinish )
  1119. N8dlg.m_strUserDir.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath);
  1120. else
  1121. N8dlg.m_strUserDir.Format(_T("%s\\%s\\"), g_szN8ViewUserDir, strUserPath2);
  1122. printf("\t最终目录:%s\n",N8dlg.m_strUserDir);
  1123. N8dlg.m_strOrderNum = strOrderNum;
  1124. if ( bViewFinish )
  1125. {
  1126. N8dlg.m_bViewFinish = TRUE;
  1127. if ( !strViewFinishXml.IsEmpty() )
  1128. N8dlg.m_strViewFinishxml = strViewFinishXml;
  1129. }
  1130. if (IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
  1131. N8dlg.m_strScenery = strScenery;
  1132. N8dlg.m_strCustomer.Format(_T("%s,%s"), m_List1.GetItemText(nSelectedItem, 1), m_List1.GetItemText(nSelectedItem, 2));
  1133. // 读取\版面\Ablum.pwt文件;
  1134. // 读取\选版结果\Product.data文件;
  1135. // 读取\选版结果\VgProduct.data文件;
  1136. // 读取[已选].xml文件;
  1137. N8dlg.DoModal();
  1138. CloseHandle(pi.hProcess);
  1139. CloseHandle(pi.hThread);
  1140. return;
  1141. }
  1142. //////////////////////////////////////////////////////////////////////////
  1143. ChooseDesignSkin dlg; // 选设计对话框;
  1144. dlg.SetLiaPath("3.lia");
  1145. dlg.m_strOrderNumber = strOrderNum;
  1146. dlg.m_path = g_path3 + "\\";
  1147. dlg.m_path += strOrderNum;
  1148. dlg.m_path += "\\";
  1149. dlg.DoModal();
  1150. g_bInSkin = 0;
  1151. for (int i = 0; i < m_List1array.GetSize(); i++)
  1152. {
  1153. if (strOrderNum == m_List1array.ElementAt(i).ElementAt(0))
  1154. {
  1155. m_List1array.ElementAt(i).SetAt(11, dlg.m_bz3); // 看设计备注;
  1156. m_List1array.ElementAt(i).SetAt(7, dlg.m_status8); // 看设计状态;
  1157. m_List1array.ElementAt(i).SetAt(10, dlg.m_time5); // 取件日期;
  1158. if (dlg.m_status8 != "OK")
  1159. m_List1array.ElementAt(i).SetAt(5, "设计中");
  1160. else
  1161. m_List1array.ElementAt(i).SetAt(5, "OK");
  1162. FillGrid();
  1163. break;
  1164. }
  1165. }
  1166. }
  1167. void DesignFrom::OnButton1() // 查询 按钮;
  1168. {
  1169. UpdateData();
  1170. m_filter.TrimLeft();
  1171. m_filter.TrimRight();
  1172. FillGrid();
  1173. }
  1174. // 已选未设计 按钮; "已选未设计"命名不合理,不知是"已选片OK未设计"还是"已精修未设计",意义待定
  1175. void DesignFrom::OnButton2() // 已精修未设计 按钮;
  1176. {
  1177. UpdateData();
  1178. m_filter.TrimLeft();
  1179. m_filter.TrimRight();
  1180. FillGrid(1);
  1181. }
  1182. void DesignFrom::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
  1183. {
  1184. NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  1185. POSITION pos;
  1186. pos = m_List1.GetFirstSelectedItemPosition();
  1187. if (pos == NULL)
  1188. {
  1189. return;
  1190. }
  1191. int iItem = m_List1.GetNextSelectedItem(pos);
  1192. // CString waiter4=m_List1.GetItemText (iItem, 11);
  1193. if (IsHasRights2new(7) || IsHasRights2new(49))
  1194. {
  1195. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
  1196. // GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
  1197. }
  1198. else
  1199. {
  1200. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0);
  1201. // GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(0);
  1202. }
  1203. /* if(waiter4.IsEmpty () && IsHasRights2new(7) || IsHasRights2new(49) )
  1204. {
  1205. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
  1206. GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
  1207. }
  1208. else if(waiter4==g_user.name && IsHasRights2new(7) )
  1209. {
  1210. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
  1211. GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(1);
  1212. }
  1213. else
  1214. {
  1215. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0);
  1216. GetDlgItem(IDC_BUTimportphoto2)->EnableWindow(0);
  1217. }*/
  1218. *pResult = 0;
  1219. }
  1220. void DesignFrom::OnBUTimportphoto2() // 查看 按钮;
  1221. {
  1222. POSITION pos;
  1223. pos = m_List1.GetFirstSelectedItemPosition();
  1224. if (pos == NULL)
  1225. {
  1226. AfxMessageBox("请先选中您要查看的定单!", MB_ICONINFORMATION);
  1227. return;
  1228. }
  1229. int iItem = m_List1.GetNextSelectedItem(pos);
  1230. CString branch;
  1231. CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1232. if (g_bAllBranch)
  1233. branch = m_List1.GetItemText(iItem, 0);
  1234. CString name = m_List1.GetItemText(iItem, 1 + m_nAdd) + "," + m_List1.GetItemText(iItem, 2 + m_nAdd);
  1235. name.TrimLeft(",");
  1236. name.TrimRight(",");
  1237. name = "客人:" + name;
  1238. ShowPic dlg;
  1239. dlg.m_id = id;
  1240. dlg.m_name = name;
  1241. dlg.m_name2 = m_List1.GetItemText(iItem, 1 + m_nAdd) + m_List1.GetItemText(iItem, 2 + m_nAdd);
  1242. // 设计要求(原列10)
  1243. dlg.remark = m_List1.GetItemText(iItem, 11 + m_nAdd);
  1244. dlg.m_mode = 5;
  1245. CString strDomain = _T("");
  1246. CString savepath = _T("");
  1247. if (g_bAllBranch)
  1248. {
  1249. if(branch == _T(""))
  1250. savepath = g_path3 + "\\";
  1251. else
  1252. {
  1253. strDomain = GetDomainFromBranch(branch);
  1254. savepath = g_path3 + "\\" + strDomain + "\\";
  1255. }
  1256. if (::CheckFolderFileExist(savepath) == 0)
  1257. ::CreateDirectory(savepath, NULL);
  1258. }
  1259. else
  1260. {
  1261. if(g_branchname == _T(""))
  1262. savepath = g_path3 + "\\";
  1263. else
  1264. strDomain = GetDomainFromBranch(g_branchname);
  1265. }
  1266. #if !USE_SHARE_FLORD
  1267. // 根据域名,相片类型,订单号查找相片;
  1268. dlg.m_aryOfShareDirectory.RemoveAll();
  1269. CNetShareInfo::GetInstance()->LoadOrderImages(dlg.m_mode, dlg.m_id, g_domain, dlg.m_patharray1, &dlg.m_aryOfShareDirectory);
  1270. #endif
  1271. dlg.m_branch = strDomain;
  1272. dlg.m_path = g_path3 + _T("\\");
  1273. dlg.m_path += id;
  1274. dlg.m_path += "\\";
  1275. dlg.DoModal();
  1276. }
  1277. void DesignFrom::OnBUTimportphoto3() // 导出 (设计好的片) 按钮;
  1278. {
  1279. // 判断登陆用户是否有导出原片的权限;
  1280. if ( !IsHasRights2new(12) )
  1281. {
  1282. AfxMessageBox(_T("您无权限导出原片!"),MB_ICONINFORMATION);
  1283. return;
  1284. }
  1285. // 获取列表信息:域名、订单号、景点名、顾客信息;
  1286. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  1287. if ( pos == NULL )
  1288. {
  1289. AfxMessageBox(_T("请选中您要导出原片的订单!"), MB_ICONINFORMATION);
  1290. return;
  1291. }
  1292. INT nItemCount = m_List1.GetItemCount();
  1293. INT nSelectedItem = m_List1.GetNextSelectedItem(pos);
  1294. CString strBranchId = _T("");
  1295. CString strOrderNum = _T("");
  1296. // 初修列表不支持景点名,需要从其他地方获取;
  1297. CString strScenery = _T("");
  1298. CString strCustomerInfo = _T("");
  1299. // 获取域名;
  1300. if ( g_bAllBranch )
  1301. {// 多店汇总时;
  1302. strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) );
  1303. }
  1304. else
  1305. {
  1306. if ( g_branchname.IsEmpty() )
  1307. {// 连接本店时;
  1308. strBranchId = g_domain;
  1309. }
  1310. else
  1311. {// 连接分店时;
  1312. strBranchId = GetDomainFromBranch( g_branchname );
  1313. }
  1314. }
  1315. // 获取订单号;
  1316. strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
  1317. // 获取顾客信息;
  1318. strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd);
  1319. // 加上设计要求;
  1320. strCustomerInfo += _T("$");
  1321. strCustomerInfo += m_List1.GetItemText(nSelectedItem, 11 + m_nAdd);
  1322. // 获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单;
  1323. IsGrowthTx IsGrowthtxdlg;
  1324. IsGrowthtxdlg.m_mode = 1;
  1325. IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
  1326. IsGrowthtxdlg.DoModal();
  1327. if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
  1328. {
  1329. return;
  1330. }
  1331. if ( IsGrowthtxdlg.m_bGrowthTx )
  1332. {
  1333. // 读取dindanjd表里的成长套系名,并返回选中的成长套系名;
  1334. strScenery = IsGrowthtxdlg.m_seltxname;
  1335. if ( strScenery == _T("全部") )
  1336. {
  1337. strScenery.Empty();
  1338. }
  1339. }
  1340. // 导出原片时,是否压缩导出;
  1341. DWORD dwExportPix = INVALID_COPY_PIX; // 通过其他对话框,选择导出时压缩的像素;
  1342. /////////////////////////////////////////////////////////////////////////////////////////////////
  1343. if ( g_pIMGProcess == NULL )
  1344. {
  1345. return ;
  1346. }
  1347. // 获取完信息,开始导出原片;
  1348. ImgExportInterface *pExport = NULL;
  1349. g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
  1350. if ( pExport )
  1351. {
  1352. pExport->ExportDesignImg(
  1353. TRUE,
  1354. strBranchId,
  1355. strOrderNum,
  1356. strCustomerInfo,
  1357. !strScenery.IsEmpty(),
  1358. strScenery,
  1359. _T("*.jpg|*.jpeg"),
  1360. dwExportPix,
  1361. _T("*.nef|*.cr2|*.raw|*.ra2"),
  1362. FALSE,
  1363. FALSE
  1364. );
  1365. }
  1366. g_pIMGProcess->Release();
  1367. WriteOptLog(_T("导出设计,订单号:%s"),strOrderNum);
  1368. // 结束;
  1369. }
  1370. void DesignFrom::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
  1371. {
  1372. POSITION pos;
  1373. pos = m_List1.GetFirstSelectedItemPosition();
  1374. if (pos == NULL)return;
  1375. int iItem = m_List1.GetNextSelectedItem(pos);
  1376. g_id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1377. *pResult = 0;
  1378. }
  1379. // 需要处理更换分隔符造成的问题;
  1380. // 已处理分隔符问题;
  1381. void DesignFrom::OnButton3() // 导出选设计 按钮;导出N8选版;
  1382. {
  1383. // 判断用户是否有权限导出选设计的片
  1384. if ( !IsHasRights2new(12))
  1385. {
  1386. AfxMessageBox(_T("您没有权限导出选设计的片!"));
  1387. return;
  1388. }
  1389. // 获取列表信息;
  1390. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  1391. if ( pos == NULL )
  1392. {
  1393. AfxMessageBox(_T("请您选中要导片的订单!"));
  1394. return;
  1395. }
  1396. INT nItemCount = m_List1.GetItemCount();
  1397. INT nSelectedItem = m_List1.GetNextSelectedItem(pos);
  1398. // 获取域名、订单号、景点名、顾客信息、设计状态、设计日期、设计师、选设计人、选设计状态(看设计状态)、选设计日期;
  1399. CString strBranchName = _T("");
  1400. CString strBranchId = _T("");
  1401. CString strOrderNum = _T("");
  1402. CString strScenery = _T("");
  1403. CString strCustomerInfo = _T("");
  1404. CString strDesignState = _T("");
  1405. CString strDesignDate = _T("");
  1406. CString strDesigner = _T("");
  1407. CString strXuanpianRen = _T("");
  1408. CString strXuanpianState = _T("");
  1409. CString strXuanpianDate = _T("");
  1410. // 获取订单号;
  1411. strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd);
  1412. // 获取顾客信息;
  1413. strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd);
  1414. // 获取设计状态;
  1415. strDesignState = m_List1.GetItemText(nSelectedItem, 5 + m_nAdd);
  1416. // 获取设计日期;
  1417. strDesignState = m_List1.GetItemText(nSelectedItem, 6 + m_nAdd);
  1418. // 获取设计师;
  1419. strDesigner = m_List1.GetItemText(nSelectedItem, 15 + m_nAdd);
  1420. // 获取看设计状态;
  1421. strXuanpianState = m_List1.GetItemText(nSelectedItem, 7 + m_nAdd);
  1422. // 获取选设计日期;
  1423. strXuanpianDate = m_List1.GetItemText(nSelectedItem, 8 + m_nAdd);
  1424. // 获取看设计师;
  1425. strXuanpianRen = m_List1.GetItemText(nSelectedItem, 14 + m_nAdd);
  1426. if ( strDesignState == _T("未设计") )
  1427. {
  1428. MessageBox(_T("此单未设计!"), _T("影楼管理"), MB_OK | MB_TOPMOST | MB_ICONINFORMATION );
  1429. return;
  1430. }
  1431. // 获取域名;
  1432. if ( g_bAllBranch )
  1433. {// 多店汇总;
  1434. strBranchName = m_List1.GetItemText(nSelectedItem, 0);
  1435. strBranchId = GetDomainFromBranch(strBranchName);
  1436. }
  1437. else
  1438. {
  1439. if ( g_branchname.IsEmpty() )
  1440. {// 连接本店时;
  1441. strBranchId = g_domain;
  1442. }
  1443. else
  1444. {//连接分店时;
  1445. strBranchName = g_branchname;
  1446. strBranchId = GetDomainFromBranch( g_branchname );
  1447. }
  1448. }
  1449. // 获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单;
  1450. IsGrowthTx IsGrowthtxdlg;
  1451. IsGrowthtxdlg.m_mode = 1;
  1452. IsGrowthtxdlg.m_strOrderNumber = strOrderNum;
  1453. IsGrowthtxdlg.DoModal();
  1454. if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) )
  1455. {
  1456. return;
  1457. }
  1458. if ( IsGrowthtxdlg.m_bGrowthTx )
  1459. {
  1460. // 读取dindanjd表里的成长套系名,并返回选中的成长套系名;
  1461. strScenery = IsGrowthtxdlg.m_seltxname;
  1462. if ( strScenery == _T("全部") )
  1463. {
  1464. strScenery.Empty();
  1465. }
  1466. }
  1467. if ( m_bN8 && PathFileExists(g_szN8Path) )
  1468. {// N8选版;
  1469. ImgExportInterface *pN8Export = NULL;
  1470. if ( g_pIMGProcess == NULL )
  1471. {
  1472. return ;
  1473. }
  1474. g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pN8Export);
  1475. if ( pN8Export )
  1476. {// 导出选好的片;
  1477. pN8Export->ExportN8(
  1478. g_szN8ViewUserDir,
  1479. strBranchId,
  1480. strOrderNum,
  1481. strCustomerInfo,
  1482. !strScenery.IsEmpty(),
  1483. strScenery,
  1484. FALSE
  1485. );
  1486. pN8Export->Release();
  1487. WriteOptLog(_T("导出N8,订单号:%s"),strOrderNum);
  1488. OutputDebugString(_T("导出N8!\n"));
  1489. }
  1490. return;
  1491. }
  1492. //////////////////////////////////////////////////////////////////////////
  1493. CString strSQL = _T("");
  1494. #ifdef CHILD_VERSION
  1495. if ( IsGrowthtxdlg.m_bGrowthTx && !strScenery.IsEmpty() )
  1496. strSQL.Format(_T("id = '%s' and growthxname = '%s'; id = '%s'; id = '%s' and name <> '入册' and name <> '入底'"), strOrderNum, strScenery, strOrderNum, strOrderNum);
  1497. else
  1498. strSQL.Format(_T("id = '%s'; id = '%s'; id = '%s' and name <> '入册' and name <> '入底'"), strOrderNum, strOrderNum, strOrderNum);
  1499. #else
  1500. strSQL.Format(_T("id = '%s'; id = '%s'; id = '%s' and kind <> '2' and name <> '入册' and name <> '入底'"), strOrderNum, strOrderNum, strOrderNum);
  1501. #endif//CHILD_VERSION
  1502. g_sendhead.bsql = FALSE;
  1503. g_sendhead.code[0] = 50; // dindansp;
  1504. g_sendhead.code[1] = 11; // dindan;
  1505. g_sendhead.code[2] = 56; // dindansp;
  1506. g_sendhead.tabcount = 3;
  1507. if( g_bAllBranch )
  1508. {//多店汇总时;
  1509. g_branchip = GetBranchIPbyId(strBranchId);
  1510. g_pMainWnd->OnDisconnect();
  1511. g_branchname = strBranchName;
  1512. g_bBranchModify = TRUE;
  1513. g_pMainWnd->ProcessChatMessageRequest2(strSQL);
  1514. g_pMainWnd->OnDisconnect();
  1515. g_bBranchModify = FALSE;
  1516. g_branchip = g_branchname = _T("");
  1517. }
  1518. else
  1519. {// 连接本店或分店时;
  1520. g_pMainWnd->ProcessChatMessageRequest2(strSQL);
  1521. }
  1522. if( !g_bSendOK )
  1523. return ;
  1524. CArray<CStringArray, CStringArray> Arydindan;
  1525. CArray<CStringArray, CStringArray> Arydindansp;
  1526. CArray<CStringArray, CStringArray> Arydindansp2;
  1527. DataToArray( &Arydindansp, &Arydindan, &Arydindansp2 );
  1528. CString strTemp = _T("");
  1529. CStringArray AryImgNums;
  1530. CStringArray AryPerImgGoods;
  1531. // 获取所有dindansp记录no2字段中的相片编号;
  1532. int i = 0;
  1533. int nSize = Arydindansp.GetSize();
  1534. for ( i = 0; i < nSize; i++)
  1535. {
  1536. strTemp = Arydindansp.ElementAt(i).ElementAt(8); // dindansp表中的no2字段;
  1537. GetNo(strTemp, AryImgNums);
  1538. }
  1539. // 获取每张相片编号对应的商品,每个商品间用分号隔开;
  1540. nSize = AryImgNums.GetSize();
  1541. AryPerImgGoods.SetSize(nSize);
  1542. for ( i = 0; i < nSize; i++ )
  1543. {
  1544. strTemp = AryImgNums.ElementAt(i);
  1545. AryPerImgGoods.SetAt(i, GetSelName(strTemp, Arydindansp));
  1546. }
  1547. // 由于VC6.0传CStringArray给VC9.0DLL 时,会产生无法避免的兼容性问题,故使用CString传;
  1548. CString strImgNums = _T("");
  1549. for ( i = 0; i < AryImgNums.GetSize(); i++ )
  1550. {
  1551. strImgNums += AryImgNums.ElementAt(i);
  1552. strImgNums += _T("?|?");
  1553. }
  1554. CString strPerImgGoods = _T("");
  1555. for ( i = 0; i < AryPerImgGoods.GetSize(); i++ )
  1556. {// 商品名称,应该禁止包含非法字符;
  1557. strPerImgGoods += AryPerImgGoods.ElementAt(i);
  1558. strPerImgGoods += _T("?|?");
  1559. }
  1560. // 保存导出相片的路径;
  1561. CString strSaveDirectory = _T("");
  1562. ImgExportInterface *pExport = NULL;
  1563. if ( g_pIMGProcess == NULL )
  1564. {
  1565. return ;
  1566. }
  1567. g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport);
  1568. if ( pExport )
  1569. {// 导出选好的片;
  1570. pExport->ExportSelectedDesignImg(
  1571. strBranchId,
  1572. strOrderNum,
  1573. strCustomerInfo,
  1574. !strScenery.IsEmpty(),
  1575. strScenery,
  1576. _T("*.jpg|*.jpeg"),
  1577. INVALID_COPY_PIX,
  1578. _T("*.nef|*.cr2|*.raw|"),
  1579. FALSE,
  1580. IsGrowthtxdlg.m_bGrowthTx,
  1581. strImgNums,
  1582. strPerImgGoods,
  1583. Arydindan.ElementAt(0).ElementAt(60)
  1584. );
  1585. pExport->Release();
  1586. WriteOptLog(_T("导出选设计,订单号:%s"),strOrderNum);
  1587. OutputDebugString(_T("导出设计好的片!\n"));
  1588. }
  1589. // 结束;
  1590. }
  1591. void DesignFrom::HidePrice()
  1592. {
  1593. #ifdef LKAY_VERSION
  1594. return;
  1595. #else
  1596. return;
  1597. #endif
  1598. }
  1599. void DesignFrom::OnBtnsearchfilter() // 条件查询 按钮;
  1600. {
  1601. SearchFilter dlg;
  1602. dlg.m_mode = 5;
  1603. if (dlg.DoModal() == IDOK)FillGrid();
  1604. g_bSearchFilter = 0;
  1605. }
  1606. void DesignFrom::GetData()
  1607. {
  1608. if (g_bAllBranch == 0)
  1609. {
  1610. if (g_bShowOK == 0)
  1611. {
  1612. #ifdef LKAY_VERSION
  1613. CString filter = "status3='未取' and (dindantype<>'意向客户' or dindantype is null)";
  1614. #else
  1615. CString filter = "status3='未取'";
  1616. #endif
  1617. g_sendhead.bsql = 0;
  1618. g_sendhead.code[0] = 31;
  1619. g_sendhead.tabcount = 1;
  1620. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1621. if (g_bSendOK == 0)return;
  1622. }
  1623. else
  1624. {
  1625. g_sendhead.bsql = 0;
  1626. g_sendhead.code[0] = 31;
  1627. g_sendhead.tabcount = 1;
  1628. #ifdef LKAY_VERSION
  1629. CString filter = "dindantype<>'意向客户' or dindantype is null";
  1630. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1631. #else
  1632. g_pMainWnd->ProcessChatMessageRequest2(1);
  1633. #endif
  1634. if (g_bSendOK == 0)return;
  1635. }
  1636. DataToArray(&m_List1array);
  1637. }
  1638. else
  1639. {
  1640. //////////////数据汇总
  1641. m_List1array.RemoveAll();
  1642. CString branch;
  1643. for (int i = -1; i < g_brancharray.GetSize() - 1; i++)
  1644. {
  1645. if (i != -1)
  1646. {
  1647. branch = g_brancharray.ElementAt(i).ElementAt(0);
  1648. g_branchip = g_brancharray.ElementAt(i).ElementAt(1);
  1649. g_pMainWnd->OnDisconnect();
  1650. g_branchname = branch;
  1651. g_bBranchModify = 1;
  1652. }
  1653. else
  1654. branch = g_brancharray.ElementAt(g_brancharray.GetSize() - 1).ElementAt(0);
  1655. if (g_bShowOK == 0)
  1656. {
  1657. CString filter = "status3='未取'";
  1658. g_sendhead.bsql = 0;
  1659. g_sendhead.code[0] = 31;
  1660. g_sendhead.tabcount = 1;
  1661. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1662. if (g_bSendOK == 0)continue;
  1663. }
  1664. else
  1665. {
  1666. g_sendhead.bsql = 0;
  1667. g_sendhead.code[0] = 31;
  1668. g_sendhead.tabcount = 1;
  1669. g_pMainWnd->ProcessChatMessageRequest2(1);
  1670. if (g_bSendOK == 0)continue;
  1671. }
  1672. CArray<CStringArray, CStringArray>List1array;
  1673. DataToArray(&List1array);
  1674. int size = m_List1array.GetSize();
  1675. for (int j = 0; j < List1array.GetSize(); j++)
  1676. {
  1677. size++;
  1678. m_List1array.SetSize(size, 1);
  1679. size--;
  1680. m_List1array.ElementAt(size).Copy(List1array.ElementAt(j));
  1681. m_List1array.ElementAt(size).InsertAt(0, branch);
  1682. size++;
  1683. }
  1684. }
  1685. g_pMainWnd->OnDisconnect();
  1686. g_bBranchModify = 0;
  1687. g_branchip = g_branchname = "";
  1688. }
  1689. m_List1arraybak.SetSize(m_List1array.GetSize(), 1);
  1690. for (int ii = 0; ii < m_List1array.GetSize(); ii++)
  1691. {
  1692. m_List1arraybak.ElementAt(ii).Copy(m_List1array.ElementAt(ii));
  1693. // 设计要求;原列10
  1694. if (m_List1array.ElementAt(ii).ElementAt(11).GetLength() > 256)
  1695. {
  1696. m_List1array.ElementAt(ii).SetAt(11, m_List1array.ElementAt(ii).ElementAt(11).Left(256) + "...");
  1697. }
  1698. }
  1699. HidePrice();
  1700. FillGrid();
  1701. }
  1702. void DesignFrom::OnBUTprint3() // 更新数据 按钮;
  1703. {
  1704. GetData();
  1705. }
  1706. void DesignFrom::OnBnClickedCloundxy() // 云选样;
  1707. {
  1708. // TODO: 在此添加控件通知处理程序代码
  1709. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  1710. if ( pos == NULL)
  1711. {
  1712. AfxMessageBox(_T("请选中要使用云选片的订单!"));
  1713. return ;
  1714. }
  1715. INT nItem = m_List1.GetNextSelectedItem(pos);
  1716. CString strOrderNum = _T("");
  1717. CString strScenery = _T("");
  1718. CString strCustomerName = _T("");
  1719. CString strCustomerTel = _T("");
  1720. CString strStudioName = _T("");
  1721. CString strStudioTel = _T("");
  1722. CString strUniqueId = _T("");
  1723. CString strClounSite = _T("");
  1724. CString strTemp;
  1725. strOrderNum = m_List1.GetItemText(nItem, 0);
  1726. strCustomerName.Format(_T("%s,%s"), m_List1.GetItemText(nItem, m_nAdd + 1), m_List1.GetItemText(nItem, m_nAdd + 2));
  1727. strCustomerTel.Format(_T("%s,%s"), m_List1.GetItemText(nItem, m_nAdd + 17), m_List1.GetItemText(nItem,m_nAdd + 18));
  1728. strStudioName = g_cominfoarray.ElementAt(0).ElementAt(10);
  1729. strStudioTel = g_cominfoarray.ElementAt(0).ElementAt(11);
  1730. strClounSite = m_List1.m_arLabels.ElementAt(nItem).ElementAt(21);
  1731. INT nIndex = 0;
  1732. strTemp = g_branchname.IsEmpty() ? g_domain : g_branchname;
  1733. if ( ( nIndex = strTemp.Find(_T(".ly.com"))) == -1)
  1734. {
  1735. AfxMessageBox(_T("域名无效!"));
  1736. return;
  1737. }
  1738. strTemp = strTemp.Left(nIndex);
  1739. strTemp = strTemp.Right(6);
  1740. strUniqueId.Format(_T("%s_A_%s_1"), strTemp, strOrderNum);
  1741. if ( lyfzLibrary::LoadCloudSelectionLib() )
  1742. {
  1743. CDlgCloudSelection dlg;
  1744. dlg.SetParamters(1, strUniqueId, g_branchname.IsEmpty() ? g_domain : g_branchname, strStudioName, strStudioTel, strOrderNum,strScenery, m_List1.GetItemText(nItem, m_nAdd + 1),m_List1.GetItemText(nItem, m_nAdd + 2), m_List1.GetItemText(nItem, m_nAdd + 17),m_List1.GetItemText(nItem, m_nAdd + 18), strClounSite);
  1745. dlg.DoModal();
  1746. lyfzLibrary::FreeCloudSelectionLib();
  1747. }
  1748. else
  1749. {
  1750. AfxMessageBox(_T("加载云选片失败,请检查模块文件是否在客户目录下!"));
  1751. }
  1752. }
  1753. void DesignFrom::OnBnClickedResult() // 获取选样结果;
  1754. {
  1755. // TODO: 在此添加控件通知处理程序代码
  1756. CDlgCloundResult dlg;
  1757. dlg.m_pList = &m_List1;
  1758. dlg.m_nAdd = m_nAdd;
  1759. dlg.m_nCloundType = 1;
  1760. POSITION pos = m_List1.GetFirstSelectedItemPosition();
  1761. if ( pos != NULL )
  1762. {
  1763. INT nItem = m_List1.GetNextSelectedItem(pos);
  1764. dlg.m_nSelItem = nItem;
  1765. }
  1766. dlg.DoModal();
  1767. }