public string UpdateEstimate(string random, int type, long EstimateNo, EntityEstimateH entityH, List<EntityEstimateD> entityD) { #region 認証処理 string companyId = ""; string groupId = ""; string userId = ""; string ipAdress = ""; string sessionString = ""; try { companyId = ExCast.zCStr(HttpContext.Current.Session[ExSession.COMPANY_ID]); groupId = ExCast.zCStr(HttpContext.Current.Session[ExSession.GROUP_ID]); userId = ExCast.zCStr(HttpContext.Current.Session[ExSession.USER_ID]); ipAdress = ExCast.zCStr(HttpContext.Current.Session[ExSession.IP_ADRESS]); sessionString = ExCast.zCStr(HttpContext.Current.Session[ExSession.SESSION_RANDOM_STR]); string _message = ExSession.SessionUserUniqueCheck(random, ExCast.zCStr(HttpContext.Current.Session[ExSession.SESSION_RANDOM_STR]), ExCast.zCInt(HttpContext.Current.Session[ExSession.USER_ID])); if (_message != "") { return _message; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(認証処理)", ex); return CLASS_NM + ".UpdateEstimate : 認証処理に失敗しました。" + Environment.NewLine + ex.Message.ToString(); } #endregion #region Field StringBuilder sb = new StringBuilder(); DataTable dt; ExMySQLData db = null; string accountPeriod = ""; long id = 0; long no = EstimateNo; #endregion #region Databese Open try { db = new ExMySQLData(ExCast.zCStr(HttpContext.Current.Session[ExSession.DB_CONNECTION_STR])); db.DbOpen(); } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(DbOpen)", ex); return "UpdateEstimate(DbOpen) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region BeginTransaction try { db.ExBeginTransaction(); } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(BeginTransaction)", ex); return "UpdateEstimate(BeginTransaction) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Update or Insert if (type <= 1) { #region Get Accout Period try { accountPeriod = DataAccount.GetAccountPeriod(ExCast.zCStr(HttpContext.Current.Session[ExSession.ACCOUNT_BEGIN_PERIOD]), entityH.estimate_ymd); if (accountPeriod == "") { return "会計年の取得に失敗しました。(期首月日 : " + ExCast.zCStr(HttpContext.Current.Session[ExSession.ACCOUNT_BEGIN_PERIOD]) + " 見積日 : " + entityH.estimate_ymd + ")"; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(GetAccountPeriod)", ex); return "UpdateEstimate(GetAccountPeriod) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Get Slip No try { DataSlipNo.GetSlipNo(companyId, groupId, db, DataSlipNo.geSlipKbn.Estimate, accountPeriod, ref no, out id, ExCast.zCStr(HttpContext.Current.Session[ExSession.IP_ADRESS]), ExCast.zCStr(HttpContext.Current.Session[ExSession.USER_ID])); if (no == 0 || id == 0) { return "伝票番号の取得に失敗しました。(会計年 : " + accountPeriod + ")"; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(GetSlipNo)", ex); return "UpdateEstimate(GetSlipNo) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Head Insert try { #region SQL sb.Length = 0; sb.Append("INSERT INTO T_ESTIMATE_H " + Environment.NewLine); sb.Append(" ( COMPANY_ID" + Environment.NewLine); sb.Append(" , GROUP_ID" + Environment.NewLine); sb.Append(" , ID" + Environment.NewLine); sb.Append(" , NO" + Environment.NewLine); sb.Append(" , STATE" + Environment.NewLine); sb.Append(" , ESTIMATE_YMD" + Environment.NewLine); sb.Append(" , PERSON_ID" + Environment.NewLine); sb.Append(" , CUSTOMER_ID" + Environment.NewLine); sb.Append(" , TAX_CHANGE_ID" + Environment.NewLine); sb.Append(" , BUSINESS_DIVISION_ID" + Environment.NewLine); sb.Append(" , SUPPLIER_ID" + Environment.NewLine); sb.Append(" , SUPPLY_YMD" + Environment.NewLine); sb.Append(" , TIME_LIMIT_YMD" + Environment.NewLine); sb.Append(" , DELIVER_DIVISION_ID" + Environment.NewLine); sb.Append(" , SUM_ENTER_NUMBER" + Environment.NewLine); sb.Append(" , SUM_CASE_NUMBER" + Environment.NewLine); sb.Append(" , SUM_NUMBER" + Environment.NewLine); sb.Append(" , SUM_UNIT_PRICE" + Environment.NewLine); sb.Append(" , SUM_SALES_COST" + Environment.NewLine); sb.Append(" , SUM_TAX" + Environment.NewLine); sb.Append(" , SUM_NO_TAX_PRICE" + Environment.NewLine); sb.Append(" , SUM_PRICE" + Environment.NewLine); sb.Append(" , SUM_PROFITS" + Environment.NewLine); sb.Append(" , PROFITS_PERCENT" + Environment.NewLine); sb.Append(" , MEMO" + Environment.NewLine); sb.Append(" , UPDATE_FLG" + Environment.NewLine); sb.Append(" , DELETE_FLG" + Environment.NewLine); sb.Append(" , CREATE_PG_ID" + Environment.NewLine); sb.Append(" , CREATE_ADRESS" + Environment.NewLine); sb.Append(" , CREATE_USER_ID" + Environment.NewLine); sb.Append(" , CREATE_PERSON_ID" + Environment.NewLine); sb.Append(" , CREATE_DATE" + Environment.NewLine); sb.Append(" , CREATE_TIME" + Environment.NewLine); sb.Append(" , UPDATE_PG_ID" + Environment.NewLine); sb.Append(" , UPDATE_ADRESS" + Environment.NewLine); sb.Append(" , UPDATE_USER_ID" + Environment.NewLine); sb.Append(" , UPDATE_PERSON_ID" + Environment.NewLine); sb.Append(" , UPDATE_DATE" + Environment.NewLine); sb.Append(" , UPDATE_TIME" + Environment.NewLine); sb.Append(")" + Environment.NewLine); sb.Append("SELECT " + companyId + Environment.NewLine); // COMPANY_ID sb.Append(" ," + groupId + Environment.NewLine); // GROUP_ID sb.Append(" ," + id.ToString() + Environment.NewLine); // ID sb.Append(" ," + no.ToString() + Environment.NewLine); // NO sb.Append(" ," + entityH.state + Environment.NewLine); // sb.Append(" ," + ExEscape.zRepStr(ExCast.zDateNullToDefault(entityH.estimate_ymd)) + Environment.NewLine); // Estimate_YMD sb.Append(" ," + entityH.update_person_id + Environment.NewLine); // PERSON_ID sb.Append(" ," + ExEscape.zRepStr(ExCast.zNumZeroNothingFormat(entityH.customer_id)) + Environment.NewLine); // CUSTOMER_ID sb.Append(" ," + entityH.tax_change_id + Environment.NewLine); // TAX_CHANGE_ID sb.Append(" ," + entityH.business_division_id + Environment.NewLine); // BUSINESS_DIVISION_ID sb.Append(" ," + ExEscape.zRepStr(ExCast.zNumZeroNothingFormat(entityH.supplier_id)) + Environment.NewLine); // SUPPLIER_ID sb.Append(" ," + ExEscape.zRepStr(ExCast.zTimeNullToDefault(entityH.supply_ymd)) + Environment.NewLine); // SUPPLY_YMD sb.Append(" ," + ExEscape.zRepStr(ExCast.zTimeNullToDefault(entityH.time_limit_ymd)) + Environment.NewLine); // SUPPLY_YMD sb.Append(" ,1" + Environment.NewLine); // DELIVER_DIVISION_ID sb.Append(" ," + ExCast.zCDbl(entityH.sum_enter_number) + Environment.NewLine); // SUM_ENTER_NUMBER sb.Append(" ," + ExCast.zCDbl(entityH.sum_case_number) + Environment.NewLine); // SUM_CASE_NUMBER sb.Append(" ," + ExCast.zCDbl(entityH.sum_number) + Environment.NewLine); // SUM_NUMBER sb.Append(" ," + ExCast.zCDbl(entityH.sum_unit_price) + Environment.NewLine); // SUM_UNIT_PRICE sb.Append(" ," + ExCast.zCDbl(entityH.sum_sales_cost) + Environment.NewLine); // SUM_SALES_COST sb.Append(" ," + ExCast.zCDbl(entityH.sum_tax) + Environment.NewLine); // SUM_TAX sb.Append(" ," + ExCast.zCDbl(entityH.sum_no_tax_price) + Environment.NewLine); // SUM_NO_TAX_PRICE sb.Append(" ," + ExCast.zCDbl(entityH.sum_price) + Environment.NewLine); // SUM_PRICE sb.Append(" ," + ExCast.zCDbl(entityH.sum_profits) + Environment.NewLine); // SUM_PROFITS sb.Append(" ," + ExCast.zCDbl(entityH.profits_percent) + Environment.NewLine); // PROFITS_PERCENT sb.Append(" ," + ExEscape.zRepStr(entityH.memo) + Environment.NewLine); // MEMO if (type == 0) { sb.Append(CommonUtl.GetInsSQLCommonColums(CommonUtl.UpdKbn.Upd, PG_NM, "T_ESTIMATE_H", entityH.update_person_id, EstimateNo.ToString(), ipAdress, userId)); } else { sb.Append(CommonUtl.GetInsSQLCommonColums(CommonUtl.UpdKbn.Ins, PG_NM, "T_ESTIMATE_H", entityH.update_person_id, "0", ipAdress, userId)); } #endregion db.ExecuteSQL(sb.ToString(), false); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Head Insert)", ex); return "UpdateEstimate(Head Insert) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Detail Insert try { for (int i = 0; i <= entityD.Count - 1; i++) { #region SQL sb.Length = 0; sb.Append("INSERT INTO T_ESTIMATE_D " + Environment.NewLine); sb.Append(" ( COMPANY_ID" + Environment.NewLine); sb.Append(" , GROUP_ID" + Environment.NewLine); sb.Append(" , ESTIMATE_ID" + Environment.NewLine); sb.Append(" , REC_NO" + Environment.NewLine); sb.Append(" , BREAKDOWN_ID" + Environment.NewLine); sb.Append(" , DELIVER_DIVISION_ID" + Environment.NewLine); sb.Append(" , COMMODITY_ID" + Environment.NewLine); sb.Append(" , COMMODITY_NAME" + Environment.NewLine); sb.Append(" , UNIT_ID" + Environment.NewLine); sb.Append(" , ENTER_NUMBER" + Environment.NewLine); sb.Append(" , CASE_NUMBER" + Environment.NewLine); sb.Append(" , NUMBER" + Environment.NewLine); sb.Append(" , UNIT_PRICE" + Environment.NewLine); sb.Append(" , SALES_COST" + Environment.NewLine); sb.Append(" , TAX" + Environment.NewLine); sb.Append(" , NO_TAX_PRICE" + Environment.NewLine); sb.Append(" , PRICE" + Environment.NewLine); sb.Append(" , PROFITS" + Environment.NewLine); sb.Append(" , PROFITS_PERCENT" + Environment.NewLine); sb.Append(" , TAX_DIVISION_ID" + Environment.NewLine); sb.Append(" , TAX_PERCENT" + Environment.NewLine); sb.Append(" , MEMO" + Environment.NewLine); sb.Append(" , UPDATE_FLG" + Environment.NewLine); sb.Append(" , DELETE_FLG" + Environment.NewLine); sb.Append(" , CREATE_PG_ID" + Environment.NewLine); sb.Append(" , CREATE_ADRESS" + Environment.NewLine); sb.Append(" , CREATE_USER_ID" + Environment.NewLine); sb.Append(" , CREATE_PERSON_ID" + Environment.NewLine); sb.Append(" , CREATE_DATE" + Environment.NewLine); sb.Append(" , CREATE_TIME" + Environment.NewLine); sb.Append(" , UPDATE_PG_ID" + Environment.NewLine); sb.Append(" , UPDATE_ADRESS" + Environment.NewLine); sb.Append(" , UPDATE_USER_ID" + Environment.NewLine); sb.Append(" , UPDATE_PERSON_ID" + Environment.NewLine); sb.Append(" , UPDATE_DATE" + Environment.NewLine); sb.Append(" , UPDATE_TIME" + Environment.NewLine); sb.Append(")" + Environment.NewLine); sb.Append("SELECT " + companyId + Environment.NewLine); // COMPANY_ID sb.Append(" ," + groupId + Environment.NewLine); // GROUP_ID sb.Append(" ," + id.ToString() + Environment.NewLine); // Estimate_ID sb.Append(" ," + entityD[i].rec_no + Environment.NewLine); // REC_NO sb.Append(" ," + entityD[i].breakdown_id + Environment.NewLine); // BREAKDOWN_ID sb.Append(" ," + entityD[i].deliver_division_id + Environment.NewLine); // DELIVER_DIVISION_ID sb.Append(" ," + ExEscape.zRepStr(ExCast.zNumZeroNothingFormat(entityD[i].commodity_id)) + Environment.NewLine); // COMMODITY_ID sb.Append(" ," + ExEscape.zRepStr(entityD[i].commodity_name) + Environment.NewLine); // COMMODITY_NAME sb.Append(" ," + entityD[i].unit_id + Environment.NewLine); // UNIT_ID sb.Append(" ," + entityD[i].enter_number + Environment.NewLine); // ENTER_NUMBER sb.Append(" ," + entityD[i].case_number + Environment.NewLine); // CASE_NUMBER sb.Append(" ," + entityD[i].number + Environment.NewLine); // NUMBER sb.Append(" ," + entityD[i].unit_price + Environment.NewLine); // UNIT_PRICE sb.Append(" ," + entityD[i].sales_cost + Environment.NewLine); // SALES_COST sb.Append(" ," + entityD[i].tax + Environment.NewLine); // TAX sb.Append(" ," + entityD[i].no_tax_price + Environment.NewLine); // NO_TAX_PRICE sb.Append(" ," + entityD[i].price + Environment.NewLine); // PRICE sb.Append(" ," + entityD[i].profits + Environment.NewLine); // PROFITS sb.Append(" ," + ExCast.zCDbl(entityD[i].profits_percent) + Environment.NewLine); // PROFITS_PERCENT sb.Append(" ," + entityD[i].tax_division_id + Environment.NewLine); // TAX_DIVISION_ID sb.Append(" ," + entityD[i].tax_percent + Environment.NewLine); // TAX_PERCENT sb.Append(" ," + ExEscape.zRepStr(entityD[i].memo) + Environment.NewLine); // MEMO if (type == 0) { sb.Append(CommonUtl.GetInsSQLCommonColums(CommonUtl.UpdKbn.Upd, PG_NM, "T_ESTIMATE_D", entityH.update_person_id, ExCast.zCStr(entityH.id), ipAdress, userId)); } else { sb.Append(CommonUtl.GetInsSQLCommonColums(CommonUtl.UpdKbn.Ins, PG_NM, "T_ESTIMATE_D", entityH.update_person_id, "0", ipAdress, userId)); } #endregion if (entityD[i].breakdown_id <= 3 && string.IsNullOrEmpty(entityD[i].commodity_id)) { // 摘要以外で商品未選択の場合、登録しない } else { db.ExecuteSQL(sb.ToString(), false); } } } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Detail Insert)", ex); return "UpdateEstimate(Detail Insert) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Head Update if (type == 0) { try { sb.Length = 0; sb.Append("UPDATE T_ESTIMATE_H " + Environment.NewLine); sb.Append(CommonUtl.GetUpdSQLCommonColums(PG_NM, entityH.update_person_id, ipAdress, userId, 1)); sb.Append(" WHERE COMPANY_ID = " + companyId + Environment.NewLine); // COMPANY_ID sb.Append(" AND GROUP_ID = " + groupId + Environment.NewLine); // GROUP_ID sb.Append(" AND ID = " + entityH.id.ToString() + Environment.NewLine); // ID db.ExecuteSQL(sb.ToString(), false); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Head Update)", ex); return "UpdateEstimate(Head Update) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } } #endregion #region Detail Update if (type == 0) { try { sb.Length = 0; sb.Append("UPDATE T_ESTIMATE_D " + Environment.NewLine); sb.Append(CommonUtl.GetUpdSQLCommonColums(PG_NM, entityH.update_person_id, ipAdress, userId, 1)); sb.Append(" WHERE COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND GROUP_ID = " + groupId + Environment.NewLine); sb.Append(" AND Estimate_ID = " + entityH.id.ToString() + Environment.NewLine); db.ExecuteSQL(sb.ToString(), false); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Detail Update)", ex); return "UpdateEstimate(Detail Update) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } } #endregion #region Update Slip No try { if (type == 0) { DataSlipNo.UpdateSlipNo(companyId, groupId, db, DataSlipNo.geSlipKbn.Estimate, accountPeriod, 0, id); } else { DataSlipNo.UpdateSlipNo(companyId, groupId, db, DataSlipNo.geSlipKbn.Estimate, accountPeriod, no, id); } if (no == 0 || id == 0) { return "伝票番号の更新に失敗しました。(会計年 : " + accountPeriod + ")"; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(UpdateSlipNo)", ex); return "UpdateEstimate(UpdateSlipNo) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion } #endregion #region Delete if (type == 2) { #region Head Delete try { sb.Length = 0; sb.Append("UPDATE T_ESTIMATE_H " + Environment.NewLine); sb.Append(CommonUtl.GetUpdSQLCommonColums(PG_NM, entityH.update_person_id, ipAdress, userId, 1)); sb.Append(" WHERE COMPANY_ID = " + companyId + Environment.NewLine); // COMPANY_ID sb.Append(" AND GROUP_ID = " + groupId + Environment.NewLine); // GROUP_ID sb.Append(" AND ID = " + entityH.id.ToString() + Environment.NewLine); // ID db.ExecuteSQL(sb.ToString(), false); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Head Delete)", ex); return "UpdateEstimate(Head Update) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Detail Delete try { sb.Length = 0; sb.Append("UPDATE T_ESTIMATE_D " + Environment.NewLine); sb.Append(CommonUtl.GetUpdSQLCommonColums(PG_NM, entityH.update_person_id, ipAdress, userId, 1)); sb.Append(" WHERE COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND GROUP_ID = " + groupId + Environment.NewLine); sb.Append(" AND Estimate_ID = " + entityH.id.ToString() + Environment.NewLine); db.ExecuteSQL(sb.ToString(), false); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Detail Delete)", ex); return "UpdateEstimate(Detail Update) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion } #endregion #region CommitTransaction try { db.ExCommitTransaction(); } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(CommitTransaction)", ex); return "UpdateEstimate(CommitTransaction) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Database Close try { db.DbClose(); } catch (Exception ex) { db.ExRollbackTransaction(); CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(DbClose)", ex); return "UpdateEstimate(DbClose) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } finally { db = null; } #endregion #region Add Evidence try { switch (type) { case 0: svcPgEvidence.gAddEvidence(ExCast.zCInt(HttpContext.Current.Session[ExSession.EVIDENCE_SAVE_FLG]), companyId, userId, ipAdress, sessionString, DataPgEvidence.PGName.Estimate.EstimateInp, DataPgEvidence.geOperationType.Update, "NO:" + no.ToString() + ",ID:" + id.ToString()); break; case 1: svcPgEvidence.gAddEvidence(ExCast.zCInt(HttpContext.Current.Session[ExSession.EVIDENCE_SAVE_FLG]), companyId, userId, ipAdress, sessionString, DataPgEvidence.PGName.Estimate.EstimateInp, DataPgEvidence.geOperationType.Insert, "NO:" + no.ToString() + ",ID:" + id.ToString()); break; case 2: svcPgEvidence.gAddEvidence(ExCast.zCInt(HttpContext.Current.Session[ExSession.EVIDENCE_SAVE_FLG]), companyId, userId, ipAdress, sessionString, DataPgEvidence.PGName.Estimate.EstimateInp, DataPgEvidence.geOperationType.Delete, "NO:" + no.ToString() + ",ID:" + id.ToString()); break; default: break; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".UpdateEstimate(Add Evidence)", ex); return "UpdateEstimate(Add Evidence) : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message; } #endregion #region Return if (type == 1 && EstimateNo == 0) { return "Auto Insert success : " + "見積番号 : " + no.ToString().ToString() + "で登録しました。"; } else { return ""; } #endregion }
public EntityEstimateH GetEstimateH(string random, long EstimateIDFrom, long EstimateIDTo) { EntityEstimateH entity = null; #region 認証処理 string companyId = ""; string groupId = ""; string userId = ""; string ipAdress = ""; string sessionString = ""; int idFigureCustomer = 0; try { companyId = ExCast.zCStr(HttpContext.Current.Session[ExSession.COMPANY_ID]); groupId = ExCast.zCStr(HttpContext.Current.Session[ExSession.GROUP_ID]); userId = ExCast.zCStr(HttpContext.Current.Session[ExSession.USER_ID]); ipAdress = ExCast.zCStr(HttpContext.Current.Session[ExSession.IP_ADRESS]); sessionString = ExCast.zCStr(HttpContext.Current.Session[ExSession.SESSION_RANDOM_STR]); idFigureCustomer = ExCast.zCInt(HttpContext.Current.Session[ExSession.ID_FIGURE_CUSTOMER]); string _message = ExSession.SessionUserUniqueCheck(random, ExCast.zCStr(HttpContext.Current.Session[ExSession.SESSION_RANDOM_STR]), ExCast.zCInt(HttpContext.Current.Session[ExSession.USER_ID])); if (_message != "") { entity = new EntityEstimateH(); entity.message = _message; return entity; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".GetEstimateH(認証処理)", ex); entity = new EntityEstimateH(); entity.message = CLASS_NM + ".GetEstimateH : 認証処理に失敗しました。" + Environment.NewLine + ex.Message.ToString(); return entity; } #endregion StringBuilder sb; DataTable dt; ExMySQLData db; try { db = ExSession.GetSessionDb(ExCast.zCInt(HttpContext.Current.Session[ExSession.USER_ID]), ExCast.zCStr(HttpContext.Current.Session[ExSession.SESSION_RANDOM_STR])); sb = new StringBuilder(); #region SQL sb.Append("SELECT T.COMPANY_ID " + Environment.NewLine); sb.Append(" ,T.GROUP_ID " + Environment.NewLine); sb.Append(" ,T.ID " + Environment.NewLine); sb.Append(" ,lpad(CAST(T.NO as char), 10, '0') AS NO" + Environment.NewLine); sb.Append(" ,T.STATE " + Environment.NewLine); sb.Append(" ,date_format(T.ESTIMATE_YMD , " + ExEscape.SQL_YMD + ") AS ESTIMATE_YMD" + Environment.NewLine); sb.Append(" ,T.PERSON_ID " + Environment.NewLine); sb.Append(" ,T.CUSTOMER_ID " + Environment.NewLine); sb.Append(" ,CS.NAME AS CUSTOMER_NAME " + Environment.NewLine); sb.Append(" ,T.TAX_CHANGE_ID " + Environment.NewLine); sb.Append(" ,NM4.DESCRIPTION AS TAX_CHANGE_NAME " + Environment.NewLine); sb.Append(" ,T.BUSINESS_DIVISION_ID " + Environment.NewLine); sb.Append(" ,NM5.DESCRIPTION AS BUSINESS_DIVISION_NAME " + Environment.NewLine); sb.Append(" ,T.SUPPLIER_ID " + Environment.NewLine); sb.Append(" ,SU.NAME AS SUPPLIER_NAME " + Environment.NewLine); sb.Append(" ,date_format(T.SUPPLY_YMD , " + ExEscape.SQL_YMD + ") AS SUPPLY_YMD" + Environment.NewLine); sb.Append(" ,date_format(T.TIME_LIMIT_YMD , " + ExEscape.SQL_YMD + ") AS TIME_LIMIT_YMD" + Environment.NewLine); sb.Append(" ,T.SUM_ENTER_NUMBER " + Environment.NewLine); sb.Append(" ,T.SUM_CASE_NUMBER " + Environment.NewLine); sb.Append(" ,T.SUM_NUMBER " + Environment.NewLine); sb.Append(" ,T.SUM_UNIT_PRICE " + Environment.NewLine); sb.Append(" ,T.SUM_SALES_COST " + Environment.NewLine); sb.Append(" ,T.SUM_TAX " + Environment.NewLine); sb.Append(" ,T.SUM_NO_TAX_PRICE " + Environment.NewLine); sb.Append(" ,T.SUM_PRICE " + Environment.NewLine); sb.Append(" ,T.SUM_PROFITS " + Environment.NewLine); sb.Append(" ,T.PROFITS_PERCENT " + Environment.NewLine); sb.Append(" ,CS2.CREDIT_LIMIT_PRICE " + Environment.NewLine); sb.Append(" ,CS2.SALES_CREDIT_PRICE " + Environment.NewLine); sb.Append(" ,CS.UNIT_KIND_ID " + Environment.NewLine); sb.Append(" ,CS2.PRICE_FRACTION_PROC_ID " + Environment.NewLine); sb.Append(" ,CS2.TAX_FRACTION_PROC_ID " + Environment.NewLine); sb.Append(" ,CS.INVOICE_ID " + Environment.NewLine); sb.Append(" ,CS2.NAME AS INVOICE_NAME " + Environment.NewLine); sb.Append(" ,CS.CREDIT_RATE " + Environment.NewLine); sb.Append(" ,T.MEMO " + Environment.NewLine); sb.Append(" ,T.UPDATE_PERSON_ID " + Environment.NewLine); sb.Append(" ,PS.NAME AS UPDATE_PERSON_NM " + Environment.NewLine); sb.Append(" ,date_format(T.UPDATE_DATE , " + ExEscape.SQL_YMD + ") AS UPDATE_DATE" + Environment.NewLine); sb.Append(" ,T.UPDATE_TIME " + Environment.NewLine); sb.Append(" FROM T_ESTIMATE_H AS T" + Environment.NewLine); #region Join // 更新担当者 sb.Append(" LEFT JOIN M_PERSON AS PS" + Environment.NewLine); sb.Append(" ON PS.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND PS.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND PS.COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND PS.GROUP_ID = " + groupId + Environment.NewLine); sb.Append(" AND PS.ID = T.PERSON_ID" + Environment.NewLine); // 得意先 sb.Append(" LEFT JOIN M_CUSTOMER AS CS" + Environment.NewLine); sb.Append(" ON CS.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND CS.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND CS.COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND T.CUSTOMER_ID = CS.ID" + Environment.NewLine); // 請求先 sb.Append(" LEFT JOIN M_CUSTOMER AS CS2" + Environment.NewLine); sb.Append(" ON CS2.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND CS2.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND CS2.COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND CS2.ID = CS.INVOICE_ID" + Environment.NewLine); // 税転換 sb.Append(" LEFT JOIN SYS_M_NAME AS NM4" + Environment.NewLine); sb.Append(" ON NM4.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND NM4.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND NM4.DIVISION_ID = " + (int)CommonUtl.geNameKbn.TAX_CHANGE_ID + Environment.NewLine); sb.Append(" AND T.TAX_CHANGE_ID = NM4.ID" + Environment.NewLine); // 取引区分 sb.Append(" LEFT JOIN SYS_M_NAME AS NM5" + Environment.NewLine); sb.Append(" ON NM5.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND NM5.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND NM5.DIVISION_ID = " + (int)CommonUtl.geNameKbn.BUSINESS_DIVISION_ID + Environment.NewLine); sb.Append(" AND T.BUSINESS_DIVISION_ID = NM5.ID" + Environment.NewLine); // 納入先 sb.Append(" LEFT JOIN M_SUPPLIER AS SU" + Environment.NewLine); sb.Append(" ON SU.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND SU.DISPLAY_FLG = 1 " + Environment.NewLine); sb.Append(" AND SU.COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND T.CUSTOMER_ID = SU.CUSTOMER_ID" + Environment.NewLine); sb.Append(" AND T.SUPPLIER_ID = SU.ID" + Environment.NewLine); #endregion sb.Append(" WHERE T.COMPANY_ID = " + companyId + Environment.NewLine); sb.Append(" AND T.GROUP_ID = " + groupId + Environment.NewLine); sb.Append(" AND T.DELETE_FLG = 0 " + Environment.NewLine); sb.Append(" AND T.NO >= " + EstimateIDFrom.ToString() + Environment.NewLine); sb.Append(" AND T.NO <= " + EstimateIDTo.ToString() + Environment.NewLine); sb.Append(" ORDER BY T.COMPANY_ID " + Environment.NewLine); sb.Append(" ,T.GROUP_ID " + Environment.NewLine); sb.Append(" ,T.ESTIMATE_YMD DESC " + Environment.NewLine); sb.Append(" ,T.NO DESC " + Environment.NewLine); sb.Append(" LIMIT 0, 1"); #endregion dt = db.GetDataTable(sb.ToString()); if (dt.DefaultView.Count > 0) { entity = new EntityEstimateH(); // 排他制御 DataPgLock.geLovkFlg lockFlg = DataPgLock.geLovkFlg.UnLock; string strErr = DataPgLock.SetLockPg(companyId, userId, PG_NM, groupId + "-" + ExCast.zNumZeroNothingFormat(EstimateIDFrom.ToString()), ipAdress, db, out lockFlg); if (strErr != "") { entity.message = CLASS_NM + ".GetCommodity : 排他制御(ロック情報取得)に失敗しました。" + Environment.NewLine + strErr; } #region Set Entity entity.id = ExCast.zCLng(dt.DefaultView[0]["ID"]); entity.no = ExCast.zCLng(dt.DefaultView[0]["NO"]); entity.state = ExCast.zCInt(dt.DefaultView[0]["STATE"]); entity.estimate_ymd = ExCast.zDateNullToDefault(dt.DefaultView[0]["ESTIMATE_YMD"]); entity.customer_id = ExCast.zFormatForID(dt.DefaultView[0]["CUSTOMER_ID"], idFigureCustomer); entity.customer_name = ExCast.zCStr(dt.DefaultView[0]["CUSTOMER_NAME"]); entity.tax_change_id = ExCast.zCInt(dt.DefaultView[0]["TAX_CHANGE_ID"]); entity.tax_change_name = ExCast.zCStr(dt.DefaultView[0]["TAX_CHANGE_NAME"]); entity.business_division_id = ExCast.zCInt(dt.DefaultView[0]["BUSINESS_DIVISION_ID"]); entity.business_division_name = ExCast.zCStr(dt.DefaultView[0]["BUSINESS_DIVISION_NAME"]); entity.supplier_id = ExCast.zFormatForID(dt.DefaultView[0]["SUPPLIER_ID"], idFigureCustomer); entity.supplier_name = ExCast.zCStr(dt.DefaultView[0]["SUPPLIER_NAME"]); entity.supply_ymd = ExCast.zDateNullToDefault(dt.DefaultView[0]["SUPPLY_YMD"]); entity.time_limit_ymd = ExCast.zDateNullToDefault(dt.DefaultView[0]["TIME_LIMIT_YMD"]); entity.sum_enter_number = ExCast.zCDbl(dt.DefaultView[0]["SUM_ENTER_NUMBER"]); entity.sum_case_number = ExCast.zCDbl(dt.DefaultView[0]["SUM_CASE_NUMBER"]); entity.sum_number = ExCast.zCDbl(dt.DefaultView[0]["SUM_NUMBER"]); entity.sum_unit_price = ExCast.zCDbl(dt.DefaultView[0]["SUM_UNIT_PRICE"]); entity.sum_sales_cost = ExCast.zCDbl(dt.DefaultView[0]["SUM_SALES_COST"]); entity.sum_tax = ExCast.zCDbl(dt.DefaultView[0]["SUM_TAX"]); entity.sum_no_tax_price = ExCast.zCDbl(dt.DefaultView[0]["SUM_NO_TAX_PRICE"]); entity.sum_price = ExCast.zCDbl(dt.DefaultView[0]["SUM_PRICE"]); entity.sum_profits = ExCast.zCDbl(dt.DefaultView[0]["SUM_PROFITS"]); entity.profits_percent = ExCast.zCDbl(dt.DefaultView[0]["PROFITS_PERCENT"]); entity.credit_limit_price = ExCast.zCDbl(dt.DefaultView[0]["CREDIT_LIMIT_PRICE"]); entity.sales_credit_price = ExCast.zCDbl(dt.DefaultView[0]["SALES_CREDIT_PRICE"]); entity.unit_kind_id = ExCast.zCInt(dt.DefaultView[0]["UNIT_KIND_ID"]); entity.price_fraction_proc_id = ExCast.zCInt(dt.DefaultView[0]["PRICE_FRACTION_PROC_ID"]); entity.tax_fraction_proc_id = ExCast.zCInt(dt.DefaultView[0]["TAX_FRACTION_PROC_ID"]); entity.invoice_id = ExCast.zCStr(dt.DefaultView[0]["INVOICE_ID"]); entity.invoice_name = ExCast.zCStr(dt.DefaultView[0]["INVOICE_NAME"]); entity.credit_rate = ExCast.zCInt(dt.DefaultView[0]["CREDIT_RATE"]); entity.memo = ExCast.zCStr(dt.DefaultView[0]["MEMO"]); entity.update_person_id = ExCast.zCInt(dt.DefaultView[0]["PERSON_ID"]); entity.update_person_nm = ExCast.zCStr(dt.DefaultView[0]["UPDATE_PERSON_NM"]); entity.lock_flg = (int)lockFlg; // 受注計上済チェック if (DataExists.IsExistData(db, companyId, groupId, "T_ORDER_H", "ESTIMATENO", entity.no.ToString(), CommonUtl.geStrOrNumKbn.Number)) { entity.order_allocation_flg = 1; } // 売上計上済チェック if (DataExists.IsExistData(db, companyId, groupId, "T_SALES_H", "ESTIMATENO", entity.no.ToString(), CommonUtl.geStrOrNumKbn.Number)) { entity.sales_allocation_flg = 1; } #endregion } else { entity = null; } } catch (Exception ex) { CommonUtl.ExLogger.Error(CLASS_NM + ".GetEstimateH", ex); entity = new EntityEstimateH(); entity.message = CLASS_NM + ".GetEstimateH : 予期せぬエラーが発生しました。" + Environment.NewLine + ex.Message.ToString(); } finally { db = null; } svcPgEvidence.gAddEvidence(ExCast.zCInt(HttpContext.Current.Session[ExSession.EVIDENCE_SAVE_FLG]), companyId, userId, ipAdress, sessionString, DataPgEvidence.PGName.Estimate.EstimateInp, DataPgEvidence.geOperationType.Select, "NO:" + EstimateIDFrom.ToString() + ",NO:" + EstimateIDTo.ToString()); return entity; }