Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
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);
        }
Пример #4
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];
        }
Пример #5
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);
        }