private void SetupPage()
 {
     selectedFile           = "";
     btnUpload.Enabled      = false;
     btnPreview.Enabled     = false;
     gvErrorList.Visible    = gvUpdateList.Visible = false;
     lblSummaryList.Visible = false;
     fileReader             = null;
 }
        protected void PreviewFile(object sender, EventArgs e)
        {
            byte[] fileContent;
            if (ddlDataType.SelectedValue.Equals(""))
            {
                SetStatusMessage("You must select a file type from the drop down list");
            }
            else if (ddlPlantSelect.SelectedIndex == 0 && ddlDataType.SelectedValue.Equals("RECEIPT"))
            {
                SetStatusMessage("You must select a Receiving Location to upload a receipt record");
            }
            else
            {
                // validate the date in the select control
                periodYear  = 0;
                periodMonth = 0;

                List <SETTINGS> sets = SQMSettings.SelectSettingsGroup("FILE_UPLOAD", ""); // ABW 20140805

                string        fileName       = ddlDataType.SelectedValue.ToString() + ".TXT";
                int           primaryCompany = Convert.ToInt32(sets.Find(x => x.SETTING_CD == "CompanyID").VALUE);
                PSsqmEntities Entities       = new PSsqmEntities();
                BUSINESS_ORG  busOrg         = SQMModelMgr.LookupBusOrg(Entities, primaryCompany, "", true, false);
                selectedFile = tbFileSelected.Text = flUpload.FileName;
                int fileLen = flUpload.PostedFile.ContentLength;

                fileContent = new byte[Convert.ToInt32(fileLen)];
                int nBytes = flUpload.PostedFile.InputStream.Read(fileContent, 0, Convert.ToInt32(fileLen));
                fileDelimiter       = sets.Find(x => x.SETTING_CD == "FileDelimiter1").VALUE.ToCharArray();
                plantDataMultiplier = 1;

                //fileReader = new SQMFileReader().InitializeCSV(1, flUpload.PostedFile.FileName, fileContent, fileDelimiter, plantDataMultiplier);
                fileReader = new SQMFileReader().InitializeCSV(primaryCompany, fileName, fileContent, fileDelimiter, plantDataMultiplier, periodYear, periodMonth, busOrg.PREFERRED_CURRENCY_CODE);
                using (StreamReader sr = new StreamReader(fileReader.FileStream))
                {
                    string line;
                    int    lineNo = 0;

                    while ((line = sr.ReadLine()) != null)
                    {
                        fileReader.PreviewList.Add(line);
                    }
                    gvPreview.DataSource = fileReader.PreviewList;
                    gvPreview.DataBind();
                    gvPreview.Visible      = true;
                    gvExcelPreview.Visible = false;
                }
            }
            if (ddlDataType.SelectedValue.Equals("RECEIPT"))
            {
                dvPlantSelect.Style.Add("display", "inline");
            }
        }
        private void SetupPage()
        {
            selectedFile           = "";
            btnUpload.Enabled      = false;
            btnPreview.Enabled     = false;
            gvErrorList.Visible    = gvUpdateList.Visible = false;
            lblSummaryList.Visible = false;
            fileReader             = null;

            if (ddlPlantSelect.Items.Count == 0)
            {
                SQMBasePage.SetLocationList(ddlPlantSelect, SQMModelMgr.SelectBusinessLocationList(SessionManager.UserContext.HRLocation.Company.COMPANY_ID, 0, true), 0);
                ddlPlantSelect.Items.Insert(0, new Telerik.Web.UI.RadComboBoxItem("", ""));
            }
        }
示例#4
0
        static void ProcessFile(string fileType)
        {
            string        fileSearch     = fileType.ToUpper() + "_*";
            string        strftpLocation = sets.Find(x => x.SETTING_CD == "FTP_LOCATION").VALUE.ToString();
            DirectoryInfo dir            = new DirectoryInfo(strftpLocation);

            FileInfo[] files = dir.GetFiles(fileSearch).OrderByDescending(p => p.LastWriteTime).ToArray();
            bool       fileProcessed;

            if (files != null && files.Count() > 0)
            {
                byte[] buff;
                fileProcessed = false;
                foreach (FileInfo file in files)
                {
                    //_file = new FileInfo(file);
                    //_fileName = _fileName + @"<br/>" + _file.Name;
                    buff       = File.ReadAllBytes(file.FullName);
                    fileReader = new SQMFileReader().InitializeCSV(primaryCompany, file.Name, buff, fileDelimiter, plantDataMultiplier, 0, 0, "USD");
                    if (fileReader.Status < 0)
                    {
                        WriteLine("Error encountered loading the file: " + file);
                    }
                    else
                    {
                        if (!fileProcessed)                         // only process the most recent file
                        {
                            fileReader.FileName = fileType.ToUpper();
                            fileReader.LoadCSV();
                            fileProcessed = true;
                            WriteLine(file.Name + " processed " + DateTime.UtcNow.ToString("hh:mm MM/dd/yyyy"));
                        }
                        // move the file
                        string sourceFile      = file.FullName;
                        string destinationFile = strftpLocation + @"\Processed\" + file.Name;
                        System.IO.File.Move(sourceFile, destinationFile);
                    }
                }
            }
        }
示例#5
0
        static void ProcessInputFile(string fileType, string oldFile)
        {
            // check for a file
            string newFile = "";

            switch (fileType)
            {
            case "COMPANY":
                newFile = fileLocation + "COMPANY_" + timestamp + "_" + fileCount + ".txt";
                break;

            case "PLANT":
                newFile = fileLocation + "PLANT_" + timestamp + "_" + fileCount + ".txt";
                break;

            case "PART":
                newFile = fileLocation + "PART_" + timestamp + "_" + fileCount + ".txt";
                break;

            case "PLANT_DATA":
                newFile = fileLocation + "PLANT_DATA_" + timestamp + "_" + fileCount + ".txt";
                break;

            case "CURRENCY_DATA":
                newFile = fileLocation + "CURRENCY_DATA_" + timestamp + "_" + fileCount + ".txt";
                break;

            default:
                break;
            }

            if (newFile.Length == 0)
            {
                WriteLine("Invalid file type: " + fileType);
                return;
            }

            if (File.Exists(oldFile))
            {
                try
                {
                    // rename the file
                    File.Move(oldFile, newFile);
                }
                catch
                {
                    WriteLine("Error renaming the data file: " + oldFile + " to " + newFile);
                    return;
                }
            }
            else
            {
                WriteLine("File does not exist: " + oldFile);
                return;
            }

            // process the renamed file
            uploadFile = new FileInfo(newFile);
            fileStream = new FileStream(newFile, FileMode.Open, FileAccess.Read);
            long fileLen = uploadFile.Length;

            fileContent = new byte[fileStream.Length];
            if (fileLen < 5)
            {
                WriteLine("The file does not contain relevant data: " + newFile);
                return;
            }
            int nBytes = fileStream.Read(fileContent, 0, Convert.ToInt32(fileLen));

            // if we ever decide to upload currency file through this program, we will need to set the last three parameters to Year, Month & Pref Currency
            fileReader = new SQMFileReader().InitializeCSV(companyID, fileType + ".TXT", fileContent, fileDelimiter, plantDataMultiplier, 0, 0, "");
            if (fileReader.Status < 0)
            {
                WriteLine("Error encountered loading the file: " + newFile);
                return;
            }
            ProcessFile(fileType);
        }
示例#6
0
        static void ProcessFTPInputFile(string fileType)
        {
            // check for a file (look for all files that contain the first part of the file name.
            DateTime             cutOff = DateTime.Now.AddDays(-1);
            List <FTPLineResult> results;
            string newFile = "";

            switch (fileType)
            {
            case "COMPANY":
                Regex matchExpression = new Regex("^company$", RegexOptions.IgnoreCase);
                results = FTPHelper.GetFilesListSortedByDate(fileLocation, matchExpression, cutOff);
                newFile = fileLocation + "COMPANY_" + timestamp + ".txt";
                break;

            case "PLANT":
                newFile = fileLocation + "PLANT_" + timestamp + ".txt";
                break;

            case "PART":
                newFile = fileLocation + "PART_" + timestamp + ".txt";
                break;

            case "PLANT_DATA":
                newFile = fileLocation + "PLANT_DATA_" + timestamp + ".txt";
                break;

            case "CURRENCY_DATA":
                newFile = fileLocation + "CURRENCY_DATA_" + timestamp + ".txt";
                break;

            default:
                break;
            }

            if (newFile.Length == 0)
            {
                WriteLine("Invalid file type: " + fileType);
                return;
            }

            // need to figure out what we are doing...

            //if (File.Exists(oldFile))
            //{
            //	try
            //	{
            //		// rename the file
            //		File.Move(oldFile, newFile);
            //	}
            //	catch
            //	{
            //		WriteLine("Error renaming the data file: " + oldFile + " to " + newFile);
            //		return;
            //	}
            //}
            //else
            //{
            //	WriteLine("File does not exist: " + oldFile);
            //	return;
            //}

            // process the renamed file
            uploadFile = new FileInfo(newFile);
            fileStream = new FileStream(newFile, FileMode.Open, FileAccess.Read);
            long fileLen = uploadFile.Length;

            fileContent = new byte[fileStream.Length];
            if (fileLen < 5)
            {
                WriteLine("The file does not contain relevant data: " + newFile);
                return;
            }
            int nBytes = fileStream.Read(fileContent, 0, Convert.ToInt32(fileLen));

            // if we ever decide to upload currency file through this program, we will need to set the last three parameters to Year, Month & Pref Currency
            fileReader = new SQMFileReader().InitializeCSV(companyID, fileType + ".TXT", fileContent, fileDelimiter, plantDataMultiplier, 0, 0, "");
            if (fileReader.Status < 0)
            {
                WriteLine("Error encountered loading the file: " + newFile);
                return;
            }
            ProcessFile(fileType);
        }
        protected void btnUploadFile_Click(object sender, EventArgs e)
        {
            byte[] fileContent;
            if (ddlDataType.SelectedValue.Equals(""))
            {
                SetStatusMessage("You must select a data type from the drop down list");
            }
            else
            {
                // validate the date in the select control
                periodYear  = 0;
                periodMonth = 0;

                List <SETTINGS> sets = SQMSettings.SelectSettingsGroup("FILE_UPLOAD", ""); // ABW 20140805

                int           primaryCompany = Convert.ToInt32(sets.Find(x => x.SETTING_CD == "CompanyID").VALUE);
                PSsqmEntities Entities       = new PSsqmEntities();
                string        fileName       = "";
                lblSummaryList.Visible = false;

                if (flUpload.HasFile)
                {
                    btnUpload.Enabled = false;

                    selectedFile = tbFileSelected.Text = flUpload.FileName;
                    int fileLen = flUpload.PostedFile.ContentLength;

                    if (fileLen < 5)
                    {
                        SetStatusMessage("The file does not contain relevant data: " + flUpload.FileName);
                        return;
                    }
                    fileDelimiter       = sets.Find(x => x.SETTING_CD == "FileDelimiter1").VALUE.ToCharArray();
                    plantDataMultiplier = 1;

                    fileName = ddlDataType.SelectedValue.ToString() + ".TXT";
                    try
                    {
                        string fileType = flUpload.PostedFile.ContentType;
                        fileContent = new byte[Convert.ToInt32(fileLen)];
                        int nBytes = flUpload.PostedFile.InputStream.Read(fileContent, 0, Convert.ToInt32(fileLen));
                    }
                    catch
                    {
                        SetStatusMessage("Error encountered opening or acquiring the file: " + flUpload.FileName);
                        return;
                    }
                    //fileReader = new SQMFileReader().InitializeCSV(1, flUpload.PostedFile.FileName, fileContent, fileDelimiter, plantDataMultiplier);
                    fileReader = new SQMFileReader().InitializeCSV(primaryCompany, fileName, fileContent, fileDelimiter, plantDataMultiplier, periodYear, periodMonth, "USD");

                    if (fileReader.Status < 0)
                    {
                        SetStatusMessage("Error encountered loading the file: " + flUpload.FileName);
                        return;
                    }

                    ProcessFile();
                }
                else
                {
                    SetStatusMessage("The selected file is empty: " + flUpload.FileName);
                }
            }
        }
        protected void btnUploadFile_Click(object sender, EventArgs e)
        {
            byte[] fileContent;
            if (ddlDataType.SelectedValue.Equals(""))
            {
                SetStatusMessage("You must select a data type from the drop down list");
            }
            else if (ddlPlantSelect.SelectedIndex == 0 && ddlDataType.SelectedValue.Equals("RECEIPT"))
            {
                SetStatusMessage("You must select a Receiving Location to upload a receipt record");
            }
            else
            {
                // validate the date in the select control
                periodYear  = 0;
                periodMonth = 0;

                List <SETTINGS> sets = SQMSettings.SelectSettingsGroup("FILE_UPLOAD", ""); // ABW 20140805

                int           primaryCompany = Convert.ToInt32(sets.Find(x => x.SETTING_CD == "CompanyID").VALUE);
                PSsqmEntities Entities       = new PSsqmEntities();
                BUSINESS_ORG  busOrg         = SQMModelMgr.LookupBusOrg(Entities, primaryCompany, "", true, false);
                string        fileName       = "";
                lblSummaryList.Visible = false;

                if (flUpload.HasFile)
                {
                    btnUpload.Enabled = false;

                    selectedFile = tbFileSelected.Text = flUpload.FileName;
                    int fileLen = flUpload.PostedFile.ContentLength;

                    if (fileLen < 5)
                    {
                        SetStatusMessage("The file does not contain relevant data: " + flUpload.FileName);
                        return;
                    }
                    fileDelimiter       = sets.Find(x => x.SETTING_CD == "FileDelimiter1").VALUE.ToCharArray();
                    plantDataMultiplier = 1;

                    fileName = ddlDataType.SelectedValue.ToString() + ".TXT";
                    try
                    {
                        string fileType = flUpload.PostedFile.ContentType;
                        fileContent = new byte[Convert.ToInt32(fileLen)];
                        int nBytes = flUpload.PostedFile.InputStream.Read(fileContent, 0, Convert.ToInt32(fileLen));
                    }
                    catch
                    {
                        SetStatusMessage("Error encountered opening or acquiring the file: " + flUpload.FileName);
                        return;
                    }
                    //fileReader = new SQMFileReader().InitializeCSV(1, flUpload.PostedFile.FileName, fileContent, fileDelimiter, plantDataMultiplier);
                    fileReader = new SQMFileReader().InitializeCSV(primaryCompany, fileName, fileContent, fileDelimiter, plantDataMultiplier, periodYear, periodMonth, busOrg.PREFERRED_CURRENCY_CODE);
                    if (ddlDataType.SelectedValue.Equals("RECEIPT"))
                    {
                        fileReader.LocationCode = SQMModelMgr.LookupPlant(Convert.ToDecimal(ddlPlantSelect.SelectedValue)).DUNS_CODE;
                    }


                    if (fileReader.Status < 0)
                    {
                        SetStatusMessage("Error encountered loading the file: " + flUpload.FileName);
                        return;
                    }

                    ProcessFile();

                    if (ddlDataType.SelectedValue.Equals("RECEIPT"))
                    {
                        dvPlantSelect.Style.Add("display", "inline");
                    }
                }
                else
                {
                    SetStatusMessage("The selected file is empty: " + flUpload.FileName);
                }
            }
        }