private bool involvedDataDelete(DataGridViewRow dgvRow, int slipNo) { WorkReportData wrp; OsWkDetailData owd; OsPayOffData ofd; OsPaymentData omd; switch (Convert.ToString(dgvRow.Cells["Subject"].Value)) { case "A": case "B": case "K": wrp = new WorkReportData(); if (wrp.ExistenceSlipNo(slipNo)) { if (!wrp.ClearPartWorkReport(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value))) { deleteErrorMessage("作業内訳データ"); return(false); } } else { owd = new OsWkDetailData(); if (owd.ExistenceSlipNo(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value))) { if (!owd.DeleteOsWkDetail("@slip", slipNo)) { deleteErrorMessage("外注作業内訳データ"); return(false); } } } break; case "F": ofd = new OsPayOffData(); if (ofd.ExistenceSlipNo(slipNo)) { if (!ofd.DeletePayOff("@slip", slipNo)) { deleteErrorMessage("外注精算データ"); return(false); } } else { omd = new OsPaymentData(); if (omd.ExistenceSlipNo(slipNo)) { if (!omd.DeletePayment("@slip", slipNo)) { deleteErrorMessage("外注出来高データ"); return(false); } } } break; default: owd = new OsWkDetailData(); if (owd.ExistenceSlipNo(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value))) { if (!owd.DeleteOsWkDetail("@slip", slipNo)) { deleteErrorMessage("外注作業内訳データ"); return(false); } } break; } return(true); }
private bool involvedDataUpdate(DataGridViewRow dgvRow, int slipNo) { WorkReportData wrp; OsWkDetailData owd; OsPayOffData ofd; OsPaymentData omd; decimal unitPrice = DHandling.ToRegDecimal(Convert.ToString(dgvRow.Cells["UnitPrice"].Value)); decimal cost = DHandling.ToRegDecimal(Convert.ToString(dgvRow.Cells["Cost"].Value)); decimal qty = DHandling.ToRegDecimal(Convert.ToString(dgvRow.Cells["Quantity"].Value)); switch (Convert.ToString(dgvRow.Cells["Subject"].Value)) { case "A": case "B": case "K": wrp = new WorkReportData(); if (wrp.ExistenceSlipNo(slipNo)) { if (!wrp.UpdatePartWorkReport(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value), qty)) { updateErrorMessage("作業内訳データ"); return(false); } } else { owd = new OsWkDetailData(); if (owd.ExistenceSlipNo(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value))) { if (!owd.UpdatePartOsWkDetail(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value), qty, cost)) { updateErrorMessage("外注作業内訳データ"); return(false); } } } break; case "F": ofd = new OsPayOffData(); if (ofd.ExistenceSlipNo(slipNo)) { ofd = ofd.SelectOsPayOff(slipNo); ofd.Cost = cost; if (!ofd.UpdatePayOff()) { updateErrorMessage("外注精算データ"); return(false); } //if (!ofd.UpdatePartPayOff(slipNo, cost)) //{ // updateErrorMessage("外注精算データ"); // return false; //} } else { omd = new OsPaymentData(); if (omd.ExistenceSlipNo(slipNo)) { omd = omd.SelectPayment(slipNo); omd.Amount = cost; if (!omd.UpdatePayment()) { updateErrorMessage("外注出来高データ"); return(false); } //if (!omd.UpdatePartPayment(slipNo, cost)) //{ // updateErrorMessage("外注出来高データ"); // return false; //} } } break; default: owd = new OsWkDetailData(); if (owd.ExistenceSlipNo(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value))) { if (!owd.UpdatePartOsWkDetail(slipNo, Convert.ToInt32(dgvRow.Cells["CostReportID"].Value), qty, cost)) { deleteErrorMessage("外注作業内訳データ"); return(false); } } break; } return(true); }
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); }
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 editData(StreamReader stR, string bookName) { bool first = true; string dataType; int lno = 0; int cntK = 0, cntK1 = 0, cntL = 0; int cntA = 0, cntB = 0, cntC = 0, cntG = 0, cntD = 0, cntD1 = 0; //TaskData td = new TaskData(); //TaskIndData tid = new TaskIndData(); CostData cd; while (!stR.EndOfStream) { var line = stR.ReadLine(); var valArray = line.Split(','); if (first) { wrep.ReportDate = Convert.ToDateTime(valArray[0]); wrep.TaskCode = Convert.ToString(valArray[3]); wrep.Note = Convert.ToString(valArray[6]); wrep.Author = Convert.ToString(valArray[7]); wrep.OfficeCode = Convert.ToString(valArray[11]); wrep.Department = Convert.ToString(valArray[12]); wrep.PartnerCode = Convert.ToString(valArray[2]); // 協力会社コードFXXX wrep.PartnerName = Convert.ToString(valArray[1]); // 協力会社名 wrep.ContractForm = 1; wrep.PNo = Convert.ToInt32(valArray[13]); wrep.TotalP = Convert.ToInt32(valArray[14]); wrep.CoTaskCode = ""; if (valArray.Length > 15) { wrep.CoTaskCode = String.IsNullOrEmpty(Convert.ToString(valArray[15])) ? "" : Convert.ToString(valArray[15]); } //wrep.CoTaskCode = Convert.ToString(valArray[15]) ; TaskData td = new TaskData(); //td = td.SelectTaskData(wrep.TaskCode); td = td.SelectTaskData((wrep.CoTaskCode == "") ? wrep.TaskCode : wrep.CoTaskCode); wrep.SalesMCode = td.SalesMCode; wrep.CustoCode = td.PartnerCode; TaskIndData tid = new TaskIndData(); //string tempTaskCd = (wrep.CoTaskCode == "") ? wrep.TaskCode : wrep.CoTaskCode; //tid = tid.SelectTaskIndData(wrep.TaskCode); tid = tid.SelectTaskIndData((wrep.CoTaskCode == "") ? wrep.TaskCode : wrep.CoTaskCode); //wrep.OfficeCode = tid.OfficeCode; wrep.LeaderMCode = tid.LeaderMCode; int volLine = Convert.ToInt32(valArray[8]); int costLine = Convert.ToInt32(valArray[9]); int costBLine = Convert.ToInt32(valArray[10]); wdtl = new OsWkDetailData[volLine * 3 + costLine * 4 + costBLine * 2]; first = false; } else { wdtl[lno] = new OsWkDetailData(); dataType = Convert.ToString(valArray[0]); if (Convert.ToString(valArray[1]) == "" || Convert.ToString(valArray[1]) == null) { wdtl[lno].ItemCode = ""; lno++; continue; } wdtl[lno].ItemCode = Convert.ToString(valArray[1]); wdtl[lno].Item = Convert.ToString(valArray[2]); // Get CostData cd = new CostData(); cd = cd.SelectCostMaster(wdtl[lno].ItemCode, wrep.OfficeCode); wdtl[lno].Cost = (cd == null) ? 0M : cd.Cost; if (Convert.ToString(valArray[5]) != "") { wdtl[lno].Quantity = Convert.ToDecimal(valArray[5]); } wdtl[lno].Unit = (valArray[6] == "") ? "式" : Convert.ToString(valArray[6]); if (dataType != "K1") { //wdtl[lno].Unit = (valArray[6] == "") ? "": Convert.ToString(valArray[6]); wdtl[lno].Subject = dataType; wdtl[lno].ItemDetail = ""; wdtl[lno].Range = ""; } switch (dataType) { case "K": wdtl[lno].LNo = cntK; cntK++; break; case "K1": wdtl[lno].ItemDetail = Convert.ToString(valArray[3]); wdtl[lno].Range = Convert.ToString(valArray[4]); wdtl[lno].Subject = "K"; //wdtl[lno].Unit = ""; wdtl[lno].LNo = cntK1; cntK1++; break; case "L": wdtl[lno].LNo = cntL; cntL++; break; case "A": // costget wdtl[lno].LNo = cntA; cntA++; break; case "D": wdtl[lno].LNo = cntD; cntD++; break; case "C": wdtl[lno].LNo = cntC; cntC++; break; case "G": wdtl[lno].LNo = cntG; cntG++; break; case "B": //costget wdtl[lno].LNo = cntB; cntB++; break; case "D1": wdtl[lno].Subject = "D"; wdtl[lno].LNo = cntD1; cntD1++; break; default: break; } wdtl[lno].RecType = (dataType == "K" || dataType == "K1" || dataType == "L") ? 0 : 1; lno++; } } stR.Close(); return(true); }