private void mainProc() { dateTimePickerTo.Value = dateTimePickerFr.Value; CostReportData[] crdArray; CostReportData crd = new CostReportData(); if (textBoxItem.Text[0] == 'F') { // 基業務番号(STaskCode)、協力会社原価コード(textBoxItem.Text)などを基に対象となる原価実績(D_CostReport)からデータを得る // 得た伝票番号(SlipNo)から、原価実績(D_CostReport)、協力会社作業内訳書明細(D_OsWkDetail)、協力会社作業内訳書(D_OsWkReport)の業務番号を付け替える crdArray = crd.SelectCostReport(dateTimePickerFr.Value.StripTime(), dateTimePickerTo.Value.StripTime(), textBoxSTask.Text, textBoxItem.Text, Convert.ToString(comboBoxOffice.SelectedValue), Convert.ToString(comboBoxDepart.SelectedValue), "SubCoCode"); // Wakamatsu 20170322 if (crdArray == null) { MessageBox.Show("指定された原価コードまたは業務番号のデータはありません"); return; } // Wakamatsu 20170322 OsWkDetailData owdd = new OsWkDetailData(); OsWkReportData owrd = new OsWkReportData(); int reportID; for (int i = 0; i < crdArray.Length; i++) { switch (crdArray[i].AccountCode) { case "OSWR": reportID = owdd.SelectOsWkReportID(crdArray[i].SlipNo); if (!crd.UpdateTaskCodeOsWkReport(crdArray[i].SlipNo, reportID, textBoxDTask.Text)) { labelMes.Text = MesArray[1]; return; } break; case "OSPO": if (!crd.UpdateTaskCode(crdArray[i].SlipNo, textBoxDTask.Text, "D_OsPayOff")) { labelMes.Text = MesArray[1]; return; } break; case "OSPM": if (!crd.UpdateTaskCode(crdArray[i].SlipNo, textBoxDTask.Text, "D_OsPayment")) { labelMes.Text = MesArray[1]; return; } break; } } } else { // 基業務番号(STaskCode)、直営(AorB)原価コード(textBoxItem.Text)などを基に対象となる原価実績(D_CostReport)からデータを得る // 得た伝票番号(SlipNo)から、原価実績(D_CostReport)、作業内訳書(D_WorkReport)の業務番号を付け替える // 原価実績1件に対し、作業内訳書は「作業者」と「作業内容」の組み合わせがあるので複数件のデータがある可能性がある。 // 原価実績の伝票番号と一致する作業内訳書の業務番号はすべて修正する crdArray = crd.SelectCostReport(dateTimePickerFr.Value.StripTime(), dateTimePickerTo.Value.StripTime(), textBoxSTask.Text, textBoxItem.Text, Convert.ToString(comboBoxOffice.SelectedValue), Convert.ToString(comboBoxDepart.SelectedValue), "ItemCode"); // Wakamatsu 20170322 if (crdArray == null) { MessageBox.Show("指定された原価コードまたは業務番号のデータはありません"); return; } // Wakamatsu 20170322 for (int i = 0; i < crdArray.Length; i++) { if (!crd.UpdateTaskCode(crdArray[i].SlipNo, textBoxDTask.Text, "D_WorkReport")) { labelMes.Text = MesArray[1]; return; } } } labelMes.Text = MesArray[0]; }
private bool storedData() { int lineCount = 0; for (int i = 0; i < wdtl.Length; i++) { if (wdtl[i].ItemCode == "" || wdtl[i].ItemCode == null) { continue; } lineCount++; } OsWkDetailData[] nwdtl = new OsWkDetailData[lineCount]; for (int idx = 0, i = 0; i < wdtl.Length; i++) { if (wdtl[i].ItemCode == "" || wdtl[i].ItemCode == null) { continue; } nwdtl[idx] = ( OsWkDetailData )wdtl[i].Clone(); nwdtl[idx].PartnerCode = wrep.PartnerCode; nwdtl[idx].TaskCode = wrep.TaskCode; nwdtl[idx].ReportDate = wrep.ReportDate; nwdtl[idx].OfficeCode = wrep.OfficeCode; nwdtl[idx].Department = wrep.Department; nwdtl[idx].MmeberCode = wrep.MemberCode; nwdtl[idx].LeaderMCode = wrep.LeaderMCode; nwdtl[idx].SalesMCode = wrep.SalesMCode; nwdtl[idx].CustoCode = wrep.CustoCode; nwdtl[idx].CoTaskCode = wrep.CoTaskCode; idx++; } // 既に、同じReportDate,TaskCode,OfficeCode,Department,SubCoCode(PartnerCode)の // CostReprotがあれば伝票番号を得たのちに削除する // 伝票番号をもとに削除したCostReportに関連する、外注作業明細を削除する int slipNo = crd.SelectCostSlipNo(wrep.ReportDate, wrep.TaskCode, wrep.PartnerCode, wrep.OfficeCode, wrep.Department); if (slipNo > 0) { if (crd.DeleteCostReport("@slip", slipNo)) { OsWkDetailData osd = new OsWkDetailData(); int osWkReportID = osd.SelectOsWkReportID(slipNo); if (osWkReportID > 0) { OsWkReportData osr = new OsWkReportData(); if (!osr.DeleteOsWkReport("OsWkReportID = " + osWkReportID)) { return(false); } } if (!osd.DeleteOsWkDetail("@slip", slipNo)) { return(false); } } } if ((nwdtl = crd.InsertCostReport(nwdtl)) == null) { return(false); } //wrep.TaskCode = (wrep.RTaskCode == "")? wrep.TaskCode : wrep.RTaskCode; if (!wrep.StoreOsWkReportAndDetail(nwdtl)) { return(false); } return(true); }