protected void gridEstimaciones_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int idEstimacion = Utilerias.StrToInt(gridEstimaciones.DataKeys[e.Row.RowIndex].Values["Id"].ToString()); ImageButton imgBtnEliminar = (ImageButton)e.Row.FindControl("imgBtnEliminar"); EstimacionesProgramadas estimacion = uow.EstimacionesProgramadasBL.GetByID(idEstimacion); List <EstimacionesProgramadas> lista = uow.EstimacionesProgramadasBL.Get(p => p.ContratoDeObraId == estimacion.ContratoDeObraId && p.NumeroDeEstimacion > estimacion.NumeroDeEstimacion).ToList(); if (lista.Count > 0 || estimacion.ContratoDeObra.Obra.StatusControlFinanciero > 3) { imgBtnEliminar.Visible = false; } } }
protected void imgBtnEliminar_Click(object sender, ImageClickEventArgs e) { idObra = int.Parse(Session["XidObra"].ToString()); Obra obra = uow.ObraBusinessLogic.GetByID(idObra); if (obra.StatusControlFinanciero < 4) { GridViewRow row = (GridViewRow)((ImageButton)sender).NamingContainer; EstimacionesProgramadas estimacion = uow.EstimacionesProgramadasBL.GetByID(int.Parse(gridEstimaciones.DataKeys[row.RowIndex].Values["Id"].ToString())); List <EstimacionesProgramadasConceptos> listaConceptos = uow.EstimacionesProgramadasConceptosBL.Get(p => p.EstimacionProgramadaId == estimacion.Id).ToList(); ProgramasDeObras conceptoProgramado; foreach (EstimacionesProgramadasConceptos item in listaConceptos) { uow.EstimacionesProgramadasConceptosBL.Delete(item); conceptoProgramado = uow.ProgramasDeObrasBL.Get(p => p.PresupuestoContratadoId == item.PresupuestoContratadoId).First(); conceptoProgramado.Status = 1; uow.ProgramasDeObrasBL.Update(conceptoProgramado); } uow.EstimacionesProgramadasBL.Delete(estimacion); uow.SaveChanges(); if (uow.Errors.Count == 0) { cargarConceptosPendientes(); cargarEstimacionesProgramadas(); } } }
protected void btnAddEstimacion_Click(object sender, EventArgs e) { DateTime fechaEstimacion; idObra = int.Parse(Session["XidObra"].ToString()); ContratosDeObra contrato = uow.ContratosDeObraBL.Get(p => p.ObraId == idObra).First(); fechaEstimacion = DateTime.Parse(dtpFecha.Value); List <ProgramasDeObras> listaConceptos = uow.ProgramasDeObrasBL.Get(p => p.ContratoDeObra.ObraId == idObra && p.Status == 1 && p.Termino <= fechaEstimacion).ToList(); if (listaConceptos.Count == 0) { return; } EstimacionesProgramadas estimacion = new EstimacionesProgramadas(); PresupuestosContratados concepto; decimal importeEstimado, iva, total; decimal amortizacion, ret5, ret2, ret2bis; importeEstimado = 0; foreach (ProgramasDeObras item in listaConceptos) { concepto = uow.PresupuestosContratadosBL.GetByID(item.PresupuestoContratadoId); importeEstimado = importeEstimado + concepto.Subtotal; } iva = importeEstimado * decimal.Parse("0.16"); total = importeEstimado * decimal.Parse("1.16"); amortizacion = decimal.Parse(contrato.PorcentajeDeAnticipo.ToString()) / decimal.Parse("100"); if (contrato.Descontar5AlMillar) { ret5 = decimal.Parse("0.005"); } else { ret5 = 0; } if (contrato.Descontar2AlMillar) { ret2 = decimal.Parse("0.002"); } else { ret2 = 0; } if (contrato.Descontar2AlMillarSV) { ret2bis = decimal.Parse("0.002"); } else { ret2bis = 0; } amortizacion = total * amortizacion; ret5 = total * ret5; ret2 = total * ret2; ret2bis = total * ret2bis; List <EstimacionesProgramadas> listaEstimacionesProgramadas = uow.EstimacionesProgramadasBL.Get(p => p.ContratoDeObra.ObraId == this.idObra).ToList(); int NumEstimacion = 0; if (listaEstimacionesProgramadas.Count > 0) { NumEstimacion = listaEstimacionesProgramadas.Max(p => p.NumeroDeEstimacion); } NumEstimacion++; estimacion.ContratoDeObraId = contrato.Id; estimacion.NumeroDeEstimacion = NumEstimacion; estimacion.FechaDeEstimacion = fechaEstimacion; estimacion.ImporteEstimado = importeEstimado; estimacion.IVA = iva; estimacion.Total = total; estimacion.AmortizacionAnticipo = amortizacion; estimacion.Retencion5AlMillar = ret5; estimacion.Retencion2AlMillar = ret2; estimacion.Retencion2AlMillarSyV = ret2bis; estimacion.ImporteAPagar = total - (amortizacion + ret5 + ret2 + ret2bis); uow.EstimacionesProgramadasBL.Insert(estimacion); foreach (ProgramasDeObras item in listaConceptos) { EstimacionesProgramadasConceptos conceptoProgramado = new EstimacionesProgramadasConceptos(); conceptoProgramado.EstimacionProgramada = estimacion; conceptoProgramado.PresupuestoContratadoId = item.PresupuestoContratadoId; conceptoProgramado.Cantidad = item.PresupuestoContratado.Cantidad; conceptoProgramado.Subtotal = item.PresupuestoContratado.Subtotal; uow.EstimacionesProgramadasConceptosBL.Insert(conceptoProgramado); item.Status = 2; uow.ProgramasDeObrasBL.Update(item); } uow.SaveChanges(); if (uow.Errors.Count == 0) { cargarConceptosPendientes(); cargarEstimacionesProgramadas(); NextNumeroEstimacion(); dtpFecha.Value = string.Empty; } }