コード例 #1
0
ファイル: PanelPars.cs プロジェクト: TabVV/SkladDisp
        // изменение типа, вывод нименования
        private void tKT_p_TextChanged(object sender, EventArgs e)
        {
            if (bWorkWithDocPars == true)
            {// при просмотре не проверяется
                int    nTD = AppC.EMPTY_INT;
                string s   = "";

                try
                {
                    nTD = int.Parse(tKT_p.Text);
                    s   = DocPars.TypDName(nTD);
                }
                catch { s = ""; }

                if (s.Length == 0)
                {
                    xDP.nTypD = AppC.EMPTY_INT;
                    s         = "<Неизвестный>";
                }
                else
                {
                    xDP.nTypD = nTD;
                }

                tNT_p.Text = s;
            }
        }
コード例 #2
0
ファイル: PanelPars.cs プロジェクト: TabVV/Sklad1C
        // вход в режим ввода/корректировки параметров
        public void EditPars(int nReg, DocPars x, CTRL1ST FirstEd, AppC.VerifyEditFields dgVer, EditParsOver dgEnd)
        {
            bool
                bEnField = true;

            xDP = x;
            if (x != null)
            {
                //bQuitEdPars = false;
                nCurFunc = nReg;
                //bWorkWithDocPars = true;
                //ServClass.dgVerEd = new AppC.VerifyEditFields(dgVer);
                dgOver = new EditParsOver(dgEnd);
                SetParFields(xDP);

                oldKeyH    = ehCurrFunc;
                ehCurrFunc = new Srv.CurrFuncKeyHandler(PPars_KeyDown);

                //xBCScanner.BarcodeScan -= ehScan;
                ehParScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanPar);
                xBCScanner.BarcodeScan += ehParScan;

                //BeginEditPars(FirstEd, dgVer);

                aEdVvod = new AppC.EditListC(dgVer);

                if (nReg == AppC.F_LOAD_DOC)
                {
                    if (xDP.sBC_Doc.Length > 0)
                    {
                        bEnField = false;
                    }
                }
                aEdVvod.AddC(tKT_p, bEnField);
                aEdVvod.AddC(tNom_p, bEnField);
                aEdVvod.AddC(tBCDoc);

                if (FirstEd == CTRL1ST.START_EMPTY)
                {
                    aEdVvod.SetCur(0);
                }
                else
                {
                    aEdVvod.SetCur(tBCDoc);
                }
                SetEditMode(true);
            }
        }
コード例 #3
0
ファイル: PanelPars.cs プロジェクト: TabVV/SkladDisp
        // проверка получателя
        private void tKPol_p_Validating(object sender, CancelEventArgs e)
        {
            NSI.RezSrch
                zS;
            string
                sT = ((TextBox)sender).Text.Trim(),
                sN = "";

            if (sT.Length > 0)
            {
                try
                {
                    int nK = int.Parse(sT);
                    if (xDP.nTypD == AppC.TYPD_OPR)
                    {
                        sN          = DocPars.OPRName(ref nK);
                        xDP.TypOper = nK;
                    }
                    else if (xDP.TypOper != AppC.TYPOP_KMPL)
                    {
                        zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_VPER) ?
                                             NSI.NS_SKLAD : NSI.NS_PP, new object[] { nK }, "NAME");
                        sN = zS.sName;
                    }
                    else
                    {
                    }

                    tNPol_p.Text = sN;
                    tKPol_p.Text = sT;
                    xDP.nPol     = nK;
                    xDP.sPol     = sN;
                }
                catch
                {
                    e.Cancel = true;
                }
            }
            else
            {
                xDP.nPol = AppC.EMPTY_INT;
                xDP.sPol = "";
            }
            //if (e.Cancel != true)
            //    e.Cancel = !ServClass.TryEditNextFiled((Control)sender, nCurEditCommand, aEdVvod);
        }
コード例 #4
0
ファイル: PanelPars.cs プロジェクト: TabVV/SkladDisp
        // вход в режим ввода/корректировки параметров
        public void EditPars(int nReg, DocPars x, CTRL1ST FirstEd, AppC.VerifyEditFields dgVer, EditParsOver dgEnd)
        {
            xDP = x;
            if (x != null)
            {
                //bQuitEdPars = false;
                nCurFunc         = nReg;
                bWorkWithDocPars = true;
                //ServClass.dgVerEd = new AppC.VerifyEditFields(dgVer);
                dgOver = new EditParsOver(dgEnd);
                SetParFields(xDP);

                oldKeyH                 = ehCurrFunc;
                ehCurrFunc              = new Srv.CurrFuncKeyHandler(PPars_KeyDown);
                ehParScan               = new BarcodeScanner.BarcodeScanEventHandler(OnScanPar);
                xBCScanner.BarcodeScan -= ehScan;
                xBCScanner.BarcodeScan += ehParScan;

                BeginEditPars(FirstEd, dgVer);
            }
        }
コード例 #5
0
            private byte[] SetCommand2Srv(string nComCode, string sP, string sMD5)
            {
                string
                //sCom = "COM=" + nComCode,
                    sCom      = String.Format("COM={0};KSK={1}", nComCode, xMF.xSm.nSklad),
                    sUserCode = ";KP=" + xMF.xSm.sUser,
                    sR        = ",",
                    sRet      = "",
                    sPar      = ";";

                DocPars
                    xP = xMF.xCDoc.xDocP;


                //if (sP.Length > 0)
                //    sPar = ";PAR=" + sP + ";";

                if (FullCOM2Srv.Length > 0)
                {
                    return(Encoding.UTF8.GetBytes(FullCOM2Srv + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length)));
                }

                switch (nComCode)
                {
                case AppC.COM_ZSPR:
                    //sPar = ";PAR=" + sP + ";" + sMD5;
                    sPar = String.Format(";PAR=(KSK={0},BLANK={1});", xP.nSklad, sP) + sMD5;
                    break;

                case AppC.COM_UNLDZKZ:
                case AppC.COM_VKMPL:
                    sRet = "NUCH=" + xMF.xCDoc.sLstUchNoms.Replace(',', '/');
                    sRet = "PAR=(" + sRet + ")";

                    sPar = ";" + sRet + ";";
                    break;


                case AppC.COM_PRNDOC:
                    //sPar = ";PRN=" + sP + ";";
                    sPar = String.Format(";PRN={0};{1}", sP, sMD5);
                    //if (sMD5.Length > 0)
                    //    sPar += sMD5 + ";";
                    break;

                case AppC.COM_GENFUNC:
                case AppC.COM_PRNBLK:
                    sPar = String.Format(";{0};", sP);
                    break;

                case AppC.COM_UNKBC:
                    sPar = String.Format(";{0};", sP);
                    break;

                case AppC.COM_VINV:
                case AppC.COM_VTTN:
                case AppC.COM_VVPER:
                case AppC.COM_VOPR:
                case AppC.COM_VMRK:
                case AppC.COM_GETPRN:
                case AppC.COM_CHKSCAN:
                case AppC.COM_CKCELL:
                    break;

                case AppC.COM_ZKMPLST:
                case AppC.COM_ZKMPD:
                case AppC.COM_ZZVK:
                case AppC.COM_ZSC2LST:

                    xP = (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR) ? xMF.xCDoc.xDocP : xMF.xCLoad.xLP;

                    sRet  = "KSK=" + xP.nSklad.ToString();
                    sRet += sR + "DT=" + xP.dDatDoc.ToString("yyyyMMdd");

                    if (nComCode == AppC.COM_ZZVK)
                    {
                        if ((xP.nUch != AppC.EMPTY_INT) && (xP.nUch > 0))
                        {
                            sRet += sR + "NUCH=" + xP.nUch.ToString();
                        }
                        sRet += sR + "TD=" + xP.nTypD.ToString();
                        if (xP.sSmena != "")
                        {
                            sRet += sR + "KSMEN=" + xP.sSmena;
                        }
                        if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0))
                        {
                            sRet += sR + "KEKS=" + xP.nEks.ToString();
                        }
                        if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0))
                        {
                            sRet += sR + "KPP=" + xP.nPol.ToString();
                        }
                        if (xP.sNomDoc != "")
                        {
                            sRet += sR + "ND=" + xP.sNomDoc;
                        }
                    }
                    if (nComCode == AppC.COM_ZKMPLST)
                    {
                        sRet += sR + "TYPOP=" + ((xMF.xCLoad.nCommand == AppC.F_LOADKPL) ? "KMPL" : "OTGR");
                    }
                    if (nComCode == AppC.COM_ZKMPD)
                    {
                        if (xMF.xCLoad.sSSCC != "")
                        {
                            sRet += sR + "SSCC=" + xMF.xCLoad.sSSCC;
                        }
                        else
                        {
                            if (xP.lSysN != 0)
                            {
                                sRet += sR + "SYSN=" + xP.lSysN.ToString();
                            }
                            if (xMF.xSm.LstUchKompl.Length > 0)
                            {
                                string sx = xMF.xSm.LstUchKompl.Replace(',', '/');
                                sRet += sR + "NUCH=" + sx;
                            }
                            if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0))
                            {
                                sRet += sR + "KEKS=" + xP.nEks.ToString();
                            }
                            if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0))
                            {
                                sRet += sR + "KPP=" + xP.nPol.ToString();
                            }

                            sRet += sR + "KSMEN=" + xP.sSmena;
                            if (xP.sNomDoc != "")
                            {
                                sRet += sR + "ND=" + xP.sNomDoc;
                            }
                        }
                    }
                    if (nComCode == AppC.COM_ZSC2LST)
                    {
                        if (xMF.xCLoad.sSSCC != "")
                        {
                            sRet += sR + "SSCC=" + xMF.xCLoad.sSSCC;
                        }
                    }

                    if (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR)
                    {
                        sRet += sR + "CD=1";
                    }

                    xMF.xCLoad.sFilt = sRet;
                    sRet             = "PAR=(" + sRet + ")";

                    sPar = ";" + sRet + ";";
                    break;

                case AppC.COM_VOTG:
                case AppC.COM_ZOTG:
                case AppC.COM_ZPRP:
                case AppC.COM_CCELL:
                case AppC.COM_CELLI:
                case AppC.COM_KMCI:
                case AppC.COM_A4MOVE:
                case AppC.COM_ADR2CNT:

                    sPar = ";PAR=" + sP + ";";
                    break;

                case AppC.COM_LOGON:
                    sUserCode = ";KP=" + sMD5;
                    sPar      = ";PAR=" + sP + ";";
                    break;

                default:
                    //sCom = "ERR";
                    //throw new SystemException("Неизвестная команда");
                    break;
                }

                sCom += ";MAC=" + xMF.xSm.MACAdr +
                        sUserCode +
                        sPar +
                        Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length);

                byte[] baCom = Encoding.UTF8.GetBytes(sCom);
                return(baCom);
            }
コード例 #6
0
ファイル: PanelPars.cs プロジェクト: TabVV/Sklad1C
        // сброс/установка полей ввода/вывода
        private void SetParFields(DocPars xDP)
        {
            int
                n = xDP.nNumTypD;

            tNT_p.Text = TName(xDP.nNumTypD);
            if (tNT_p.Text.Length == 0)
            {
                tNT_p.Text   = "<Неизвестный>";
                tKT_p.Text   = "";
                xDP.nNumTypD = AppC.EMPTY_INT;
            }
            else
            {
                tKT_p.Text = xDP.nNumTypD.ToString();
            }
            //xDP.sTypD = tNT_p.Text;

            tNom_p.Text = xDP.sNomDoc;
            tBCDoc.Text = xDP.sBC_Doc;
            tBCML.Text  = xDP.sBC_ML;

            tDateD_p.Text = DateTime.Now.ToString("dd.MM.yy");
            if (xDP.dDatDoc != DateTime.MinValue)
            {
                tDateD_p.Text = xDP.dDatDoc.ToString("dd.MM.yy");
            }
            tKSkl_p.Text = "";
            tNSkl_p.Text = "";
            if (xDP.nSklad != AppC.EMPTY_INT)
            {
                tKSkl_p.Text = xDP.nSklad.ToString();
                NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_SKLAD, new object[] { xDP.nSklad }, "NAME");
                if (zS.bFind == true)
                {
                    tNSkl_p.Text = zS.sName;
                    xDP.sSklad   = zS.sName;
                }
            }

            //tKUch_p.Text = "";
            //if ((xDP.nUch != AppC.EMPTY_INT) && (xDP.nUch != 0))
            //{
            //    tKUch_p.Text = xDP.nUch.ToString();
            //}


            //tSm_p.Text = xDP.sSmena;

            //tKEks_p.Text = "";
            //tNEks_p.Text = "";
            //if (xDP.nEks != AppC.EMPTY_INT)
            //{
            //    tKEks_p.Text = xDP.nEks.ToString();
            //    NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_EKS, new object[] { xDP.nEks }, "FIO");
            //    if (zS.bFind == true)
            //    {
            //        tNEks_p.Text = zS.sName;
            //        xDP.sEks = zS.sName;
            //    }
            //}
            //else
            //    xDP.sEks = "";


            //tKPol_p.Text = "";
            //tNPol_p.Text = "";
            //if (xDP.nPol != AppC.EMPTY_INT)
            //{
            //    tKPol_p.Text = xDP.nPol.ToString();
            //    if (xDP.nTypD == AppC.TYPD_RASHNKLD)
            //    {
            //        sIS = DocPars.OPRName(ref xDP.nPol);
            //    }
            //    else
            //    {
            //        NSI.RezSrch zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_PERMGP ) ?
            //            NSI.NS_SKLAD : NSI.NS_PP, new object[] { xDP.nPol }, "NAME");
            //        sIS = zS.sName;
            //    }
            //    tNPol_p.Text = sIS;
            //    xDP.sPol = sIS;

            //}
            //else
            //    xDP.sPol = "";
        }
コード例 #7
0
ファイル: exchg.cs プロジェクト: TabVV/Sklad1C
            private byte[] SetCommand2Srv(string nComCode, string sP, string sMD5)
            {
                string
                    sCom      = "COM=" + nComCode,
                    sUserCode = ";KP=" + xMF.xSm.sUserTabNom,
                    sCurDoc   = "",
                    sR        = ",",
                    sRet      = "",
                    sPar      = ";";
                DocPars
                    xP = xMF.xCDoc.xDocP;

                if (FullCOM2Srv.Length > 0)
                {
                    return(Encoding.UTF8.GetBytes(FullCOM2Srv + Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length)));
                }

                switch (nComCode)
                {
                case AppC.COM_VTTN:
                case AppC.COM_VVPER:
                    nComCode = AppC.COM_VDOC;
                    if (xMF.xCUpLoad.ilUpLoad.CurReg == AppC.UPL_CUR)
                    {
                        sCurDoc = ",CD=1";
                        xP      = xMF.xCDoc.xDocP;
                    }
                    else
                    {
                        xP = xMF.xCUpLoad.xLP;
                    }
                    break;
                }

                switch (nComCode)
                {
                case AppC.COM_GETPRN:
                case AppC.COM_CHKSCAN:
                case AppC.COM_VOPR:
                    break;

                case AppC.COM_ZSPR:
                    sPar = ";PAR=" + sP + ";" + sMD5;
                    break;

                case AppC.COM_VDOC:
                case AppC.COM_ZDOC:

                    if (nComCode == AppC.COM_ZDOC)
                    {
                        if (xMF.xCLoad.ilLoad.CurReg == AppC.UPL_CUR)
                        {
                            sCurDoc = ",CD=1";
                            xP      = xMF.xCDoc.xDocP;
                        }
                        else
                        {
                            xP = xMF.xCLoad.xLP;
                        }
                    }

                    sRet  = "TD=" + xP.nNumTypD.ToString();
                    sRet += sR + "KSK=" + xP.nSklad.ToString();

                    if (xP.dDatDoc != DateTime.MinValue)
                    {
                        sRet += sR + "DT=" + xP.dDatDoc.ToString("yyyyMMdd");
                    }

                    if ((xP.nUch != AppC.EMPTY_INT) && (xP.nUch > 0))
                    {
                        sRet += sR + "NUCH=" + xP.nUch.ToString();
                    }
                    if (xP.sSmena != "")
                    {
                        sRet += sR + "KSMEN=" + xP.sSmena;
                    }
                    if ((xP.nEks != AppC.EMPTY_INT) && (xP.nEks > 0))
                    {
                        sRet += sR + "KEKS=" + xP.nEks.ToString();
                    }
                    if ((xP.nPol != AppC.EMPTY_INT) && (xP.nPol > 0))
                    {
                        sRet += sR + "KPP=" + xP.nPol.ToString();
                    }
                    if (xP.sNomDoc != "")
                    {
                        sRet += sR + "ND=" + xP.sNomDoc;
                    }
                    if (xP.sBC_Doc != "")
                    {
                        sRet += sR + "IDLOAD=" + xP.sBC_Doc;
                    }

                    if (nComCode == AppC.COM_ZDOC)
                    {
                        if (xP.nNumTypD != AppC.TYPD_MOVINT)
                        {
                            sRet += sR + "ADRKMC=FULL";
                        }
                        //sRet += sR + "ADRKMC=LIMIT";
                    }

                    sRet += sCurDoc;
                    //xMF.xCLoad.sFilt = sRet;
                    sRet = "PAR=(" + sRet + ")";

                    sPar = ";" + sRet + ";";
                    sCom = "COM=" + nComCode;
                    break;

                case AppC.COM_CELLI:
                case AppC.COM_ADR2CNT:
                    sPar = ";PAR=" + sP + ";";
                    break;

                case AppC.COM_LST2SSCC:
                    sPar = String.Format(";{0}", sMD5);
                    break;

                case AppC.COM_GENFUNC:
                case AppC.COM_PRNBLK:
                    sPar = String.Format(";{0};", sP);
                    break;

                case AppC.COM_UNKBC:
                    sPar = String.Format(";{0};", sP);
                    break;

                default:
                    sPar = (sP.Length > 0) ? String.Format(";PAR={0};", sP) : ";";
                    break;
                }

                sCom += ";MAC=" + xMF.xPars.MACAdr +
                        sUserCode +
                        ";NUMT=" + xMF.xPars.NomTerm.ToString() +
                        sPar +
                        Encoding.UTF8.GetString(AppC.baTermCom, 0, AppC.baTermCom.Length);

                byte[] baCom = Encoding.UTF8.GetBytes(sCom);
                return(baCom);
            }
コード例 #8
0
ファイル: PanelPars.cs プロジェクト: TabVV/SkladDisp
        // сброс/установка полей ввода/вывода
        private void SetParFields(DocPars xDP)
        {
            int
                n = xDP.nTypD;
            string
                sIS;

            DocPars.tKTyp.Text = (n == AppC.EMPTY_INT) ? "" : xDP.nTypD.ToString();
            sIS = DocPars.TypDName(n);
            DocPars.tNTyp.Text = (sIS.Length > 0) ? sIS : "<Неизвестный>";
            xDP.sTypD          = DocPars.tNTyp.Text;

            tSm_p.Text    = xDP.sSmena;
            tDateD_p.Text = DateTime.Now.ToString("dd.MM.yy");
            if (xDP.dDatDoc != DateTime.MinValue)
            {
                tDateD_p.Text = xDP.dDatDoc.ToString("dd.MM.yy");
            }
            tKSkl_p.Text = "";
            tNSkl_p.Text = "";
            if (xDP.nSklad != AppC.EMPTY_INT)
            {
                tKSkl_p.Text = xDP.nSklad.ToString();
                NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_SKLAD, new object[] { xDP.nSklad }, "NAME");
                if (zS.bFind == true)
                {
                    tNSkl_p.Text = zS.sName;
                    xDP.sSklad   = zS.sName;
                }
            }
            tKUch_p.Text = "";
            if ((xDP.nUch != AppC.EMPTY_INT) && (xDP.nUch != 0))
            {
                tKUch_p.Text = xDP.nUch.ToString();
            }

            tNom_p.Text = xDP.sNomDoc;


            tKEks_p.Text = "";
            tNEks_p.Text = "";



            if (xDP.nEks != AppC.EMPTY_INT)
            {
                tKEks_p.Text = xDP.nEks.ToString();

                if (xDP.TypOper != AppC.TYPOP_KMPL)
                {
                    NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_EKS, new object[] { xDP.nEks }, "FIO");
                    if (zS.bFind == true)
                    {
                        tNEks_p.Text = zS.sName;
                        xDP.sEks     = zS.sName;
                    }
                }
                else
                {
                    tNEks_p.Text = xDP.sEks;
                }
            }
            else
            {
                xDP.sEks = "";
            }


            tKPol_p.Text = "";
            tNPol_p.Text = "";
            if (xDP.nPol != AppC.EMPTY_INT)
            {
                tKPol_p.Text = xDP.nPol.ToString();
                if (xDP.nTypD == AppC.TYPD_OPR)
                {
                    sIS = DocPars.OPRName(ref xDP.nPol);
                }
                else if (xDP.TypOper != AppC.TYPOP_KMPL)
                {
                    NSI.RezSrch zS = xNSI.GetNameSPR((xDP.nTypD == AppC.TYPD_VPER) ?
                                                     NSI.NS_SKLAD : NSI.NS_PP, new object[] { xDP.nPol }, "NAME");
                    sIS = zS.sName;
                }
                else
                {
                    sIS = xDP.sPol;
                }
                tNPol_p.Text = sIS;
                xDP.sPol     = sIS;
            }
            else
            {
                xDP.sPol = "";
            }
            SetTime2Load();
        }
コード例 #9
0
        // проверка параметров перед записью
        private bool VerifyPars(DocPars xP, int nF, ref object xErr)
        {
            bool   ret = false;
            string sE  = "";

            // для всех типов документов
            if ((xP.nTypD != AppC.EMPTY_INT) && (xP.dDatDoc != DateTime.MinValue))
            {     // смотрим дальше
                if (xP.nSklad != AppC.EMPTY_INT)
                { // склад имеется
                    switch (nF)
                    {
                    case AppC.F_ADD_REC:
                    case AppC.F_CHG_REC:
                        if (Math.Abs((Smena.DateDef - xP.dDatDoc).Days) > xPars.Days2Save)
                        {
                            DialogResult drQ = MessageBox.Show("Изменить (Enter)?\n(ESC) - оставить",
                                                               "Ошибочная дата!",
                                                               MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                            if (drQ == DialogResult.OK)
                            {
                                ret  = false;
                                sE   = "Измените дату или параметры смены";
                                xErr = DocPars.tDate;
                                break;
                            }
                        }
                        if (xP.nTypD != AppC.TYPD_INV)
                        {    // если не инвентаризация - проверяем дальше
                            switch (xP.nTypD)
                            {
                            case AppC.TYPD_BRK:                 // для актов забраковки
                                if (xP.sNomDoc.Length > 0)
                                {
                                    ret = true;
                                }
                                else
                                {
                                    sE   = "Номер акта не указан!";
                                    xErr = tNom_p;
                                }
                                break;

                            case AppC.TYPD_OPR:                // внутрискладское перемещение
                                //if (xP.nPol != AppC.EMPTY_INT)
                                //    ret = true;
                                //else
                                //{
                                //    sE = "Тип перемещения не указан!";
                                //    xErr = DocPars.tKPol;
                                //    ret = true;
                                //}
                                if (xP.TypOper > 0)
                                {
                                    ret = true;
                                }
                                else
                                {
                                    sE   = "Тип перемещения не указан!";
                                    xErr = DocPars.tKPol;
                                    ret  = true;
                                }

                                break;

                            case AppC.TYPD_SVOD:                // для сводов
                                if (xP.nEks != AppC.EMPTY_INT)
                                {
                                    ret = true;
                                }
                                else
                                {
                                    sE   = "Экспедитор не указан!";
                                    xErr = DocPars.tKEks;
                                }
                                break;

                            case AppC.TYPD_CVYV:                // центровывоз
                                //if ((xP.nEks != AppC.EMPTY_INT) && (xP.nPol != AppC.EMPTY_INT))
                                //    ret = true;
                                //else
                                //{
                                //    sE = "Экспедитор или получатель не указан!";
                                //    xErr = DocPars.tKEks;
                                //}
                                if (xP.nEks != AppC.EMPTY_INT)
                                {
                                    ret = true;
                                    if (xP.nPol == AppC.EMPTY_INT)
                                    {
                                        sE = "Получатель не указан!";
                                    }
                                }
                                else
                                {
                                    sE   = "Экспедитор не указан!";
                                    xErr = DocPars.tKEks;
                                }
                                break;

                            case AppC.TYPD_SAM:                 // самовывоз
                            case AppC.TYPD_VPER:                // внутреннее перемещение
                                if (xP.nPol != AppC.EMPTY_INT)
                                {
                                    if (xP.nTypD == AppC.TYPD_SAM)
                                    {
                                        ret = true;
                                    }
                                    else
                                    {        // внутреннее перемещение
                                        if (xP.sNomDoc != "")
                                        {
                                            ret = true;
                                        }
                                        else
                                        {
                                            sE   = "№ документа не указан!";
                                            xErr = tNom_p;
                                        }
                                    }
                                }
                                else
                                {
                                    ret = true;
                                    sE  = "Получатель не указан!";
                                }
                                break;

                            case AppC.TYPD_PRIH:                 // приходный ордер
                                ret = true;
                                if (xP.sSmena == "")
                                {
                                    if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL)
                                    {
                                        ret  = false;
                                        sE   = "Смена не указана!";
                                        xErr = tSm_p;
                                    }
                                }
                                else if (xP.sNomDoc == "")
                                {
                                    ret  = false;
                                    sE   = "№ документа не указан!";
                                    xErr = tNom_p;
                                }
                                break;

                            default:
                                ret = true;
                                break;
                            }
                        }
                        else
                        {    //для инвентаризации
                            ret = true;
                            if (xP.sSmena == "")
                            {
                                if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL)
                                {
                                    sE   = "Смена не указана!";
                                    xErr = tSm_p;
                                }
                            }
                        }
                        break;

                    case AppC.F_UPLD_DOC:
                    case AppC.F_LOAD_DOC:
                        if (xP.sSmena != "")
                        {
                            ret = true;
                        }
                        else
                        {
                            if (IsControlByNSI(xP.nTypD, "", NSI.NS_SMEN) > AppC.VALNSI.ANY_AVAIL)
                            {     // пустое - нельзя!
                                if (xP.nTypD == AppC.TYPD_VPER)
                                { // внутреннее перемещение
                                    if (xP.sNomDoc.Length > 0)
                                    {
                                        ret = true;
                                        break;
                                    }
                                }
                                sE   = "Смена не указана!";
                                xErr = tSm_p;
                            }
                            else
                            {
                                ret = true;
                            }
                        }
                        break;
                    }
                }
                else
                {
                    sE = "Склад не указан!";
                    //xErr = DocPars.tKSkl;
                    xErr = tKSkl_p;
                }
            }
            else
            {
                sE   = "Ошибочный тип или дата!";
                xErr = DocPars.tDate;
            }
            if ((ret == false) || (sE.Length > 0))
            {
                Srv.ErrorMsg(sE);
            }
            return(ret);
        }
コード例 #10
0
ファイル: PanelDoc.cs プロジェクト: TabVV/Sklad1C
        // проверка параметров перед записью
        private bool VerifyPars(DocPars xP, int nF, ref object xErr)
        {
            bool
                ret = false;
            string
                sE = "";

            // для всех типов документов

            do
            {
                if (nF == AppC.F_LOAD_DOC)
                {
                    if (xP.sBC_Doc.Length > 0)
                    {
                        ret = true;
                        break;
                    }
                }
                if (xP.nNumTypD == AppC.EMPTY_INT)
                {
                    sE   = "Ошибочный тип!";
                    xErr = tKT_p;
                }
                if (xP.dDatDoc == DateTime.MinValue)
                {
                    sE = "Ошибочная дата!";
                    break;
                }
                if (xP.nSklad == AppC.EMPTY_INT)
                {
                    sE   = "Склад не указан!";
                    xErr = tKSkl_p;
                }
                ret = true;
            } while (false);

            //if ((xP.nTypD != AppC.EMPTY_INT) && (xP.dDatDoc != DateTime.MinValue))
            //{// смотрим дальше
            //    if (xP.nSklad != AppC.EMPTY_INT)
            //    {// склад имеется
            //        ret = true;
            //    }
            //    else
            //    {
            //        sE = "Склад не указан!";
            //        xErr = tKSkl_p;
            //    }
            //}
            //else
            //{
            //    if (nF == AppC.F_LOAD_DOC)
            //    {
            //        if (xP.sBC_Doc.Length == 0)
            //        {
            //        }
            //        else
            //        {
            //            ret = true;
            //        }
            //    }
            //    else
            //    {
            //    }
            //}

            if ((ret == false) || (sE.Length > 0))
            {
                Srv.ErrorMsg(sE);
            }

            xErr = null;
            return(ret);
        }