Exemple #1
0
        public int ConvertSSCC2Lst(ServerExchange xSE, string sSSCC, ref PSC_Types.ScDat scD, bool bInfoOnEmk, DataTable dtResult)
        {
            int nRec,
                nRet = AppC.RC_OK;
            string
                sP;

            DataSet
                dsTrans = null;

            // вместе с командой отдаем заголовок документа
            xCUpLoad = new CurUpLoad(xPars);
            xCUpLoad.sCurUplCommand = AppC.COM_ZSC2LST;

            if (xCDoc.drCurRow is DataRow)
            {
                dsTrans = xNSI.MakeWorkDataSet(xNSI.DT[NSI.BD_DOCOUT].dt, dtResult, new DataRow[] { xCDoc.drCurRow }, null, xSm, xCUpLoad);
            }

            MakeTempDOUTD(dtResult);

            LoadFromSrv dgL = new LoadFromSrv(LstFromSSCC);

            xCLoad           = new CurLoad();
            xCLoad.sSSCC     = sSSCC;
            xCLoad.xLP.lSysN = xCDoc.nId;
            xCLoad.dtZ       = dtL;

            sP = String.Format("(SSCC={0},TYPE={1})", sSSCC, "ROW");
            string sL = xSE.ExchgSrv(AppC.COM_ZSC2LST, sP, "", dgL, dsTrans, ref nRet, 20);


            if (dtL.Rows.Count > 0)
            {
                nRet = TestProdBySrv(xSE, nRet);

                if (nRet == AppC.RC_OK)
                {
                    nRec = xCLoad.dtZ.Rows.Count;
                    if (nRec == 1)
                    {// будем изображивать сканирование
                        SetVirtScan(xCLoad.dtZ.Rows[0], ref scD, true, bInfoOnEmk);
                        scD.sSSCC = sSSCC;
                    }
                    else
                    {// добавление группы ???
                        nRet = AppC.RC_MANYEAN;
                    }
                }
            }
            else
            {// просто сохраним запись ??? -  если была сетевая ошибка! при ошибке сервера ничего сохранять не надо!
                if (xSE.ServerRet != AppC.RC_OK)
                {
                    Srv.ErrorMsg(sL);
                }
            }

            return(nRet);
        }
Exemple #2
0
        // Обработка сканирования на панели Документов
        private void ProceedScanDoc(ScanVarGP xSc, ref PSC_Types.ScDat s)
        {
            int
                nRet = AppC.RC_OK;
            string
                sH,
                sPar,
                sErr = "";
            CurLoad
                ret;
            ServerExchange
                xSE = new ServerExchange(this);


            if ((xSc.bcFlags & ScanVarGP.BCTyp.SP_SSCC_INT) > 0)
            {
                xCLoad             = new CurLoad(AppC.UPL_ALL);
                xCLoad.sSSCC       = xSc.Dat;
                xCLoad.drPars4Load = xNSI.DT[NSI.BD_KMPL].dt.NewRow();
                LoadKomplLst(xCLoad.drPars4Load, AppC.F_LOADKPL);
            }
            else
            {
                ret = TransDocCode(ref s, xSE);
                if (ret != null)
                {
                    xCLoad = ret;

                    if (xSE.FullCOM2Srv.Length == 0)
                    {
                        if (bInLoad == true)
                        {
                            W32.keybd_event(W32.VK_ESC, W32.VK_ESC, 0, 0);
                            W32.keybd_event(W32.VK_ESC, W32.VK_ESC, 0, 0);
                            W32.keybd_event(W32.VK_ESC, W32.VK_ESC, W32.KEYEVENTF_KEYUP, 0);
                            W32.keybd_event(W32.VK_ESC, W32.VK_ESC, W32.KEYEVENTF_KEYUP, 0);
                        }
                        else
                        {
                            LoadDocFromServer(AppC.F_INITRUN, new KeyEventArgs(Keys.Enter), ref ehCurrFunc);
                        }
                    }
                    else
                    {
                        AutoSaveDat();
                        LoadFromSrv dgL = new LoadFromSrv(DocFromSrv);
                        xCLoad.nCommand = AppC.F_LOAD_DOC;
                        xCLoad.sComLoad = AppC.COM_ZZVK;
                        sErr            = xSE.ExchgSrv(AppC.COM_ZZVK, "", "", dgL, null, ref nRet);

                        MessageBox.Show("Загрузка окончена - " + sErr, "Код - " + nRet.ToString());
                        PosOnLoaded(nRet);
                        Back2Main();
                    }
                }
                else
                {
                    xCUpLoad = new CurUpLoad();

                    if (xSE.FullCOM2Srv.Length == 0)
                    {
                        sPar = String.Format("BC={0};BCT={1}", xSc.Dat, xSc.Id.ToString().ToUpper());
                        sErr = xSE.ExchgSrv(AppC.COM_UNKBC, sPar, "", null, null, ref nRet);
                    }
                    else
                    {
                        AutoSaveDat();
                        LoadFromSrv dgL = new LoadFromSrv(DocFromSrv);
                        xCLoad.nCommand = AppC.F_LOAD_DOC;
                        xCLoad.sComLoad = AppC.COM_ZZVK;
                        sErr            = xSE.ExchgSrv(AppC.COM_ZZVK, "", "", dgL, null, ref nRet);

                        MessageBox.Show("Загрузка окончена - " + sErr, "Код - " + nRet.ToString());
                        PosOnLoaded(nRet);
                        Back2Main();
                    }

                    if (nRet != AppC.RC_OK)
                    {
                        nRet = xSE.ServerRet;
                        if (nRet != AppC.RC_NEEDPARS)
                        {
                        }
                        Srv.PlayMelody(W32.MB_4HIGH_FLY);
                        sH = "Ошибка!";
                    }
                    else
                    {
                        sH = "Код отправлен";
                    }
                    Srv.ErrorMsg(sErr, sH, false);
                }
            }
        }
Exemple #3
0
        private int SetOverOPR(bool bAfterScan, DataRow drOpr, string sComm)
        {
            bool
                bNeedTrans;
            int
                nRet = AppC.RC_OK;
            ServerExchange
                xSE = new ServerExchange(this);

            if (drOpr != null)
            {
                bNeedTrans = (((AppC.OPR_STATE)drOpr["STATE"] != AppC.OPR_STATE.OPR_TRANSFERED) ||
                              (xCDoc.xDocP.nTypD != AppC.TYPD_OPR));

                if (bNeedTrans)
                {
                    if (bAfterScan)
                    {
                        if ((scCur.sKMC == (string)drDet["KMC"]) &&
                            (scCur.nParty == (string)drDet["NP"]) &&
                            (scCur.dDataIzg.ToString("yyyyMMdd") == (string)drDet["DVR"]))
                        {
                            bAfterScan = false;
                        }
                    }
                    if (!bAfterScan)
                    {    // выгрузка по кнопочке
                        //drOpr["STATE"] = AppC.OPR_STATE.OPR_READY;
                        xCUpLoad = new CurUpLoad(xPars);
                        xDP      = xCUpLoad.xLP;

                        xCUpLoad.bOnlyCurRow    = true;
                        xCUpLoad.drForUpl       = drOpr;
                        xCUpLoad.sCurUplCommand = sComm;

                        if (xPars.OpAutoUpl)
                        {    // авто-выгрузка операций
                            string sL = UpLoadDoc(xSE, ref nRet);
                            if (xSE.ServerRet == AppC.RC_OK)
                            {
                                AddrInfo xA = xCDoc.xOper.xAdrSrc;
                                xCDoc.xOper = new CurOper(false);
                                if (IsAutoMark())
                                {
                                    xCDoc.xOper.SetOperSrc(xA, xCDoc.xDocP.nTypD, false);
                                    // Имитация вызова
                                    //W32.SimulKey(W32.VK_SHIFT, 0);
                                    //W32.SimulKey(W32.VK_D1, 2);
                                }
                                //return (nRet);
                            }

                            if (nRet != AppC.RC_OK)
                            {
                                if (nRet == AppC.RC_HALFOK)
                                {
                                    Srv.PlayMelody(W32.MB_2PROBK_QUESTION);
                                    MessageBox.Show(sL, "Предупреждение!");
                                }
                                else
                                {
                                    Srv.ErrorMsg(sL, true);
                                }
                            }

                            if ((xSE.ServerRet != AppC.EMPTY_INT) &&
                                (xSE.ServerRet != AppC.RC_OK))
                            {    // операция выгрузки не прошла на сервере (содержательная ошибка)
                                //if (xSE.ServerRet == 99)
                                //    CompareAddrs(xCDoc.xOper.xAdrDst.Addr, String.Format("---{0}-----------После выгрузки", xSE.ServerRet), true);
                                xCDoc.xOper.SetOperDst(null, xCDoc.xDocP.nTypD, true);
                            }
                        }
                        else
                        {
                            xCDoc.xOper = new CurOper(true);
                        }
                        xCUpLoad = null;
                    }
                }
            }
            else
            {
                Srv.ErrorMsg("Продукция не определена!");
            }
            return(nRet);
        }