Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        private string UpLoadDoc(ServerExchange xSExch, ref int nR)
        {
            int i,
                nRet = AppC.RC_OK;
            string nComm,
                   sErr    = "",
                   sAllErr = "";
            DataSet dsTrans;

            DataRow[] drAUpL = null;
            LoadFromSrv
                dgL = null;

            try
            {
                drAUpL = PrepDataArrForUL(xCUpLoad.ilUpLoad.CurReg);
                if (drAUpL != null)
                {
                    if (xCUpLoad.sCurUplCommand != AppC.COM_CKCELL)
                    {
                        dgL = new LoadFromSrv(SetUpLoadState);
                    }
                    for (i = 0; i < drAUpL.Length; i++)
                    {
                        nRet  = AppC.RC_OK;
                        nComm = (xCUpLoad.naComms[i] == AppC.TYPD_INV) ? AppC.COM_VINV :
                                (xCUpLoad.naComms[i] == AppC.TYPD_VPER) ? AppC.COM_VVPER :
                                (xCUpLoad.naComms[i] == AppC.TYPD_OPR) ? AppC.COM_VOPR : AppC.COM_VTTN;

                        switch ((int)(drAUpL[i]["TYPOP"]))
                        {
                        case AppC.TYPOP_MARK:
                            nComm = AppC.COM_VMRK;
                            break;

                        case AppC.TYPOP_OTGR:
                        case AppC.TYPOP_KMPL:
                            nComm = AppC.COM_VKMPL;
                            break;
                        }

                        if (xCUpLoad.sCurUplCommand.Length == 0)
                        {
                            xCUpLoad.sCurUplCommand = nComm;
                        }

                        dsTrans = xNSI.MakeWorkDataSet(xNSI.DT[NSI.BD_DOCOUT].dt,
                                                       xNSI.DT[NSI.BD_DOUTD].dt, new DataRow[] { drAUpL[i] }, null, xSm, xCUpLoad);

                        sErr = xSExch.ExchgSrv(xCUpLoad.sCurUplCommand, "", "", dgL, dsTrans, ref nRet, 300);

                        if ((xSExch.ServerRet == AppC.RC_OK) && (sErr != "OK"))
                        {
                            nRet = AppC.RC_HALFOK;
                        }
                        if (nRet != AppC.RC_OK)
                        {
                            nR       = nRet;
                            sAllErr += sErr + "\n";
                        }
                    }
                }
                else
                {
                    nRet = AppC.RC_NODATA;
                    sErr = "Нет данных для передачи";
                }
            }
            catch (Exception)
            {
                nRet = AppC.RC_NODATA;
                sErr = "Ошибка подготовки";
            }
            if (sAllErr.Length == 0)
            {
                nR      = nRet;
                sAllErr = sErr;
            }
            return(sAllErr);
        }
Ejemplo n.º 3
0
        // загрузка справочников с сервера
        //private int LoadAllNSISrv(string[] aI, bool bMD5, bool xShow)
        //{
        //    return (nRet);
        //}

        //// групповая операция (проверка/загрузка)
        //private void LoadNsiMenu(bool bTestByMD5, string[] aTables)
        //{
        //    LoadNsiMenu(bTestByMD5, aTables, true);
        //}


        // групповая операция (проверка/загрузка)
        private void LoadNsiMenu(bool bTestByMD5, string[] aTables)
        {
            bool
                xShow = true;
            ServerExchange
                xSE = new ServerExchange(this);

            //xBCScanner.WiFi.IsEnabled = true;
            xBCScanner.WiFi.ShowWiFi(pnLoadDocG, true);

            xFPan.ShowP(6, 45, "Обновление НСИ", (bTestByMD5 == true) ? "Проверка" : "Загрузка");
            xFPan.UpdateHelp("Соединение с сервером");

            //bool bOldNsi;
            int j,
                nErr  = 0,
                nGood = 0,
                nRet  = 0,
                tc1   = Environment.TickCount;
            string
                i,
                sFull = "",
                sStat,
                sT = "";

            xNSI.dsNSI.EnforceConstraints = false;

            try
            {
                if (aTables.Length == 0)
                {
                    List <string> lT = new List <string>();

                    foreach (KeyValuePair <string, NSI.TableDef> td in xNSI.DT)
                    {
                        if (((td.Value.nType & NSI.TBLTYPE.NSI) == NSI.TBLTYPE.NSI) &&
                            ((td.Value.nType & NSI.TBLTYPE.LOAD) == NSI.TBLTYPE.LOAD))   // НСИ загружаемое
                        {
                            lT.Add(td.Key);
                        }
                    }
                    aTables = lT.ToArray();
                }

                for (j = 0; j < aTables.Length; j++)
                {
                    nRet = 0;
                    i    = aTables[j];

                    if (xNSI.DT.ContainsKey(i))
                    {
                        if (xShow == true)
                        {
                            xFPan.UpdateReg(xNSI.DT[i].Text + "...");
                        }

                        LoadNSISrv lnsi = new LoadNSISrv(xNSI, i, bTestByMD5);
                        xNSI.DT[i].nCount = Environment.TickCount;
                        sT = xSE.ExchgSrv(AppC.COM_ZSPR, i, lnsi.sDop, lnsi.dgL, null, ref nRet);
                        if (nRet == 0)
                        {
                            nGood++;
                        }
                        else
                        {
                            nErr++;
                        }

                        //sT = String.Format("{0}...{1}\n({2})", xNSI.DT[i].Text, sT, xNSI.DT[i].sDTStat);
                        sT    = String.Format("{0}...{1}", xNSI.DT[i].Text, sT);
                        sStat = String.Format("{0} ({1})", sT, xNSI.DT[i].sDTStat);
                        //xSE.TraiceWiFi(sStat);
                        sFull += ((aTables.Length == 1) ? sStat : sT + "\n");

                        if (xShow == true)
                        {
                            xFPan.UpdateReg(sT);
                        }
                    }
                }

                xNSI.dsNSI.EnforceConstraints = true;

                sT = Srv.TimeDiff(tc1, Environment.TickCount);
                if (bTestByMD5 == false)
                {
                    MessageBox.Show(sFull, "Время-" + sT);
                }
            }
            catch
            {
                nErr = 1;
            }
            finally
            {
                xFPan.HideP();
            }
        }
Ejemplo n.º 4
0
        private string UpLoadDoc(ServerExchange xSExch, ref int nR)
        {
            int i,
                nRet = AppC.RC_OK;
            string nComm,
                   sErr    = "",
                   sAllErr = "";
            DataSet dsTrans;

            DataRow[] drAUpL = null;
            LoadFromSrv
                dgL = null;

            try
            {
                drAUpL = PrepDataArrForUL(xCUpLoad.ilUpLoad.CurReg);
                if (drAUpL != null)
                {
                    if (xCUpLoad.sCurUplCommand != AppC.COM_CKCELL)
                    {
                        dgL = new LoadFromSrv(SetUpLoadState);
                    }
                    for (i = 0; i < drAUpL.Length; i++)
                    {
                        dsTrans = xNSI.MakeWorkDataSet(xNSI.DT[NSI.BD_DOCOUT].dt,
                                                       xNSI.DT[NSI.BD_DOUTD].dt, new DataRow[] { drAUpL[i] }, null, xSm, xCUpLoad);
                        if (dsTrans.Tables[NSI.BD_DOUTD].Rows.Count > 0)
                        {
                            nRet  = AppC.RC_OK;
                            nComm = AppC.COM_VDOC;
                            if (xCUpLoad.sCurUplCommand.Length == 0)
                            {
                                xCUpLoad.sCurUplCommand = nComm;
                            }

                            sErr = xSExch.ExchgSrv(xCUpLoad.sCurUplCommand, "", "", dgL, dsTrans, ref nRet, 600);

                            if ((xSExch.ServerRet == AppC.RC_OK) && (sErr != "OK"))
                            {
                                nRet = AppC.RC_HALFOK;
                            }
                            if (nRet != AppC.RC_OK)
                            {
                                nR       = nRet;
                                sAllErr += sErr + "\n";
                            }
                        }
                        else
                        {
                            Srv.ErrorMsg(String.Format("Тип {0} №{1} от {2} -\nнет данных!", drAUpL[i]["TD"], drAUpL[i]["NOMD"], drAUpL[i]["DT"]));
                        }
                    }
                }
                else
                {
                    nRet = AppC.RC_NODATA;
                    sErr = "Нет данных для передачи";
                }
            }
            catch (Exception)
            {
                nRet = AppC.RC_NODATA;
                sErr = "Ошибка подготовки";
            }
            if (sAllErr.Length == 0)
            {
                nR      = nRet;
                sAllErr = sErr;
            }
            return(sAllErr);
        }
Ejemplo n.º 5
0
        // загрузка справочников с сервера
        //private int LoadAllNSISrv(string[] aI, bool bMD5, bool xShow)
        //{
        //    return (nRet);
        //}

        // групповая операция (проверка/загрузка)
        private void LoadNsiMenu(bool bTestByMD5, string[] aTables)
        {
            bool
                xShow = true,
                bOldNsi;
            string i,
                   sFull = "",
                   sT    = "";

            ServerExchange
                xSE = new ServerExchange(this);

            //xBCScanner.WiFi.IsEnabled = true;
            xBCScanner.WiFi.ShowWiFi(pnLoadDocG, true);
            xFPan.UpdateSrv(xPars.sHostSrv);
            xFPan.ShowP(6, 45, "Обновление НСИ", (bTestByMD5 == true) ? "Проверка" : "Загрузка");
            xFPan.UpdateHelp("Соединение с сервером");

            int j,
                nErr  = 0,
                nGood = 0,
                nRet  = 0,
                tc1   = Environment.TickCount;

            xNSI.dsNSI.EnforceConstraints = false;

            if (aTables.Length == 0)
            {
                //aTables = new string[xNSI.DT.Keys.Count];
                //xNSI.DT.Keys.CopyTo(aTables, 0);

                List <string> lT = new List <string>();

                foreach (KeyValuePair <string, NSI.TableDef> td in xNSI.DT)
                {
                    if (((td.Value.nType & NSI.TBLTYPE.NSI) == NSI.TBLTYPE.NSI) &&
                        ((td.Value.nType & NSI.TBLTYPE.LOAD) == NSI.TBLTYPE.LOAD))   // НСИ загружаемое
                    {
                        lT.Add(td.Key);
                    }
                }
                aTables = lT.ToArray();
            }

            for (j = 0; j < aTables.Length; j++)
            {
                nRet = 0;
                i    = aTables[j];
                //if (((bTestByMD5) && (((DateTime)xNSI.BD_TINF_RW(i)["LASTLOAD"]).Date < DateTime.Now.Date)) ||
                //    (!bTestByMD5))
                try
                {
                    bOldNsi = (((DateTime)xNSI.BD_TINF_RW(i)["LASTLOAD"]).Date < DateTime.Now.Date);
                }
                catch
                {
                    bOldNsi = true;
                }


                if ((bTestByMD5 && bOldNsi) ||
                    (!bTestByMD5))
                {
                    LoadNSISrv lnsi = new LoadNSISrv(xNSI, i, bTestByMD5);
                    sT = xSE.ExchgSrv(AppC.COM_ZSPR, i, lnsi.sDop, lnsi.dgL, null, ref nRet);
                    if (nRet == 0)
                    {
                        nGood++;
                    }
                    else
                    {
                        nErr++;
                    }
                    sT     = xNSI.DT[i].Text + "..." + sT + "\r\n";
                    sFull += sT;

                    if (xShow == true)
                    {
                        xFPan.UpdateReg(sT);
                    }
                }
            }

            try
            {
                xNSI.dsNSI.EnforceConstraints = true;
            }
            catch
            {
                nErr = 1;
            }
            if (nErr == 0)
            {
                //xSm.dtLoadNS = DateTime.Now;
            }

            sT = Srv.TimeDiff(tc1, Environment.TickCount);
            if (bTestByMD5 == false)
            {
                MessageBox.Show(sFull, "Время-" + sT);
            }
            xFPan.HideP();
        }
Ejemplo n.º 6
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);
                }
            }
        }