コード例 #1
0
    //  - - - - - - - - - - - - - - - - - - - - - - - - - -
    static void    ProcessAFile(CCommand Command, string FileName, bool IsCheckNeeded)
    {
        string ShortFileName = null;
        string BranchCode    = null;
        string TmpFileName   = null;
        string AboutError    = null;
        bool   Result        = false;
        byte   SavedColor    = CConsole.BoxColor;

        if (FileName == null)
        {
            return;
        }
        if (FileName.Trim() == "")
        {
            return;
        }
        ShortFileName = CCommon.GetFileName(FileName);
        CCommon.AppendText(LogFileName, CCommon.Now() + "   " + CCommon.Upper(CCommon.GetUserName()) + "  загружает файл " + ShortFileName + CAbc.CRLF, CAbc.CHARSET_WINDOWS);

        if (ShortFileName.IndexOf("_") < 0)
        {
            BranchCode = "";
        }
        else
        {
            BranchCode = ShortFileName.Substring(2, 2);
        }

        TmpFileName = TodayDir + CAbc.SLASH + ShortFileName;
        if (!CCommon.FileExists(TmpFileName))
        {
            CCommon.CopyFile(FileName, TmpFileName);
        }
        if (!CCommon.FileExists(TmpFileName))
        {
            return;
        }
        TmpFileName = TmpDir + CAbc.SLASH
                      + CCommon.Right("0" + CCommon.Hour(CCommon.Clock()).ToString(), 2)
                      + CCommon.Right("0" + CCommon.Minute(CCommon.Clock()).ToString(), 2)
                      + CCommon.Right("0" + CCommon.Second(CCommon.Clock()).ToString(), 2);
        if (!CCommon.DirExists(TmpFileName))
        {
            CCommon.MkDir(TmpFileName);
        }
        TmpFileName = TmpFileName + CAbc.SLASH + ShortFileName;
        if (CCommon.FileExists(TmpFileName))
        {
            CCommon.DeleteFile(TmpFileName);
        }
        if (CCommon.FileExists(TmpFileName))
        {
            CConsole.GetBoxChoice("", "Ошибка при удалении файла ", TmpFileName, "", " Для выхода нажмите Esc.");
            return;
        }
        CCommon.CopyFile(FileName, TmpFileName);
        if (!CCommon.FileExists(TmpFileName))
        {
            CConsole.GetBoxChoice("", "Ошибка при создании файла ", TmpFileName, "", " Для выхода нажмите Esc.");
            return;
        }
        Err.LogTo(LogFileName);
        CCommon.DeleteFile(FileName);
        CConsole.BoxColor = SavedColor;
        if (IsCheckNeeded)
        {
            AboutError = ErcAFile.Check(Command, TmpFileName);
            CConsole.Clear();
            if (AboutError != null)
            {
                if (AboutError.Trim() != "")
                {
                    CCommon.AppendText(LogFileName, AboutError + CAbc.CRLF, CAbc.CHARSET_WINDOWS);
                    CCommon.Print(AboutError);
                    CConsole.BoxColor = CConsole.RED * 16 + CConsole.WHITE;
                    if (!CConsole.GetBoxChoice("Внимание ! При проверке " + ShortFileName + " обнаружены ошибки !"
                                               , "", "Для отмены загрузки нажмите Esc , для продолжения - Enter"
                                               )
                        )
                    {
                        CCommon.CopyFile(TmpFileName, FileName);
                        CCommon.Print(AboutError);
                        CConsole.BoxColor = SavedColor;
                        return;
                    }
                }
            }
        }
        CConsole.BoxColor = SavedColor;
        if (WorkMode == WorkModes.OPENGATE)
        {
            Result = ErcAFile.Load(Command, TmpFileName, BranchCode, "OpenGate");
            if (Result)
            {
                // добавление в PayRoll информации о файле
                CConsole.BoxColor = SavedColor;
                CConsole.Clear();
                CConsole.ShowBox("", " Подождите...", "");
                Command.Execute(" exec pMega_OpenGate_PayRoll;2 @FileName='" + CCommon.GetFileName(TmpFileName) + "'");
            }
        }
        else
        {
            Result = ErcAFile.Load(Command, TmpFileName, BranchCode, "ErcGate");
        }
        if (Result)
        {
            CCommon.AppendText(LogFileName, CCommon.Now() + "   загрузка закончена." + CAbc.CRLF, CAbc.CHARSET_WINDOWS);
        }
        else
        {
            CCommon.CopyFile(TmpFileName, FileName);
            CConsole.BoxColor = CConsole.RED * 16 + CConsole.WHITE;
            CConsole.GetBoxChoice("", "  При загрузке " + ShortFileName + " возникли ошибки !", "");
        }
        CConsole.BoxColor = SavedColor;
        CConsole.Clear();
        Err.LogToConsole();
    }
コード例 #2
0
    public static bool    WriteVFiles(int DayDate, string DestinationFolder, int VMode)
    {
        CSepVWriter A         = new   CSepVWriter();
        string      File_Name = "!"
                                + (VMode == 0 ? "V" : "W")
                                + "UUIA"
                                + CCommon.StrY(CCommon.Month(DayDate), 1)
                                + CCommon.StrY(CCommon.Day(DayDate), 1)
                                + "."
                                + CCommon.Right("0" + CCommon.Hour(CCommon.Clock()), 2)
                                + CCommon.StrY(CCommon.Minute(CCommon.Clock()) >> 1, 1);

        if (!A.Create(DestinationFolder + "\\" + File_Name, CAbc.CHARSET_DOS))
        {
            return(false);
        }

        CRecordSet Data = new CRecordSet(Connection1);

        if (Data.Open("exec  dbo.pMega_OpenGate_Report;3   @TaskCode='ErcGate', @DateFrom = " + DayDate.ToString() + " , @Mode = " + VMode.ToString()))
        {
            if (!Data.Read())
            {
                A.Head[CSepVFileInfo.H_EMPTYSTR]    = "";                                                       // char[100]  // Пеpвые 100 - пpобелы
                A.Head[CSepVFileInfo.H_CRLF1]       = CAbc.CRLF;                                                // char[  2]; // Символ концец строки
                A.Head[CSepVFileInfo.H_FILENAME]    = CCommon.Left(File_Name.Trim(), 12);                       // char[ 12]; // Наименование  файла
                A.Head[CSepVFileInfo.H_DATE]        = Now_Date_Str;                                             // char[  6]; // Дата создания файла
                A.Head[CSepVFileInfo.H_TIME]        = Now_Time_Str;                                             // char[  4]; // Дата создания файла
                A.Head[CSepVFileInfo.H_STRCOUNT]    = "0";                                                      // char[  6]; // Количество ИС в файле
                A.Head[CSepVFileInfo.H_TOTALDEBET]  = "0";                                                      // char[ 16]; // Сумма дебета по файлу
                A.Head[CSepVFileInfo.H_TOTALCREDIT] = "0";                                                      // char[ 16]; // Сумма кpедита по файлу
                A.Head[CSepVFileInfo.H_EMPTYSTR2]   = "";                                                       // char[ 64]; // Пустое пространство
                A.Head[CSepVFileInfo.H_CRLF2]       = CAbc.CRLF;                                                // char[  2]; // Символ конец строки
                if (!A.WriteHeader())
                {
                    Data.Close();
                    A.Close();
                    return(false);
                }
            }
            else
            {
                A.Head[CSepVFileInfo.H_EMPTYSTR]    = "";                                                       // char[100]  // Пеpвые 100 - пpобелы
                A.Head[CSepVFileInfo.H_CRLF1]       = CAbc.CRLF;                                                // char[  2]; // Символ концец строки
                A.Head[CSepVFileInfo.H_FILENAME]    = CCommon.Left(File_Name.Trim(), 12);                       // char[ 12]; // Наименование  файла
                A.Head[CSepVFileInfo.H_DATE]        = Now_Date_Str;                                             // char[  6]; // Дата создания файла
                A.Head[CSepVFileInfo.H_TIME]        = Now_Time_Str;                                             // char[  4]; // Дата создания файла
                A.Head[CSepVFileInfo.H_STRCOUNT]    = Data["TotalLines"].Trim();                                // char[  6]; // Количество ИС в файле
                A.Head[CSepVFileInfo.H_TOTALDEBET]  = "0";                                                      // char[ 16]; // Сумма дебета по файлу
                A.Head[CSepVFileInfo.H_TOTALCREDIT] = Data["TotalCents"].Trim();                                // char[ 16]; // Сумма кpедита по файлу
                A.Head[CSepVFileInfo.H_EMPTYSTR2]   = "";                                                       // char[ 64]; // Пустое пространство
                A.Head[CSepVFileInfo.H_CRLF2]       = CAbc.CRLF;                                                // char[  2]; // Символ конец строки
                if (!A.WriteHeader())
                {
                    Data.Close();
                    A.Close();
                    return(false);
                }
                do
                {
                    A.Line[CSepVFileInfo.L_DEBITMFO]  = Data["SourceCode"].Trim();                                              // char[  9]; // Дебет-МФО
                    A.Line[CSepVFileInfo.L_DEBITACC]  = Data["DebitMoniker"].Trim();                                            // char[ 14]; // Дебет-счет
                    A.Line[CSepVFileInfo.L_CREDITMFO] = Data["TargetCode"].Trim();                                              // char[  9]; // Кредит-МФО
                    A.Line[CSepVFileInfo.L_CREDITACC] = Data["CreditMoniker"].Trim();                                           // char[ 14]; // Кредит счет
                    A.Line[CSepVFileInfo.L_FLAG]      = "1";                                                                    // char[  1]; // Флаг `дебет/кредит`
                    A.Line[CSepVFileInfo.L_SUMA]      = Data["CrncyCents"].Trim();                                              // char[ 16]; // Сумма в копейках
                    A.Line[CSepVFileInfo.L_DTYPE]     = Data["Kind"].Trim();                                                    // char[  2]; // Вид документа
                    A.Line[CSepVFileInfo.L_NDOC]      = Data["DocNum"].Trim();                                                  // char[ 10]; // Номер документа
                    A.Line[CSepVFileInfo.L_CURRENCY]  = Data["CurrencyId"].Trim();                                              // char[  3]; // Валюта
                    A.Line[CSepVFileInfo.L_DATE1]     = CCommon.DtoC(CCommon.CInt32(Data["DayDate"].Trim())).Substring(2, 6);   // char[  6]; // Дата платежа
                    A.Line[CSepVFileInfo.L_ID]        = Data["Id"].Trim();                                                      // char[  9]; // Идентификатор документа
                    A.Line[CSepVFileInfo.L_FILENAME1] = Data["FileName"].Trim();                                                // char[ 12]; // Имя файла N 1
                    A.Line[CSepVFileInfo.L_LINENUM1]  = Data["LineNum"].Trim();                                                 // char[  6]; // Номер строки в файле N 1
                    A.Line[CSepVFileInfo.L_FILENAME2] = Data["FileName"].Trim();                                                // char[ 12]; // Имя файла N 2
                    A.Line[CSepVFileInfo.L_LINENUM2]  = Data["LineNum"].Trim();                                                 // char[  6]; // Номер строки в файле N 2
                    A.Line[CSepVFileInfo.L_STATUS]    = (((CCommon.CInt32(Data["ProcessFlag"].Trim()) & 3) == 3)  ? "Y" : "N"); // char[  1]; // Флаг квитовки платежа
                    A.Line[CSepVFileInfo.L_TIME]      = Now_Time_Str;                                                           // char[  4]; // Время
                    A.Line[CSepVFileInfo.L_NOL1]      = "0";                                                                    // char[  1]; //
                    A.Line[CSepVFileInfo.L_NOL2]      = "0";                                                                    // char[  1]; //
                    A.Line[CSepVFileInfo.L_CRLF]      = CAbc.CRLF;                                                              // char[  2]; // Символы конца строки
                    if (!A.WriteLine())
                    {
                        Data.Close();
                        A.Close();
                        return(false);
                    }
                }       while   (Data.Read());
            }
        }
        Data.Close();
        A.Close();
        return(true);
    }