예제 #1
0
    public bool    UserAccepted(string FileName)
    {
        string ShortName = CCommon.GetFileName(FileName);

        string[] PreviewLines =
        { "  Начальные строки Файла ..."
          , "___________________________________________________"
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , ""
          , "___________________________________________________"
          , " Для загрузки файла нажмите Enter. Для отмены - Esc" };
        if (AFileReader.Open(FileName, CAbc.CHARSET_DOS))
        {
            TotalCredit     = CCommon.CInt64(AFileReader.Head(CSepAFileInfo.H_TOTALCREDIT).Trim());
            PreviewLines[0] = ShortName + " : " + AFileReader.Head(CSepAFileInfo.H_STRCOUNT).Trim()
                              + " строк, общая сумма" + CCommon.StrN(Total_Credit, 11).Replace(",", ".");
            int I = 3;
            while ((AFileReader.Read()) && (I < PreviewLines.Length - 2))
            {
                PreviewLines[I] = CCommon.Left(AFileReader[CSepAFileInfo.L_DEBITMFO].Trim(), 6)
                                  + " : " + CCommon.Left(AFileReader[CSepAFileInfo.L_DEBITACC].Trim(), 14)
                                  + " >>  " + CCommon.Left(AFileReader[CSepAFileInfo.L_CREDITMFO].Trim(), 6)
                                  + " : " + CCommon.Left(AFileReader[CSepAFileInfo.L_CREDITACC].Trim(), 14);
                I++;
            }
        }
        else
        {
            AFileReader.Close();
            return(false);
        }
        AFileReader.Close();
        return(CConsole.GetBoxChoice(PreviewLines));
    }
예제 #2
0
    public string  Check(CCommand Command, string SourceFileName)
    {
        string Result        = "";
        string AboutError    = "";
        bool   HaveError     = false;
        string ShortFileName = CCommon.GetFileName(SourceFileName);

        TotalCredit = 0;
        StringCount = 0;
        if (AFileReader.Open(SourceFileName, CAbc.CHARSET_DOS))
        {
            HaveError = false;
            while (AFileReader.Read())
            {
                TotalCredit += CCommon.CInt64(AFileReader[CSepAFileInfo.L_SUMA].Trim());
                StringCount++;
                AboutError = "";
                CmdText    = "exec   dbo.pMega_OpenGate_CheckPalvis"
                             + " @Code         = '" + AFileReader[CSepAFileInfo.L_NDOC].Replace("'", "`").Trim() + "'"
                             + ",@Ctrls        = '" + AFileReader[CSepAFileInfo.L_NDOC].Replace("'", "`").Trim() + "'"
                             + ",@SourceCode   = '" + AFileReader[CSepAFileInfo.L_DEBITMFO].Replace("'", "`").Trim() + "'"
                             + ",@DebitMoniker = '" + AFileReader[CSepAFileInfo.L_DEBITACC].Replace("'", "`").Trim() + "'"
                             + ",@DebitState   = '" + AFileReader[CSepAFileInfo.L_OKPO1].Replace("'", "`").Trim() + "'"
                             + ",@DebitIBAN    = '" + AFileReader[CSepAFileInfo.L_DEBITIBAN].Replace("'", "`").Trim() + "'"
                             + ",@TargetCode   = '" + AFileReader[CSepAFileInfo.L_CREDITMFO].Replace("'", "`").Trim() + "'"
                             + ",@CreditMoniker= '" + AFileReader[CSepAFileInfo.L_CREDITACC].Replace("'", "`").Trim() + "'"
                             + ",@CreditState  = '" + AFileReader[CSepAFileInfo.L_OKPO2].Replace("'", "`").Trim() + "'"
                             + ",@CreditIBAN   = '" + AFileReader[CSepAFileInfo.L_CREDITIBAN].Replace("'", "`").Trim() + "'"
                             + ",@CrncyAmount  =  " + AFileReader[CSepAFileInfo.L_SUMA].Replace("'", "`").Trim()
                             + ",@CurrencyId   =  " + AFileReader[CSepAFileInfo.L_CURRENCY].Replace("'", "`").Trim()
                             + ",@FileName     = '" + ShortFileName.Replace("'", "`").Trim() + "'"
                             + ",@LineNum      =  " + StringCount.ToString()
                             + ",@UserName	= '******'"
                ;
                AboutError = (string)Command.GetScalar(CmdText);
                if (AFileReader[CSepAFileInfo.L_PURPOSE].Trim() == "")
                {
                    AboutError += " Не заполнено назначение платежа ;";
                }
                if (AFileReader[CSepAFileInfo.L_DEBITNAME].Trim() == "")
                {
                    AboutError += " Не заполнено название дб. счета ;";
                }
                if (AFileReader[CSepAFileInfo.L_CREDITNAME].Trim() == "")
                {
                    AboutError += " Не заполнено название кт. счета ;";
                }
                if (AboutError != null)
                {
                    if ((AboutError.Trim() != ""))
                    {
                        HaveError = true;
                        Result    = Result + " Ошибка в строке " + StringCount.ToString() + " : " + AboutError.Trim() + CAbc.CRLF;
                    }
                }
                CConsole.ShowBox("", " Проверяется строка" + CCommon.StrI(StringCount, 5) + " ", "");
            }
            CConsole.Clear();
            if (HaveError)
            {
                Result = Result + "Ошибка в реквизитах платежей !" + CAbc.CRLF;
            }
            if (TotalCredit != CCommon.CInt64(AFileReader.Head(CSepAFileInfo.H_TOTALCREDIT).Trim()))
            {
                Result = Result + CAbc.CRLF + "Неверная итоговая сумма платежей !" + CAbc.CRLF;
            }
            if (CCommon.IsDigit("0" + AFileReader.Head(CSepAFileInfo.H_STRCOUNT).Trim()) == false)
            {
                Result = Result + CAbc.CRLF + "Неверное общее количество строк !" + CAbc.CRLF;
            }
            else
            if (StringCount != CCommon.CInt32("0" + AFileReader.Head(CSepAFileInfo.H_STRCOUNT).Trim()))
            {
                Result = Result + CAbc.CRLF + "Неверное общее количество строк !" + CAbc.CRLF;
            }
        }
        else
        {
            Result += "Ошибка чтения файла !" + CAbc.CRLF;
        }
        AFileReader.Close();
        byte SavedColor = CConsole.BoxColor;

        if ((( int )CCommon.IsNull(Command.GetScalar("exec dbo.pMega_OpenGate_CheckPalvis;2 @TaskCode='OpenGate',@FileName='" + ShortFileName + "'"), (int)0)) > 0)
        {
            CConsole.BoxColor = CConsole.RED * 16 + CConsole.WHITE;
            CConsole.GetBoxChoice("Внимание ! Файл " + ShortFileName + " сегодня уже загружался !", "", "Нажмите Enter.");
            HaveError         = true;
            Result           += "Файл " + ShortFileName + " сегодня уже загружался !" + CAbc.CRLF;
            CConsole.BoxColor = SavedColor;
        }
        return(Result);
    }