/// <summary> /// 削除マークがついたもの、一度保存されたものを対象に外注精算データを削除する /// 対応する原画実績データがある場合はそれも削除する。 /// </summary> /// <param name="dgv"></param> /// <returns></returns> private bool deletePaymentData(DataGridView dgv) { opd = new OsPaymentData(); CostReportData crd = new CostReportData(); for (int i = 0; i < dgv.Rows.Count; i++) { if (Convert.ToString(dgv.Rows[i].Cells["PaymentID"].Value) == "") { continue; } if (!Convert.ToBoolean(dgv.Rows[i].Cells["Check"].Value)) { continue; } if (!opd.DeletePayment("@pMID", Convert.ToInt32(dgv.Rows[i].Cells["PaymentID"].Value))) { return(false); // 出来高データの削除 } if (Convert.ToString(dgv.Rows[i].Cells["SlipNo"].Value) != "") // 原価データの削除 { if (!crd.DeleteCostReport("@slip", Convert.ToInt32(dgv.Rows[i].Cells["SlipNo"].Value))) { return(false); } } } return(true); }
private void createSearchKeyArray() { CostReportData crdp = new CostReportData(); if (textBoxTaskCode.Text == null) { textBoxTaskCode.Text = ""; } sNoArray = crdp.SelectCostSlipNo(dateTimePickerEntryDate.Value, textBoxTaskCode.Text, Convert.ToString(comboBoxOffice.SelectedValue)); labelMessage.Text = (sNoArray[0] == -1) ? "指定された条件では対象となる伝票がありませんでした。" : Convert.ToString(sNoArray.Length) + "件のデータがあります。"; sNoIndex = 0; holdSlipNo = curSlipNo; }
private bool dispCostReportData(int slipNo) { CostReportData crp = new CostReportData(); crd = crp.SelectCostReport(slipNo); if (crd == null) { return(false); } loadCostRecordData(crd, dataGridView1); dispTaskInformation(textBoxTaskCode.Text); initializeCheckMark(); //readOnlyProperty(dataGridView1); return(true); }
private bool dispCostReportData() { CostReportData crp = new CostReportData(); crd = crp.SelectCostReport(dateTimePickerFR.Value.StripTime(), dateTimePickerTO.Value.StripTime(), textBoxTaskCode.Text, Conv.OfficeCode, Conv.DepartCode); if (crd == null) { return(false); } slipNoCount = crp.CountSlipNo(dateTimePickerFR.Value, dateTimePickerTO.Value, textBoxTaskCode.Text, Conv.OfficeCode, Conv.DepartCode); loadCostRecordData(crd, dataGridView1); return(true); }
private bool savePaymentData(DataGridView dgv) { int procCnt = 0; opd = new OsPaymentData(); opd = moveCommonData(); CostReportData crp = new CostReportData(); for (int i = 0; i < dgv.Rows.Count; i++) { if (Convert.ToString(dgv.Rows[i].Cells["ItemCode"].Value) == "") { continue; } opd = moveIndividualData(dataGridView1.Rows[i]); if (Convert.ToString(dgv.Rows[i].Cells["PaymentID"].Value) == "") { if (!opd.InsertPayment()) { return(false); } dgv.Rows[i].Cells["PaymentID"].Value = Convert.ToString(opd.OsPaymentID); } else { opd.OsPaymentID = Convert.ToInt32(dgv.Rows[i].Cells["PaymentID"].Value); if (!opd.UpdatePayment()) { return(false); } } procCnt++; } if (procCnt == 0) { MessageBox.Show("処理対象のデータはありませんでした!"); return(false); } return(true); }
private void deleteCostReportData(DataGridView dgv, int slipNo) { CostReportData crp = new CostReportData(); for (int i = 0; i < dgv.RowCount; i++) { if (Convert.ToString(dgv.Rows[i].Cells["CostCode"].Value) == "") { continue; } if (Convert.ToBoolean(dgv.Rows[i].Cells["Check"].Value)) { if (!crp.DeleteCostReport("@crID", Convert.ToInt32(dgv.Rows[i].Cells["CostReportID"].Value))) { deleteErrorMessage("原価実績データ"); return; } if (!involvedDataDelete(dgv.Rows[i], slipNo)) { return; } } } }
private void editDgvRow(DataGridViewRow dgvRow, TaskCodeNameData tcnd, string itemIni) { CostReportData crdp = new CostReportData(); CostData cd = new CostData(); int[] monthArray = new int[] { 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3 }; int year = Convert.ToInt32(comboBoxFY.Text); decimal cost = 0M; decimal costSum = 0M; dgvRow.Cells["TaskCode"].Value = tcnd.TaskCode; dgvRow.Cells["PartnerName"].Value = tcnd.Partner; dgvRow.Cells["TaskName"].Value = tcnd.TaskName; for (int i = 0; i < monthArray.Length; i++) { cost = crdp.SumMonthlyCost(tcnd.TaskCode, Conv.OfficeCode, DateTime.ParseExact(Convert.ToString(year * 10000 + monthArray[i] * 100 + 1), "yyyyMMdd", null)); dgvRow.Cells["Cost" + i.ToString("00")].Value = decFormat(cost); costSum += cost; costArray[i] += cost; } dgvRow.Cells["CostSum"].Value = decFormat(costSum); costSum = 0; }
/// <summary> /// 原価実績データを登録する(「原価データ作成」ボタン押下時) /// </summary> /// <param name="dgv"></param> /// <returns></returns> private bool saveCostReportData(DataGridView dgv) { int procCnt = 0; CostReportData crd = new CostReportData(); crd.OfficeCode = Conv.OfficeCode; crd.Department = Conv.DepartCode; crd.ReportDate = dateTimePickerEx1.Value.EndOfMonth(); crd.UnitPrice = 0; crd.Quantity = 1; crd.Unit = "式"; //crd.SubCoCode = ""; crd.MemberCode = hp.MemberCode; //crd.AccountCode = ""; crd.Note = ""; for (int i = 0; i < dgv.Rows.Count; i++) { if (Convert.ToString(dgv.Rows[i].Cells["ItemCode"].Value) == "") { continue; } crd.ItemCode = Convert.ToString(dgv.Rows[i].Cells["ItemCode"].Value); crd.Item = Convert.ToString(dgv.Rows[i].Cells["Item"].Value); crd.TaskCode = Convert.ToString(dgv.Rows[i].Cells["TaskCode"].Value); crd.Cost = DHandling.ToRegDecimal(Convert.ToString(dgv.Rows[i].Cells["Amount"].Value)); crd.LeaderMCode = Convert.ToString(dgv.Rows[i].Cells["LeaderMCode"].Value); crd.SalesMCode = Convert.ToString(dgv.Rows[i].Cells["SalesMCode"].Value); crd.CustoCode = Convert.ToString(dgv.Rows[i].Cells["PartnerCode"].Value); crd.Subject = Convert.ToString(crd.ItemCode[0]); //crd.Unit = "式"; crd.SubCoCode = crd.ItemCode; crd.AccountCode = "OSPM"; crd.CoTaskCode = ""; if (Convert.ToString(dgv.Rows[i].Cells["SlipNo"].Value) == "") { if (!crd.InsertCostReportAndGetID()) { return(false); } dgv.Rows[i].Cells["SlipNo"].Value = Convert.ToString(crd.SlipNo); dgv.Rows[i].Cells["CostReportID"].Value = Convert.ToString(crd.CostReportID); labelMsg.Text = costIns; } else { crd.SlipNo = Convert.ToInt32(dgv.Rows[i].Cells["SlipNo"].Value); if (!crd.UpdateCostReport()) { return(false); } labelMsg.Text = costUpd; } procCnt++; } if (procCnt == 0) { MessageBox.Show("処理対象のデータはありませんでした!"); return(false); } return(true); }
private void button_Click(object sender, EventArgs e) { if (iniPro) { return; } Button btn = ( Button )sender; switch (btn.Name) { case "buttonSave": if (!savePaymentData(dataGridView1)) { return; } if (opd.SlipNo > 0) { CostReportData crp = new CostReportData(); if (!crp.UpdateCostReport(opd)) { return; // 変更内容を原価実績データにも反映 } } labelMsg.Text = dataSave; updateStat = false; break; case "buttonDelete": if (!deletePaymentData(dataGridView1)) { return; } break; case "buttonCost": if (!saveCostReportData(dataGridView1)) { return; } if (!savePaymentData(dataGridView1)) { return; } labelMsg.Text = costSave; break; case "buttonCancel": dataGridView1.Rows.Clear(); dataGridView1.Rows.Add(iniRCnt); seqNoReNumbering(dataGridView1); break; case "buttonEnd": if (!unsavedCheck(dataGridView1)) { return; } this.Close(); break; case "buttonPrint": PublishOsCost poc = new PublishOsCost(Folder.DefaultExcelTemplate("外注出来高調書.xlsx"), collectPublishData(dataGridView1)); poc.ExcelFile("OsPayment"); break; default: break; } if (btn.Name == "buttonEnd" || btn.Name == "buttonPrint") { return; } selectPaymentData(dataGridView1, dateTimePickerEx1.Value.EndOfMonth(), Conv.OfficeCode, Conv.DepartCode); }
private void storeCostReportData(DataGridView dgv) { int newSlipNo = 0; //if (!newEntry && textBoxSlipNo.Text != "") // newSlipNo = Convert.ToInt32(textBoxSlipNo.Text); if (!newEntry) { newSlipNo = curSlipNo; } // Data Count int dataCount = procDgvDataCount(dataGridView1); if (dataCount == 0) { return; } CostReportData[] crda = new CostReportData[dataCount]; int j = 0; for (int i = 0; i < dgv.RowCount; i++) { if (Convert.ToString(dgv.Rows[i].Cells["CostCode"].Value) != "") { crda[j] = new CostReportData(); crda[j].SlipNo = newSlipNo; crda[j].OfficeCode = Convert.ToString(comboBoxOffice.SelectedValue); crda[j].Department = Convert.ToString(comboBoxDepart.SelectedValue); crda[j].TaskCode = textBoxTaskCode.Text; crda[j].ReportDate = dateTimePickerEntryDate.Value; crda[j].ItemCode = Convert.ToString(dgv.Rows[i].Cells["CostCode"].Value); crda[j].Item = Convert.ToString(dgv.Rows[i].Cells["Item"].Value); crda[j].UnitPrice = DHandling.ToRegDecimal(Convert.ToString(dgv.Rows[i].Cells["UnitPrice"].Value)); crda[j].Quantity = DHandling.ToRegDecimal(Convert.ToString(dgv.Rows[i].Cells["Quantity"].Value)); crda[j].Cost = DHandling.ToRegDecimal(Convert.ToString(dgv.Rows[i].Cells["Cost"].Value)); crda[j].Unit = Convert.ToString(dgv.Rows[i].Cells["Unit"].Value); crda[j].CustoCode = labelPartnerCode.Text; crda[j].SubCoCode = Convert.ToString(dgv.Rows[i].Cells["SubCoCode"].Value); crda[j].Subject = Convert.ToString(dgv.Rows[i].Cells["Subject"].Value); crda[j].MemberCode = Convert.ToString(dgv.Rows[i].Cells["MemberCode"].Value); crda[j].LeaderMCode = labelLeaderMCode.Text; crda[j].SalesMCode = Convert.ToString(dgv.Rows[i].Cells["SalesMCode"].Value); crda[j].AccountCode = Convert.ToString(dgv.Rows[i].Cells["AccountCode"].Value); crda[j].Note = Convert.ToString(dgv.Rows[i].Cells["Note"].Value); crda[j].CostReportID = (Convert.ToString(dgv.Rows[i].Cells["CostReportID"].Value) == "") ? 0 : Convert.ToInt32(dgv.Rows[i].Cells["CostReportID"].Value); crda[j].CoTaskCode = labelCoTaskCode.Text; j++; if (newSlipNo != 0) { involvedDataUpdate(dgv.Rows[i], newSlipNo); } } } CostReportData crp = new CostReportData(); int val = crp.StoreCostReportData(crda); if (val < 0) { labelMessage.Text = faildProc; return; } if (val > 0) { textBoxSlipNo.Text = Convert.ToString(val); } // Wakamatsu 20170307 //curSlipNo = newSlipNo; if (newSlipNo != 0) { curSlipNo = newSlipNo; } else { curSlipNo = val; } // Wakamatsu 20170307 }
private void button_Click(object sender, EventArgs e) { if (iniPro) { return; } Button btn = (Button)sender; labelMessage.Text = ""; switch (btn.Name) { case "buttonPrev": if (sNoArray[0] == -1) { while (true) { curSlipNo--; if (curSlipNo < CostReportData.ReadMinSlipNo()) { curSlipNo = CostReportData.ReadMinSlipNo(); labelMessage.Text = noDataMes; return; } if (dispCostReportData(curSlipNo)) { break; } } } else { if (sNoIndex == 0) { labelMessage.Text = "絞込んだデータの表示はこれより前にはありません。通常の表示に戻ります。"; sNoArray = new int[] { -1 }; curSlipNo = holdSlipNo; } else { labelMessage.Text = "絞込みデータ処理中。"; sNoIndex--; curSlipNo = sNoArray[sNoIndex]; } dispCostReportData(curSlipNo); } newEntry = false; break; case "buttonNext": if (sNoArray[0] == -1) { while (true) { curSlipNo++; if (curSlipNo > CostReportData.ReadNowSlipNo()) { curSlipNo = CostReportData.ReadNowSlipNo(); labelMessage.Text = noDataMes; return; } if (dispCostReportData(curSlipNo)) { break; } } } else { if (sNoIndex == sNoArray.Length - 1) { labelMessage.Text = "絞込んだデータの表示はこれより後にはありません。通常の表示に戻ります。"; sNoArray = new int[] { -1 }; curSlipNo = holdSlipNo; } else { labelMessage.Text = "絞込みデータ処理中。"; sNoIndex++; curSlipNo = sNoArray[sNoIndex]; } dispCostReportData(curSlipNo); } newEntry = false; break; case "buttonNew": initializeScreen(); textBoxSlipNo.ReadOnly = true; newModeProperty(); //reverseProperty(); newEntry = true; break; case "buttonSave": int dataCount = procDgvDataCount(dataGridView1); if (textBoxTaskName.Text == "" || dataCount == 0) { MessageBox.Show(noDataMes); return; } storeCostReportData(dataGridView1); //##################### dispCostReportData(curSlipNo); //##################### viewModeProperty(); //reverseProperty(); newEntry = false; // Wakamatsu 20170307 textBoxSlipNo.ReadOnly = false; break; case "buttonDelete": if (newEntry) { return; } //deleteCostReportData(dataGridView1, Convert.ToInt32(textBoxSlipNo.Text)); deleteCostReportData(dataGridView1, curSlipNo); initializeScreen(); initialDisplay(); break; case "buttonCancel": initializeScreen(); dispCostReportData(curSlipNo); if (newEntry) { viewModeProperty(); //reverseProperty(); newEntry = false; } break; case "buttonSearch": createSearchKeyArray(); if (sNoArray[0] != -1) { if (dispCostReportData(sNoArray[0])) { break; } } newEntry = false; break; case "buttonEnd": this.Close(); break; default: break; } calculateAmount(); }
private void initialDisplay() { curSlipNo = CostReportData.ReadNowSlipNo(); dispCostReportData(curSlipNo); }
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]; }