Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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;
                    }
                }
            }
        }
Beispiel #7
0
        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;
        }
Beispiel #8
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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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
        }
Beispiel #11
0
        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();
        }
Beispiel #12
0
 private void initialDisplay()
 {
     curSlipNo = CostReportData.ReadNowSlipNo();
     dispCostReportData(curSlipNo);
 }
Beispiel #13
0
        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];
        }