UINT8 CProductSaleWin::DeptSaleProc(UINT32 deptNo) { UINT8 ret; DBG_PRINT(("进入CProductSaleWin::DeptSaleProc函数")); DBG_PRINT(("deptNo == %u", deptNo)); ret = pSaleData->DeptSale(deptNo, ""); if ((m_IfCancel)&&(ret == NO_SUCH_GOODS))//按商品取消键后,未在发票明细中找到该商品 { ErrMsgBox(ret); pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; DeptSaleShow(); ChangeTitle(); ReFresh(); return SUCCESS; } if (ret != SUCCEED) { m_strSuffix = ""; return(ErrMsgBox(ret)); } //添加实现内容调整的函数 DeptSaleShow(); ChangeTitle(); ReFresh(); //切换到商品销售界面 ChangeWin(PRODUCT_SALE_WIN); DBG_PRINT(("退出CProductSaleWin::DeptSaleProc函数")); return SUCCESS; }
//"Pen and brush settings" dialog procedure INT_PTR CALLBACK PBDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { try { //Message switch switch(uMsg) { //Everything is done with the message cracker macros case WM_INITDIALOG: return HANDLE_WM_INITDIALOG(hwndDlg,wParam,lParam,PBSettings_OnInitDialog); case WM_COMMAND: HANDLE_WM_COMMAND(hwndDlg,wParam,lParam,PBSettings_OnCommand); return FALSE; case WM_NOTIFY: return HANDLE_WM_NOTIFY(hwndDlg,wParam,lParam,PBSettings_OnNotify); case WM_CLOSE: EndDialog(hwndDlg,IDCANCEL); return TRUE; case WM_DRAWITEM: return HANDLE_WM_DRAWITEM(hwndDlg,wParam,lParam,PBSettings_OnDrawItem); } } catch(exception &ex) //Handle exceptions { ErrMsgBox(hMainWindow,ex,_T(__FUNCSIG__),MB_ICONERROR); EndDialog(hwndDlg,IDABORT); } return FALSE; }
BOOL DisplayDeviceCapsInfo () { HDC hdc; int i, iValue; if (!strcmp (gszDeviceName, "Display")) { if (!(hdc = GetDC (ghwndDevCaps))) { ErrMsgBox (GetStringRes(IDS_GETDCFAIL), ERR_MOD_NAME); return FALSE; } } else { if (!(hdc = CreateDC (gszDriverName, gszDeviceName, gszPort, NULL))) { char buf[BUFSIZE]; if (_snprintf_s (buf, BUFSIZE, _TRUNCATE, GetStringRes(IDS_FMT_CREDCFAIL), gszDriverName, gszDeviceName, gszPort) > 0) ErrMsgBox (buf, ERR_MOD_NAME); return FALSE; } } for (i = 0; i < MAX_DEVICE_CAPS; i++) { iValue = GetDeviceCaps (hdc, gaCaps[i].iValue); TranslateDeviceCaps (i, gaCaps[i].iValue, iValue); } if (!strcmp (gszDeviceName, "Display")) ReleaseDC(ghwndDevCaps, hdc); else DeleteDC (hdc); return TRUE; }
UINT8 CProductSaleWin::PlusProc(void) { UINT8 ret; double ii; char *content; INT32 dotNum = 0;//小数位数 content = (char*)(m_pInput2->m_contentBuf); ret=is_Money(content); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } ii = atof(content); DBG_PRINT(("ii= %lf",ii)); if(((UINT64)double2int(ii*GOODS_NUM_EXTENSION)) >= MAX_MONEY) { return (ErrMsgBox(ILLEGAL_AMOUNT)); } dotNum = CheckFloatBit(ii); DBG_PRINT(("dotNum= %d",dotNum)); if (dotNum>3) { DBG_PRINT(("--------ii = %f--------", ii)); DBG_PRINT(("--------dotNum = %d--------", dotNum)); CaMsgBox::ShowMsg("小数位数不超过三位"); return FAILURE; } m_pInput2->Clear(); ret = pSaleData->Plus(ii); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } ReFresh(); return SUCCESS; }
UINT8 CProductSaleWin::ClientInputProc(void) { char *content; UINT8 ret; char *blank = ""; INT8 chValue[128]; memset((void*)chValue, 0, sizeof(chValue)); content = (char*)(m_pInput2->m_contentBuf); if ('.' == *content) { CClient client; sprintf(chValue, "where KH_BH = '%s'", (content+1)); client.m_filter = chValue; client.Requery(); if(client.LoadOneRecord()!= SQLITE_OK) { CaMsgBox::ShowMsg("没有对应的付款人"); return FAILURE; } ret = pSaleData->ClientNameInput(client.m_khmc.c_str(),client.m_khsh.c_str()); } else { ret = pSaleData->ClientNameInput(content); } m_pInput2->Clear(); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } ClientShow(); ChangeTitle(); ReFresh(); strcpy(title_arr[1], blank); strcpy(title_arr[2], blank); strcpy(title_arr[3], blank); ChangeTitle(); return SUCCESS; }
UINT8 CProductSaleWin::TotalCancelProc() { UINT8 ret; CaMsgBox msgBox("是否整单取消?",CaMsgBox::MB_YESNO); msgBox.ShowBox(); if ((msgBox.m_iStatus == NO_PRESSED)||(msgBox.m_iStatus == CANCEL_PRESSED)) { return SUCCESS; } if(msgBox.m_iStatus == OK_PRESSED) { this->ReFresh(); ret = pSaleData->TotalCancel(); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } m_strSuffix = ""; m_pInput2->Clear(); ChangeWin(PRODUCT_SALE_MAIN_MENU); //返回销售档主界面 } return SUCCESS; }
UINT8 CProductSaleWin::GoodesReductProc(void) { char *content; double reductMoney; UINT8 ret; if(m_pInput2->IsEmpty()) { CaMsgBox::ShowMsg("未输入折让金额"); return FAILURE; } content = (char*)(m_pInput2->m_contentBuf); reductMoney = atof(content); m_pInput2->Clear(); ret = pSaleData->GoodsReduct(reductMoney); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } DeptSaleShow(); ChangeTitle(); ReFresh(); return SUCCESS; }
//--------------------------------------------------------------------------------- //处理事件 //--------------------------------------------------------------------------------- int CProductSaleWin::ProcEvent(int iEvent,unsigned char *pEventData, int iDataLen) { UINT8 ret; double ii; char *content; string code = ""; UINT32 deptNo; UINT8 IfInvSum = 0; INT32 dotNum = 0; INT32 nWin; INT32 nLen = 0; UINT8 nIndex = 0; string strErr(""); switch(iEvent) { case ENTER_KEY: m_strSuffix = ""; //判断装入纸质发票 if (isPaper() != 0) { DBG_PRINT(("没有纸质发票")); return(ErrMsgBox(NO_PAPER)); } content = (char*)(m_pInput2->m_contentBuf); ii = atof(content); m_pInput2->Clear(); ret = CashShow(ii); if (ret != SUCCEED) { return(ErrMsgBox(ret)); } ChangeTitle(); ReFresh(); if (m_IfCancel) //之前按了商品取消键 { pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; } DBG_PRINT(("*****工作模式******:%u", g_globalArg->pSaveTemplateInfo->workMode)); ret = pSaleData->PayByCash(IfInvSum); DBG_PRINT(("IfInvSum == %u", IfInvSum)); if ((ret == NO_GOODS)||(ret == DB_FULL)) { ErrMsgBox(ret); ChangeWin(PRODUCT_SALE_MAIN_MENU); //返回销售档主界面 return SUCCESS; } if (ret != SUCCEED) { ErrMsgBox(ret); switch(ret) { case GET_FISCAL_CODE_ERROR://取税控码失败 break; case UPDATE_INV_VOL_ERROR://写数据库失败 break; case DB_SAVE_ERROR://写数据库失败 break; case MALLOC_MEM_ERROR: break; case INV_SUM_ERROR: break; case MUST_RE_LOGIN: break; case HAVE_ROLLED: break; case NM_EXCEED_MIN: //发票金额超下限,退回到部类销售显示,等待再次结帐 case NO_PAPER: //没纸,退回到部类销售显示,等待再次结帐 DeptSaleShow(); ChangeTitle(); ReFresh(); return FAILURE; break; case INV_LIB_ERR: break; case GX_SV_NUM_EXCEED: break; case GX_SV_TIME_EXCEED: break; case GX_SV_SUM_EXCEED: break; default: return FAILURE;//留在商品销售界面 } } else { DBG_PRINT(("启动开钱箱")); MoneyBox_Open(); } if (pSaleData->m_returnOther == 1) { pSaleData->m_returnOther = 0; // ScannerRelease();//停止扫描枪扫描 // g_winNo = 3;//对应INV_MANAGE_MENU界面 nWin = INV_MANAGE_MENU; } else { // g_winNo = 2;//对应INV_MANAGE_MENU界面 nWin = PRODUCT_SALE_MAIN_MENU; } // if (1==IfInvSum) // { // InvSumShowPrn();//显示卷汇总并打印 // } // else // { ChangeWin(nWin); //返回销售档主界面 // } return SUCCESS; break; case DISCOUNT_KEY: if ((pSaleData->m_tmpGoodsNum>=(MAX_GOODS_LINE-1))&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } content = (char*)(m_pInput2->m_contentBuf); if (strlen(content)==0) { CaMsgBox::ShowMsg("请先输入折扣率"); return SUCCESS; } ret =is_Figure(content); if (ret != SUCCESS) { return(ErrMsgBox(INPUT_FIGURE_ERROR)); } ii = atof(content); ii = (INT32)ii;//向零取整 m_pInput2->Clear(); ret = pSaleData->Discount(ii); if (ret != SUCCESS) { return(ErrMsgBox(ret)); } ReFresh(); // CaMsgBox::ShowMsg("暂不支持此功能"); // return SUCCESS; break; case PRICE_INPUT: return(PriceInputProc()); break; case SUM_INPUT: return(SumInputProc()); break; case CLIENT_NAME_INPUT: return(ClientInputProc()); break; case FIND_KEY: return(ClientCodeInputProc()); break; case HELP_KEY: return(RemarksInputProc()); break; case CANCEL_GOODS: if (m_IfCancel)//之前按了商品取消键 { pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; DeptSaleShow(); } else { if (pSaleData->m_tmpGoodsNum==0)//无商品可取消 { ErrMsgBox(NO_GOODS_CANCEL); ChangeWin(PRODUCT_SALE_MAIN_MENU); return SUCCESS; } pSaleData->CancelGoods(); m_IfCancel = true; m_strSuffix = "<消>"; CancelGoodsShow(); } ChangeTitle(); ReFresh(); return SUCCESS; break; case PLUS_KEY: return(PlusProc()); break; case TOTAL_CANCEL: if (m_IfCancel)//之前按了商品取消键 { pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; } return(TotalCancelProc()); break; case PLU_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } content = (char*)(m_pInput2->m_contentBuf); code = ""; nLen = GOODS_CODE_LEN - strlen(content); if (nLen > 0)//不足13位,则前补零到13位 { while(nLen > 0) { code += "0"; nLen--; } } code += content; ret = pSaleData->DeptSale(0, code); m_pInput2->Clear(); if (m_IfCancel&&(ret == NO_SUCH_GOODS))//按商品取消键后,未在发票明细中找到该商品 { ErrMsgBox(ret); pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; DeptSaleShow(); ChangeTitle(); ReFresh(); return SUCCESS; } if (ret != SUCCEED) { m_strSuffix = ""; return(ErrMsgBox(ret)); } //添加实现内容调整的函数 DeptSaleShow(); ChangeTitle(); ReFresh(); //切换到商品销售界面 ChangeWin(PRODUCT_SALE_WIN); return SUCCESS; break; case SHIFT_PLU_KEY: //临时输入商品名称 if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } content = (char*)(m_pInput2->m_contentBuf); ret = pSaleData->PLUSale(content, strErr); if (m_IfCancel&&(ret == NO_SUCH_GOODS))//按商品取消键后,未在发票明细中找到该商品 { ErrMsgBox(ret); pSaleData->NoCancelGoods(); m_IfCancel = false; m_strSuffix = ""; DeptSaleShow(); ChangeTitle(); ReFresh(); return SUCCESS; } if (ret != SUCCEED) { m_strSuffix = ""; if (FAILURE == ret) { CaMsgBox::ShowMsg(strErr); strErr = ""; } else { ErrMsgBox(ret); } return FAILURE; } m_pInput2->Clear(); //添加实现内容调整的函数 DeptSaleShow(); ChangeTitle(); ReFresh(); //切换到商品销售界面 ChangeWin(PRODUCT_SALE_WIN); return SUCCESS; break; // case SCANNER_EVENT_KEY: // if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) // { // CaMsgBox::ShowMsg("商品行数超限"); // ClearScannerBuf(); // return FAILURE; // } // content = (char*)ScannerCode(); // DBG_PRINT((" 扫描枪读出的PLU码:%s", content)); // code = ""; // nLen = GOODS_CODE_LEN - strlen(content); // if (nLen > 0)//不足13位,则前补零到13位 // { // while(nLen > 0) // { // code += "0"; // nLen--; // } // } // code += content; // //ret = pSaleData->PLUSale(code); // ret = pSaleData->DeptSale(0, code); // m_pInput2->Clear(); // if (m_IfCancel&&(ret == NO_SUCH_GOODS))//按商品取消键后,未在发票明细中找到该商品 // { // ErrMsgBox(ret); // ClearScannerBuf(); // pSaleData->NoCancelGoods(); // m_IfCancel = false; // m_strSuffix = ""; // DeptSaleShow(); // ChangeTitle(); // ReFresh(); // return SUCCESS; // } // if (ret != SUCCEED) // { // ErrMsgBox(ret); // ClearScannerBuf(); // return FAILURE; // } // //添加实现内容调整的函数 // DeptSaleShow(); // ChangeTitle(); // ReFresh(); // //切换到商品销售界面 // ChangeWin(PRODUCT_SALE_WIN); // return SUCCESS; // break; case CHANGE_DEPT_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } content = (char*)(m_pInput2->m_contentBuf); if (is_Figure(content) != SUCCESS) { CaMsgBox::ShowMsg("请输入1~99区间的整数"); return FAILURE; } deptNo = atoi(content); m_pInput2->Clear(); return(DeptSaleProc(deptNo)); break; case DEPT1_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } if (QuickSaleProc()!=SUCCESS) { return FAILURE; } return(DeptSaleProc(1)); break; case DEPT2_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } if (QuickSaleProc()!=SUCCESS) { return FAILURE; } return(DeptSaleProc(2)); break; case DEPT3_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } if (QuickSaleProc()!=SUCCESS) { return FAILURE; } return(DeptSaleProc(3)); break; case DEPT4_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } if (QuickSaleProc()!=SUCCESS) { return FAILURE; } return(DeptSaleProc(4)); break; case DEPT5_KEY: if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } if (QuickSaleProc()!=SUCCESS) { return FAILURE; } return(DeptSaleProc(5)); break; case RETURN_MAIN_MENU: //return to SYSTEMMENU if (pSaleData->m_tmpGoodsNum==0) { ChangeWin(PRODUCT_SALE_MAIN_MENU); } else { CaMsgBox::ShowMsg("商品行数非零,不能返回"); } return SUCCESS; break; case GOODSREDUCT_KEY: /* if ((pSaleData->m_tmpGoodsNum>=MAX_GOODS_LINE)&&(!m_IfCancel)) { CaMsgBox::ShowMsg("商品行数超限"); return FAILURE; } GoodesReductProc();*/ CaMsgBox::ShowMsg("暂不支持此功能"); return SUCCESS; break; default: break; } return CaWindow::ProcEvent(iEvent,pEventData,iDataLen); }
BOOL DisplayPrinterDriverInfo (HWND hwnd) { HANDLE hPrinter; DWORD dwBytesNeeded; DRIVER_INFO_1 *pDriverInfo1; DRIVER_INFO_2 *pDriverInfo2; char buf[BUFSIZE]; char pEnvironment[BUFSIZE] = ""; BOOL bReturn = TRUE; // // open selected printer & alloc buffers & get sundry info, close printer // OpenPrinter (gszDeviceName, &hPrinter, NULL); if (!hPrinter) { char buf[BUFSIZE]; _snprintf_s (buf, BUFSIZE, _TRUNCATE, GetStringRes(IDS_FMT_OPNPRTFAIL), gszDeviceName); ErrMsgBox ((LPCSTR) buf, ERR_MOD_NAME); bReturn = FALSE; goto display_prt_drv_info_done1; } GetPrinterDriver (hPrinter, pEnvironment, 1, NULL, 0, &dwBytesNeeded); // // simple error checking, if these work assume rest will too // if (!(pDriverInfo1 = (DRIVER_INFO_1 *) LocalAlloc (LPTR, dwBytesNeeded))) { ErrMsgBox (GetStringRes(IDS_LALLOCFAIL), ERR_MOD_NAME); bReturn = FALSE; goto display_prt_drv_info_done1; } if (!GetPrinterDriver (hPrinter, pEnvironment, 1, (LPBYTE) pDriverInfo1, dwBytesNeeded, &dwBytesNeeded)) { ErrMsgBox (GetStringRes(IDS_GETPRTDRVFAIL), ERR_MOD_NAME); bReturn = FALSE; goto display_prt_drv_info_done2; } GetPrinterDriver (hPrinter, pEnvironment, 2, NULL, 0, &dwBytesNeeded); pDriverInfo2 = (DRIVER_INFO_2 *) LocalAlloc (LPTR, dwBytesNeeded); GetPrinterDriver (hPrinter, pEnvironment, 2, (LPBYTE) pDriverInfo2, dwBytesNeeded, &dwBytesNeeded); ClosePrinter (hPrinter); // // shove info in listbox // if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[0]) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[1], pDriverInfo1->pName) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[2]) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[3], pDriverInfo2->cVersion) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[4], pDriverInfo2->pName) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[5], pDriverInfo2->pEnvironment) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[6], pDriverInfo2->pDriverPath) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[7], pDriverInfo2->pDataFile) > 0 ) outstr(); if ( _snprintf_s (buf, BUFSIZE, _TRUNCATE, gaDrvInfo[8], pDriverInfo2->pConfigFile) > 0 ) outstr(); LocalFree (LocalHandle (pDriverInfo2)); display_prt_drv_info_done2: LocalFree (LocalHandle (pDriverInfo1)); display_prt_drv_info_done1: return bReturn; }