Exemplo n.º 1
0
        public int CreateCostReportDataByCSVData(string fileName, string officeCode)
        {
            int procCount = 0;
            int repoDate;

            string[]       codeArray = new string[2];
            int[]          getaArray = new int[] { 0, 300000, 500000, 700000 };
            int            geta      = getaArray[Conv.OfficeCodeIndex(officeCode)];
            StringUtility  sutil     = new StringUtility();
            MembersData    md        = new MembersData();
            CostReportData crd       = new CostReportData();

            try
            {
                using (var streamReader = new StreamReader(fileName, System.Text.Encoding.Default))
                {
                    while (!streamReader.EndOfStream)
                    {
                        var line     = streamReader.ReadLine();
                        var valArray = line.Split(',');

                        if (!DHandling.IsNumeric(Convert.ToString(valArray[0])))
                        {
                            continue;
                        }
                        if (Convert.ToInt32(valArray[4]) > 900000)
                        {
                            continue;
                        }
                        crd.SlipNo = Convert.ToInt32(valArray[4]) + geta;

                        repoDate       = (Convert.ToInt32(valArray[1]) == 0) ? Convert.ToInt32(valArray[2]) + 19880000 : Convert.ToInt32(valArray[2]) + 20000000;
                        crd.ReportDate = DateTime.ParseExact(Convert.ToString(repoDate) + "000000", "yyyyMMddHHmmss", null);
                        crd.TaskCode   = Convert.ToString(valArray[5]);
                        crd.ItemCode   = Convert.ToString(valArray[12]);
                        crd.Item       = Convert.ToString(valArray[14]);
                        crd.Quantity   = Convert.ToDecimal(valArray[18]);
                        crd.Unit       = Convert.ToString(valArray[19]);
                        crd.UnitPrice  = Convert.ToDecimal(valArray[20]);
                        crd.Cost       = Convert.ToDecimal(valArray[21]);
                        crd.Note       = Convert.ToString(valArray[27]);
                        TaskData td = new TaskData();
                        td = td.SelectTaskData(crd.TaskCode);
                        if (td != null)
                        {
                            crd.CustoCode  = td.PartnerCode;
                            crd.SalesMCode = td.SalesMCode;
                        }
                        crd.Subject     = sutil.SubstringByte(crd.ItemCode, 0, 1);
                        crd.SubCoCode   = (crd.Subject == "F") ? crd.ItemCode : "";
                        crd.MemberCode  = (Convert.ToInt32(valArray[9]) < 100) ? "0" + Convert.ToString(valArray[9]) : Convert.ToString(valArray[9]);
                        crd.LeaderMCode = (Convert.ToInt32(valArray[9]) < 100) ? "0" + Convert.ToString(valArray[9]) : Convert.ToString(valArray[9]);

                        // 事業所および部門
                        crd.OfficeCode = officeCode;
                        crd.Department = (crd.OfficeCode == "H") ? Conv.tdHList[Conv.DepartmentCodeIndex(sutil.SubstringByte(crd.TaskCode, 0, 1))]
                                                                 : Conv.tdBList[Conv.DepartmentCodeIndex(sutil.SubstringByte(crd.TaskCode, 0, 1))];
                        if (crd.MemberCode != "" && crd.MemberCode == holdMCode)
                        {
                            crd.Department = holdDept;
                        }
                        else
                        {
                            codeArray = md.SelectMembersOffice(crd.MemberCode);
                            if (codeArray != null)
                            {
                                if (codeArray[0] == crd.OfficeCode)
                                {
                                    crd.Department = codeArray[1];
                                }
                            }
                            holdMCode = crd.MemberCode;
                            holdDept  = crd.Department;
                        }

                        crd.AccountCode = "SYO";
                        crd.CoTaskCode  = "";
                        if (crd.ExistenceSlipNo())
                        {
                            continue;
                        }
                        // 項目移送
                        if (!crd.InsertCostReport())
                        {
                            return(0);
                        }
                        procCount++;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                procCount = -1;
            }
            return(procCount);
        }