/// <summary> /// Update 2 - Engineer/Subcontractors and Subcontractors /// </summary> public void Update2() { ProjectSubcontractorGateway projectSubcontractorGateway = new ProjectSubcontractorGateway(Data); DataTable EngineerSubcontractorsChanges = Table.GetChanges(); DataTable subcontractorsChanges = projectSubcontractorGateway.Table.GetChanges(); if ((EngineerSubcontractorsChanges == null) && (subcontractorsChanges == null)) return; try { DB.Open(); DB.BeginTransaction(); Adapter.InsertCommand.Transaction = DB.Transaction; Adapter.UpdateCommand.Transaction = DB.Transaction; Adapter.DeleteCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; if ((EngineerSubcontractorsChanges != null) && (EngineerSubcontractorsChanges.Rows.Count > 0)) { Adapter.Update(EngineerSubcontractorsChanges); } if ((subcontractorsChanges != null) && (subcontractorsChanges.Rows.Count > 0)) { projectSubcontractorGateway.Adapter.Update(subcontractorsChanges); } DB.CommitTransaction(); } catch (DBConcurrencyException dBConcurrencyException) { DB.RollbackTransaction(); throw new Exception("Concurrency error: Another user already updated the data you are working on. Your operation has been cancelled.", dBConcurrencyException); } catch (SqlException sqlException) { DB.RollbackTransaction(); byte severityLevel = sqlException.Class; if (severityLevel <= 16) { throw new Exception("Low severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } if ((severityLevel >= 17) && (severityLevel <= 19)) { throw new Exception("Mid severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } if (severityLevel >= 20) { throw new Exception("High severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } } catch (Exception e) { DB.RollbackTransaction(); throw new Exception("Unknow error. Your operation has been cancelled.", e); } finally { DB.Close(); } }
// //////////////////////////////////////////////////////////////////////// // EVENTS // protected void Page_Load(object sender, EventArgs e) { // Register client scripts this.RegisterClientScripts(); if (!IsPostBack) { // Security check if (!(Convert.ToBoolean(Session["sgLFS_PROJECTS_VIEW"]) && Convert.ToBoolean(Session["sgLFS_PROJECTS_EDIT"]))) { Response.Redirect("./../../error_page.aspx?error=" + "You are not authorized to view this page. Contact your system administrator."); } // Validate query string if (((string)Request.QueryString["source_page"] == null) || ((string)Request.QueryString["project_id"] == null)) { Response.Redirect("./../../error_page.aspx?error=" + "Invalid query string in project_edit.aspx"); } // Tag page hdfCompanyId.Value = Session["companyID"].ToString(); hdfProjectId.Value = Request.QueryString["project_id"]; hdfLoginId.Value = Convert.ToInt32(Session["loginID"]).ToString(); hdfDataChanged.Value = Request.QueryString["data_changed"]; hdfDataChangedMessage.Value = "Changes made to this project will not be saved."; // Prepare initial data Session.Remove("projectNotesDummy"); Session.Remove("projectServicesDummy"); Session.Remove("projectTypeOfWorkFunctionClassificationDummy"); Session.Remove("projectJobClassClassificationDummy"); Session.Remove("projectBudgetDummy"); Session.Remove("subcontractorsBudgetDummy"); Session.Remove("hotelsBudgetDummy"); Session.Remove("bondingsBudgetDummy"); Session.Remove("insurancesBudgetDummy"); Session.Remove("otherCostsBudgetDummy"); Session["fairWage"] = "None"; // ... Set initial tab if ((string)Session["dialogOpenedProjects"] != "1") { hdfActiveTab.Value = Request.QueryString["active_tab"]; } else { hdfActiveTab.Value = (string)Session["activeTabProjects"]; } // ... For Library if (Session["lfsLibraryTDS"] != null) { libraryTDS = (LibraryTDS)Session["lfsLibraryTDS"]; } else { libraryTDS = new LibraryTDS(); } // If coming from // ... projects2.aspx or project_add.aspx if (Request.QueryString["source_page"] == "projects2.aspx" || Request.QueryString["source_page"] == "project_add.aspx") { // Store Navigator State, Update control and Origin StoreNavigatorState(); ViewState["update"] = "no"; ViewState["origin"] = "navigator"; // Get Project Id int projectId = int.Parse(hdfProjectId.Value); // ... Attachment control if (Session["fromAttachment"] != null) { if (Session["fromAttachment"].ToString() == "yes") { // Restore dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectNavigatorTDS = (ProjectNavigatorTDS)Session["projectNavigatorTDS"]; projectNotes = (ProjectNavigatorTDS.ProjectNotesDataTable)Session["projectNotes"]; projectServices = (ProjectNavigatorTDS.ProjectServiceDataTable)Session["projectServices"]; projectJobClassClassification = (ProjectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATEDataTable)Session["projectJobClassClassification"]; projectTypeOfWorkFunctionClassification = (ProjectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGEDataTable)Session["projectTypeOfWorkFunctionClassification"]; projectBudget = (ProjectNavigatorTDS.ProjectWorkFunctionBudgetDataTable)Session["projectBudget"]; unitsBudget = (ProjectNavigatorTDS.ProjectUnitsBudgetDataTable)Session["unitsBudget"]; materialsBudget = (ProjectNavigatorTDS.ProjectMaterialsBudgetDataTable)Session["materialsBudget"]; subcontractorsBudget = (ProjectNavigatorTDS.ProjectSubcontractorsBudgetDataTable)Session["subcontractorsBudget"]; hotelsBudget = (ProjectNavigatorTDS.ProjectHotelsBudgetDataTable)Session["hotelsBudget"]; bondingsBudget = (ProjectNavigatorTDS.ProjectBondingsBudgetDataTable)Session["bondingsBudget"]; insurancesBudget = (ProjectNavigatorTDS.ProjectInsurancesBudgetDataTable)Session["insurancesBudget"]; otherCostsBudget = (ProjectNavigatorTDS.ProjectOtherCostsBudgetDataTable)Session["otherCostsBudget"]; } Session.Remove("fromAttachment"); } else { // Get dataset projectTDS = new ProjectTDS(); projectNavigatorTDS = new ProjectNavigatorTDS(); projectNotes = new ProjectNavigatorTDS.ProjectNotesDataTable(); projectServices = new ProjectNavigatorTDS.ProjectServiceDataTable(); projectTypeOfWorkFunctionClassification = new ProjectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGEDataTable(); projectJobClassClassification = new ProjectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATEDataTable(); projectBudget = new ProjectNavigatorTDS.ProjectWorkFunctionBudgetDataTable(); unitsBudget = new ProjectNavigatorTDS.ProjectUnitsBudgetDataTable(); materialsBudget = new ProjectNavigatorTDS.ProjectMaterialsBudgetDataTable(); subcontractorsBudget = new ProjectNavigatorTDS.ProjectSubcontractorsBudgetDataTable(); hotelsBudget = new ProjectNavigatorTDS.ProjectHotelsBudgetDataTable(); bondingsBudget = new ProjectNavigatorTDS.ProjectBondingsBudgetDataTable(); insurancesBudget = new ProjectNavigatorTDS.ProjectInsurancesBudgetDataTable(); otherCostsBudget = new ProjectNavigatorTDS.ProjectOtherCostsBudgetDataTable(); // Get General Data ProjectGateway projectGatewayForLoad = new ProjectGateway(projectTDS); projectGatewayForLoad.LoadByProjectId(projectId); // Get job info ProjectJobInfoGateway projectJobInfoGateway = new ProjectJobInfoGateway(projectNavigatorTDS); projectJobInfoGateway.LoadAllByProjectId(projectId); // Get Sale/Billing/Pricing ProjectSaleBillingPricingGateway projectSaleBillingPricingGatewayForLoad = new ProjectSaleBillingPricingGateway(projectTDS); projectSaleBillingPricingGatewayForLoad.LoadAllByProjectId(projectId); // ... Get Sale/Billing/Pricing - Services ProjectNavigatorProjectService projectNavigatorProjectService = new ProjectNavigatorProjectService(projectNavigatorTDS); projectNavigatorProjectService.LoadAllByProjectId(projectId); projectNavigatorProjectService.UpdateForLoad(); // Get Costing Updates ProjectCostingUpdatesGateway projectCostingUpdatesGatewayForLoad = new ProjectCostingUpdatesGateway(projectTDS); projectCostingUpdatesGatewayForLoad.LoadByProjectId(projectId); // Get Project Terms ProjectTermsPOGateway projectTermsPOGatewayForLoad = new ProjectTermsPOGateway(projectTDS); projectTermsPOGatewayForLoad.LoadByProjectId(projectId); // Get Technical ProjectTechnicalGateway projectTechnicalGatewayForLoad = new ProjectTechnicalGateway(projectTDS); projectTechnicalGatewayForLoad.LoadByProjectId(projectId); // Get Engineer Subcontractors ProjectEngineerSubcontractorsGateway projectEngineerSubcontractorsGatewayForLoad = new ProjectEngineerSubcontractorsGateway(projectTDS); projectEngineerSubcontractorsGatewayForLoad.LoadAllByProjectId(projectId); // ... Get Subcontractors ProjectSubcontractorGateway projectSubcontractorGatewayForLoad = new ProjectSubcontractorGateway(projectTDS); projectSubcontractorGatewayForLoad.LoadAllByProjectId(projectId); // Cost Exceptions // ... Get Type Of Work & Function Classification ProjectNavigatorProjectWorkFunctionFairWage projectNavigatorProjectWorkFunctionFairWage = new ProjectNavigatorProjectWorkFunctionFairWage(projectNavigatorTDS); projectNavigatorProjectWorkFunctionFairWage.LoadAllByProjectId(projectId); // ... Get Job Class Classification ProjectNavigatorProjectJobClassTypeRate projectNavigatorProjectJobClassTypeRate = new ProjectNavigatorProjectJobClassTypeRate(projectNavigatorTDS); projectNavigatorProjectJobClassTypeRate.LoadAllByProjectId(projectId); // Get Budget ProjectNavigatorProjectWorkFunctionBudget projectNavigatorProjectWorkFunctionBudget = new ProjectNavigatorProjectWorkFunctionBudget(projectNavigatorTDS); projectNavigatorProjectWorkFunctionBudget.LoadAllByProjectId(projectId); // Get Units Budget ProjectNavigatorProjectUnitsBudget projectNavigatorProjectUnitsBudget = new ProjectNavigatorProjectUnitsBudget(projectNavigatorTDS); projectNavigatorProjectUnitsBudget.LoadAllByProjectId(projectId); // Get Materials Budget ProjectNavigatorProjectMaterialsBudget projectNavigatorProjectMaterialsBudget = new ProjectNavigatorProjectMaterialsBudget(projectNavigatorTDS); projectNavigatorProjectMaterialsBudget.LoadAllByProjectId(projectId); // Get Subcontractors Budget ProjectNavigatorProjectSubcontractorsBudget projectNavigatorProjectSubcontractorsBudget = new ProjectNavigatorProjectSubcontractorsBudget(projectNavigatorTDS); projectNavigatorProjectSubcontractorsBudget.LoadAllByProjectId(projectId); // Get Hotels Budget ProjectNavigatorProjectHotelsBudget projectNavigatorProjectHotelsBudget = new ProjectNavigatorProjectHotelsBudget(projectNavigatorTDS); projectNavigatorProjectHotelsBudget.LoadAllByProjectId(projectId); // Get Bondings Budget ProjectNavigatorProjectBondingsBudget projectNavigatorProjectBondingsBudget = new ProjectNavigatorProjectBondingsBudget(projectNavigatorTDS); projectNavigatorProjectBondingsBudget.LoadAllByProjectId(projectId); // Get Insurances Budget ProjectNavigatorProjectInsurancesBudget projectNavigatorProjectInsurancesBudget = new ProjectNavigatorProjectInsurancesBudget(projectNavigatorTDS); projectNavigatorProjectInsurancesBudget.LoadAllByProjectId(projectId); // Get Other Costs Budget ProjectNavigatorProjectOtherCostsBudget projectNavigatorProjectOtherCostsBudget = new ProjectNavigatorProjectOtherCostsBudget(projectNavigatorTDS); projectNavigatorProjectOtherCostsBudget.LoadAllByProjectId(projectId); // Get Notes ProjectNavigatorProjectNotes projectNavigatorProjectNotes = new ProjectNavigatorProjectNotes(projectNavigatorTDS); projectNavigatorProjectNotes.LoadAllByProjectId(projectId); // Store dataset Session["lfsProjectTDS"] = projectTDS; Session["projectNavigatorTDS"] = projectNavigatorTDS; Session["projectNotes"] = projectNavigatorTDS.ProjectNotes; Session["projectServices"] = projectNavigatorTDS.ProjectService; Session["projectTypeOfWorkFunctionClassification"] = projectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGE; Session["projectJobClassClassification"] = projectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATE; Session["projectBudget"] = projectNavigatorTDS.ProjectWorkFunctionBudget; Session["unitsBudget"] = projectNavigatorTDS.ProjectUnitsBudget; Session["materialsBudget"] = projectNavigatorTDS.ProjectMaterialsBudget; Session["subcontractorsBudget"] = projectNavigatorTDS.ProjectSubcontractorsBudget; Session["hotelsBudget"] = projectNavigatorTDS.ProjectHotelsBudget; Session["bondingsBudget"] = projectNavigatorTDS.ProjectBondingsBudget; Session["insurancesBudget"] = projectNavigatorTDS.ProjectInsurancesBudget; Session["otherCostsBudget"] = projectNavigatorTDS.ProjectOtherCostsBudget; } //grdNotes.DataBind(); //grdServices.DataBind(); grdTypeOfWorkFunctionClassification.DataBind(); grdJobClassClassification.DataBind(); grdBudget.DataBind(); /*grdSubcontractorsBudget.DataBind(); grdHotelsBudget.DataBind(); grdBondingsBudget.DataBind(); grdInsurancesBudget.DataBind();*/ grdOtherCostsBudget.DataBind(); } // ... project_summary.aspx or project_edit.aspx if ((Request.QueryString["source_page"] == "project_summary.aspx") || (Request.QueryString["source_page"] == "project_edit.aspx") || (Request.QueryString["source_page"] == "lm")) { // Store Navigator State, update control and origin StoreNavigatorState(); ViewState["update"] = Request.QueryString["update"]; ViewState["origin"] = Request.QueryString["origin"]; //summary // Restore dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectNavigatorTDS = (ProjectNavigatorTDS)Session["projectNavigatorTDS"]; projectNotes = (ProjectNavigatorTDS.ProjectNotesDataTable)Session["projectNotes"]; projectServices = (ProjectNavigatorTDS.ProjectServiceDataTable)Session["projectServices"]; projectJobClassClassification = (ProjectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATEDataTable)Session["projectJobClassClassification"]; projectTypeOfWorkFunctionClassification = (ProjectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGEDataTable)Session["projectTypeOfWorkFunctionClassification"]; projectBudget = (ProjectNavigatorTDS.ProjectWorkFunctionBudgetDataTable)Session["projectBudget"]; unitsBudget = (ProjectNavigatorTDS.ProjectUnitsBudgetDataTable)Session["unitsBudget"]; materialsBudget = (ProjectNavigatorTDS.ProjectMaterialsBudgetDataTable)Session["materialsBudget"]; subcontractorsBudget = (ProjectNavigatorTDS.ProjectSubcontractorsBudgetDataTable)Session["subcontractorsBudget"]; hotelsBudget = (ProjectNavigatorTDS.ProjectHotelsBudgetDataTable)Session["hotelsBudget"]; bondingsBudget = (ProjectNavigatorTDS.ProjectBondingsBudgetDataTable)Session["bondingsBudget"]; insurancesBudget = (ProjectNavigatorTDS.ProjectInsurancesBudgetDataTable)Session["insurancesBudget"]; otherCostsBudget = (ProjectNavigatorTDS.ProjectOtherCostsBudgetDataTable)Session["otherCostsBudget"]; // Get Project Id int projectId = int.Parse(hdfProjectId.Value); if (ViewState["update"].ToString().Trim() == "yes") { // Get General Data ProjectGateway projectGatewayForLoad = new ProjectGateway(projectTDS); projectGatewayForLoad.LoadByProjectId(projectId); // Get job info ProjectJobInfoGateway projectJobInfoGateway = new ProjectJobInfoGateway(projectNavigatorTDS); projectJobInfoGateway.LoadAllByProjectId(projectId); // Get Sale/Billing/Pricing ProjectSaleBillingPricingGateway projectSaleBillingPricingGatewayForLoad = new ProjectSaleBillingPricingGateway(projectTDS); projectSaleBillingPricingGatewayForLoad.LoadAllByProjectId(projectId); // ... Get Sale/Billing/Pricing - Services ProjectNavigatorProjectService projectNavigatorProjectService = new ProjectNavigatorProjectService(projectNavigatorTDS); projectNavigatorProjectService.LoadAllByProjectId(projectId); projectNavigatorProjectService.UpdateForLoad(); // Get Costing Updates ProjectCostingUpdatesGateway projectCostingUpdatesGatewayForLoad = new ProjectCostingUpdatesGateway(projectTDS); projectCostingUpdatesGatewayForLoad.LoadByProjectId(projectId); // Get Project Terms ProjectTermsPOGateway projectTermsPOGatewayForLoad = new ProjectTermsPOGateway(projectTDS); projectTermsPOGatewayForLoad.LoadByProjectId(projectId); // Get Technical ProjectTechnicalGateway projectTechnicalGatewayForLoad = new ProjectTechnicalGateway(projectTDS); projectTechnicalGatewayForLoad.LoadByProjectId(projectId); // Get Engineer Subcontractors ProjectEngineerSubcontractorsGateway projectEngineerSubcontractorsGatewayForLoad = new ProjectEngineerSubcontractorsGateway(projectTDS); projectEngineerSubcontractorsGatewayForLoad.LoadAllByProjectId(projectId); // ... Get Subcontractors ProjectSubcontractorGateway projectSubcontractorGatewayForLoad = new ProjectSubcontractorGateway(projectTDS); projectSubcontractorGatewayForLoad.LoadAllByProjectId(projectId); // Cost Exceptions // ... Get Type Of Work & Function Classification ProjectNavigatorProjectWorkFunctionFairWage projectNavigatorProjectWorkFunctionFairWage = new ProjectNavigatorProjectWorkFunctionFairWage(projectNavigatorTDS); projectNavigatorProjectWorkFunctionFairWage.LoadAllByProjectId(projectId); // ... Get Job Class Classification ProjectNavigatorProjectJobClassTypeRate projectNavigatorProjectJobClassTypeRate = new ProjectNavigatorProjectJobClassTypeRate(projectNavigatorTDS); projectNavigatorProjectJobClassTypeRate.LoadAllByProjectId(projectId); // Get Budget ProjectNavigatorProjectWorkFunctionBudget projectNavigatorProjectWorkFunctionBudget = new ProjectNavigatorProjectWorkFunctionBudget(projectNavigatorTDS); projectNavigatorProjectWorkFunctionBudget.LoadAllByProjectId(projectId); // Get Units Budget ProjectNavigatorProjectUnitsBudget projectNavigatorProjectUnitsBudget = new ProjectNavigatorProjectUnitsBudget(projectNavigatorTDS); projectNavigatorProjectUnitsBudget.LoadAllByProjectId(projectId); // Get Materials Budget ProjectNavigatorProjectMaterialsBudget projectNavigatorProjectMaterialsBudget = new ProjectNavigatorProjectMaterialsBudget(projectNavigatorTDS); projectNavigatorProjectMaterialsBudget.LoadAllByProjectId(projectId); // Get Subcontractors Budget ProjectNavigatorProjectSubcontractorsBudget projectNavigatorProjectSubcontractorsBudget = new ProjectNavigatorProjectSubcontractorsBudget(projectNavigatorTDS); projectNavigatorProjectSubcontractorsBudget.LoadAllByProjectId(projectId); // Get Hotels Budget ProjectNavigatorProjectHotelsBudget projectNavigatorProjectHotelsBudget = new ProjectNavigatorProjectHotelsBudget(projectNavigatorTDS); projectNavigatorProjectHotelsBudget.LoadAllByProjectId(projectId); // Get Bondings Budget ProjectNavigatorProjectBondingsBudget projectNavigatorProjectBondingsBudget = new ProjectNavigatorProjectBondingsBudget(projectNavigatorTDS); projectNavigatorProjectBondingsBudget.LoadAllByProjectId(projectId); // Get Insurances Budget ProjectNavigatorProjectInsurancesBudget projectNavigatorProjectInsurancesBudget = new ProjectNavigatorProjectInsurancesBudget(projectNavigatorTDS); projectNavigatorProjectInsurancesBudget.LoadAllByProjectId(projectId); // Get Other Costs Budget ProjectNavigatorProjectOtherCostsBudget projectNavigatorProjectOtherCostsBudget = new ProjectNavigatorProjectOtherCostsBudget(projectNavigatorTDS); projectNavigatorProjectOtherCostsBudget.LoadAllByProjectId(projectId); // Get Notes ProjectNavigatorProjectNotes projectNavigatorProjectNotes = new ProjectNavigatorProjectNotes(projectNavigatorTDS); projectNavigatorProjectNotes.LoadAllByProjectId(projectId); //grdNotes.DataBind(); //grdServices.DataBind(); grdTypeOfWorkFunctionClassification.DataBind(); grdJobClassClassification.DataBind(); grdBudget.DataBind(); /*grdSubcontractorsBudget.DataBind(); grdHotelsBudget.DataBind(); grdBondingsBudget.DataBind(); grdInsurancesBudget.DataBind();*/ grdOtherCostsBudget.DataBind(); // Store dataset Session["lfsProjectTDS"] = projectTDS; Session["projectNavigatorTDS"] = projectNavigatorTDS; Session["projectNotes"] = projectNavigatorTDS.ProjectNotes; Session["projectServices"] = projectNavigatorTDS.ProjectService; Session["projectTypeOfWorkFunctionClassification"] = projectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGE; Session["projectJobClassClassification"] = projectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATE; Session["projectBudget"] = projectNavigatorTDS.ProjectWorkFunctionBudget; Session["unitsBudget"] = projectNavigatorTDS.ProjectUnitsBudget; Session["materialsBudget"] = projectNavigatorTDS.ProjectMaterialsBudget; Session["subcontractorsBudget"] = projectNavigatorTDS.ProjectSubcontractorsBudget; Session["hotelsBudget"] = projectNavigatorTDS.ProjectHotelsBudget; Session["bondingsBudget"] = projectNavigatorTDS.ProjectBondingsBudget; Session["insurancesBudget"] = projectNavigatorTDS.ProjectInsurancesBudget; Session["otherCostsBudget"] = projectNavigatorTDS.ProjectOtherCostsBudget; } } // Data for current project ProjectGateway projectGateway = new ProjectGateway(projectTDS); // ... for project int currentProjectId = Int32.Parse(hdfProjectId.Value.ToString()); string name = projectGateway.GetName(currentProjectId); if (name.Length > 23) name = name.Substring(0, 20) + "..."; lblTitleProjectName.Text = name + " (" + projectGateway.GetProjectNumber(currentProjectId) + ")"; // ... for client int companyId = Int32.Parse(hdfCompanyId.Value); int currentClientId = projectGateway.GetClientID(Int32.Parse(hdfProjectId.Value.ToString())); CompaniesGateway companiesGateway = new CompaniesGateway(); companiesGateway.LoadAllByCompaniesId(currentClientId, companyId); lblTitleClientName.Text = "Client: " + companiesGateway.GetName(currentClientId); // Load Data LoadData(); // Store Dataset Session["lfsProjectTDS"] = projectTDS; //// ... For total cost at services //ProjectNavigatorProjectService projectNavigatorProjectServiceForCost = new ProjectNavigatorProjectService(projectNavigatorTDS); //tbxTotalCost.Text = Decimal.Round(projectNavigatorProjectServiceForCost.GetTotalCost(), 2).ToString(); } else { // Restore dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectNavigatorTDS = (ProjectNavigatorTDS)Session["projectNavigatorTDS"]; projectNotes = (ProjectNavigatorTDS.ProjectNotesDataTable)Session["projectNotes"]; projectServices = (ProjectNavigatorTDS.ProjectServiceDataTable)Session["projectServices"]; projectJobClassClassification = (ProjectNavigatorTDS.LFS_PROJECT_JOB_CLASS_TYPE_RATEDataTable)Session["projectJobClassClassification"]; projectTypeOfWorkFunctionClassification = (ProjectNavigatorTDS.LFS_PROJECT_WORK_FUNCTION_FAIR_WAGEDataTable)Session["projectTypeOfWorkFunctionClassification"]; projectBudget = (ProjectNavigatorTDS.ProjectWorkFunctionBudgetDataTable)Session["projectBudget"]; unitsBudget = (ProjectNavigatorTDS.ProjectUnitsBudgetDataTable)Session["unitsBudget"]; materialsBudget = (ProjectNavigatorTDS.ProjectMaterialsBudgetDataTable)Session["materialsBudget"]; subcontractorsBudget = (ProjectNavigatorTDS.ProjectSubcontractorsBudgetDataTable)Session["subcontractorsBudget"]; hotelsBudget = (ProjectNavigatorTDS.ProjectHotelsBudgetDataTable)Session["hotelsBudget"]; bondingsBudget = (ProjectNavigatorTDS.ProjectBondingsBudgetDataTable)Session["bondingsBudget"]; insurancesBudget = (ProjectNavigatorTDS.ProjectInsurancesBudgetDataTable)Session["insurancesBudget"]; otherCostsBudget = (ProjectNavigatorTDS.ProjectOtherCostsBudgetDataTable)Session["otherCostsBudget"]; tbxProjectNumber.DataBind(); if (Session["lfsLibraryTDS"] != null) { libraryTDS = (LibraryTDS)Session["lfsLibraryTDS"]; } else { libraryTDS = new LibraryTDS(); } } }
private void UpdateDatabase() { try { ProjectSubcontractorGateway projectSubcontractorGateway = new ProjectSubcontractorGateway(projectTDS); projectSubcontractorGateway.Update(); projectTDS.AcceptChanges(); Session["lfsProjectTDS"] = projectTDS; } catch (Exception ex) { string url = string.Format("./../../error_page.aspx?error={0}", ex.Message.Replace('\n', ' ')); Response.Redirect(url); } }
private void InsertProjectSubcontractor(int originalProjectId) { // ... Data for current project ProjectTDS projectTDSTemp = new ProjectTDS(); ProjectSubcontractorGateway projectSubcontractorGatewayTemp = new ProjectSubcontractorGateway(projectTDSTemp); projectSubcontractorGatewayTemp.LoadAllByProjectId(originalProjectId); ProjectSubcontractorGateway projectSubcontractorGateway = new ProjectSubcontractorGateway(projectTDS); projectSubcontractorGateway.LoadAllByProjectId(originalProjectId); // ... Definition of general variables ProjectSubcontractor projectSubcontractor = new ProjectSubcontractor(projectTDS); int refId; int subcontractorId; bool writtenQuote; bool surveyedSite; bool workedBefore; string role; bool agreement; string issues; bool purchaseOrder; bool insuranceCertificate; bool wsib; string molForm1000; bool deleted; int? royalties; foreach (ProjectTDS.LFS_PROJECT_SUBCONTRACTORRow row in projectTDSTemp.Tables["LFS_PROJECT_SUBCONTRACTOR"].Rows) { refId = row.RefID; subcontractorId = row.SubcontractorID; writtenQuote = row.WrittenQuote; surveyedSite = row.SurveyedSite; workedBefore = row.WorkedBefore; try { role = row.Role; } catch { role = ""; } agreement = row.Agreement; try { issues = row.Issues; } catch { issues = ""; } purchaseOrder = row.PurchaseOrder; insuranceCertificate = row.InsuranceCertificate; wsib = row.WSIB; try { molForm1000 = row.MOLForm1000; } catch { molForm1000 = ""; } deleted = row.Deleted; try {royalties = row.Royalties;} catch { royalties = null; } // ... Insert Subcontractors projectSubcontractor.Insert(0, refId, subcontractorId, writtenQuote, surveyedSite, workedBefore, role, agreement, issues, purchaseOrder, insuranceCertificate, wsib, molForm1000, deleted, Int32.Parse(hdfCompanyId.Value.Trim()), royalties); } }
/// <summary> /// Update4 - Duplicate proposal /// </summary> public void Update4() { ProjectCostingUpdatesGateway projectCostingUpdatesGateway = new ProjectCostingUpdatesGateway(Data); ProjectEngineerSubcontractorsGateway projectEngineerSubcontractorsGateway = new ProjectEngineerSubcontractorsGateway(Data); ProjectHistoryGateway projectHistoryGateway = new ProjectHistoryGateway(Data); ProjectNotesGateway projectNotesGateway = new ProjectNotesGateway(Data); ProjectSaleBillingPricingGateway projectSaleBillingPricingGateway = new ProjectSaleBillingPricingGateway(Data); ProjectServiceGateway projectServiceGateway = new ProjectServiceGateway(Data); ProjectSubcontractorGateway projectSubcontractorGateway = new ProjectSubcontractorGateway(Data); ProjectTechnicalGateway projectTechnicalGateway = new ProjectTechnicalGateway(Data); ProjectTermsPOGateway projectTermsPOGateway = new ProjectTermsPOGateway(Data); DataTable projectChanges = Table.GetChanges(); DataTable projectCostingUpdatesChanges = projectCostingUpdatesGateway.Table.GetChanges(); DataTable projectEngineerSubcontractorsChanges = projectEngineerSubcontractorsGateway.Table.GetChanges(); DataTable projectHistoryChanges = projectHistoryGateway.Table.GetChanges(); DataTable projectNotesChanges = projectNotesGateway.Table.GetChanges(); DataTable projectSaleBillingPricingChanges = projectSaleBillingPricingGateway.Table.GetChanges(); DataTable projectServiceChanges = projectServiceGateway.Table.GetChanges(); DataTable projectSubcontractorChanges = projectSubcontractorGateway.Table.GetChanges(); DataTable projectTechnicalChanges = projectTechnicalGateway.Table.GetChanges(); DataTable projectTermsPOChanges = projectTermsPOGateway.Table.GetChanges(); if ((projectChanges == null) && (projectCostingUpdatesChanges == null) && (projectEngineerSubcontractorsChanges == null) && (projectHistoryChanges == null) && (projectNotesChanges == null) && (projectSaleBillingPricingChanges == null) && (projectServiceChanges == null) && (projectSubcontractorChanges == null) && (projectTechnicalChanges == null) && (projectTermsPOChanges == null)) return; try { DB.Open(); DB.BeginTransaction(); Adapter.InsertCommand.Transaction = DB.Transaction; Adapter.UpdateCommand.Transaction = DB.Transaction; Adapter.DeleteCommand.Transaction = DB.Transaction; projectCostingUpdatesGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectCostingUpdatesGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectCostingUpdatesGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectEngineerSubcontractorsGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectEngineerSubcontractorsGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectEngineerSubcontractorsGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectHistoryGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectHistoryGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectHistoryGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectNotesGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectNotesGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectNotesGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectSaleBillingPricingGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectSaleBillingPricingGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectSaleBillingPricingGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectServiceGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectServiceGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectServiceGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectSubcontractorGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectTechnicalGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectTechnicalGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectTechnicalGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; projectTermsPOGateway.Adapter.InsertCommand.Transaction = DB.Transaction; projectTermsPOGateway.Adapter.UpdateCommand.Transaction = DB.Transaction; projectTermsPOGateway.Adapter.DeleteCommand.Transaction = DB.Transaction; if ((projectChanges != null) && (projectChanges.Rows.Count > 0)) { Adapter.Update(projectChanges); int newProjectId = DB.GetIdentCurrent("LFS_PROJECT", DB.Transaction); //Getting projectId for History table ProjectTDS.LFS_PROJECT_HISTORYRow rowHistory = ((ProjectTDS.LFS_PROJECT_HISTORYDataTable)projectHistoryGateway.Table).FindByProjectIDRefID(0, 1); rowHistory.ProjectID = newProjectId; projectHistoryChanges = projectHistoryGateway.Table.GetChanges(); //Getting projectId for Costing Updates table if (projectCostingUpdatesGateway.Table.Rows.Count > 0) { ProjectTDS.LFS_PROJECT_COSTING_UPDATESRow rowProjectCosting = ((ProjectTDS.LFS_PROJECT_COSTING_UPDATESDataTable)projectCostingUpdatesGateway.Table).FindByProjectID(0); rowProjectCosting.ProjectID = newProjectId; projectCostingUpdatesChanges = projectCostingUpdatesGateway.Table.GetChanges(); } //Getting projectId for Engineer Subcontractors table if (projectEngineerSubcontractorsGateway.Table.Rows.Count > 0) { ProjectTDS.LFS_PROJECT_ENGINEER_SUBCONTRACTORSRow rowEngineerSubcontractors = ((ProjectTDS.LFS_PROJECT_ENGINEER_SUBCONTRACTORSDataTable)projectEngineerSubcontractorsGateway.Table).FindByProjectID(0); rowEngineerSubcontractors.ProjectID = newProjectId; projectEngineerSubcontractorsChanges = projectEngineerSubcontractorsGateway.Table.GetChanges(); } //Getting projectId for Notes table foreach (ProjectTDS.LFS_PROJECT_NOTERow rowNotes in (ProjectTDS.LFS_PROJECT_NOTEDataTable)projectNotesGateway.Table) { if (rowNotes.ProjectID == 0) { rowNotes.ProjectID = newProjectId; } } projectNotesChanges = projectNotesGateway.Table.GetChanges(); //Getting projectId for SaleBillingPricing if (projectSaleBillingPricingGateway.Table.Rows.Count > 0) { ProjectTDS.LFS_PROJECT_SALE_BILLING_PRICINGRow rowSaleBillingPricing = ((ProjectTDS.LFS_PROJECT_SALE_BILLING_PRICINGDataTable)projectSaleBillingPricingGateway.Table).FindByProjectID(0); rowSaleBillingPricing.ProjectID = newProjectId; projectSaleBillingPricingChanges = projectSaleBillingPricingGateway.Table.GetChanges(); } //Getting projectId for Subcontractors foreach (ProjectTDS.LFS_PROJECT_SUBCONTRACTORRow rowSubcontractor in (ProjectTDS.LFS_PROJECT_SUBCONTRACTORDataTable)projectSubcontractorGateway.Table) { if (rowSubcontractor.ProjectID == 0) { rowSubcontractor.ProjectID = newProjectId; } } projectSubcontractorChanges = projectSubcontractorGateway.Table.GetChanges(); //Getting projectId for Services foreach (ProjectTDS.LFS_PROJECT_SERVICERow rowService in (ProjectTDS.LFS_PROJECT_SERVICEDataTable)projectServiceGateway.Table) { if (rowService.ProjectID == 0) { rowService.ProjectID = newProjectId; } } projectServiceChanges = projectServiceGateway.Table.GetChanges(); //Getting projectId for Technical if (projectTechnicalGateway.Table.Rows.Count > 0) { ProjectTDS.LFS_PROJECT_TECHNICALRow rowTechnical = ((ProjectTDS.LFS_PROJECT_TECHNICALDataTable)projectTechnicalGateway.Table).FindByProjectID(0); rowTechnical.ProjectID = newProjectId; projectTechnicalChanges = projectTechnicalGateway.Table.GetChanges(); } //Getting projectId for Terms if (projectTermsPOGateway.Table.Rows.Count > 0) { ProjectTDS.LFS_PROJECT_TERMSRow rowTerms = ((ProjectTDS.LFS_PROJECT_TERMSDataTable)projectTermsPOGateway.Table).FindByProjectID(0); rowTerms.ProjectID = newProjectId; projectTermsPOChanges = projectTermsPOGateway.Table.GetChanges(); } } if ((projectCostingUpdatesChanges != null) && (projectCostingUpdatesChanges.Rows.Count > 0)) { projectCostingUpdatesGateway.Adapter.Update(projectCostingUpdatesChanges); } if ((projectEngineerSubcontractorsChanges != null) && (projectEngineerSubcontractorsChanges.Rows.Count > 0)) { projectEngineerSubcontractorsGateway.Adapter.Update(projectEngineerSubcontractorsChanges); } if ((projectHistoryChanges != null) && (projectHistoryChanges.Rows.Count > 0)) { projectHistoryGateway.Adapter.Update(projectHistoryChanges); } if ((projectNotesChanges != null) && (projectNotesChanges.Rows.Count > 0)) { projectNotesGateway.Adapter.Update(projectNotesChanges); } if ((projectSaleBillingPricingChanges != null) && (projectSaleBillingPricingChanges.Rows.Count > 0)) { projectSaleBillingPricingGateway.Adapter.Update(projectSaleBillingPricingChanges); } if ((projectServiceChanges != null) && (projectServiceChanges.Rows.Count > 0)) { projectServiceGateway.Adapter.Update(projectServiceChanges); } if ((projectSubcontractorChanges != null) && (projectSubcontractorChanges.Rows.Count > 0)) { projectSubcontractorGateway.Adapter.Update(projectSubcontractorChanges); } if ((projectTechnicalChanges != null) && (projectTechnicalChanges.Rows.Count > 0)) { projectTechnicalGateway.Adapter.Update(projectTechnicalChanges); } if ((projectTermsPOChanges != null) && (projectTermsPOChanges.Rows.Count > 0)) { projectTermsPOGateway.Adapter.Update(projectTermsPOChanges); } DB.CommitTransaction(); } catch (DBConcurrencyException dBConcurrencyException) { DB.RollbackTransaction(); throw new Exception("Concurrency error: Another user already updated the data you are working on. Your operation has been cancelled.", dBConcurrencyException); } catch (SqlException sqlException) { DB.RollbackTransaction(); byte severityLevel = sqlException.Class; if (severityLevel <= 16) { throw new Exception("Low severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } if ((severityLevel >= 17) && (severityLevel <= 19)) { throw new Exception("Mid severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } if (severityLevel >= 20) { throw new Exception("High severity error. Your operation has been cancelled. SQL Error " + severityLevel + "."); } } catch (Exception e) { DB.RollbackTransaction(); throw new Exception("Unknow error. Your operation has been cancelled.", e); } finally { DB.Close(); } }
// //////////////////////////////////////////////////////////////////////// // PUBLIC METHODS // /// <summary> /// Load /// </summary> /// <param name="projectId">projectId</param> /// <param name="companyId">companyId</param> /// <para>Load Original table to process data for Project Costing report without filters </para> public void Load(int projectId, int companyId) { // Initialization of Gateways ProjectGateway projectGateway = new ProjectGateway(Data); projectGateway.LoadByProjectId(projectId); int companiesId = (int)projectGateway.GetClientID(projectId); ProjectJobInfoGateway projectJobInfoGateway = new ProjectJobInfoGateway(Data); projectJobInfoGateway.LoadAllByProjectId(projectId); ProjectSaleBillingPricingGateway projectSaleBillingPricingGateway = new ProjectSaleBillingPricingGateway(Data); projectSaleBillingPricingGateway.LoadAllByProjectId(projectId); ProjectTechnicalGateway projectTechnicalGateway = new ProjectTechnicalGateway(Data); projectTechnicalGateway.LoadByProjectId(projectId); ProjectTermsPOGateway projectTermsPOGateway = new ProjectTermsPOGateway(Data); projectTermsPOGateway.LoadByProjectId(projectId); ProjectSubcontractorGateway projectSubcontractorGateway = new ProjectSubcontractorGateway(Data); projectSubcontractorGateway.LoadByProjectId(projectId); ProjectEngineerSubcontractorsGateway projectEngineerSubcontractorsGateway = new ProjectEngineerSubcontractorsGateway(Data); projectEngineerSubcontractorsGateway.LoadAllByProjectId(projectId); ProjectHistoryGateway projectHistoryGateway = new ProjectHistoryGateway(Data); projectHistoryGateway.LoadFirstRow(projectId); ProjectNotesGateway projectNoteGateway = new ProjectNotesGateway(Data); projectNoteGateway.LoadByProjectId(projectId); ProjectServiceGateway projectServiceGateway = new ProjectServiceGateway(Data); projectServiceGateway.LoadByProjectId(projectId); // For Updates // ...Get the loginId for submitted field at report // ...Update LFS_PROJECT this.UpdateForReport(projectId, companiesId, projectGateway.GetSalesmanID(projectId), (projectGateway.GetProjectLeadID(projectId)).GetValueOrDefault(), companyId); // ...Update LFS_PROJECT_ENGINEER_SUBCONTRACTOR ProjectSynopsisEngineerSubcontractors projectSynopsisEngineerSubcontractors = new ProjectSynopsisEngineerSubcontractors(Data); if (projectSynopsisEngineerSubcontractors.Table.Rows.Count > 0) { projectSynopsisEngineerSubcontractors.UpdateForReport(projectId, companiesId, companyId); } // ...Update LFS_PROJECT_SUBCONTRACTOR ProjectSynopsisSubcontractor projectSynopsisSubcontractor = new ProjectSynopsisSubcontractor(Data); if (projectSynopsisSubcontractor.Table.Rows.Count > 0) { projectSynopsisSubcontractor.UpdateForReport(projectId, companiesId, companyId); } // ...Update LFS_PROJECT_NOTE ProjectSynopsisNote projectSynopsisNote = new ProjectSynopsisNote(Data); if (projectSynopsisNote.Table.Rows.Count > 0) { projectSynopsisNote.UpdateForReport(projectId, companyId); } // ...Update LFS_PROJECT_SERVICE and Total Average Price ProjectSynopsisService projectSynopsisService = new ProjectSynopsisService(Data); if (projectSynopsisService.Table.Rows.Count > 0) { ProjectSynopsisReportTDS.LFS_PROJECTRow rowTotalAveragePrice = ((ProjectSynopsisReportTDS.LFS_PROJECTDataTable)Table).FindByProjectID(projectId); rowTotalAveragePrice.TotalAveragePrice = projectSynopsisService.UpdateForReport(projectId, companyId); } }