Beispiel #1
0
 // проверка имени пользовател¤
 private void tUser_Validating(object sender, CancelEventArgs e)
 {
     if (bUserChanged == true)
     {
         string s = tUser.Text.Trim().ToUpper();
         if (s.Length > 0)
         {
             if ((s == AppC.SUSER) || (s == AppC.GUEST))
             {// пароль не нужен
                 tUser.Text = (s == AppC.SUSER)?"Admin" : "—отрудник";
                 //ServClass.ChangeEdArrDet(null, new Control[] { tPass }, aEdVvod);
                 aEdVvod.SetAvail(tPass, false);
             }
             else
             {
                 try
                 {
                     //ServClass.ChangeEdArrDet(new Control[] { tPass }, null, aEdVvod);
                     aEdVvod.SetAvail(tPass, true);
                     NSI.RezSrch zS = xNSI.GetNameSPR(NSI.NS_USER, new object[] { s }, "NMP");
                     if (zS.bFind == false)
                     {
                         e.Cancel = true;
                     }
                     else
                     {
                         tUser.Text = zS.sName;
                     }
                 }
                 catch
                 {
                     e.Cancel = true;
                 }
             }
         }
         if (e.Cancel != true)
         {
             xSm.sUser  = s;
             xSm.sUName = tUser.Text;
             //e.Cancel = !ServClass.TryEditNextFiled((Control)sender, nCurEditCommand, aEdVvod);
         }
     }
 }
Beispiel #2
0
        /// Вход в режим создания/корректировки детальной строки **********************
        /// - установка флага редактирования
        /// - доступных полей
        private void EditBeginDet(int nReg, AppC.VerifyEditFields dgV)
        {
            bool
                bFlag;
            int
                nProdType = (scCur.bVes == true) ? AppC.PRODTYPE_VES : AppC.PRODTYPE_SHT;
            Control
                xBeCur = null;

            nCurVvodState = nReg;
            SetEditMode(true);
            aEdVvod = new AppC.EditListC(dgV);
            aEdVvod.AddC(tKMC);
            aEdVvod.AddC(tEAN);
            aEdVvod.AddC(tDatIzg);
            aEdVvod.AddC(tDatMC);
            aEdVvod.AddC(tParty);
            aEdVvod.AddC(tMest);
            aEdVvod.AddC(tEmk);
            aEdVvod.AddC(tVsego);
            aEdVvod.AddC(tKolPal, (nReg == AppC.F_ADD_REC) ? true : false);
            //aEdVvod.AddC(tPrzvFil, (nReg == AppC.F_ADD_REC) ? true : false);

            foreach (AppPars.FieldDef fd in xPars.aFields)
            {
                // Общий случай
                bFlag =
                    (nReg == AppC.F_CHG_REC) ? fd.aVes[nProdType].bEdit :
                    (nReg == AppC.F_ADD_SCAN) ? fd.aVes[nProdType].bScan :
                    fd.aVes[nProdType].bVvod;

                // В чужих кодах сведений о партии и дате выработки может не быть
                if ((scCur.bAlienMC) && (fd.sFieldName == "tParty"))
                {
                    //bFlag = (scCur.bNewAlienPInf || (scCur.nTypVes == AppC.TYP_VES_PAL)) ? true : false;
                    bFlag = (scCur.bNewAlienPInf || (scCur.tTyp == AppC.TYP_TARA.TARA_PODDON)) ? true : false;
                }

                if (fd.sFieldName == "tDatMC")
                {
                    // для своих ЕАН-13 дату вводить не надо, а в своих номер партии имеется
                    if (scCur.dDataGodn == DateTime.MinValue)
                    {
                        bFlag = true;
                    }
                }

                if (scCur.bFindNSI && (scCur.tTyp != AppC.TYP_TARA.TARA_PODDON))
                {
                    if ((fd.sFieldName == "tParty") && (scCur.nParty.Length == 0))
                    {
                        bFlag = true;
                    }
                }

                if (fd.sFieldName == "tEmk")
                {
                    if (scCur.xEmks.Count > 1)
                    {
                        bFlag = false;
                    }

                    if ((scCur.tTyp != AppC.TYP_TARA.TARA_POTREB) &&
                        (scCur.fEmk == 0))
                    {
                        bFlag = true;
                    }
                }
                aEdVvod.SetAvail(FieldByName(fd.sFieldName), bFlag);
            }

            if (nReg == AppC.F_ADD_REC)
            {
                xBeCur = tKMC;
            }

            // дата изготовления
            if (scCur.dDataIzg == DateTime.MinValue)
            {// не определена
                if (scCur.dDataGodn == DateTime.MinValue)
                {
                    aEdVvod.SetAvail(tDatIzg, true);
                    if ((tKMC.Enabled == false) && (tEAN.Enabled == false))
                    {
                        xBeCur = tDatIzg;
                    }
                }
            }
            else
            {
                aEdVvod.SetAvail(tDatIzg, false);
            }

            // дата годности
            if (scCur.dDataGodn == DateTime.MinValue)
            {
                if (scCur.dDataIzg == DateTime.MinValue)
                {
                    aEdVvod.SetAvail(tDatMC, true);
                }
                else
                {
                    aEdVvod.SetAvail(tDatMC, false);
                }
            }
            else
            {
                aEdVvod.SetAvail(tDatMC, false);
            }

            //if ((scCur.s.Length == 16) &&
            //    ((scCur.tTyp == AppC.TYP_TARA.TARA_TRANSP) ||
            //     (scCur.tTyp == AppC.TYP_TARA.TARA_PODDON)))
            //{// этикетка Ногинска
            //    if (aEdVvod.Contains(tDatMC) && (!tDatMC.Enabled))
            //        tDatMC.Enabled = true;
            //}

            switch (scCur.tTyp)
            {
            case AppC.TYP_TARA.TARA_POTREB:
                scCur.fEmk = 0;
                tEmk.Text  = "";
                if (!scCur.bVes)
                {
                    tMest.Enabled  = false;
                    tVsego.Enabled = true;
                }
                else
                {
                    tMest.Enabled = true;
                    if (scCur.fVsego > 0)
                    {
                        tVsego.Enabled = false;
                    }
                }
                break;

            case AppC.TYP_TARA.TARA_TRANSP:
                if (xBeCur == null)
                {
                    xBeCur = tMest;
                }
                break;

            case AppC.TYP_TARA.TARA_PODDON:
                tMest.Enabled = true;
                tKolPal.Text  = "1";
                scCur.nPalet  = 1;
                if (!scCur.bVes)
                {
                    aEdVvod.SetAvail(tKolPal, true);
                    xBeCur = tKolPal;
                }
                break;
            }

            if (scCur.bVes)
            {
                if (scCur.fVsego > 0)
                {
                    tVsego.Enabled = false;
                }
            }


            //if (scCur.bFindNSI)
            //{
            //    if (!scCur.bSetAccurCode)
            //    {// производственная площадка неизвестна
            //        aEdVvod.SetAvail(tPrzvFil, true);
            //    }
            //}

            // партия пока не вводится/редактируется
            ///--- 21.06.17 - определим параметрами
            //aEdVvod.SetAvail(tParty, false);

            if ((xBeCur != null) && (xBeCur.Enabled == true))
            {
                aEdVvod.SetCur(xBeCur);
            }
            else
            {
                aEdVvod.WhichSetCur();
            }

            nDefMest     = scCur.nMest;
            fDefEmk      = scCur.fEmk;
            fDefVsego    = scCur.fVsego;
            bMestChanged = false;
        }
Beispiel #3
0
        private void OnScanBage(object sender, BarcodeScannerEventArgs e)
        {
            bool
                bGoodPass;
            int
                i,
                nSklad,
                nTab = 0;
            string
                sSklad,
                sLogin,
                sP;

            bScanProceed = true;
            if (e.nID == BCId.Code128)
            {
                if ((e.Data.Length == 10) && (e.Data.Substring(0, 3) == "777"))
                {// бэджик ОАО Савушкин
                    try
                    {
                        nTab = int.Parse(e.Data.Substring(3));
                        if (nTab > 0)
                        {
                            if (nCurReg != AppC.AVT_TOUT)
                            {
                                DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt,
                                                           String.Format("TABN='{0}'", nTab), "", DataViewRowState.CurrentRows);
                                if (dv.Count > 0)
                                {
                                    sP = (string)dv[0].Row["PP"];
                                    if (ValidUserPass((string)dv[0].Row["KP"], (string)dv[0].Row["PP"],
                                                      (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"]))
                                    {
                                        bUserChanged = false;
                                        aEd.SetAvail(tPass, false);
                                        tPass.Text = sP;
                                        aEd.SetAvail(tUser, false);
                                        tUser.Text = xSm.sUName;
                                        aEd.SetCur(tDefKSKL);
                                    }
                                    else
                                    {
                                        bUserChanged = true;
                                        aEd.SetAvail(tPass, true);
                                        tPass.Text = "";
                                        aEd.SetAvail(tUser, true);
                                        tUser.Text = "";
                                        aEd.SetCur(tUser);
                                    }
                                }
                            }
                            else
                            {
                                if (nTab.ToString() == xSm.sUserTabNom)
                                {
                                    EndEditAvt(true);
                                }
                                else
                                {
                                    Srv.ErrorMsg("Другой пользователь!", true);
                                }
                            }
                        }
                    }
                    catch
                    {
                        nTab = 0;
                    }
                }
                else if (e.Data.IndexOf('#') >= 0)
                {// возможно, Русское море
                    try
                    {
                        int
                            nPassStart = e.Data.IndexOf('#');
                        sLogin = e.Data.Substring(0, nPassStart);
                        sP     = e.Data.Substring(nPassStart + 1);
                        if (sLogin.Length > 0)
                        {
                            if (nCurReg != AppC.AVT_TOUT)
                            {
                                DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt,
                                                           String.Format("KP='{0}'", sLogin), "", DataViewRowState.CurrentRows);
                                if (dv.Count > 0)
                                {
                                    //sP = (string)dv[0].Row["PP"];
                                    if ((sP == (string)dv[0].Row["PP"]) || (sP == (string)dv[0].Row["TABN"]))
                                    {
                                        bGoodPass = ValidUserPass(sLogin, (string)dv[0].Row["PP"], (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"]);
                                    }
                                    else
                                    {
                                        bGoodPass = false;
                                    }
                                    if (bGoodPass)
                                    {
                                        bUserChanged = false;
                                        aEd.SetAvail(tPass, false);
                                        tPass.Text = sP;
                                        aEd.SetAvail(tUser, false);
                                        tUser.Text = xSm.sUName;
                                        nSklad     = (dv[0].Row["KSK"] == System.DBNull.Value)?0:(int)(dv[0].Row["KSK"]);
                                        if (nSklad > 0)
                                        {
                                            tDefKSKL.Text = nSklad.ToString();
                                            tDefKSKL_Validating(tDefKSKL, new CancelEventArgs());
                                            //tDefKSKL.DataBindings[0].WriteValue();
                                            //tDefNameSkl.Text = "";
                                            //xSm.nSklad = nSklad;
                                            //aEd.SetAvail(tDefKSKL, false);
                                            aEd.SetCur(tDefDateDoc);
                                        }
                                        else
                                        {
                                            aEd.SetAvail(tDefKSKL, true);
                                            aEd.SetCur(tDefKSKL);
                                        }
                                    }
                                    else
                                    {
                                        bUserChanged = true;
                                        aEd.SetAvail(tPass, true);
                                        tPass.Text = "";
                                        aEd.SetAvail(tUser, true);
                                        tUser.Text = "";
                                        aEd.SetCur(tUser);
                                    }
                                }
                            }
                            else
                            {
                                if (sLogin == xSm.sUser)
                                {
                                    EndEditAvt(true);
                                }
                                else
                                {
                                    Srv.ErrorMsg("Другой пользователь!", true);
                                }
                            }
                        }
                    }
                    catch
                    {
                        nTab = 0;
                    }
                }
            }
            bScanProceed = false;
        }
Beispiel #4
0
        private void OnScanBage(object sender, BarcodeScannerEventArgs e)
        {
            int    nTab = 0;
            string sP;

            bScanProceed = true;
            if ((e.nID == BCId.Code128) && (e.Data.Length == 10))
            {
                if (e.Data.Substring(0, 3) == "777")
                {
                    try
                    {
                        nTab = int.Parse(e.Data.Substring(3));
                        if (nTab > 0)
                        {
                            if (nCurReg != AppC.AVT_TOUT)
                            {
                                DataView dv = new DataView(xNSI.DT[NSI.NS_USER].dt,
                                                           String.Format("TABN='{0}'", nTab), "", DataViewRowState.CurrentRows);
                                if (dv.Count > 0)
                                {
                                    sP = (string)dv[0].Row["PP"];
                                    if (ValidUserPass((string)dv[0].Row["KP"], (string)dv[0].Row["PP"],
                                                      (string)dv[0].Row["TABN"], (string)dv[0].Row["NMP"]))
                                    {
                                        bUserChanged = false;
                                        aEd.SetAvail(tPass, false);
                                        tPass.Text = sP;
                                        aEd.SetAvail(tUser, false);
                                        tUser.Text = xSm.sUName;
                                        aEd.SetCur(tDefKSKL);
                                    }
                                    else
                                    {
                                        bUserChanged = true;
                                        aEd.SetAvail(tPass, true);
                                        tPass.Text = "";
                                        aEd.SetAvail(tUser, true);
                                        tUser.Text = "";
                                        aEd.SetCur(tUser);
                                    }
                                }
                            }
                            else
                            {
                                if (nTab.ToString() == xSm.sUserTabNom)
                                {
                                    EndEditAvt(true);
                                }
                                else
                                {
                                    Srv.ErrorMsg("Другой пользователь!", true);
                                }
                            }
                        }
                    }
                    catch
                    {
                        nTab = 0;
                    }
                }
            }
            bScanProceed = false;
        }