// BeautifySkinFrom.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "BeautifySkinFrom.h" #include "MyMdi.H" #include "ModifyDinDan.h" #include "ImportPhoto.h" #include "ShowPic.h" #include "SelProvider.h" #include "CompressOption.h" #include "DlgFirstRepairDivision.h" #include "NetShareInfo.h" #include "DlgChuXiuInfo.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //#pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // BeautifySkinFrom IMPLEMENT_DYNCREATE(BeautifySkinFrom, MyFormView) BeautifySkinFrom::BeautifySkinFrom() : MyFormView(BeautifySkinFrom::IDD) { //{{AFX_DATA_INIT(BeautifySkinFrom) m_filter = _T(""); m_nAdd=0; //}}AFX_DATA_INIT if(g_bAllBranch) { m_nAdd=1; } } BeautifySkinFrom::~BeautifySkinFrom() { } void BeautifySkinFrom::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(BeautifySkinFrom) DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_CBString(pDX, IDC_COMBO1, m_filter); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(BeautifySkinFrom, MyFormView) //{{AFX_MSG_MAP(BeautifySkinFrom) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto) ON_BN_CLICKED(IDC_BUTshowphoto, OnBUTshowphoto) ON_BN_CLICKED(IDC_BUTexportphoto, OnBUTexportphoto) ON_BN_CLICKED(IDC_BUTexportphoto2, OnBUTexportphoto2) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2) ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2) ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter) ON_BN_CLICKED(IDC_BUTprint3, OnBUTprint3) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // BeautifySkinFrom diagnostics #ifdef _DEBUG void BeautifySkinFrom::AssertValid() const { MyFormView::AssertValid(); } void BeautifySkinFrom::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // BeautifySkinFrom message handlers void BeautifySkinFrom::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); int idarray[]={IDC_BUTprint3,IDC_BUTexportphoto,IDC_BUTimportphoto,IDC_BUTshowphoto,IDC_BUTexportphoto2,IDC_BUTclose}; int idcount=6; int btnwid; CRect prerc; for(int a=idcount-2; a>=0; a--) { GetDlgItem(idarray[a+1])->GetWindowRect (prerc); ScreenToClient(prerc); GetDlgItem(idarray[a])->GetWindowRect (rc2); ScreenToClient(rc2); btnwid=rc2.Width (); rc2.right =prerc.left ; rc2.left =rc2.right -btnwid; GetDlgItem(idarray[a])->MoveWindow (rc2); } m_static1.SetFont (&g_titlefont); if(g_bAllBranch==0) { #ifdef CHILD_VERSION m_List1.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;拍照,100;修片,100;修片日期,100;加急,100;选片日期,100;摄影师,100;修片人,100;接单人,100;套系名称,100;套系价格,100;手机,100;固定电话,100" ); #else m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;拍照,100;修片,100;修片日期,100;加急,100;选片日期,100;摄影师,100;修片人,100;接单人,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100" ); #endif m_List1.LoadColumnInfo (118); } else { #ifdef CHILD_VERSION m_List1.SetHeadings("店名,100;订单号,100;家长姓名,100;宝宝姓名,100;拍照,100;修片,100;修片日期,100;加急,100;选片日期,100;摄影师,100;修片人,100;接单人,100;套系名称,100;套系价格,100;手机,100;固定电话,100" ); #else m_List1.SetHeadings("店名,100;订单号,100;男宾姓名,100;女宾姓名,100;拍照,100;修片,100;修片日期,100;加急,100;选片日期,100;摄影师,100;修片人,100;接单人,100;套系名称,100;套系价格,100;男宾电话,100;女宾电话,100" ); #endif m_List1.LoadColumnInfo (197);GetDlgItem(IDC_BUTprint3)->ShowWindow (1); } GetData(); m_combo1.AddString (g_user.name); m_combo1.GetWindowRect (rc2); ScreenToClient(rc2); rc2.bottom +=200; m_combo1.MoveWindow (rc2); GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2); SetComboHei(&m_combo1, rc2.Height ()); GetDlgItem(IDC_BUTexportphoto)->EnableWindow(IsHasRights2new(8)); GetDlgItem(IDC_BUTexportphoto2)->EnableWindow(IsHasRights2new(9)); } void BeautifySkinFrom::FillGrid(BOOL bStatus) { if(g_bSearchFilter) { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; { for(ii=0; iig_filterdate2) continue; } if(g_waiter1!="") { if(m_List1array.ElementAt (ii).ElementAt (9+m_nAdd)!=g_waiter1) continue; } if(g_bAllBranch && g_filterbranch!="") { if(m_List1array.ElementAt (ii).ElementAt (0)!= g_filterbranch) continue; } if(1) { m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); } } } m_List1.m_arLabels.SetSize(count, 1); ii=count; m_List1.m_LabelCount=ii; m_List1.SetItemCountEx (ii); CString str; str.Format ("单数:%d", ii); SetDlgItemText(IDC_STATIC2, str); } else { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; if(m_filter.IsEmpty ()) { if(bStatus) { for(ii=0; iiSendMessage(WM_CLOSE); } void BeautifySkinFrom::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void BeautifySkinFrom::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL BeautifySkinFrom::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class try { if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnButton1(); return 1; case 0x43: // copy if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_COPY); return TRUE; } break; case 0x56: //Ctrl + V: if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_PASTE); return TRUE; } break; case 0x58: // cut if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_CUT); return TRUE; } break; case 0x5A: //undo case 0x59: //redo if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_UNDO); return TRUE; } break; } } return MyFormView::PreTranslateMessage(pMsg); } catch(...) { } return true; } BOOL GetFileNo2(CString dir, CString no) { int pos=no.Find("-"); if(pos!=-1)no=no.Left(pos); CString path; CString path2; CString path3; CString path4; CString temp; CStringArray array; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(dir), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); coo.end() != it; it ++) { temp=(*it).c_str(); if(::FindArray (&array, temp)==-1) array.Add (temp); } for(int i=0; iOnDisconnect(); g_branchname = strBranchName; g_bBranchModify = TRUE; g_pMainWnd->ProcessChatMessageRequest2(strSQL); g_bBranchModify = FALSE; g_branchip = g_branchname = _T(""); } else {// 连接分店或本店时; g_pMainWnd->ProcessChatMessageRequest2(strSQL); } if( !g_bSendOK ) { OutputDebugString(_T("连接服务器失败!\n")); return; } if( !g_bAllBranch ) { GetData(); } else {// 多店汇总时; for(int i = 0; i < m_List1array.GetSize(); i++ ) { if( strOrderNum == m_List1array.ElementAt(i).ElementAt(1) && strBranchName == m_List1array.ElementAt(i).ElementAt(0) ) { m_List1array.ElementAt(i).SetAt(4 + m_nAdd, strXiupianStatus); if(strXiupianDate.IsEmpty()) m_List1array.ElementAt(i).SetAt(5 + m_nAdd, g_date); m_List1array.ElementAt(i).SetAt( 9 + m_nAdd, strXiupianRen); FillGrid(); break; } } } } else { // 开始导入初修片; if ( MessageBox(_T("是否现在开始导入初修片!"), _T("导片提示:导入初修片"), MB_TOPMOST|MB_YESNO|MB_ICONWARNING ) != IDYES ) {// 是否马上导入相片; return; } if ( xpdlg.m_bGrowthTx ) strScenery = xpdlg.m_strScenery; if ( xpdlg.m_bGrowthTx && strScenery.IsEmpty() ) { AfxMessageBox(_T("儿童成长套系导片必须选择套系名!")); return; } } ///////////////////////////////////////////////////////////////////////////////////////////////// if ( g_pIMGProcess == NULL ) { return ; } // 获取完信息,开始导入初修片; ImgImportInterface *pImport = NULL; g_pIMGProcess->QueryInterface(IID_ImgImportInterface, (void**)&pImport); if ( pImport ) { pImport->ImportSecondaryImg( TRUE, // 相片源的类型:true = 选择文件夹形式; false = 选择文件形式; strBranchId, // 分店域名; strOrderNum, // 订单号; strCustomerInfo, // 顾客信息; !strScenery.IsEmpty(), // 导入时是否生成景点名; strScenery, // 要导入并生成的景点名; _T("*.jpg|*.jpeg"), // 要导入的扩展名; INVALID_COPY_PIX, // 要导入的相片的压缩像素大小;INVALID_COPY_PIX表示不压缩,原比例导入; _T("*.nef|*.cr2|*.raw|*.ra2"), // 导入相片时,附加要导入的扩展名;附加的相片不设置压缩像素; TRUE, // 导入操作时,是否生成缩略图;只生成lpImportExt的; SET_PIX(100,100), // 要生成的缩略图的像素大小; FALSE // 目标文件存在是否复制,只针对lpImportExt和lpImportWithExt对应的文件,缩略图直接覆盖; ); g_pIMGProcess->Release(); } // 结束; #else POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要导片的定单!", MB_ICONINFORMATION); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString branch; CString id=m_List1.GetItemText (iItem, 0+m_nAdd); if(g_bAllBranch) branch=m_List1.GetItemText (iItem, 0); CString oldstatus=m_List1.GetItemText (iItem, 4+m_nAdd); CString time8=m_List1.GetItemText (iItem, 5+m_nAdd); CString name=m_List1.GetItemText (iItem, 1+m_nAdd)+","+m_List1.GetItemText (iItem, 2+m_nAdd); name.TrimLeft (","); name.TrimRight (","); name="客人:"+name; CString phone=m_List1.GetItemText (iItem, 13+m_nAdd)+","+m_List1.GetItemText (iItem, 14+m_nAdd); phone.TrimLeft (","); phone.TrimRight (","); phone="电话:"+phone; CString strDomain = _T(""); CString savepath = _T(""); if (g_bAllBranch) { if(branch == _T("")) savepath = g_path2 + "\\"; else { strDomain = GetDomainFromBranch(branch); savepath = g_path2 + "\\"+ strDomain + "\\"; } if (::CheckFolderFileExist(savepath) == 0) ::CreateDirectory(savepath, NULL); } else { if(g_branchname == _T("")) savepath = g_path2 + "\\"; else strDomain = GetDomainFromBranch(g_branchname); } ////////////////////////////////////////////////////////////////////////// // 获取可用的共享目录; #if USE_SHARE_FLORD // 2015.05.04 TCHAR szSharePath[MAX_PATH] = {0}; if ( CNetShareInfo::GetInstance()->GetEnableShareDirectory(2, id, strDomain, szSharePath) ) { savepath.Format("%s\\",szSharePath); } else { AfxMessageBox(_T("没有可用的共享目录!")); return; } #else savepath+=id+"\\"; #endif ////////////////////////////////////////////////////////////////////////// if ( !CheckFolderFileExist(savepath) ) { if( !CreateDirectory(savepath, NULL) ) { AfxMessageBox(_T("无法创建订单目录,确认权限充足")); return; } } #if 1 // 弹出初修师对话框; CString strFirstRepairDivision; CDlgFirstRepairDivision dlgfrd; strFirstRepairDivision = m_List1.GetItemText(iItem, 9+m_nAdd); dlgfrd.m_strFirstRepairDivision = strFirstRepairDivision; if ( dlgfrd.DoModal() != IDOK) strFirstRepairDivision = g_user.name; else strFirstRepairDivision = dlgfrd.m_strFirstRepairDivision; #endif IsGrowthTx growthtxdlg; growthtxdlg.m_strOrderNumber=id; growthtxdlg.DoModal(); if(growthtxdlg.m_bReturnOK==0) return; if(growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty ()) return; if(!growthtxdlg.m_seltxname.IsEmpty ()) { savepath+=growthtxdlg.m_seltxname+"\\"; if(::CheckFolderFileExist (savepath)==0) ::CreateDirectory (savepath, NULL); } CFileDialog fdlg(true, NULL,"openfile", OFN_ALLOWMULTISELECT,"jpg文件(*.jpg)|*.jpg||"); TCHAR szBuffer[60000]={0}; fdlg.m_ofn.lpstrFile = szBuffer; fdlg.m_ofn.nMaxFile = 60000; if(fdlg.DoModal ()!=IDOK) { CString status4; if(AfxMessageBox("客照是否全部修饰完毕?", MB_YESNO|MB_ICONINFORMATION)==IDYES) status4="OK"; else status4="修片中"; CString sql; #if 0 // 2015-07-27 导入初修时,取消选中相片; if(time8.IsEmpty ()) sql="update dindan set status4='"+status4+"',time8='"+g_date+"' where id='"+id+"'"; else sql="update dindan set status4='"+status4+"' where id='"+id+"'"; #else if(time8.IsEmpty ()) sql="update dindan set status4='"+status4+"',waiter5='"+strFirstRepairDivision+"',time8='"+g_date+"' where id='"+id+"'"; else sql="update dindan set status4='"+status4+"',waiter5='"+strFirstRepairDivision+"' where id='"+id+"'"; #endif g_sendhead.bsql=1; if(g_bAllBranch) { g_branchip=GetIP(branch); g_pMainWnd->OnDisconnect(); g_branchname=branch; g_bBranchModify=1; g_pMainWnd->ProcessChatMessageRequest2(sql); g_pMainWnd->OnDisconnect(); g_bBranchModify = 0; g_branchip = g_branchname = ""; } else g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0)return; if(g_bAllBranch==0) { GetData(); } else { for(int i=0; iOnDisconnect(); g_branchname=branch; g_bBranchModify=1; g_pMainWnd->ProcessChatMessageRequest2(sql); g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname=""; } else g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0)return; savepath+="ok"; ::DeleteFile (savepath); // 删除ok文件; AfxMessageBox("导入客照成功!", MB_ICONINFORMATION); if(g_bAllBranch==0) { GetData(); } else { for(int i=0; iLoadOrderImages(dlg.m_mode, dlg.m_id, g_domain, dlg.m_patharray1, &dlg.m_aryOfShareDirectory); #endif #endif dlg.m_path+=id; dlg.m_path +="\\"; dlg.DoModal (); } void BeautifySkinFrom::OnBUTexportphoto() // 导出原片; { #ifdef USE_KERNEL_DLL // 2015.11.10 // 判断登陆用户是否有导出原片的权限; if ( !IsHasRights2new(8) ) { AfxMessageBox(_T("您无权限导出原片!"),MB_ICONINFORMATION); return; } // 获取列表信息:域名、订单号、景点名、顾客信息; POSITION pos = m_List1.GetFirstSelectedItemPosition(); if ( pos == NULL ) { AfxMessageBox(_T("请选中您要导出原片的订单!"), MB_ICONINFORMATION); return; } INT nItemCount = m_List1.GetItemCount(); INT nSelectedItem = m_List1.GetNextSelectedItem(pos); CString strBranchId = _T(""); CString strOrderNum = _T(""); // 初修列表不支持景点名,需要从其他地方获取; CString strScenery = _T(""); CString strCustomerInfo = _T(""); // 获取域名; if ( g_bAllBranch ) {// 多店汇总时; strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) ); } else { if ( g_branchname.IsEmpty() ) {// 连接本店时; strBranchId = g_domain; } else {// 连接分店时; strBranchId = GetDomainFromBranch( g_branchname ); } } // 获取订单号; strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd); // 获取顾客信息; strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd); // 获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单; IsGrowthTx IsGrowthtxdlg; IsGrowthtxdlg.m_mode = 1; IsGrowthtxdlg.m_strOrderNumber = strOrderNum; IsGrowthtxdlg.DoModal(); if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) ) { return; } if ( IsGrowthtxdlg.m_bGrowthTx ) { // 读取dindanjd表里的成长套系名,并返回选中的成长套系名; strScenery = IsGrowthtxdlg.m_seltxname; if ( strScenery == _T("全部") ) { strScenery.Empty(); } } // 导出原片时,是否压缩导出; DWORD dwExportPix = INVALID_COPY_PIX; // 通过其他对话框,选择导出时压缩的像素; ///////////////////////////////////////////////////////////////////////////////////////////////// if ( g_pIMGProcess == NULL ) { return; } // 获取完信息,开始导出原片; ImgExportInterface *pExport = NULL; g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport); if ( pExport ) { pExport->ExportOriginalImg( TRUE, strBranchId, strOrderNum, strCustomerInfo, !strScenery.IsEmpty(), strScenery, _T("*.jpg|*.jpeg"), dwExportPix, _T("*.nef|*.cr2|*.raw|*.ra2"), FALSE, FALSE ); } g_pIMGProcess->Release(); // 结束; #else if(IsHasRights2new(8)==0)return; POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要导出片的定单!", MB_ICONINFORMATION); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0+m_nAdd); #if USE_SHARE_FLORD CString branch; if(g_bAllBranch) branch=m_List1.GetItemText(iItem, 0); CString strDomain = _T(""); if ( !branch.IsEmpty() ) { strDomain = GetDomainFromBranch(branch); } else { if(g_branchname != _T("")) strDomain = GetDomainFromBranch(g_branchname); } IsGrowthTx growthtxdlg; growthtxdlg.m_mode=1; growthtxdlg.m_strOrderNumber=id; growthtxdlg.DoModal(); if(growthtxdlg.m_bReturnOK==0) return; if(growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty()) return; // 导出原片时,可以选择只导出单独的景点相片;(如果是儿童版的成长套系,可以导出某个套系的相片) CStringArray array; LoadAllImageSource(id,strDomain,growthtxdlg.m_bGrowthTx,growthtxdlg.m_seltxname,array); #else CString branch; if(g_bAllBranch) branch=m_List1.GetItemText (iItem, 0); CString path; if(g_bAllBranch) { CString branchpath=GetBranchPhotoPath(branch); path=g_path1+branchpath+"\\"; } else path=g_path1+"\\"; path+=id; path +="\\"; CString temp; CStringArray array; CStringArray dirarray; using namespace helper_coffs; IsGrowthTx growthtxdlg; growthtxdlg.m_mode=1; growthtxdlg.m_strOrderNumber=id; growthtxdlg.DoModal (); if(growthtxdlg.m_bReturnOK==0) return; if(growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty ()) return; if(!growthtxdlg.m_seltxname.IsEmpty ()) { if(growthtxdlg.m_seltxname!="全部") { path+=growthtxdlg.m_seltxname; path+="\\"; } } else { // 1.查找原片目录下的所有子文件夹; ffsco o; o.dirs(1); o.find(LPCSTR(path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin();coo.end() != it;it ++) { temp=(*it).c_str(); if(::FindArray (&dirarray, temp)==-1 && temp!=path) { dirarray.Add (temp); } } if(dirarray.GetSize ()) { SelProvider dlg; dlg.m_mode =1; dlg.m_pArray =&dirarray; if(dlg.DoModal ()!=IDOK)return; if(dlg.m_provider!="全部") { path+=dlg.m_provider; path+="\\"; } } } // 1.查找原片目录下的所有文件; ffsco o; o.dirs(1); o.find(LPCSTR(path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin();coo.end() != it;it ++) { temp=(*it).c_str(); if(temp.Find ("uploadtask")!=-1)continue; if(temp.GetAt (temp.ReverseFind ('\\')+1)!='s' && temp.GetAt (temp.ReverseFind ('\\')+1)!='m') { array.Add (temp); } } #endif if(array.GetSize()==0) { AfxMessageBox("此单未导片!", MB_ICONINFORMATION); return; } CString dir; GetSavePath(dir); if(dir.IsEmpty()) { return; } CString name1=m_List1.GetItemText (iItem, 1+m_nAdd); CString name2=m_List1.GetItemText (iItem, 2+m_nAdd); dir.TrimRight ('\\'); dir+="\\"; dir+=id; dir+=g_branchname; if(g_bAllBranch) { if(GetBranchPhotoPath(branch)!="") dir+=branch; } name1.Replace("\"",""); // Jeff.add at 2014.07.30.去除姓名中存在非法的文件夹创建字符; name2.Replace("\"",""); // Jeff.add at 2014.07.30.去除姓名中存在非法的文件夹创建字符; dir+=name1; dir+=name2; dir+="原片"; dir+="\\"; ::CreateDirectory (dir, NULL); // 压缩选项对话框; CCompressOption comoptdlg; comoptdlg.DoModal(); //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- // 从原片中导出相片制作初修片; ImportPhoto dlg; dlg.m_bOfmat = 1; // 是否导入或导出同名的原始格式相片; dlg.m_nOutputSize=comoptdlg.m_nsize; // 导出相片时的尺寸; dlg.m_bOrigin =1; // 未知; dlg.m_mode =1; // 未知; dlg.m_pArray=&array; // 被导出的相片路径集合; dlg.m_savepath =dir; // 导出相片存放的目录; dlg.DoModal (); AfxMessageBox("导片成功!", MB_ICONINFORMATION); CString str; str=" 导出原片 "; str+="客人:"; str+=name1+name2+id; WriteLog(_T("导出原片"), str); #endif } void BeautifySkinFrom::OnBUTexportphoto2() // 导出修好的片; { #ifdef USE_KERNEL_DLL // 2015.11.10 // 判断登陆用户是否有导出原片的权限; if ( !IsHasRights2new(9) ) { AfxMessageBox(_T("您无权限导出原片!"),MB_ICONINFORMATION); return; } // 获取列表信息:域名、订单号、景点名、顾客信息; POSITION pos = m_List1.GetFirstSelectedItemPosition(); if ( pos == NULL ) { AfxMessageBox(_T("请选中您要导出原片的订单!"), MB_ICONINFORMATION); return; } INT nItemCount = m_List1.GetItemCount(); INT nSelectedItem = m_List1.GetNextSelectedItem(pos); CString strBranchId = _T(""); CString strOrderNum = _T(""); // 初修列表不支持景点名,需要从其他地方获取; CString strScenery = _T(""); CString strCustomerInfo = _T(""); // 获取域名; if ( g_bAllBranch ) {// 多店汇总时; strBranchId = GetDomainFromBranch( m_List1.GetItemText(nSelectedItem, 0) ); } else { if ( g_branchname.IsEmpty() ) {// 连接本店时; strBranchId = g_domain; } else {// 连接分店时; strBranchId = GetDomainFromBranch( g_branchname ); } } // 获取订单号; strOrderNum = m_List1.GetItemText(nSelectedItem, 0 + m_nAdd); // 获取顾客信息; strCustomerInfo = m_List1.GetItemText(nSelectedItem, 1 + m_nAdd) + _T(",") + m_List1.GetItemText(nSelectedItem, 2 + m_nAdd); // 获取景点名,需要读取dindanjd表获取,目前只支持儿童成长套系订单; IsGrowthTx IsGrowthtxdlg; IsGrowthtxdlg.m_mode = 1; IsGrowthtxdlg.m_strOrderNumber = strOrderNum; IsGrowthtxdlg.DoModal(); if( IsGrowthtxdlg.m_bReturnOK == 0 || (IsGrowthtxdlg.m_bGrowthTx && IsGrowthtxdlg.m_seltxname.IsEmpty()) ) { return; } if ( IsGrowthtxdlg.m_bGrowthTx ) { // 读取dindanjd表里的成长套系名,并返回选中的成长套系名; strScenery = IsGrowthtxdlg.m_seltxname; if ( strScenery == _T("全部") ) { strScenery.Empty(); } } // 导出原片时,是否压缩导出; DWORD dwExportPix = INVALID_COPY_PIX; // 通过其他对话框,选择导出时压缩的像素; ///////////////////////////////////////////////////////////////////////////////////////////////// if ( g_pIMGProcess == NULL ) { return ; } // 获取完信息,开始导出原片; ImgExportInterface *pExport = NULL; g_pIMGProcess->QueryInterface(IID_ImgExportInterface, (void**)&pExport); if ( pExport ) { pExport->ExportSecondaryImg( TRUE, strBranchId, strOrderNum, strCustomerInfo, !strScenery.IsEmpty(), strScenery, _T("*.jpg|*.jpeg"), dwExportPix, _T("*.nef|*.cr2|*.raw|*.ra2"), FALSE, FALSE ); } g_pIMGProcess->Release(); // 结束; #else if(IsHasRights2new(9)==0)return; POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要导出片的定单!", MB_ICONINFORMATION); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0+m_nAdd); #if USE_SHARE_FLORD CString branch; if(g_bAllBranch) branch=m_List1.GetItemText (iItem, 0); CString strDomain = _T(""); if ( !branch.IsEmpty() ) { strDomain = GetDomainFromBranch(branch); } else { strDomain = g_branchname.IsEmpty() ? g_domain : GetDomainFromBranch(g_branchname); } IsGrowthTx growthtxdlg; growthtxdlg.m_mode=1; growthtxdlg.m_strOrderNumber=id; growthtxdlg.DoModal (); if( growthtxdlg.m_bReturnOK == 0 ) return; if( growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty() ) return; // 导出原片时,可以选择只导出单独的景点相片;(如果是儿童版的成长套系,可以导出某个套系的相片) CStringArray array; //LoadAllImageSource(id,strDomain,growthtxdlg.m_bGrowthTx,growthtxdlg.m_seltxname,array); // 如果是成长套系,且选中的是某一套系名称; if ( growthtxdlg.m_bGrowthTx && ( !growthtxdlg.m_seltxname.IsEmpty() && growthtxdlg.m_seltxname != _T("全部")) ) { CNetShareInfo::GetInstance()->LoadSceneryImages(2, id, strDomain, growthtxdlg.m_seltxname, array); } else { CNetShareInfo::GetInstance()->LoadOrderImages(2, id, strDomain, array); } #else CString branch; if(g_bAllBranch) branch=m_List1.GetItemText (iItem, 0); CString path; if(g_bAllBranch) { CString branchpath=GetBranchPhotoPath(branch); path=g_path2+branchpath+"\\"; } else path=g_path2+"\\"; path+=id; path +="\\"; CString temp; CStringArray array; CStringArray dirarray; using namespace helper_coffs; IsGrowthTx growthtxdlg; growthtxdlg.m_mode=1; growthtxdlg.m_strOrderNumber=id; growthtxdlg.DoModal (); if(growthtxdlg.m_bReturnOK==0) return; if(growthtxdlg.m_bGrowthTx && growthtxdlg.m_seltxname.IsEmpty ()) return; if(!growthtxdlg.m_seltxname.IsEmpty ()) { if(growthtxdlg.m_seltxname!="全部") { path+=growthtxdlg.m_seltxname; path+="\\"; } } ffsco o; o.dirs(1); o.find(LPCSTR(path), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin();coo.end() != it;it ++) { temp=(*it).c_str(); if(temp.Find ("uploadtask")!=-1)continue; if(temp.GetAt (temp.ReverseFind ('\\')+1)!='s' && temp.GetAt (temp.ReverseFind ('\\')+1)!='m') { array.Add (temp); } } #endif if(array.GetSize ()==0) { AfxMessageBox("此单未导片!", MB_ICONINFORMATION); return; } CString dir; GetSavePath(dir); if(dir.IsEmpty()) return; CString name1=m_List1.GetItemText (iItem, 1+m_nAdd); CString name2=m_List1.GetItemText (iItem, 2+m_nAdd); dir.TrimRight ('\\'); dir+="\\"; dir+=id; dir+=g_branchname; if(g_bAllBranch) { if(GetBranchPhotoPath(branch)!="") dir+=branch; } dir+=name1; dir+=name2; dir+="修好的片"; dir+="\\"; ::CreateDirectory (dir, NULL); CCompressOption comoptdlg; comoptdlg.DoModal (); //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- // 导出修好的片; //---------------------------------------------------------------------------------------------- ImportPhoto dlg; dlg.m_nOutputSize=comoptdlg.m_nsize; dlg.m_mode =1; dlg.m_pArray=&array; dlg.m_savepath =dir; dlg.DoModal (); AfxMessageBox("导片成功!", MB_ICONINFORMATION); CString str; str=" 导出初修片 "; str+="客人:"; str+=name1+name2+id; WriteLog(_T("导出修好的片"), str); #endif } void BeautifySkinFrom::OnButton1() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(); } void BeautifySkinFrom::OnButton2() { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(1); } void BeautifySkinFrom::OnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); if(IsHasRights2new(5) || IsHasRights2new(49)) { GetDlgItem(IDC_BUTimportphoto)->EnableWindow(1); } else GetDlgItem(IDC_BUTimportphoto)->EnableWindow(0); *pResult = 0; } BOOL BeautifySkinFrom::CheckOK(CString name) { int pos=name.Find("-"); if(pos!=-1)name=name.Left(pos); if(name.GetLength ()>4)return 0; for(int i=0; i'9')return 0; } return 1; } void BeautifySkinFrom::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL)return; int iItem=m_List1.GetNextSelectedItem(pos); g_id = m_List1.GetItemText (iItem, 0+m_nAdd); *pResult = 0; } void BeautifySkinFrom::HidePrice() { #ifdef LKAY_VERSION if(IsHasRights2new(31))return; for(int i=0; i< m_List1array.GetSize (); i++) { m_List1array.ElementAt (i).SetAt (14+m_nAdd, "***"); m_List1array.ElementAt (i).SetAt (11+m_nAdd, "***"); m_List1array.ElementAt (i).SetAt (12+m_nAdd, "***"); m_List1array.ElementAt (i).SetAt (13+m_nAdd, "***"); } #else if(IsHasRights2new(31))return; for(int i=0; i< m_List1array.GetSize (); i++) { m_List1array.ElementAt (i).SetAt (13+m_nAdd, "***"); m_List1array.ElementAt (i).SetAt (14+m_nAdd, "***"); } #endif } void BeautifySkinFrom::OnBtnsearchfilter() { // TODO: Add your control notification handler code here SearchFilter dlg; dlg.m_mode = 2; if(dlg.DoModal ()==IDOK)FillGrid(); g_bSearchFilter=0; } void BeautifySkinFrom::GetData() { if(g_bAllBranch==0) { if(g_bShowOK==0) { #ifdef LKAY_VERSION CString filter="status3='未取' and (dindantype<>'意向客户' or dindantype is null)"; #else CString filter="status3='未取'"; #endif g_sendhead.bsql=0; g_sendhead.code[0]=184; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { return; } } else { g_sendhead.bsql=0; g_sendhead.code[0]=184; g_sendhead.tabcount=1; #ifdef LKAY_VERSION CString filter="dindantype<>'意向客户' or dindantype is null"; g_pMainWnd->ProcessChatMessageRequest2(filter); #else g_pMainWnd->ProcessChatMessageRequest2(1); #endif if(g_bSendOK==0)return; } DataToArray(&m_List1array); } else { //////////////数据汇总 m_List1array.RemoveAll (); CString branch; for(int i=-1; i < g_brancharray.GetSize ()-1; i++) { if(i!=-1) { branch=g_brancharray.ElementAt (i).ElementAt (0); g_branchip=g_brancharray.ElementAt (i).ElementAt (1); g_pMainWnd->OnDisconnect(); g_branchname=branch; g_bBranchModify=1; } else branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0); if(g_bShowOK==0) { CString filter="status3='未取'"; g_sendhead.bsql=0; g_sendhead.code[0]=184; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { continue; } } else { g_sendhead.bsql=0; g_sendhead.code[0]=184; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(1); if(g_bSendOK==0) { continue; } } CArrayList1array; DataToArray(&List1array); int size=m_List1array.GetSize (); for(int j=0; jOnDisconnect(); g_bBranchModify=0;g_branchip=g_branchname=""; } HidePrice(); FillGrid(); } void BeautifySkinFrom::OnBUTprint3() { // TODO: Add your control notification handler code here GetData(); } #if USE_SHARE_FLORD /************************************************************************/ /* 函数:LoadAllImageSource 描述:加载所有原片相片,若景点名不为空或全部,则导出的只是该订单下的某个景点的相片(若是儿童版的成长套系,则只导出某个成长套系下的相片); 参数: IN:lpOrderNum 所选订单号; IN:lpDomain 订单所在域名,空则为本店; IN:bGrowTh 订单是否为成长套系; IN:strSelectName 若是成长套系,则为所选的套系名称; OUT:strArray 返回所有符合要求的相片路径; 返回: 调用约定: 注意: */ /************************************************************************/ void BeautifySkinFrom::LoadAllImageSource(IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, IN BOOL bGrowTh, IN CString &strSelectName, OUT CStringArray &strArray) { // 1.需要判断域名有效性; if (lpDomain && strcmp(lpDomain, "") != 0) { CONST TCHAR *szResult = strstr(lpDomain,".ly.com"); if(szResult == NULL) { // 传入的域名有误; return; } } // 2.先遍历原始的共享目录; int i , n ; TCHAR szShare[MAX_PATH] = {0}; CNetShareInfo::GetInstance()->GetLoaclShareDirectory(1,szShare); // 存放所有存在订单文件夹的共享目录数组; CStringArray strArrayOfShareDirectory; // 3.如果订单号存在原始共享目录中; TCHAR szOrdePath[MAX_PATH] = {0}; if ( lpDomain == NULL || strcmp(lpDomain,"") == 0) { // 分店域名为空,则为本店; #ifdef VC60 sprintf(szOrdePath,"%s\\%s", szShare, lpOrderNum); #else _stprintf_s(szOrdePath, MAX_PATH, _T("%s\\%s"), szShare, lpOrderNum); #endif } else {// 分店域名不为空; if ( strcmp(lpDomain, g_domain) == 0) { // 本店域名; #ifdef VC60 sprintf(szOrdePath,"%s\\%s", szShare, lpOrderNum); #else _stprintf_s(szOrdePath, MAX_PATH, "%s\\%s", szShare, lpOrderNum); #endif } else { sprintf(szOrdePath,"%s\\%s\\%s", szShare, lpDomain, lpOrderNum); } } if ( PathFileExists(szOrdePath) ) { strArrayOfShareDirectory.Add(CString(szOrdePath)); } // 4.遍历其他共享目录; int nSize = g_aryOfSharePathInfo.GetSize(); for ( /*int*/ i = 0; i < nSize; i++) { if ( 1 != atoi(g_aryOfSharePathInfo.ElementAt(i).ElementAt(5))) continue; // 逐一加载其他共享目录; sprintf(szShare,"%s",g_aryOfSharePathInfo.ElementAt(i).ElementAt(2)); if (lpDomain && strcmp(lpDomain,"") != 0) { sprintf(szOrdePath,"%s\\%s\\%s",szShare,lpDomain, lpOrderNum); } else { sprintf(szOrdePath,"%s\\%s",szShare, lpOrderNum); } if ( PathFileExists(szOrdePath) ) { strArrayOfShareDirectory.Add(CString(szOrdePath)); } } // 若是成长套系,可按一个套系来导出; if ( bGrowTh ) { if ( strSelectName == "全部") strSelectName.Empty(); nSize = strArrayOfShareDirectory.GetSize(); for ( /*int*/ i = 0; i < nSize; i++) { // 逐一加载其他共享目录; sprintf(szOrdePath,"%s\\%s",strArrayOfShareDirectory.ElementAt(i), strSelectName); StoreImage(szOrdePath,strArray); } } else // 非成长套系,则按指定的景点名导出指定的相片,而不是全部订单下的相片都导出; { // 查找原片中已导片的景点目录,注:会否浪费太多性能,最好从数据库里读取?; CArray vtImageDirectory; nSize = strArrayOfShareDirectory.GetSize(); for ( /*int*/ i = 0; i < nSize; i++) { // 逐一加载其他共享目录; sprintf(szOrdePath,"%s",strArrayOfShareDirectory.ElementAt(i)); // 只需要目录,不需要相片文件名; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(szOrdePath), LPCSTR("*.*")); ffsco::typeT cdir; ffsco::typeT::iterator it; cdir = o.co_dir(); CString strTemp; for ( it = cdir.begin(); it != cdir.end(); it++) { // strTemp 结果如: "\\it-pc\客户原片(管理软件)$\20150522-001\内景大西街店B棚\"; strTemp = it->c_str(); strTemp.TrimRight('\\'); if ( strTemp.CompareNoCase(szOrdePath) == 0) { continue; } // 子文件夹名称,如:"内景大西街店B棚"; strTemp = strTemp.Mid(strTemp.ReverseFind('\\') + 1); // 把"景点名"和"景点名完整路径" 存入数组中; BOOL bExists = FALSE; for ( /*int*/ n = 0; n < vtImageDirectory.GetSize(); n++) { STImageDirectory *pImageDirectory = vtImageDirectory.ElementAt(n); if ( strTemp == pImageDirectory->strSelName ) { bExists = TRUE; strTemp = it->c_str(); pImageDirectory->strAryImagePath.Add(strTemp); break; } } if ( !bExists ) { STImageDirectory *pImageDirectory = new STImageDirectory; pImageDirectory->strSelName = strTemp; pImageDirectory->strAryImagePath.Add(CString(it->c_str())); vtImageDirectory.Add(pImageDirectory); } } } // 提供选择景点名; SelProvider dlg; dlg.m_mode = 1; dlg.m_aryImageDirectory = &vtImageDirectory; if( dlg.DoModal() != IDOK ) return; if( dlg.m_provider != _T("全部") ) { nSize = vtImageDirectory.GetSize(); for ( i = 0; i < nSize; i++) { if ( dlg.m_provider == vtImageDirectory.ElementAt(i)->strSelName ) { int nSum = vtImageDirectory.ElementAt(i)->strAryImagePath.GetSize(); for ( n = 0; n < nSum; n++) { // 逐一加载其他共享目录; sprintf(szOrdePath,"%s",vtImageDirectory.ElementAt(i)->strAryImagePath.ElementAt(n)); StoreImage(szOrdePath,strArray); } break; } } } else { // 加载订单文件夹; nSize = strArrayOfShareDirectory.GetSize(); for ( /*int*/ n = 0; n < nSize; n++) { // 逐一加载其他共享目录; sprintf(szOrdePath,"%s",strArrayOfShareDirectory.ElementAt(n)); StoreImage(szOrdePath,strArray); } } // 释放内存; for ( i = 0; i < vtImageDirectory.GetSize(); i++) { STImageDirectory *pImageDirectory = vtImageDirectory.ElementAt(i); delete pImageDirectory; vtImageDirectory.RemoveAt(i); } } } /************************************************************************/ /* 函数:StoreImage 描述:存储指定目录的相片到CStringArray数组中; 参数: IN: lpImagePath 遍历的目录; OUT: strStoreArray 存储相片的数组; 返回: 调用约定:LoadAllImageSource主调; 注意: */ /************************************************************************/ void BeautifySkinFrom::StoreImage(IN LPCTSTR lpImagePath, OUT CStringArray &strStoreArray) { using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(lpImagePath), LPCSTR("*.*")); ffsco::typeT cfs; ffsco::typeT::iterator it; cfs = o.co_file(); CString strTemp; for ( it = cfs.begin(); it != cfs.end(); it++) { strTemp = it->c_str(); if ( strTemp.Find('.') == -1) continue; else { CString str = strTemp.Mid( strTemp.ReverseFind('\\') + 1 ); if ( str.Find('.') == -1) continue; } if ( strTemp.GetAt( strTemp.ReverseFind('\\') + 1 ) == 's' )continue; if ( strTemp.GetAt( strTemp.ReverseFind('\\') + 1 ) == 'm' )continue; #if 0 strTemp.MakeLower(); if ( strTemp.Find(".jpg") == -1 && strTemp.Find(".jpeg") == -1) continue; #else // 只要是图片格式的,都保留下来; CONST CString strImgExt = _T("*.jpg|*.jpeg|*.cr2|*.nef|*.png|*.bmp|*.raw"); CString strImg = strTemp.Mid(strTemp.ReverseFind(_T('.'))); strImg.MakeLower(); if ( strImgExt.Find(strImg) == -1) continue; #endif BOOL bExist = FALSE; for (int i = 0; i < strStoreArray.GetSize(); i++) { if (strStoreArray.ElementAt(i).CompareNoCase(strTemp) == 0) { bExist = TRUE; break; } } if( !bExist && strcmp(strTemp,lpImagePath) != 0 ) strStoreArray.Add(strTemp); } } #endif