/// <summary> /// Save all Units Costing Sheets /// </summary> /// <param name="companyId">companyId</param> /// <param name="costingSheetId">costingSheetId</param> public void Save(int companyId, int costingSheetId) { ProjectCostingSheetInformationTDS unitsInformationChanges = (ProjectCostingSheetInformationTDS)Data.GetChanges(); if (unitsInformationChanges.CombinedUnitsInformation.Rows.Count > 0) { ProjectCombinedCostingSheetInformationUnitsInformationGateway projectCostingSheetInformationUnitsInformationGateway = new ProjectCombinedCostingSheetInformationUnitsInformationGateway(unitsInformationChanges); foreach (ProjectCostingSheetInformationTDS.CombinedUnitsInformationRow row in (ProjectCostingSheetInformationTDS.CombinedUnitsInformationDataTable)unitsInformationChanges.CombinedUnitsInformation) { // Insert new costing sheet Units if ((!row.Deleted) && (!row.InDatabase)) { ProjectCombinedCostingSheetUnits units = new ProjectCombinedCostingSheetUnits(null); units.InsertDirect(costingSheetId, row.Work_, row.UnitID, row.RefID, row.UnitOfMeasurement, row.Quantity, row.CostCad, row.TotalCostCad, row.CostUsd, row.TotalCostUsd, row.Deleted, row.COMPANY_ID, row.StartDate, row.EndDate, row.Function_, row.ProjectID); } // Update costing sheet Units if ((!row.Deleted) && (row.InDatabase)) { string work_ = row.Work_; int unitId = row.UnitID; int refId = row.RefID; bool deleted = false; //original values string originalUnitOfMeasurement = projectCostingSheetInformationUnitsInformationGateway.GetUnitOfMeasurementOriginal(costingSheetId, work_, unitId, refId); double originalQuantity = projectCostingSheetInformationUnitsInformationGateway.GetQuantityOriginal(costingSheetId, work_, unitId, refId); decimal originalCostCad = projectCostingSheetInformationUnitsInformationGateway.GetCostCadOriginal(costingSheetId, work_, unitId, refId); decimal originalTotalCostCad = projectCostingSheetInformationUnitsInformationGateway.GetTotalCostCadOriginal(costingSheetId, work_, unitId, refId); decimal originalCostUsd = projectCostingSheetInformationUnitsInformationGateway.GetCostUsdOriginal(costingSheetId, work_, unitId, refId); decimal originalTotalCostUsd = projectCostingSheetInformationUnitsInformationGateway.GetTotalCostUsdOriginal(costingSheetId, work_, unitId, refId); DateTime originalStartDate = projectCostingSheetInformationUnitsInformationGateway.GetStartDateOriginal(costingSheetId, work_, unitId, refId); DateTime originalEndDate = projectCostingSheetInformationUnitsInformationGateway.GetEndDateOriginal(costingSheetId, work_, unitId, refId); string originalFunction_ = projectCostingSheetInformationUnitsInformationGateway.GetFunction_Original(costingSheetId, work_, unitId, refId); //original values string newUnitOfMeasurement = projectCostingSheetInformationUnitsInformationGateway.GetUnitOfMeasurement(costingSheetId, work_, unitId, refId); double newQuantity = projectCostingSheetInformationUnitsInformationGateway.GetQuantity(costingSheetId, work_, unitId, refId); decimal newCostCad = projectCostingSheetInformationUnitsInformationGateway.GetCostCad(costingSheetId, work_, unitId, refId); decimal newTotalCostCad = projectCostingSheetInformationUnitsInformationGateway.GetTotalCostCad(costingSheetId, work_, unitId, refId); decimal newCostUsd = projectCostingSheetInformationUnitsInformationGateway.GetCostUsd(costingSheetId, work_, unitId, refId); decimal newTotalCostUsd = projectCostingSheetInformationUnitsInformationGateway.GetTotalCostUsd(costingSheetId, work_, unitId, refId); DateTime newStartDate = projectCostingSheetInformationUnitsInformationGateway.GetStartDate(costingSheetId, work_, unitId, refId); DateTime newEndDate = projectCostingSheetInformationUnitsInformationGateway.GetEndDate(costingSheetId, work_, unitId, refId); string newFunction_ = projectCostingSheetInformationUnitsInformationGateway.GetFunction_(costingSheetId, work_, unitId, refId); ProjectCombinedCostingSheetUnits units = new ProjectCombinedCostingSheetUnits(null); units.UpdateDirect(costingSheetId, work_, unitId, refId, originalUnitOfMeasurement, originalQuantity, originalCostCad, originalTotalCostCad, originalCostUsd, originalTotalCostUsd, deleted, companyId, originalStartDate, originalEndDate, originalFunction_, newUnitOfMeasurement, newQuantity, newCostCad, newTotalCostCad, newCostUsd, newTotalCostUsd, deleted, companyId, newStartDate, newEndDate, newFunction_); } // Delete costing sheet Units if ((row.Deleted) && (row.InDatabase)) { ProjectCombinedCostingSheetUnits units = new ProjectCombinedCostingSheetUnits(null); units.DeleteDirect(row.CostingSheetID, row.Work_, row.UnitID, row.RefID, row.COMPANY_ID); } } } }
protected void grdUnits_RowDataBound(object sender, GridViewRowEventArgs e) { // Edit items if ((e.Row.RowType == DataControlRowType.DataRow) && ((e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate)))) { int costingSheetId = Int32.Parse(((Label)e.Row.FindControl("lblCostingSheetIDEdit")).Text.Trim()); int unitId = Int32.Parse(((Label)e.Row.FindControl("lblUnitIDEdit")).Text.Trim()); int refId = Int32.Parse(((Label)e.Row.FindControl("lblRefIDEdit")).Text.Trim()); string work_ = ((Label)e.Row.FindControl("lblWork_Edit")).Text.Trim(); ProjectCombinedCostingSheetInformationUnitsInformationGateway projectCostingSheetInformationUnitsInformationGateway = new ProjectCombinedCostingSheetInformationUnitsInformationGateway(projectCostingSheetInformationTDS); string unitOfMeasurement = projectCostingSheetInformationUnitsInformationGateway.GetUnitOfMeasurement(costingSheetId, work_, unitId, refId); ((DropDownList)e.Row.FindControl("ddlUnitOfMeasurementUnitsEdit")).SelectedValue = unitOfMeasurement; bool inDatabase = projectCostingSheetInformationUnitsInformationGateway.GetInDatabase(costingSheetId, work_, unitId, refId); if (inDatabase) { ((RadDatePicker)e.Row.FindControl("tkrdpEndDateEdit")).Calendar.Enabled = false; ((RadDatePicker)e.Row.FindControl("tkrdpEndDateEdit")).DateInput.ReadOnly = true; ((RadDatePicker)e.Row.FindControl("tkrdpStartDateEdit")).Calendar.Enabled = false; ((RadDatePicker)e.Row.FindControl("tkrdpStartDateEdit")).DateInput.ReadOnly = true; } ((RadDatePicker)e.Row.FindControl("hdfFrom")).SelectedDate = Convert.ToDateTime(hdfFromDate.Value); ((RadDatePicker)e.Row.FindControl("hdfTo")).SelectedDate = Convert.ToDateTime(hdfToDate.Value); } // Footer Item if (e.Row.RowType == DataControlRowType.Footer) { ((RadDatePicker)e.Row.FindControl("hdfFrom")).SelectedDate = Convert.ToDateTime(hdfFromDate.Value); ((RadDatePicker)e.Row.FindControl("hdfTo")).SelectedDate = Convert.ToDateTime(hdfToDate.Value); } }
// //////////////////////////////////////////////////////////////////////// // INITIAL EVENTS // protected void Page_Load(object sender, EventArgs e) { // Register client scripts this.RegisterClientScripts(); if (!IsPostBack) { // Security check if (!Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_ADMIN"])) { if (!(Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_VIEW"]) && Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_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["costing_sheet_id"] == null)) { Response.Redirect("./../../error_page.aspx?error=" + "Invalid query string in project_combined_costing_sheets_edit.aspx"); } // Tag Page hdfCostingSheetId.Value = Request.QueryString["costing_sheet_id"].ToString(); hdfCompanyId.Value = Session["companyID"].ToString(); hdfProjectId.Value = Request.QueryString["project_id"]; hdfDataChanged.Value = Request.QueryString["data_changed"]; hdfDataChangedMessage.Value = "Changes made to this project will not be saved."; ViewState["state"] = Request.QueryString["state"]; ViewState["active_tab"] = Request.QueryString["active_tab"]; ViewState["origin"] = Request.QueryString["origin"]; ViewState["update"] = Request.QueryString["update"]; projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; Session.Remove("labourHoursInformationDummy"); Session.Remove("unitsInformationDummy"); Session.Remove("subcontractorsInformationDummy"); Session.Remove("materialsInformationDummy"); Session.Remove("otherCostsInformationDummy"); Session.Remove("revenueInformationDummy"); // If coming from project_combined_costing_sheets_navigator.aspx or project_combined_costing_sheets_add.aspx int companyId = Int32.Parse(hdfCompanyId.Value); if (Request.QueryString["source_page"] == "project_costing_sheets_navigator.aspx" || Request.QueryString["source_page"] == "project_combined_costing_sheets_add.aspx") { // Store Navigator State and Update control StoreNavigatorState(); ViewState["update"] = "no"; // Get Costing sheet ID int costingSheetId = Int32.Parse(hdfCostingSheetId.Value.Trim()); // Get dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectCostingSheetInformationTDS = new ProjectCostingSheetInformationTDS(); labourHoursInformation = new ProjectCostingSheetInformationTDS.CombinedLabourHoursInformationDataTable(); unitsInformation = new ProjectCostingSheetInformationTDS.CombinedUnitsInformationDataTable(); subcontractorsInformation = new ProjectCostingSheetInformationTDS.CombinedSubcontractorsInformationDataTable(); materialsInformation = new ProjectCostingSheetInformationTDS.CombinedMaterialsInformationDataTable(); otherCostsInformation = new ProjectCostingSheetInformationTDS.CombinedOtherCostsInformationDataTable(); revenueInformation = new ProjectCostingSheetInformationTDS.CombinedRevenueInformationDataTable(); // Get General Data ProjectCombinedCostingSheetInformationBasicInformation projectCostingSheetInformationBasicInformation = new ProjectCombinedCostingSheetInformationBasicInformation(projectCostingSheetInformationTDS); projectCostingSheetInformationBasicInformation.LoadByCostingSheetId(costingSheetId, companyId); ProjectCombinedCostingSheetInformationLabourHoursInformationGateway projectCostingSheetInformationLabourHoursInformationGateway = new ProjectCombinedCostingSheetInformationLabourHoursInformationGateway(projectCostingSheetInformationTDS); projectCostingSheetInformationLabourHoursInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); ProjectCombinedCostingSheetInformationUnitsInformationGateway projectCostingSheetInformationUnitsInformationGateway = new ProjectCombinedCostingSheetInformationUnitsInformationGateway(projectCostingSheetInformationTDS); projectCostingSheetInformationUnitsInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); ProjectCombinedCostingSheetInformationSubcontractorsInformationGateway projectCostingSheetInformationSubcontractorsInformationGateway = new ProjectCombinedCostingSheetInformationSubcontractorsInformationGateway(projectCostingSheetInformationTDS); projectCostingSheetInformationSubcontractorsInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); ProjectCombinedCostingSheetInformationMaterialsInformationGateway projectCostingSheetInformationMaterialsInformationGateway = new ProjectCombinedCostingSheetInformationMaterialsInformationGateway(projectCostingSheetInformationTDS); projectCostingSheetInformationMaterialsInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); ProjectCombinedCostingSheetInformationOtherCostsInformationGateway projectCostingSheetInformationOtherCostsInformationGateway = new ProjectCombinedCostingSheetInformationOtherCostsInformationGateway(projectCostingSheetInformationTDS); projectCostingSheetInformationOtherCostsInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); projectCombinedCostingSheetInformationRevenueInformationGateway projectCombinedCostingSheetInformationRevenueInformationGateway = new projectCombinedCostingSheetInformationRevenueInformationGateway(projectCostingSheetInformationTDS); projectCombinedCostingSheetInformationRevenueInformationGateway.LoadByCostingSheetId(costingSheetId, companyId); Session["lfsProjectTDS"] = projectTDS; Session["projectCostingSheetInformationTDS"] = projectCostingSheetInformationTDS; Session["labourHoursInformation"] = projectCostingSheetInformationTDS.CombinedLabourHoursInformation; Session["unitsInformation"] = projectCostingSheetInformationTDS.CombinedUnitsInformation; Session["subcontractorsInformation"] = projectCostingSheetInformationTDS.CombinedSubcontractorsInformation; Session["materialsInformation"] = projectCostingSheetInformationTDS.CombinedMaterialsInformation; Session["otherCostsInformation"] = projectCostingSheetInformationTDS.CombinedOtherCostsInformation; Session["revenueInformation"] = projectCostingSheetInformationTDS.CombinedRevenueInformation; labourHoursInformation = projectCostingSheetInformationTDS.CombinedLabourHoursInformation; unitsInformation = projectCostingSheetInformationTDS.CombinedUnitsInformation; subcontractorsInformation = projectCostingSheetInformationTDS.CombinedSubcontractorsInformation; materialsInformation = projectCostingSheetInformationTDS.CombinedMaterialsInformation; otherCostsInformation = projectCostingSheetInformationTDS.CombinedOtherCostsInformation; revenueInformation = projectCostingSheetInformationTDS.CombinedRevenueInformation; } // ... project_combined_costing_sheets_add.aspx if (Request.QueryString["source_page"] == "project_combined_costing_sheets_add.aspx") { ViewState["update"] = "yes"; } // ... left menu, project_combined_costing_sheets_edit.aspx, project_combined_costing_sheets_delete.aspx or project_combined_costing_sheets_state.aspx if ((Request.QueryString["source_page"] == "lm") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_summary.aspx") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_delete.aspx") || (Request.QueryString["source_page"] == "project_combined_costing_sheets_state.aspx")) { // Store Navigator State and Update control StoreNavigatorState(); ViewState["update"] = Request.QueryString["update"]; } // Restore dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectCostingSheetInformationTDS = (ProjectCostingSheetInformationTDS)Session["projectCostingSheetInformationTDS"]; labourHoursInformation = (ProjectCostingSheetInformationTDS.CombinedLabourHoursInformationDataTable)Session["labourHoursInformation"]; unitsInformation = (ProjectCostingSheetInformationTDS.CombinedUnitsInformationDataTable)Session["unitsInformation"]; subcontractorsInformation = (ProjectCostingSheetInformationTDS.CombinedSubcontractorsInformationDataTable)Session["subcontractorsInformation"]; materialsInformation = (ProjectCostingSheetInformationTDS.CombinedMaterialsInformationDataTable)Session["materialsInformation"]; otherCostsInformation = (ProjectCostingSheetInformationTDS.CombinedOtherCostsInformationDataTable)Session["otherCostsInformation"]; revenueInformation = (ProjectCostingSheetInformationTDS.CombinedRevenueInformationDataTable)Session["revenueInformation"]; if (!Convert.ToBoolean(Session["sgLFS_PROJECTS_COSTINGSHEETS_ADMIN"])) { // Costing Sheet state check ProjectCombinedCostingSheetInformationBasicInformationGateway projectCostingSheetInformationBasicInformationGatewayForValidate = new ProjectCombinedCostingSheetInformationBasicInformationGateway(projectCostingSheetInformationTDS); string state = projectCostingSheetInformationBasicInformationGatewayForValidate.GetState(Int32.Parse(hdfCostingSheetId.Value)); if (state == "Approved") { Response.Redirect("./../../error_page.aspx?error=" + "This costing sheet is approved, you can not edit it."); } } ProjectGateway projectGateway = new ProjectGateway(projectTDS); hdfClientId.Value = projectGateway.GetClientID(Int32.Parse(hdfProjectId.Value.ToString())).ToString(); // ... 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 currentClientId = projectGateway.GetClientID(Int32.Parse(hdfProjectId.Value.ToString())); CompaniesGateway companiesGateway = new CompaniesGateway(); companiesGateway.LoadAllByCompaniesId(currentClientId, companyId); lblTitleClientName.Text = "Client: " + companiesGateway.GetName(currentClientId); LoadBasicData(); } else { // Restore dataset projectTDS = (ProjectTDS)Session["lfsProjectTDS"]; projectCostingSheetInformationTDS = (ProjectCostingSheetInformationTDS)Session["projectCostingSheetInformationTDS"]; labourHoursInformation = (ProjectCostingSheetInformationTDS.CombinedLabourHoursInformationDataTable)Session["labourHoursInformation"]; unitsInformation = (ProjectCostingSheetInformationTDS.CombinedUnitsInformationDataTable)Session["unitsInformation"]; subcontractorsInformation = (ProjectCostingSheetInformationTDS.CombinedSubcontractorsInformationDataTable)Session["subcontractorsInformation"]; materialsInformation = (ProjectCostingSheetInformationTDS.CombinedMaterialsInformationDataTable)Session["materialsInformation"]; otherCostsInformation = (ProjectCostingSheetInformationTDS.CombinedOtherCostsInformationDataTable)Session["otherCostsInformation"]; revenueInformation = (ProjectCostingSheetInformationTDS.CombinedRevenueInformationDataTable)Session["revenueInformation"]; } }
/// <summary> /// UpdateForReport /// </summary> private void UpdateForReport() { ProjectCombinedCostingSheetInformationLabourHoursInformationGateway projectCostingSheetInformationLabourHoursInformationGateway = new ProjectCombinedCostingSheetInformationLabourHoursInformationGateway(Data); projectCostingSheetInformationLabourHoursInformationGateway.ClearBeforeFill = false; ProjectCombinedCostingSheetInformationUnitsInformationGateway projectCostingSheetInformationUnitsInformationGateway = new ProjectCombinedCostingSheetInformationUnitsInformationGateway(Data); projectCostingSheetInformationUnitsInformationGateway.ClearBeforeFill = false; ProjectCombinedCostingSheetInformationMaterialsInformationGateway projectCostingSheetInformationMaterialsInformationGateway = new ProjectCombinedCostingSheetInformationMaterialsInformationGateway(Data); projectCostingSheetInformationMaterialsInformationGateway.ClearBeforeFill = false; ProjectCombinedCostingSheetInformationSubcontractorsInformationGateway projectCostingSheetInformationSubcontractorsInformationGateway = new ProjectCombinedCostingSheetInformationSubcontractorsInformationGateway(Data); projectCostingSheetInformationSubcontractorsInformationGateway.ClearBeforeFill = false; ProjectCombinedCostingSheetInformationOtherCostsInformationGateway projectCostingSheetInformationOtherCostsInformationGateway = new ProjectCombinedCostingSheetInformationOtherCostsInformationGateway(Data); projectCostingSheetInformationOtherCostsInformationGateway.ClearBeforeFill = false; projectCombinedCostingSheetInformationRevenueInformationGateway projectCostingSheetInformationRevenueInformationGateway = new projectCombinedCostingSheetInformationRevenueInformationGateway(Data); projectCostingSheetInformationRevenueInformationGateway.ClearBeforeFill = false; foreach (ProjectCostingSheetInformationTDS.CombinedBasicInformationRow row in (ProjectCostingSheetInformationTDS.CombinedBasicInformationDataTable)Table) { if (row.GrandRevenue > 0) { row.GrandGrossMargin = (row.GrandProfit / row.GrandRevenue) * 100; } else { row.GrandGrossMargin = 0; } projectCostingSheetInformationLabourHoursInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); projectCostingSheetInformationUnitsInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); projectCostingSheetInformationMaterialsInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); projectCostingSheetInformationSubcontractorsInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); projectCostingSheetInformationOtherCostsInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); projectCostingSheetInformationRevenueInformationGateway.LoadByCostingSheetId(row.CostingSheetID, row.COMPANY_ID); } }