TakeFrom.cpp 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868
  1. // TakeFrom.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "TakeFrom.h"
  6. #include "MyMdi.H"
  7. #include "ModifyDinDan.h"
  8. #include "InputPsw.h"
  9. #include "ImportPhoto.h"
  10. #include "ShowPic.h"
  11. #include "TakeMoney2.h"
  12. #include "SelWaiter2.h"
  13. #include "TakeStautsSel.h"
  14. #include "SalaryRateSet2.h"
  15. #include "UploadPhoto.h"
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21. #pragma comment(lib, "Shlwapi.lib")
  22. IMPLEMENT_DYNCREATE(TakeFrom, MyFormView)
  23. TakeFrom::TakeFrom() : MyFormView(TakeFrom::IDD)
  24. {
  25. m_filter = _T("");
  26. m_nAdd = 0;
  27. if (g_bAllBranch)
  28. {
  29. m_nAdd = 1;
  30. }
  31. }
  32. TakeFrom::~TakeFrom()
  33. {
  34. }
  35. void TakeFrom::DoDataExchange(CDataExchange* pDX)
  36. {
  37. MyFormView::DoDataExchange(pDX);
  38. DDX_Control(pDX, IDC_COMBO1, m_combo1);
  39. DDX_Control(pDX, IDC_LIST2, m_List1);
  40. DDX_Control(pDX, IDC_STATIC1, m_static1);
  41. DDX_CBString(pDX, IDC_COMBO1, m_filter);
  42. }
  43. BEGIN_MESSAGE_MAP(TakeFrom, MyFormView)
  44. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  45. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  46. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  47. ON_WM_TIMER()
  48. ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto)
  49. ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto)
  50. ON_BN_CLICKED(IDC_BUTmoney, OnBUTmoney)
  51. ON_BN_CLICKED(IDC_BTNaddsp, OnBTNaddsp)
  52. ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
  53. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  54. ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
  55. ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
  56. ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter)
  57. ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3)
  58. ON_BN_CLICKED(Btn_MicroShare, OnBnClickedMicroshare)
  59. END_MESSAGE_MAP()
  60. #ifdef _DEBUG
  61. void TakeFrom::AssertValid() const
  62. {
  63. MyFormView::AssertValid();
  64. }
  65. void TakeFrom::Dump(CDumpContext& dc) const
  66. {
  67. MyFormView::Dump(dc);
  68. }
  69. #endif //_DEBUG
  70. void TakeFrom::OnInitialUpdate()
  71. {
  72. MyFormView::OnInitialUpdate();
  73. // TODO: Add your specialized code here and/or call the base class
  74. CMyMdi Mdi;
  75. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  76. #ifdef LYFZ_VERSION
  77. GetDlgItem(IDC_BUTimportphoto)->ShowWindow(0);
  78. #endif
  79. // Here we create the outbar control using the splitter as its parent
  80. // and setting its id to the first pane.
  81. CRect rc2;
  82. GetWindowRect(rc2);
  83. ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
  84. EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);
  85. int idarray[] = { IDC_BUTprint3, IDC_BUTimportphoto, IDC_BUTshowphoto, IDC_BUTTON2, IDC_BUTclose };
  86. int idcount = 5;
  87. int btnwid;
  88. CRect prerc;
  89. for (int a = idcount - 2; a >= 0; a--)
  90. {
  91. GetDlgItem(idarray[a + 1])->GetWindowRect(prerc);
  92. ScreenToClient(prerc);
  93. GetDlgItem(idarray[a])->GetWindowRect(rc2);
  94. ScreenToClient(rc2);
  95. btnwid = rc2.Width();
  96. rc2.right = prerc.left;
  97. rc2.left = rc2.right - btnwid;
  98. GetDlgItem(idarray[a])->MoveWindow(rc2);
  99. }
  100. m_static1.SetFont(&g_titlefont);
  101. if (g_bAllBranch == 0)
  102. {
  103. #ifdef CHILD_VERSION
  104. #ifdef LKAY_VERSION
  105. m_List1.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;相片张数,100;景点,100;拍照,100;导片日期,100;摄影师,100;助理,100;化妆师,100;助理,100;接单人,100;套系名称,100;套系价格,100;手机,100;固定电话,100" );
  106. #else
  107. m_List1.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;相片张数,100;景点,100;拍照,100;拍照日期,100;摄影师,100;助理,100;化妆师,100;助理,100;接单人,100;套系名称,100;套系价格,100;手机,100;固定电话,100" );
  108. #endif
  109. #else
  110. m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;相片张数,100;景点,100;拍照,100;拍照日期,100;摄影师,100;助理,100;化妆师,100;助理,100;接单人,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100");
  111. #endif
  112. m_List1.LoadColumnInfo(114);
  113. }
  114. else
  115. {
  116. #ifdef CHILD_VERSION
  117. m_List1.SetHeadings("店名,100;订单号,100;家长姓名,100;宝宝姓名,100;相片张数,100;景点,100;拍照,100;拍照日期,100;摄影师,100;助理,100;化妆师,100;助理,100;接单人,100;套系名称,100;套系价格,100;手机,100;固定电话,100" );
  118. #else
  119. m_List1.SetHeadings("店名,100;订单号,100;男宾姓名,100;女宾姓名,100;相片张数,100;景点,100;拍照,100;拍照日期,100;摄影师,100;助理,100;化妆师,100;助理,100;接单人,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100");
  120. #endif
  121. m_List1.LoadColumnInfo(196);
  122. GetDlgItem(IDC_BUTprint3)->ShowWindow(1);
  123. }
  124. #if JEFF_DELETE_OFF // 多景点时排序有问题!
  125. m_List1.m_bSortSupport = 0;
  126. #endif
  127. GetData();
  128. m_combo1.AddString(g_user.name);
  129. m_combo1.GetWindowRect(rc2);
  130. ScreenToClient(rc2);
  131. rc2.bottom += 200;
  132. m_combo1.MoveWindow(rc2);
  133. GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2);
  134. SetComboHei(&m_combo1, rc2.Height());
  135. }
  136. void TakeFrom::FillGrid(BOOL bStatus/*=0*/)
  137. {
  138. if (g_bSearchFilter) // 1.按钮:条件查询;
  139. {
  140. m_List1.DeleteAllItems2();
  141. int ii = 0;
  142. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  143. int count = 0;
  144. {
  145. BOOL bFinded = 0;
  146. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  147. {
  148. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  149. {
  150. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  151. continue;
  152. }
  153. if (g_filterdate1 != "") // Jeff.查询过滤条件:日期;
  154. {
  155. if (m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) < g_filterdate1 || m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) > g_filterdate2)
  156. {
  157. bFinded = 0;
  158. continue;
  159. }
  160. }
  161. if (g_waiter1 != "") // Jeff.查询过滤条件:门市;
  162. {
  163. if (m_List1array.ElementAt(ii).ElementAt(11 + m_nAdd) != g_waiter1)
  164. {
  165. bFinded = 0;
  166. continue;
  167. }
  168. }
  169. if (g_waiter2 != "") // Jeff.查询过滤条件:摄影师;
  170. {
  171. if (m_List1array.ElementAt(ii).ElementAt(7 + m_nAdd) != g_waiter2)
  172. {
  173. bFinded = 0;
  174. continue;
  175. }
  176. }
  177. if (g_waiter3 != "") // Jeff.查询过滤条件:化妆师;
  178. {
  179. if (m_List1array.ElementAt(ii).ElementAt(9 + m_nAdd) != g_waiter3)
  180. {
  181. bFinded = 0;
  182. continue;
  183. }
  184. }
  185. if (g_waiter4 != "") // Jeff.查询套系类别;
  186. {
  187. if (m_List1array.ElementAt(ii).ElementAt(3) != g_waiter4)
  188. {
  189. bFinded = 0;
  190. continue;
  191. }
  192. }
  193. if (g_bAllBranch && g_filterbranch != "") // Jeff.集团版查询过滤条件:分店名称;
  194. {
  195. if (m_List1array.ElementAt(ii).ElementAt(0) != g_filterbranch)
  196. {
  197. bFinded = 0;
  198. continue;
  199. }
  200. }
  201. // 2015.03.30
  202. // Jeff:上面已有判断,这里必须判断订单号非空才能添加,否则会添加其他空的选项;
  203. if (!m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  204. {
  205. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  206. bFinded = 1;
  207. }
  208. }
  209. }
  210. m_List1.m_arLabels.SetSize(count, 1);
  211. ii = count;
  212. m_List1.m_LabelCount = ii;
  213. m_List1.SetItemCountEx(ii);
  214. CString str;
  215. str.Format("单数:%d", ii);
  216. SetDlgItemText(IDC_STATIC2, str);
  217. }
  218. else // 2.其他显示;
  219. {
  220. m_List1.DeleteAllItems2();
  221. int ii = 0;
  222. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  223. int count = 0;
  224. if (m_filter.IsEmpty()) // 2.1.没有查询关键字;
  225. {
  226. if (bStatus == 1) // bStatus==1,没用到;
  227. {
  228. BOOL bFinded = 0;
  229. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  230. {
  231. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  232. {
  233. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  234. continue;
  235. }
  236. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd).IsEmpty() == 0)
  237. {
  238. bFinded = 1;
  239. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  240. }
  241. else
  242. {
  243. bFinded = 0;
  244. }
  245. }
  246. }
  247. else if (bStatus == 2) // 今拍按钮用到;
  248. {
  249. BOOL bFinded = 0;
  250. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  251. {
  252. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  253. {
  254. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  255. continue;
  256. }
  257. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) == "OK" && m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) == g_date)
  258. {
  259. bFinded = 1;
  260. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  261. }
  262. else
  263. {
  264. bFinded = 0;
  265. }
  266. }
  267. }
  268. else // bStatus==0;默认使用的值;
  269. {
  270. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  271. {
  272. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  273. }
  274. }
  275. }
  276. else // 2.2.指定查询条件 ;
  277. {
  278. if (bStatus == 1)
  279. {
  280. BOOL bFinded = 0;
  281. int type = GetType(m_filter);
  282. if (type == 1)//电话
  283. {
  284. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  285. {
  286. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  287. {
  288. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  289. continue;
  290. }
  291. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd).IsEmpty() == 0 && (m_List1array.ElementAt(ii).ElementAt(15 + m_nAdd).Find(m_filter) != -1 || \
  292. m_List1array.ElementAt(ii).ElementAt(14 + m_nAdd).Find(m_filter) != -1))
  293. {
  294. bFinded = 1;
  295. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  296. }
  297. else
  298. {
  299. bFinded = 0;
  300. }
  301. }
  302. }
  303. else if (type == 2)//拼音
  304. {
  305. BOOL bFinded = 0;
  306. m_filter.MakeUpper();
  307. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  308. {
  309. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  310. {
  311. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  312. continue;
  313. }
  314. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd).IsEmpty() == 0 && (m_List1array.ElementAt(ii).ElementAt(16 + m_nAdd).Find(m_filter) != -1 || \
  315. m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1))
  316. {
  317. bFinded = 1;
  318. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  319. }
  320. else
  321. {
  322. bFinded = 0;
  323. }
  324. }
  325. }
  326. else
  327. {
  328. BOOL bFinded = 0;
  329. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  330. {
  331. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  332. {
  333. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  334. continue;
  335. }
  336. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) != "OK"&&\
  337. m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd).IsEmpty() == 0 && \
  338. (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \
  339. m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || \
  340. m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 || \
  341. m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1 || \
  342. m_List1array.ElementAt(ii).ElementAt(4).Find(m_filter) != -1 || \
  343. m_List1array.ElementAt(ii).ElementAt(5).Find(m_filter) != -1 || \
  344. m_List1array.ElementAt(ii).ElementAt(6).Find(m_filter) != -1 || \
  345. m_List1array.ElementAt(ii).ElementAt(7).Find(m_filter) != -1 || \
  346. m_List1array.ElementAt(ii).ElementAt(8).Find(m_filter) != -1 || \
  347. m_List1array.ElementAt(ii).ElementAt(9).Find(m_filter) != -1 || \
  348. m_List1array.ElementAt(ii).ElementAt(10).Find(m_filter) != -1 || \
  349. m_List1array.ElementAt(ii).ElementAt(11).Find(m_filter) != -1 || \
  350. m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 || \
  351. m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 || \
  352. m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 || \
  353. m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 || \
  354. m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1))
  355. {
  356. bFinded = 1;
  357. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  358. }
  359. else
  360. {
  361. bFinded = 0;
  362. }
  363. }
  364. }
  365. }
  366. else if (bStatus == 2)
  367. {
  368. BOOL bFinded = 0;
  369. int type = GetType(m_filter);
  370. if (type == 1)//电话
  371. {
  372. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  373. {
  374. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  375. {
  376. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  377. continue;
  378. }
  379. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) == "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) == g_date && (m_List1array.ElementAt(ii).ElementAt(15 + m_nAdd).Find(m_filter) != -1 || \
  380. m_List1array.ElementAt(ii).ElementAt(14 + m_nAdd).Find(m_filter) != -1))
  381. {
  382. bFinded = 1;
  383. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  384. }
  385. else
  386. {
  387. bFinded = 0;
  388. }
  389. }
  390. }
  391. else if (type == 2)//拼音
  392. {
  393. BOOL bFinded = 0;
  394. m_filter.MakeUpper();
  395. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  396. {
  397. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  398. {
  399. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  400. continue;
  401. }
  402. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) == "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) == g_date && (m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1 || \
  403. m_List1array.ElementAt(ii).ElementAt(16 + m_nAdd).Find(m_filter) != -1))
  404. {
  405. bFinded = 1;
  406. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  407. }
  408. else
  409. {
  410. bFinded = 0;
  411. }
  412. }
  413. }
  414. else
  415. {
  416. BOOL bFinded = 0;
  417. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  418. {
  419. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  420. {
  421. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  422. continue;
  423. }
  424. if (m_List1array.ElementAt(ii).ElementAt(5 + m_nAdd) == "OK"&&m_List1array.ElementAt(ii).ElementAt(6 + m_nAdd) == g_date &&\
  425. (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \
  426. m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || \
  427. m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 || \
  428. m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1 || \
  429. m_List1array.ElementAt(ii).ElementAt(4).Find(m_filter) != -1 || \
  430. m_List1array.ElementAt(ii).ElementAt(5).Find(m_filter) != -1 || \
  431. m_List1array.ElementAt(ii).ElementAt(6).Find(m_filter) != -1 || \
  432. m_List1array.ElementAt(ii).ElementAt(7).Find(m_filter) != -1 || \
  433. m_List1array.ElementAt(ii).ElementAt(8).Find(m_filter) != -1 || \
  434. m_List1array.ElementAt(ii).ElementAt(9).Find(m_filter) != -1 || \
  435. m_List1array.ElementAt(ii).ElementAt(10).Find(m_filter) != -1 || \
  436. m_List1array.ElementAt(ii).ElementAt(11).Find(m_filter) != -1 || \
  437. m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 || \
  438. m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 || \
  439. m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 || \
  440. m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 || \
  441. m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1))
  442. {
  443. bFinded = 1;
  444. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  445. }
  446. else
  447. {
  448. bFinded = 0;
  449. }
  450. }
  451. }
  452. }
  453. else
  454. {
  455. int type = GetType(m_filter);
  456. if (type == 1)//电话
  457. {
  458. BOOL bFinded = 0;
  459. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  460. {
  461. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  462. {
  463. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  464. continue;
  465. }
  466. if (m_List1array.ElementAt(ii).ElementAt(14 + m_nAdd).Find(m_filter) != -1 || \
  467. m_List1array.ElementAt(ii).ElementAt(15 + m_nAdd).Find(m_filter) != -1)
  468. {
  469. bFinded = 1;
  470. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  471. }
  472. else
  473. {
  474. bFinded = 0;
  475. }
  476. }
  477. }
  478. else if (type == 2)//拼音
  479. {
  480. BOOL bFinded = 0;
  481. m_filter.MakeUpper();
  482. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  483. {
  484. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  485. {
  486. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  487. continue;
  488. }
  489. if (m_List1array.ElementAt(ii).ElementAt(16 + m_nAdd).Find(m_filter) != -1 || \
  490. m_List1array.ElementAt(ii).ElementAt(17 + m_nAdd).Find(m_filter) != -1)
  491. {
  492. bFinded = 1;
  493. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  494. }
  495. else
  496. {
  497. bFinded = 0;
  498. }
  499. }
  500. }
  501. else
  502. {
  503. BOOL bFinded = 0;
  504. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  505. {
  506. if (bFinded && m_List1array.ElementAt(ii).ElementAt(0 + m_nAdd).IsEmpty())
  507. {
  508. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  509. continue;
  510. }
  511. if (m_List1array.ElementAt(ii).ElementAt(0).Find(m_filter) != -1 || \
  512. m_List1array.ElementAt(ii).ElementAt(1).Find(m_filter) != -1 || \
  513. m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1 || \
  514. m_List1array.ElementAt(ii).ElementAt(3).Find(m_filter) != -1 || \
  515. m_List1array.ElementAt(ii).ElementAt(4).Find(m_filter) != -1 || \
  516. m_List1array.ElementAt(ii).ElementAt(5).Find(m_filter) != -1 || \
  517. m_List1array.ElementAt(ii).ElementAt(6).Find(m_filter) != -1 || \
  518. m_List1array.ElementAt(ii).ElementAt(7).Find(m_filter) != -1 || \
  519. m_List1array.ElementAt(ii).ElementAt(8).Find(m_filter) != -1 || \
  520. m_List1array.ElementAt(ii).ElementAt(9).Find(m_filter) != -1 || \
  521. m_List1array.ElementAt(ii).ElementAt(10).Find(m_filter) != -1 || \
  522. m_List1array.ElementAt(ii).ElementAt(11).Find(m_filter) != -1 || \
  523. m_List1array.ElementAt(ii).ElementAt(14).Find(m_filter) != -1 || \
  524. m_List1array.ElementAt(ii).ElementAt(15).Find(m_filter) != -1 || \
  525. m_List1array.ElementAt(ii).ElementAt(16).Find(m_filter) != -1 || \
  526. m_List1array.ElementAt(ii).ElementAt(17).Find(m_filter) != -1 || \
  527. m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1)
  528. {
  529. bFinded = 1;
  530. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  531. }
  532. else
  533. {
  534. bFinded = 0;
  535. }
  536. }
  537. }
  538. }
  539. }
  540. m_List1.m_arLabels.SetSize(count, 1);
  541. ii = count;
  542. m_List1.m_LabelCount = ii;
  543. m_List1.SetItemCountEx(ii);
  544. CString str;
  545. str.Format("单数:%d", ii);
  546. SetDlgItemText(IDC_STATIC2, str);
  547. }
  548. if (!g_id.IsEmpty())
  549. {
  550. for (int i = 0; i < m_List1.GetItemCount(); i++)
  551. {
  552. if (g_id == m_List1.GetItemText(i, 0 + m_nAdd))
  553. {
  554. m_List1.SetItemState(i, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
  555. m_List1.EnsureVisible(i, FALSE);
  556. break;
  557. }
  558. }
  559. }
  560. }
  561. void TakeFrom::OnBUTclose()
  562. {
  563. // TODO: Add your control notification handler code here
  564. GetParent()->SendMessage(WM_CLOSE);
  565. }
  566. void TakeFrom::OnSelchangeCombo1()
  567. {
  568. // TODO: Add your control notification handler code here
  569. SetTimer(1, 100, NULL);
  570. }
  571. void TakeFrom::OnTimer(UINT nIDEvent)
  572. {
  573. // TODO: Add your message handler code here and/or call default
  574. KillTimer(nIDEvent);
  575. OnButton1();
  576. }
  577. BOOL TakeFrom::PreTranslateMessage(MSG* pMsg)
  578. {
  579. // TODO: Add your specialized code here and/or call the base class
  580. try
  581. {
  582. if (pMsg->message == WM_KEYDOWN)
  583. {
  584. switch (pMsg->wParam)
  585. {
  586. case VK_RETURN:
  587. OnButton1();
  588. return 1;
  589. case 0x43: // copy
  590. if ((GetKeyState(VK_CONTROL) & 0x80))
  591. {
  592. GetFocus()->SendMessage(WM_COPY);
  593. return TRUE;
  594. }
  595. break;
  596. case 0x56: //Ctrl + V:
  597. if ((GetKeyState(VK_CONTROL) & 0x80))
  598. {
  599. GetFocus()->SendMessage(WM_PASTE);
  600. return TRUE;
  601. }
  602. break;
  603. case 0x58: // cut
  604. if ((GetKeyState(VK_CONTROL) & 0x80))
  605. {
  606. GetFocus()->SendMessage(WM_CUT);
  607. return TRUE;
  608. }
  609. break;
  610. case 0x5A: //undo
  611. case 0x59: //redo
  612. if ((GetKeyState(VK_CONTROL) & 0x80))
  613. {
  614. GetFocus()->SendMessage(WM_UNDO);
  615. return TRUE;
  616. }
  617. break;
  618. }
  619. }
  620. return MyFormView::PreTranslateMessage(pMsg);
  621. }
  622. catch (...)
  623. {
  624. }
  625. }
  626. // Jeff.remark.
  627. // 1.弹出"拍照状态确认"对话框前,需要获取订单的拍照状态,以此来确定是否需要禁用check状态框;
  628. //
  629. void TakeFrom::OnBUTimportphoto() // 导入原片按钮;
  630. {
  631. POSITION pos;
  632. pos = m_List1.GetFirstSelectedItemPosition();
  633. if (pos == NULL)
  634. {
  635. AfxMessageBox("请先选中您要导片的定单!", MB_ICONINFORMATION);
  636. return;
  637. }
  638. // 1.选中的起始行号;
  639. int iItem = m_List1.GetNextSelectedItem(pos);
  640. // 2.选中的行数;
  641. int itemcount = m_List1.GetItemCount();
  642. int iItemBak = iItem;
  643. CString status2 = "OK";
  644. CString branch;
  645. CString strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd); // .OrderNumber订单号;
  646. int beginno = atoi(m_List1.GetItemText(iItem, 3 + m_nAdd)) + 1; // .Jeff.起始编号,即下一次相片命名的号码数;由服务器减1,客户端加1;
  647. if (g_bAllBranch)
  648. branch = m_List1.GetItemText(iItem, 0);
  649. // Jeff.多景点时,选择了不是第一个景点,订单是空的;
  650. while (strOrderNumber == "")
  651. {
  652. iItem--;
  653. strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd);
  654. beginno = atoi(m_List1.GetItemText(iItem, 3 + m_nAdd)) + 1; // 由服务器减1,客户端加1;
  655. }
  656. int nTopItem = iItem;// Jeff add:记录第一个有订单号的项;
  657. //int nNotOkItem = -1; // Jeff add:第一个被记录未拍照ok的子景点项;如果是头景点呢?
  658. // .jdpos景点位置;并不能用来判断该订单是否多个景点,因为如果iItem是有订单号的话,无效;
  659. int jdpos = iItemBak - iItem;
  660. // .订单拍摄如果不是ok状态,设置为拍摄中;
  661. BOOL bOK = TRUE; //Jeff.add;
  662. #if 0
  663. if(iItemBak != iItem) // .多景点,头景点;
  664. {
  665. #if 0 // 有下面的while,就不需要这里的判断;
  666. if(m_List1.GetItemText(iItem, 5+m_nAdd) != "OK") // Jeff.why not:if(m_List1.GetItemText(iItemBak, 5+m_nAdd) != "OK") 下面处理了iItem++.
  667. status2 = "拍摄中";
  668. // .Jeff add:当有两个景点时,防止下面while循环出现少处理尾数的问题;
  669. if ( m_List1.GetItemText(iItemBak,5+m_nAdd) != "OK")
  670. status2 = "拍摄中";
  671. #endif
  672. //BOOL bOK = TRUE;//放到外面去;
  673. // Jeff.有订单号的第一个景点.
  674. if(m_List1.GetItemText(iItem, 5+m_nAdd) != "OK")
  675. {
  676. status2 = "拍摄中";
  677. bOK = FALSE;
  678. }
  679. // Jeff.无订单号的子景点处理;
  680. while( m_List1.GetItemText(++iItem, 0 + m_nAdd) == "" && iItem < itemcount)
  681. {
  682. if(m_List1.GetItemText (iItem, 5+m_nAdd) != "OK")
  683. {
  684. status2="拍摄中";
  685. bOK = FALSE;
  686. break;
  687. }
  688. }
  689. if ( bOK ) status2 = "OK";
  690. // printf("Jeff:多个景点,拍照状态=%s\n\n",status2);
  691. }
  692. else // Jeff add:当只有一个景点时,因为下面的while循环不处理只有一个景点的情况;
  693. {
  694. if ( m_List1.GetItemText(iItemBak,5+m_nAdd) != "OK")
  695. {
  696. status2 = "拍摄中";
  697. bOK = FALSE;
  698. }
  699. else
  700. status2 = "OK";
  701. // printf("Jeff:只有一个景点,拍照状态=%s\n\n",status2);
  702. }
  703. #endif
  704. #if 1 // Jeff.用于判断是否只剩下一个 未OK 状态时,拍照确认对话框的复选是否需要勾上;
  705. // 此时iItem为有订单号的头景点;
  706. if (m_List1.GetItemText(iItem, 5 + m_nAdd) != "OK")
  707. {
  708. status2 = "拍摄中";
  709. //bOK = FALSE;
  710. }
  711. // .子景点(如果有的话);
  712. ++iItem;
  713. while (iItem < itemcount && m_List1.GetItemText(iItem, 0 + m_nAdd) == "" && status2 != "拍摄中")
  714. {
  715. if (m_List1.GetItemText(iItem, 5 + m_nAdd) != "OK" && iItemBak != iItem) // Jeff.如果只有两个景点这里出错:第一个ok,第二个未拍;这里会跳出;
  716. {
  717. status2 = "拍摄中";
  718. //bOK = FALSE;
  719. //nNotOkItem = iItem;
  720. break;
  721. }
  722. iItem++;
  723. }
  724. // printf("Jeff:对话框前的状态:%s\n\n",status2);
  725. #endif
  726. #if 0
  727. ++iItem;
  728. while(iItem<itemcount && m_List1.GetItemText(iItem, 0 + m_nAdd) == "" && status2 != "拍摄中")
  729. {
  730. if(m_List1.GetItemText (iItem, 5+m_nAdd) != "OK" && iItemBak != iItem ) // Jeff.如果只有两个景点这里出错:第一个ok,第二个未拍;这里会跳出;
  731. {
  732. status2="拍摄中";
  733. break;
  734. }
  735. iItem++;
  736. }
  737. #endif
  738. iItem = iItemBak;
  739. CString dindanjd = m_List1.GetItemText(iItem, 4 + m_nAdd);
  740. CString waiter1 = m_List1.GetItemText(iItem, 7 + m_nAdd);
  741. CString waiter12 = m_List1.GetItemText(iItem, 8 + m_nAdd);
  742. CString waiter2 = m_List1.GetItemText(iItem, 9 + m_nAdd);
  743. CString waiter22 = m_List1.GetItemText(iItem, 10 + m_nAdd);
  744. strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd);
  745. while (strOrderNumber == "")
  746. {
  747. iItem--;
  748. strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd);
  749. }
  750. CString name = m_List1.GetItemText(iItem, 1 + m_nAdd) + "," + m_List1.GetItemText(iItem, 2 + m_nAdd);
  751. name.TrimLeft(",");
  752. name.TrimRight(",");
  753. name = "客人:" + name;
  754. CString phone = m_List1.GetItemText(iItem, 14 + m_nAdd) + "," + m_List1.GetItemText(iItem, 15 + m_nAdd);
  755. phone.TrimLeft(",");
  756. phone.TrimRight(",");
  757. phone = "电话:" + phone;
  758. if (g_path1.IsEmpty())
  759. {
  760. AfxMessageBox("未设置原片保存机器, 请通知系统管理员!", MB_ICONINFORMATION);
  761. return;
  762. }
  763. #ifdef ENTERPRISE_VERSION
  764. if (::CheckFolderFileExist(g_path1) == 0)
  765. ::CreateDirectory(g_path1, NULL);
  766. #endif
  767. if (!::CheckFolderFileExist(g_path1))
  768. {
  769. AfxMessageBox("原片保存机器目录未设置, 请通知系统管理员!", MB_ICONINFORMATION);
  770. return;
  771. }
  772. CString savepath;
  773. if (g_bAllBranch)
  774. {
  775. CString branchpath = GetBranchPhotoPath(branch);
  776. savepath = g_path1 + branchpath + "\\";
  777. if (::CheckFolderFileExist(savepath) == 0)
  778. ::CreateDirectory(savepath, NULL);
  779. }
  780. else
  781. savepath = g_path1 + "\\";
  782. savepath += strOrderNumber + "\\";
  783. if (::CheckFolderFileExist(savepath) == 0)
  784. ::CreateDirectory(savepath, NULL);
  785. CString calnopath = savepath;
  786. savepath += dindanjd + "\\";
  787. if (::CheckFolderFileExist(savepath) == 0)
  788. ::CreateDirectory(savepath, NULL);
  789. CString Filter = "图片文件 (*.jpg)|*.jpg|原始格式RAW (*.raw)|*.raw|原始格式NEF (*.nef)|*.nef|原始格式CR2 (*.cr2)|*.cr2||";
  790. // .选择要导入的相片,可多选;
  791. CFileDialog fdlg(true, NULL, "openfile", OFN_ALLOWMULTISELECT, Filter);
  792. TCHAR szBuffer[60000] = { 0 };
  793. fdlg.m_ofn.lpstrFile = szBuffer;
  794. fdlg.m_ofn.nMaxFile = 60000;
  795. if (fdlg.DoModal() != IDOK)
  796. {
  797. // .拍摄人员确认 SelWaiter2;
  798. SelWaiter2 waiterdlg;
  799. waiterdlg.waiter1 = waiter1;
  800. waiterdlg.waiter12 = waiter12;
  801. waiterdlg.waiter2 = waiter2;
  802. waiterdlg.waiter22 = waiter22;
  803. waiterdlg.beginno = beginno;// Jeff,实际上SelWaiter::beginno并没有任何作用,这里放置具有误导性!
  804. if (waiterdlg.DoModal() != IDOK)return;
  805. waiter1 = waiterdlg.waiter1;
  806. waiter12 = waiterdlg.waiter12;
  807. waiter2 = waiterdlg.waiter2;
  808. waiter22 = waiterdlg.waiter22;
  809. beginno = waiterdlg.beginno;
  810. CString status;
  811. // .拍照状态确认.对话框.
  812. TakeStautsSel dlg2;
  813. if (status2 == "OK") // .拍照状态为ok时;
  814. {
  815. dlg2.m_check1 = 1;
  816. // Jeff.add:已经是ok的拍照状态,禁用用户修改该状态;IDC_CHECK1
  817. //dlg2.DisEnableCheck();
  818. dlg2.m_bCheckEnalbe = FALSE;
  819. }
  820. dlg2.DoModal();
  821. if (dlg2.m_radio1 == 0)
  822. {
  823. status = "OK";
  824. }
  825. else if (dlg2.m_radio1 == 1)
  826. {
  827. status = "拍摄中";
  828. //dlg2.CheckChange();
  829. }
  830. else
  831. {
  832. status = "未拍";
  833. //dlg2.CheckChange();
  834. }
  835. #if 1
  836. //本次选择ok时,需要再检查一下,看是否全部都已经ok;
  837. // 此时iItem为有订单号的头景点;
  838. // printf("Jeff:景点拍照完成,nTopItem=%d\n\n",nTopItem);
  839. bOK = TRUE;
  840. status2 = "OK";
  841. int nItem = nTopItem;
  842. if (m_List1.GetItemText(nItem, 5 + m_nAdd) != "OK")
  843. {
  844. if (nItem != iItemBak)
  845. {
  846. status2 = "拍摄中";
  847. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  848. bOK = FALSE;
  849. }
  850. else if (status != "OK")
  851. {
  852. status2 = "拍摄中";
  853. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  854. bOK = FALSE;
  855. }
  856. }
  857. // .子景点(如果有的话);
  858. ++nItem;
  859. while (nItem < itemcount && m_List1.GetItemText(nItem, 0 + m_nAdd) == "" && status2 != "拍摄中")
  860. {
  861. if (m_List1.GetItemText(nItem, 5 + m_nAdd) != "OK" && iItemBak != nItem) // Jeff.如果只有两个景点这里出错:第一个ok,第二个未拍;这里会跳出;
  862. {
  863. status2 = "拍摄中";
  864. bOK = FALSE;
  865. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  866. break;
  867. }
  868. else
  869. {
  870. if (status != "OK")
  871. {
  872. status2 = "拍摄中";
  873. bOK = FALSE;
  874. }
  875. }
  876. ++nItem;
  877. }
  878. if (bOK) status2 = "OK";
  879. #endif
  880. #if 0
  881. if(dlg2.m_check1) // .拍照景点全部ok状态;
  882. status2="OK";
  883. else
  884. status2="拍摄中";
  885. #else
  886. //if ( !bOK )
  887. // status2 = "拍摄中";
  888. //else if(dlg2.m_check1) // .拍照景点全部ok状态;
  889. // status2 = "OK";
  890. CString sql;
  891. if (dlg2.m_check1)
  892. {
  893. status2 = "OK";
  894. // Jeff:如果有多个景点,全部设置为拍照ok;
  895. // 需要遍历处理;
  896. sql.Format("update dindanjd set [status]='OK' where id='%s'", strOrderNumber);
  897. // printf("Jeff:全部景点选择拍照OK,SQL=%s\n\n",sql);
  898. }
  899. #endif
  900. //CString sql;
  901. //sql="update dindanjd set [status]='"+status+"',[waiter1]='"+waiter1+"',[waiter12]='"+waiter12+"',[waiter2]='"+waiter2+"',[waiter22]='"+waiter22+"' where [id]='"+id+"' and [name]='"+dindanjd+"'";
  902. sql += "***update dindanjd set [status]='" + status + "',[waiter1]='" + waiter1 + "',[waiter12]='" + waiter12 + "',[waiter2]='" + waiter2 + "',[waiter22]='" + waiter22 + "' where [id]='" + strOrderNumber + "' and [name]='" + dindanjd + "'";
  903. #ifndef LYFZ_VERSION
  904. if (jdpos == 0)
  905. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter1]='" + waiter1 + "',[waiter2]='" + waiter2 + "' where [id]='" + strOrderNumber + "'";
  906. else if (jdpos == 1)
  907. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter12]='" + waiter1 + "',[waiter22]='" + waiter2 + "' where [id]='" + strOrderNumber + "'";
  908. else if (jdpos == 2)
  909. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter13]='" + waiter1 + "',[waiter23]='" + waiter2 + "' where [id]='" + strOrderNumber + "'";
  910. else if (jdpos == 3)
  911. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter14]='" + waiter1 + "',[waiter24]='" + waiter2 + "' where [id]='" + strOrderNumber + "'";
  912. else
  913. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end where [id]='" + strOrderNumber + "'";
  914. #else
  915. sql+="***update dindan set [status]=case when [status]<>'OK' then '"+status2+"' else [status] end where [id]='"+strOrderNumber+"'";
  916. #endif
  917. CString sql2;
  918. if (1)
  919. {
  920. sql2 = "***gentakecontent:" + strOrderNumber;
  921. sql += sql2;
  922. }
  923. g_sendhead.bsql = 1;
  924. if (g_bAllBranch)
  925. {
  926. g_branchip = GetIP(branch);
  927. g_pMainWnd->OnDisconnect();
  928. g_branchname = branch;
  929. g_bBranchModify = 1;
  930. g_pMainWnd->ProcessChatMessageRequest2(sql);
  931. g_pMainWnd->OnDisconnect();
  932. g_bBranchModify = 0;
  933. g_branchip = g_branchname = "";
  934. }
  935. else
  936. g_pMainWnd->ProcessChatMessageRequest2(sql);
  937. if (g_bSendOK == 0)return;
  938. if (g_bAllBranch == 0)
  939. {
  940. GetData();
  941. }
  942. else
  943. {
  944. BOOL bFind = 0;
  945. for (int i = 0; i < m_List1array.GetSize(); i++)
  946. {
  947. if (bFind && m_List1array.ElementAt(i).ElementAt(1) != "")break;
  948. if (strOrderNumber == m_List1array.ElementAt(i).ElementAt(1) && branch == m_List1array.ElementAt(i).ElementAt(0))
  949. {
  950. bFind = 1;
  951. }
  952. if (bFind && dindanjd == m_List1array.ElementAt(i).ElementAt(4))
  953. {
  954. m_List1array.ElementAt(i).SetAt(7 + m_nAdd, waiter1);
  955. m_List1array.ElementAt(i).SetAt(8 + m_nAdd, waiter12);
  956. m_List1array.ElementAt(i).SetAt(9 + m_nAdd, waiter2);
  957. m_List1array.ElementAt(i).SetAt(10 + m_nAdd, waiter22);
  958. m_List1array.ElementAt(i).SetAt(5 + m_nAdd, status);
  959. FillGrid();
  960. break;
  961. }
  962. }
  963. }
  964. return;
  965. }
  966. pos = fdlg.GetStartPosition();
  967. CStringArray array;
  968. while (pos != NULL)
  969. {
  970. array.Add(fdlg.GetNextPathName(pos));
  971. }
  972. if (array.GetSize() == 0)return;
  973. if (1)
  974. {
  975. CString str;
  976. str.Format("%s\r\n%s\r\n景点:%s\r\n确认您选中的照片与客户资料相符吗? 是否继续?", name, phone, dindanjd);
  977. if (AfxMessageBox(str, MB_YESNO | MB_ICONINFORMATION) != IDYES)
  978. return;
  979. }
  980. SelWaiter2 waiterdlg;
  981. waiterdlg.waiter1 = waiter1;
  982. waiterdlg.waiter12 = waiter12;
  983. waiterdlg.waiter2 = waiter2;
  984. waiterdlg.waiter22 = waiter22;
  985. waiterdlg.beginno = beginno;
  986. if (waiterdlg.DoModal() != IDOK)return;
  987. waiter1 = waiterdlg.waiter1;
  988. waiter12 = waiterdlg.waiter12;
  989. waiter2 = waiterdlg.waiter2;
  990. waiter22 = waiterdlg.waiter22;
  991. beginno = waiterdlg.beginno;
  992. //----------------------------------------------------------------------------------------------
  993. //----------------------------------------------------------------------------------------------
  994. //----------------------------------------------------------------------------------------------
  995. // 导入拍照好的相片;
  996. ImportPhoto dlg;
  997. dlg.beginno = beginno; // 当前订单相片编号;
  998. dlg.m_bOfmat = 1; // 未知;
  999. dlg.m_branch = branch; // 分店名称;
  1000. dlg.m_nphototype = 0; // 相片类型,==0表示原片;
  1001. dlg.m_calnopath = calnopath; // 未知;
  1002. dlg.m_mode = 2; // 未知;
  1003. dlg.m_bOrigin = 1; // 未知;
  1004. dlg.m_pArray = &array; // 要导入的相片路径集合;
  1005. dlg.m_savepath = savepath; // 保存相片的目录;
  1006. #ifdef ENTERPRISE_VERSION
  1007. // if(!g_branchname.IsEmpty())
  1008. {
  1009. dlg.m_id = strOrderNumber;
  1010. dlg.m_bSaveUploadTask = g_bSaveUploadTask1;
  1011. dlg.m_sel = g_cominfoarraylocal.ElementAt(0).ElementAt(78);
  1012. dlg.m_uploadtaskarray.Add(strOrderNumber + ";" + name);
  1013. dlg.m_uploadtaskarray.Add("");
  1014. dlg.m_uploadtaskarray.Add("");
  1015. dlg.m_uploadtaskarray.Add("");
  1016. dlg.m_uploadtaskarray.Add("");
  1017. dlg.m_uploadtaskarray.Add("");
  1018. dlg.m_uploadtaskarray.Add("");
  1019. dlg.m_uploadtaskarray.Add("");
  1020. dlg.m_uploadtaskarray.Add("");
  1021. dlg.m_uploadtaskarray.Add("");
  1022. }
  1023. #endif
  1024. dlg.DoModal();
  1025. // Jeff.每次重新导入相片时,都删除ok文件;
  1026. beginno = dlg.beginno;
  1027. savepath += "ok";
  1028. ::DeleteFile(savepath);
  1029. CString status;
  1030. TakeStautsSel dlg2;
  1031. if (status2 == "OK")
  1032. {
  1033. dlg2.m_check1 = 1;
  1034. dlg2.m_bCheckEnalbe = FALSE;
  1035. }
  1036. dlg2.DoModal();
  1037. if (dlg2.m_radio1 == 0)
  1038. {
  1039. status = "OK";
  1040. }
  1041. else if (dlg2.m_radio1 == 1)
  1042. {
  1043. status = "拍摄中";
  1044. //dlg2.CheckChange();
  1045. }
  1046. else
  1047. {
  1048. status = "未拍";
  1049. //dlg2.CheckChange();
  1050. }
  1051. #if 1
  1052. //本次选择ok时,需要再检查一下,看是否全部都已经ok;
  1053. // 此时iItem为有订单号的头景点;
  1054. // printf("Jeff:景点拍照完成,nTopItem=%d\n\n",nTopItem);
  1055. bOK = TRUE;
  1056. status2 = "OK";
  1057. int nItem = nTopItem;
  1058. if (m_List1.GetItemText(nItem, 5 + m_nAdd) != "OK")
  1059. {
  1060. if (nItem != iItemBak)
  1061. {
  1062. status2 = "拍摄中";
  1063. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  1064. bOK = FALSE;
  1065. }
  1066. else if (status != "OK")
  1067. {
  1068. status2 = "拍摄中";
  1069. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  1070. bOK = FALSE;
  1071. }
  1072. }
  1073. // .子景点(如果有的话);
  1074. ++nItem;
  1075. while (nItem < itemcount && m_List1.GetItemText(nItem, 0 + m_nAdd) == "" && status2 != "拍摄中")
  1076. {
  1077. if (m_List1.GetItemText(nItem, 5 + m_nAdd) != "OK" && iItemBak != nItem) // Jeff.如果只有两个景点这里出错:第一个ok,第二个未拍;这里会跳出;
  1078. {
  1079. status2 = "拍摄中";
  1080. bOK = FALSE;
  1081. // printf("Jeff:景点%d拍照完成\n\n",nItem);
  1082. break;
  1083. }
  1084. else
  1085. {
  1086. if (status != "OK")
  1087. {
  1088. status2 = "拍摄中";
  1089. bOK = FALSE;
  1090. }
  1091. }
  1092. ++nItem;
  1093. }
  1094. if (bOK) status2 = "OK";
  1095. #endif
  1096. #if 0
  1097. if(dlg2.m_check1)
  1098. status2="OK";
  1099. else
  1100. status2="拍摄中";
  1101. #else
  1102. //if ( !bOK )
  1103. // status2 = "拍摄中";
  1104. //else if(dlg2.m_check1) // .拍照景点全部ok状态;
  1105. // status2 = "OK";
  1106. CString sql;
  1107. if (dlg2.m_check1)
  1108. {
  1109. status2 = "OK";
  1110. // Jeff:如果有多个景点,全部设置为拍照ok;
  1111. // 需要遍历处理?;
  1112. // 批量处理某个订单的就可以了;
  1113. // SQL:update dindanjd set [status]='OK' where id='';
  1114. // CString SQL;
  1115. sql.Format("update dindanjd set [status]='OK' where id='%s'", strOrderNumber);
  1116. // printf("Jeff:全部景点选择拍照OK,SQL=%s\n\n",sql);
  1117. }
  1118. #endif
  1119. //CString sql;
  1120. //sql="update dindanjd set [status]='"+status+"',[date]='"+g_date+"',[waiter1]='"+waiter1+"',[waiter12]='"+waiter12+"',[waiter2]='"+waiter2+"',[waiter22]='"+waiter22+"' where [id]='"+id+"' and [name]='"+dindanjd+"'";
  1121. sql += "***update dindanjd set [status]='" + status + "',[date]='" + g_date + "',[waiter1]='" + waiter1 + "',[waiter12]='" + waiter12 + "',[waiter2]='" + waiter2 + "',[waiter22]='" + waiter22 + "' where [id]='" + strOrderNumber + "' and [name]='" + dindanjd + "'";
  1122. CString sbeginno;
  1123. sbeginno.Format("%d", beginno);
  1124. #ifdef LYFZ_VERSION
  1125. //sql+="***update dindan set [status]='"+status2+"' where [id]='"+id+"'";//旧文;
  1126. sql+="***update dindan set [status]=case when [status]<>'OK' then '"+status2+"' else [status] end"+" where [id]='"+id+"'";
  1127. #else
  1128. // dindan time2为拍照时间,在第一次ok时,这个时间不能再修改;
  1129. // Jeff.SQL参考例子:
  1130. // update dindan set time2='2014-06-28' where id='20140628-007' and isnull(time2,'')=''
  1131. #if 0 // 原.
  1132. if(jdpos==0)
  1133. sql+="***update dindan set [status]='"+status2+"',[waiter1]='"+waiter1+"',[waiter2]='"+waiter2+"',[time2]='"+g_date+"',[curno]='"+sbeginno+"' where [id]='"+id+"'";
  1134. else if(jdpos==1)
  1135. sql+="***update dindan set [status]='"+status2+"',[waiter12]='"+waiter1+"',[waiter22]='"+waiter2+"',[time2]='"+g_date+"',[curno]='"+sbeginno+"' where [id]='"+id+"'";
  1136. else if(jdpos==2)
  1137. sql+="***update dindan set [status]='"+status2+"',[waiter13]='"+waiter1+"',[waiter23]='"+waiter2+"',[time2]='"+g_date+"',[curno]='"+sbeginno+"' where [id]='"+id+"'";
  1138. else if(jdpos==3)
  1139. sql+="***update dindan set [status]='"+status2+"',[waiter14]='"+waiter1+"',[waiter24]='"+waiter2+"',[time2]='"+g_date+"',[curno]='"+sbeginno+"' where [id]='"+id+"'";
  1140. else
  1141. sql+="***update dindan set [status]='"+status2+"',[time2]='"+g_date+"',[curno]='"+sbeginno+"' where [id]='"+id+"'";
  1142. #else
  1143. //--------------------------------------------------------------------------
  1144. // Jeff.SQL参考语句示例:
  1145. // update dindan set time2=case when isnull(time2,'')='' then '2014-07-28' else time2 end , name2='OK',time3='2015-01-01',time1='2014-05-30' where id='20140628-007'
  1146. //
  1147. //---------------------------------------------------------------------
  1148. // printf("Jeff:拍照状态=%s\n\n",status2);
  1149. if (status2 != "OK") // !=ok,不记录拍照时间;--这样是否合理?
  1150. {
  1151. // 当数据库原本status不为OK时,可以修改时间和状态;否则状态和时间都不能修改,保持原样;
  1152. if (jdpos == 0)
  1153. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter1]='" + waiter1 + "',[waiter2]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1154. else if (jdpos == 1)
  1155. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter12]='" + waiter1 + "',[waiter22]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1156. else if (jdpos == 2)
  1157. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter13]='" + waiter1 + "',[waiter23]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1158. else if (jdpos == 3)
  1159. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[waiter14]='" + waiter1 + "',[waiter24]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1160. else
  1161. sql += "***update dindan set [status]=case when [status]<>'OK' then '" + status2 + "' else [status] end,[curno]='" + sbeginno + "' where [id]='" + strOrderNumber + "'";
  1162. // printf("Jeff:拍照中,SQL=%s\n\n",sql);
  1163. }
  1164. else // ==ok时,才记录拍照时间;
  1165. {
  1166. /*if(jdpos==0)
  1167. sql+="***update dindan set [status]='"+status2+"',[waiter1]='"+waiter1+"',[waiter2]='"+waiter2+"',[curno]='"+sbeginno+ "', [time2]=case when isnull([time2],'')='' then '" +g_date+"' else [time2] end" + " where [id]='"+id+"'";
  1168. else if(jdpos==1)
  1169. sql+="***update dindan set [status]='"+status2+"',[waiter12]='"+waiter1+"',[waiter22]='"+waiter2+"',[curno]='"+sbeginno+ "', [time2]=case when isnull([time2],'')='' then '" +g_date+"' else [time2] end" +" where [id]='"+id+"'";
  1170. else if(jdpos==2)
  1171. sql+="***update dindan set [status]='"+status2+"',[waiter13]='"+waiter1+"',[waiter23]='"+waiter2+"',[curno]='"+sbeginno+ "', [time2]=case when isnull([time2],'')='' then '" +g_date+"' else [time2] end" + " where [id]='"+id+"'";
  1172. else if(jdpos==3)
  1173. sql+="***update dindan set [status]='"+status2+"',[waiter14]='"+waiter1+"',[waiter24]='"+waiter2+"',[curno]='"+sbeginno+ "', [time2]=case when isnull([time2],'')='' then '" +g_date+"' else [time2] end" + " where [id]='"+id+"'";
  1174. else
  1175. sql+="***update dindan set [status]='"+status2+"',[curno]='"+sbeginno+ "', [time2]=case when isnull([time2],'')='' then '" +g_date+"' else [time2] end" + " where [id]='"+id+"'";*/
  1176. // 当数据库原本status为OK时,不可修改时间;否则可以修改时间;
  1177. if (jdpos == 0)
  1178. sql += "***update dindan set [status]='" + status2 + "',[waiter1]='" + waiter1 + "',[waiter2]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1179. else if (jdpos == 1)
  1180. sql += "***update dindan set [status]='" + status2 + "',[waiter12]='" + waiter1 + "',[waiter22]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1181. else if (jdpos == 2)
  1182. sql += "***update dindan set [status]='" + status2 + "',[waiter13]='" + waiter1 + "',[waiter23]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1183. else if (jdpos == 3)
  1184. sql += "***update dindan set [status]='" + status2 + "',[waiter14]='" + waiter1 + "',[waiter24]='" + waiter2 + "',[curno]='" + sbeginno + "', [time2]=case when [status]<>'OK' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1185. else
  1186. sql += "***update dindan set [status]='" + status2 + "',[curno]='" + sbeginno + "', [time2]=case when isnull([time2],'')='' then '" + g_date + "' else [time2] end" + " where [id]='" + strOrderNumber + "'";
  1187. // printf("Jeff:拍照OK,SQL=%s\n\n",sql);
  1188. }
  1189. #endif
  1190. #endif
  1191. /////////////////////////
  1192. CString m_name1 = m_List1.GetItemText(iItem, 1 + m_nAdd);
  1193. CString m_name2 = m_List1.GetItemText(iItem, 2 + m_nAdd);
  1194. CString m_phone1 = m_List1.GetItemText(iItem, 14 + m_nAdd);
  1195. CString m_phone2 = m_List1.GetItemText(iItem, 15 + m_nAdd);
  1196. if (g_bAllBranch)
  1197. {
  1198. for (int i = 0; i < m_List1arrayBak.GetSize(); i++)
  1199. {
  1200. if (strOrderNumber == m_List1arrayBak.ElementAt(i).ElementAt(1) && branch == m_List1arrayBak.ElementAt(i).ElementAt(0))
  1201. {
  1202. m_phone1 = m_List1arrayBak.ElementAt(i).ElementAt(14 + m_nAdd);
  1203. m_phone2 = m_List1arrayBak.ElementAt(i).ElementAt(15 + m_nAdd);
  1204. }
  1205. }
  1206. }
  1207. else
  1208. {
  1209. for (int i = 0; i < m_List1arrayBak.GetSize(); i++)
  1210. {
  1211. if (strOrderNumber == m_List1arrayBak.ElementAt(i).ElementAt(0))
  1212. {
  1213. m_phone1 = m_List1arrayBak.ElementAt(i).ElementAt(14 + m_nAdd);
  1214. m_phone2 = m_List1arrayBak.ElementAt(i).ElementAt(15 + m_nAdd);
  1215. }
  1216. }
  1217. }
  1218. CString sql2;
  1219. BOOL msgcheck = atoi(g_cominfoarray.ElementAt(0).ElementAt(101));
  1220. CString msgcontent = g_cominfoarray.ElementAt(0).ElementAt(105);
  1221. if (status != "OK")msgcheck = 0;
  1222. #ifdef CHILD_VERSION
  1223. if(msgcheck )
  1224. {
  1225. CString m_content3 = msgcontent;
  1226. CString str,timestamp;
  1227. timestamp="msgtimestamp";
  1228. {
  1229. CString name;
  1230. if(!m_name1.IsEmpty ())
  1231. name=m_name1+",";
  1232. name+=m_name2;
  1233. name.TrimRight (",");
  1234. if(name.IsEmpty ()==0 && CheckPhoneType(m_phone1)!=-1 && CheckBadWords(name,0) )
  1235. {
  1236. str=name+m_content3;
  1237. str.Replace ("xxx小朋友", "");
  1238. int count=GetLengthEx(str)/MSG_LENGTH;
  1239. if(GetLengthEx(str)%MSG_LENGTH)
  1240. count++;
  1241. CString scount;
  1242. scount.Format ("%d", count);
  1243. #if JEFF_TEST_ON
  1244. sql2.Format(INSERT_SENDREG, _T("11"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  1245. sql += _T("***") + sql2;
  1246. #else
  1247. sql2="***insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone1+"','"+str+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')";
  1248. sql+=sql2;
  1249. #endif
  1250. }
  1251. }
  1252. }
  1253. #else
  1254. if (msgcheck)
  1255. {
  1256. CString m_content3 = msgcontent;
  1257. CString str, timestamp;
  1258. timestamp = "msgtimestamp";
  1259. int pos = m_content3.Find("xxx先生/女士");
  1260. if (pos != -1)
  1261. {
  1262. if (m_name1.IsEmpty() == 0 && CheckPhoneType(m_phone1) != -1 && CheckBadWords(m_name1, 0) )
  1263. {
  1264. str = m_content3;
  1265. str.Replace("xxx先生/女士", m_name1 + "先生");
  1266. int count = GetLengthEx(str) / MSG_LENGTH;
  1267. if (GetLengthEx(str) % MSG_LENGTH)
  1268. count++;
  1269. CString scount;
  1270. scount.Format("%d", count);
  1271. #if JEFF_TEST_ON
  1272. sql2.Format(INSERT_SENDREG, _T("11"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  1273. sql += _T("***") + sql2;
  1274. #else
  1275. sql2 = "***insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone1 + "','" + str + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  1276. sql += sql2;
  1277. #endif
  1278. }
  1279. if (m_name2.IsEmpty() == 0 && CheckPhoneType(m_phone2) != -1 && CheckBadWords(m_name2, 0) )
  1280. {
  1281. str = m_content3;
  1282. str.Replace("xxx先生/女士", m_name2 + "女士");
  1283. int count = GetLengthEx(str) / MSG_LENGTH;
  1284. if (GetLengthEx(str) % MSG_LENGTH)
  1285. count++;
  1286. CString scount;
  1287. scount.Format("%d", count);
  1288. CTime tm = CTime::GetCurrentTime();
  1289. tm += CTimeSpan(0, 0, 0, 3);
  1290. timestamp = tm.Format("%Y%m%d%H%M%S");
  1291. timestamp = "msgtimexxstamp";
  1292. #if JEFF_TEST_ON
  1293. sql2.Format(INSERT_SENDREG, _T("11"), m_phone2, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  1294. sql += _T("***") + sql2;
  1295. #else
  1296. sql2 = "***insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone2 + "','" + str + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  1297. sql += sql2;
  1298. #endif
  1299. }
  1300. }
  1301. }
  1302. #endif
  1303. /////////////////////////
  1304. if (1)//拍照OK时记录客人预定内容
  1305. {
  1306. sql2 = "***gentakecontent:" + strOrderNumber;
  1307. sql += sql2;
  1308. }
  1309. g_sendhead.bsql = 1;
  1310. if (g_bAllBranch)
  1311. {
  1312. g_branchip = GetIP(branch);
  1313. g_pMainWnd->OnDisconnect();
  1314. g_branchname = branch;
  1315. g_bBranchModify = 1;
  1316. g_pMainWnd->ProcessChatMessageRequest2(sql);
  1317. g_pMainWnd->OnDisconnect();
  1318. g_bBranchModify = 0;
  1319. g_branchip = g_branchname = "";
  1320. }
  1321. else
  1322. g_pMainWnd->ProcessChatMessageRequest2(sql);
  1323. if (g_bSendOK == 0)return;
  1324. AfxMessageBox("导入客照成功!", MB_ICONINFORMATION);
  1325. if (g_bAllBranch == 0)
  1326. {
  1327. GetData();
  1328. }
  1329. else
  1330. {
  1331. BOOL bFind = 0;
  1332. for (int i = 0; i < m_List1array.GetSize(); i++)
  1333. {
  1334. if (bFind && m_List1array.ElementAt(i).ElementAt(1) != "")break;
  1335. if (strOrderNumber == m_List1array.ElementAt(i).ElementAt(1) && branch == m_List1array.ElementAt(i).ElementAt(0))
  1336. {
  1337. bFind = 1;
  1338. }
  1339. if (bFind && dindanjd == m_List1array.ElementAt(i).ElementAt(4))
  1340. {
  1341. m_List1array.ElementAt(i).SetAt(7 + m_nAdd, waiter1);
  1342. m_List1array.ElementAt(i).SetAt(8 + m_nAdd, waiter12);
  1343. m_List1array.ElementAt(i).SetAt(9 + m_nAdd, waiter2);
  1344. m_List1array.ElementAt(i).SetAt(10 + m_nAdd, waiter22);
  1345. m_List1array.ElementAt(i).SetAt(5 + m_nAdd, status);
  1346. m_List1array.ElementAt(i).SetAt(6 + m_nAdd, g_date);
  1347. m_List1array.ElementAt(i).SetAt(3 + m_nAdd, sbeginno);
  1348. FillGrid();
  1349. break;
  1350. }
  1351. }
  1352. }
  1353. }
  1354. void TakeFrom::OnBUTshowphoto() // 查看原片
  1355. {
  1356. POSITION pos;
  1357. pos = m_List1.GetFirstSelectedItemPosition();
  1358. if (pos == NULL)
  1359. {
  1360. AfxMessageBox("请先选中您要查看的定单!", MB_ICONINFORMATION);
  1361. return;
  1362. }
  1363. int iItem = m_List1.GetNextSelectedItem(pos);
  1364. CString dindanjd = m_List1.GetItemText(iItem, 4 + m_nAdd);
  1365. CString branch;
  1366. CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1367. if (g_bAllBranch)
  1368. branch = m_List1.GetItemText(iItem, 0);
  1369. while (id == "")
  1370. {
  1371. iItem--;
  1372. id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1373. }
  1374. CString name = m_List1.GetItemText(iItem, 1 + m_nAdd) + "," + m_List1.GetItemText(iItem, 2 + m_nAdd);
  1375. name.TrimLeft(",");
  1376. name.TrimRight(",");
  1377. name = "客人:" + name;
  1378. ShowPic dlg;
  1379. dlg.m_id = id;
  1380. dlg.m_name = name;
  1381. dlg.m_mode = 1;
  1382. if (g_bAllBranch)
  1383. {
  1384. dlg.m_branch = branch;
  1385. CString branchpath = GetBranchPhotoPath(branch);
  1386. dlg.m_path = g_path1 + branchpath + "\\";
  1387. }
  1388. else
  1389. dlg.m_path = g_path1 + "\\";
  1390. dlg.m_path += id;
  1391. dlg.m_path += "\\";
  1392. if (g_pMainWnd->IsCtrlDown() == 0 && g_pMainWnd->IsShiftDown() == 0 && dindanjd != "")
  1393. {
  1394. if (AfxMessageBox("是否查看全部景点?", MB_YESNO | MB_ICONINFORMATION) != IDYES)
  1395. {
  1396. if (dindanjd == "系统默认景点")
  1397. {
  1398. if (::PathFileExists(dlg.m_path + dindanjd))
  1399. {
  1400. dlg.m_path += dindanjd;
  1401. dlg.m_path += "\\";
  1402. }
  1403. }
  1404. else
  1405. {
  1406. dlg.m_path += dindanjd;
  1407. dlg.m_path += "\\";
  1408. }
  1409. }
  1410. }
  1411. else if (g_pMainWnd->IsCtrlDown())
  1412. {
  1413. if (dindanjd == "系统默认景点")
  1414. {
  1415. if (::PathFileExists(dlg.m_path + dindanjd))
  1416. {
  1417. dlg.m_path += dindanjd;
  1418. dlg.m_path += "\\";
  1419. }
  1420. }
  1421. else
  1422. {
  1423. dlg.m_path += dindanjd;
  1424. dlg.m_path += "\\";
  1425. }
  1426. }
  1427. dlg.DoModal();
  1428. if (dlg.m_bdelall)
  1429. {
  1430. for (int i = 0; i < m_List1array.GetSize(); i++)
  1431. {
  1432. if (g_bAllBranch)
  1433. {
  1434. if (id == m_List1array.ElementAt(i).ElementAt(1) && branch == m_List1array.ElementAt(i).ElementAt(0))
  1435. {
  1436. #if JEFF_TEST_ON // 全部删除后,这里显示的值应该为0;
  1437. m_List1array.ElementAt(i).SetAt(3 + m_nAdd, "0");
  1438. #else
  1439. m_List1array.ElementAt(i).SetAt(3 + m_nAdd, "1");
  1440. #endif
  1441. FillGrid();
  1442. break;
  1443. }
  1444. }
  1445. else
  1446. {
  1447. if (id == m_List1array.ElementAt(i).ElementAt(0))
  1448. {
  1449. #if JEFF_TEST_ON // 全部删除后,这里显示的值应该为0;
  1450. m_List1array.ElementAt(i).SetAt(3 + m_nAdd, "0");
  1451. #else
  1452. m_List1array.ElementAt(i).SetAt(3 + m_nAdd, "1");
  1453. #endif
  1454. FillGrid();
  1455. break;
  1456. }
  1457. }
  1458. }
  1459. }
  1460. }
  1461. void TakeFrom::OnBUTmoney() // 今拍 按钮;
  1462. {
  1463. // TODO: Add your control notification handler code here
  1464. UpdateData();
  1465. m_filter.TrimLeft();
  1466. m_filter.TrimRight();
  1467. FillGrid(2);
  1468. }
  1469. void TakeFrom::OnBTNaddsp()
  1470. {
  1471. }
  1472. void TakeFrom::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
  1473. {
  1474. NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  1475. // TODO: Add your control notification handler code here
  1476. POSITION pos;
  1477. pos = m_List1.GetFirstSelectedItemPosition();
  1478. if (pos == NULL)
  1479. {
  1480. return;
  1481. }
  1482. int iItem = m_List1.GetNextSelectedItem(pos);
  1483. if (IsHasRights2new(4) || IsHasRights2new(49))
  1484. {
  1485. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1);
  1486. }
  1487. else
  1488. GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0);
  1489. *pResult = 0;
  1490. }
  1491. void TakeFrom::OnButton1() // 查询按钮;
  1492. {
  1493. // TODO: Add your control notification handler code here
  1494. UpdateData();
  1495. m_filter.TrimLeft();
  1496. m_filter.TrimRight();
  1497. FillGrid();
  1498. }
  1499. void TakeFrom::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
  1500. {
  1501. // TODO: Add your control notification handler code here
  1502. POSITION pos;
  1503. pos = m_List1.GetFirstSelectedItemPosition();
  1504. if (pos == NULL)return;
  1505. int iItem = m_List1.GetNextSelectedItem(pos);
  1506. g_id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1507. while (g_id == "")
  1508. {
  1509. iItem--;
  1510. g_id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1511. }
  1512. *pResult = 0;
  1513. }
  1514. void TakeFrom::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
  1515. {
  1516. // TODO: Add your control notification handler code here
  1517. OnBUTshowphoto();
  1518. *pResult = 0;
  1519. }
  1520. void TakeFrom::HidePrice()
  1521. {
  1522. m_List1arrayBak.RemoveAll();
  1523. m_List1arrayBak.SetSize(m_List1array.GetSize());
  1524. for (int i = 0; i < m_List1array.GetSize(); i++)
  1525. {
  1526. m_List1arrayBak.ElementAt(i).Copy(m_List1array.ElementAt(i));
  1527. }
  1528. #ifdef LKAY_VERSION
  1529. if(IsHasRights2new(31))return;
  1530. for( i=0; i<m_List1array.GetSize (); i++)
  1531. {
  1532. m_List1array.ElementAt (i).SetAt (11+m_nAdd, "***");
  1533. m_List1array.ElementAt (i).SetAt (12+m_nAdd, "***");
  1534. m_List1array.ElementAt (i).SetAt (13+m_nAdd, "***");
  1535. m_List1array.ElementAt (i).SetAt (14+m_nAdd, "***");
  1536. }
  1537. #else
  1538. if (IsHasRights2new(31))return;
  1539. for (i = 0; i < m_List1array.GetSize(); i++)
  1540. {
  1541. m_List1array.ElementAt(i).SetAt(13 + m_nAdd, "***");
  1542. m_List1array.ElementAt(i).SetAt(14 + m_nAdd, "***");
  1543. }
  1544. #endif
  1545. }
  1546. void TakeFrom::OnBtnsearchfilter() // 条件查询按钮;
  1547. {
  1548. SearchFilter dlg;
  1549. dlg.m_mode = 0;
  1550. if (dlg.DoModal() == IDOK)
  1551. FillGrid();
  1552. g_bSearchFilter = 0;
  1553. }
  1554. void TakeFrom::OnBUTprint3()
  1555. {
  1556. GetData();
  1557. }
  1558. void TakeFrom::OnButton2() // 客人头像按钮;
  1559. {
  1560. POSITION pos;
  1561. pos = m_List1.GetFirstSelectedItemPosition();
  1562. if (pos == NULL)
  1563. {
  1564. AfxMessageBox("请先选中您要拍头像的客人!", MB_ICONINFORMATION);
  1565. return;
  1566. }
  1567. int iItem = m_List1.GetNextSelectedItem(pos);
  1568. CString branch;
  1569. CString id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1570. if (g_bAllBranch)
  1571. branch = m_List1.GetItemText(iItem, 0);
  1572. while (id == "")
  1573. {
  1574. iItem--;
  1575. id = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1576. }
  1577. UploadPhoto dlg;
  1578. if (g_bAllBranch)
  1579. {
  1580. CString branchpath = GetBranchPhotoPath(branch);
  1581. dlg.m_path = g_path1 + branchpath + "\\";
  1582. if (::CheckFolderFileExist(dlg.m_path) == 0)
  1583. ::CreateDirectory(dlg.m_path, NULL);
  1584. }
  1585. else
  1586. dlg.m_path = g_path1 + "\\";
  1587. dlg.m_path += "客人头像\\";
  1588. if (::CheckFolderFileExist(dlg.m_path) == 0)
  1589. ::CreateDirectory(dlg.m_path, NULL);
  1590. dlg.m_path += id + "\\";
  1591. if (::CheckFolderFileExist(dlg.m_path) == 0)
  1592. ::CreateDirectory(dlg.m_path, NULL);
  1593. dlg.DoModal();
  1594. }
  1595. void TakeFrom::GetData()
  1596. {
  1597. if (g_bAllBranch == 0)
  1598. {
  1599. if (g_bShowOK == 0)
  1600. {
  1601. #ifdef LKAY_VERSION
  1602. CString filter="status3='未取' and (dindantype<>'意向客户' or dindantype is null)";
  1603. #else
  1604. CString filter = "status3='未取'";
  1605. #endif
  1606. g_sendhead.bsql = 0;
  1607. g_sendhead.code[0] = 25; // Jeff.case 25对应的表为takeview视图:订单景点表;
  1608. g_sendhead.tabcount = 1;
  1609. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1610. if (g_bSendOK == 0)return;
  1611. }
  1612. else
  1613. {
  1614. g_sendhead.bsql = 0;
  1615. g_sendhead.code[0] = 25; // Jeff.case 25对应的表为takeview视图:订单景点表;
  1616. g_sendhead.tabcount = 1;
  1617. #ifdef LKAY_VERSION
  1618. CString filter="dindantype<>'意向客户' or dindantype is null";
  1619. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1620. #else
  1621. g_pMainWnd->ProcessChatMessageRequest2(1);
  1622. #endif
  1623. if (g_bSendOK == 0)return;
  1624. }
  1625. DataToArray(&m_List1array);
  1626. }
  1627. else
  1628. {
  1629. //////////////数据汇总
  1630. m_List1array.RemoveAll();
  1631. CString branch;
  1632. for (int i = -1; i < g_brancharray.GetSize() - 1; i++)
  1633. {
  1634. if (i != -1)
  1635. {
  1636. branch = g_brancharray.ElementAt(i).ElementAt(0);
  1637. g_branchip = g_brancharray.ElementAt(i).ElementAt(1);
  1638. g_pMainWnd->OnDisconnect();
  1639. g_branchname = branch;
  1640. g_bBranchModify = 1;
  1641. }
  1642. else
  1643. branch = g_brancharray.ElementAt(g_brancharray.GetSize() - 1).ElementAt(0);
  1644. if (g_bShowOK == 0)
  1645. {
  1646. CString filter = "status3='未取'";
  1647. g_sendhead.bsql = 0;
  1648. g_sendhead.code[0] = 25; // Jeff.case 25对应的表为takeview视图:订单景点表;
  1649. g_sendhead.tabcount = 1;
  1650. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1651. if (g_bSendOK == 0) continue;
  1652. }
  1653. else
  1654. {
  1655. g_sendhead.bsql = 0;
  1656. g_sendhead.code[0] = 25; // Jeff.case 25对应的表为takeview视图:订单景点表;
  1657. g_sendhead.tabcount = 1;
  1658. g_pMainWnd->ProcessChatMessageRequest2(1);
  1659. if (g_bSendOK == 0) continue;
  1660. }
  1661. CArray<CStringArray, CStringArray>List1array;
  1662. DataToArray(&List1array);
  1663. int size = m_List1array.GetSize();
  1664. for (int j = 0; j < List1array.GetSize(); j++)
  1665. {
  1666. size++;
  1667. m_List1array.SetSize(size, 1);
  1668. size--;
  1669. m_List1array.ElementAt(size).Copy(List1array.ElementAt(j));
  1670. m_List1array.ElementAt(size).InsertAt(0, branch);
  1671. size++;
  1672. }
  1673. }
  1674. g_pMainWnd->OnDisconnect();
  1675. g_bBranchModify = 0;
  1676. g_branchip = g_branchname = "";
  1677. }
  1678. HidePrice();
  1679. FillGrid();
  1680. }
  1681. void TakeFrom::OnBnClickedMicroshare() // 微分享;
  1682. {
  1683. // 定义变量;
  1684. CString strOrderNumber = _T(""); // 订单号;
  1685. CString strScenery = _T(""); // 景点名;
  1686. CString strCustomer = _T(""); // 顾客姓名;
  1687. CString strMakeupArtist = _T(""); // 化妆师;
  1688. CString strSourcePath = _T(""); // 相片根目录;
  1689. CString strBranchName = _T(""); // 分店名;
  1690. CString strBranchDomain = _T(""); // 分店域名;
  1691. TCHAR szShareId[MAX_PATH] = _T(""); // 微分享相册ID;
  1692. // 获取变量值;
  1693. POSITION pos;
  1694. pos = m_List1.GetFirstSelectedItemPosition();
  1695. if (pos == NULL)
  1696. {
  1697. AfxMessageBox("请先选中您要查看的定单!", MB_ICONINFORMATION);
  1698. return;
  1699. }
  1700. int iItem = m_List1.GetNextSelectedItem(pos);
  1701. strScenery = m_List1.GetItemText(iItem, 4 + m_nAdd);
  1702. strMakeupArtist = m_List1.GetItemText(iItem, 9 + m_nAdd);
  1703. strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1704. if (g_bAllBranch)
  1705. strBranchName = m_List1.GetItemText(iItem, 0);
  1706. while (strOrderNumber == "")
  1707. {
  1708. iItem--;
  1709. strOrderNumber = m_List1.GetItemText(iItem, 0 + m_nAdd);
  1710. }
  1711. if (g_bAllBranch)
  1712. {
  1713. strBranchDomain = GetBranchPhotoPath(strBranchName);
  1714. strSourcePath = g_path1 + strBranchDomain + "\\";
  1715. }
  1716. else
  1717. {
  1718. strSourcePath = g_path1 + "\\";
  1719. }
  1720. strSourcePath += strOrderNumber;
  1721. strSourcePath += "\\";
  1722. if (AfxMessageBox("是否查看全部景点?", MB_YESNO | MB_ICONINFORMATION) != IDYES)
  1723. {
  1724. if (::PathFileExists(strSourcePath + strScenery))
  1725. {
  1726. strSourcePath += strScenery;
  1727. strSourcePath += "\\";
  1728. }
  1729. }
  1730. // 加载动态库;
  1731. if (LoadMicroShareLibrary() == FALSE)
  1732. return;
  1733. if ( g_lyfzCreateShare )
  1734. {
  1735. g_lyfzCreateShare(
  1736. g_cominfoarray.ElementAt(0).ElementAt(147), // 微分享的登录账号;
  1737. g_cominfoarray.ElementAt(0).ElementAt(148), // 微分享的登录账号密码;
  1738. g_path1, // 相片根级目录;
  1739. strBranchDomain, // 分店域名;
  1740. strOrderNumber, // 订单号,用于生成二维码文件名;
  1741. strScenery, // 景点名;
  1742. strSourcePath,
  1743. m_List1.GetItemText(iItem, 1 + m_nAdd), // 客人姓名1 ;
  1744. m_List1.GetItemText(iItem, 2 + m_nAdd), // 客人姓名2
  1745. strMakeupArtist, // 化妆师;
  1746. szShareId // 返回微相册ID;
  1747. );
  1748. }
  1749. FreeMicroShareLibrary();
  1750. }