private void bindDatos() { this.idObra = int.Parse(Session["XidObra"].ToString()); Obra obra = uow.ObraBusinessLogic.GetByID(this.idObra); ContratosDeObra contrato = uow.ContratosDeObraBL.Get(p => p.ObraId == this.idObra).FirstOrDefault(); Estimaciones anticipo = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == this.idObra && p.NumeroDeEstimacion == 0).FirstOrDefault(); txtNumObra.Value = obra.Numero; txtDescripcionObra.Value = obra.Descripcion; txtRFC.Value = contrato.RFCcontratista; txtRazonSocial.Value = contrato.RazonSocialContratista; txtImporteContratado.Value = contrato.Total.ToString(); txtPorcentaje.Value = contrato.PorcentajeDeAnticipo.ToString() + " %"; txtImporteAnticipo.Value = (double.Parse(contrato.Total.ToString()) * (contrato.PorcentajeDeAnticipo / 100)).ToString(); divBtnImprimir.Style.Add("display", "none"); if (obra.StatusControlFinanciero > 4)//datos del anticipo { txtFolio.Value = anticipo.FolioCL; dtpFecha.Value = String.Format("{0:d}", anticipo.FechaDeEstimacion); txtImporteAnticipo.Value = anticipo.Total.ToString(); divBtnGuardarAnticipo.Style.Add("display", "none"); divBtnImprimir.Style.Add("display", "block"); } }
protected void btnGuardarAnticipo_Click(object sender, EventArgs e) { this.idObra = int.Parse(Session["XidObra"].ToString()); List <Estimaciones> listaAnticipos = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == this.idObra && p.NumeroDeEstimacion == 0).ToList(); ContratosDeObra contrato = uow.ContratosDeObraBL.Get(p => p.ObraId == this.idObra).First(); Estimaciones anticipo; if (listaAnticipos.Count == 0) { anticipo = new Estimaciones(); anticipo.ContratoDeObraId = contrato.Id; anticipo.NumeroDeEstimacion = 0; anticipo.FolioCL = txtFolio.Value; anticipo.FechaDeEstimacion = DateTime.Parse(dtpFecha.Value.ToString()); anticipo.ImporteEstimado = 0; anticipo.IVA = 0; anticipo.Total = Convert.ToDecimal(txtImporteAnticipo.Value.ToString()); anticipo.AmortizacionAnticipo = 0; anticipo.Retencion2AlMillar = 0; anticipo.Retencion5AlMillar = 0; anticipo.Retencion2AlMillarSV = 0; anticipo.Sanciones = 0; anticipo.Otros = 0; anticipo.ISR = 0; anticipo.ImporteNetoACobrar = Convert.ToDecimal(txtImporteAnticipo.Value.ToString()); anticipo.Status = 2; anticipo.ConceptoDePago = "Anticipo"; anticipo.PeriodoInicio = DateTime.Parse(dtpFecha.Value.ToString()); anticipo.PeriodoTermino = DateTime.Parse(dtpFecha.Value.ToString()); uow.EstimacionesBL.Insert(anticipo); Obra obra = uow.ObraBusinessLogic.GetByID(this.idObra); if (obra.StatusControlFinanciero == 4) { obra.StatusControlFinanciero = 5; uow.ObraBusinessLogic.Update(obra); } } else { anticipo = uow.EstimacionesBL.Get(p => p.ContratoDeObraId == contrato.Id && p.NumeroDeEstimacion == 0).First(); anticipo.FolioCL = txtFolio.Value; anticipo.FechaDeEstimacion = DateTime.Parse(dtpFecha.Value.ToString()); anticipo.Total = Convert.ToDecimal(txtImporteAnticipo.Value.ToString()); anticipo.ImporteNetoACobrar = Convert.ToDecimal(txtImporteAnticipo.Value.ToString()); anticipo.Status = 1; uow.EstimacionesBL.Update(anticipo); } uow.SaveChanges(); if (uow.Errors.Count == 0) { divBtnImprimir.Style.Add("display", "block"); divBtnGuardarAnticipo.Style.Add("display", "none"); } }
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int idObra = Utilerias.StrToInt(grid.DataKeys[e.Row.RowIndex].Values["Id"].ToString()); Obra obra = uow.ObraBusinessLogic.GetByID(idObra); HtmlGenericControl divAvFisico = (HtmlGenericControl)e.Row.FindControl("DIVAvanceFisico"); HtmlGenericControl divAvFinanciero = (HtmlGenericControl)e.Row.FindControl("DIVAvanceFinanciero"); System.Web.UI.HtmlControls.HtmlGenericControl spanAvanceFisico = new System.Web.UI.HtmlControls.HtmlGenericControl("SPAN"); System.Web.UI.HtmlControls.HtmlGenericControl spanAvanceFinanciero = new System.Web.UI.HtmlControls.HtmlGenericControl("SPAN"); LinkButton linkAnt = (LinkButton)e.Row.FindControl("linkAnticipo"); LinkButton linkEst = (LinkButton)e.Row.FindControl("linkEstimaciones"); linkAnt.Text = "Pendiente"; linkEst.Text = "Pendiente"; HtmlGenericControl progresoA = (HtmlGenericControl)e.Row.FindControl("ProgresoA"); HtmlGenericControl progresoB = (HtmlGenericControl)e.Row.FindControl("ProgresoB"); if (obra.StatusControlFinanciero > 4) { ContratosDeObra contrato = uow.ContratosDeObraBL.Get(p => p.ObraId == idObra).First(); Estimaciones anticipo = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == idObra && p.NumeroDeEstimacion == 0).First(); List <Estimaciones> listaEstimaciones; linkAnt.Text = anticipo.Total.ToString("C2"); if (obra.StatusControlFinanciero > 5) { listaEstimaciones = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == idObra && p.NumeroDeEstimacion > 0).ToList(); string cad = " "; foreach (Estimaciones item in listaEstimaciones) { cad = cad + item.NumeroDeEstimacion + "-"; } cad = cad.Substring(0, cad.Length - 1); linkEst.Text = "EST: " + cad; } decimal suma; decimal avance; int porcentaje; //Avance Fisico listaEstimaciones = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == idObra && p.NumeroDeEstimacion > 0).ToList(); suma = listaEstimaciones.Sum(p => p.Total); avance = Math.Round(suma / contrato.Total, 2) * 100; porcentaje = Convert.ToInt16(avance); spanAvanceFisico.InnerText = porcentaje.ToString() + "%"; progresoA.Style.Add("width", porcentaje.ToString() + "%"); //Avance Financiero listaEstimaciones = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == idObra && p.Status == 2).ToList(); suma = listaEstimaciones.Sum(p => p.Total - p.AmortizacionAnticipo); avance = Math.Round(suma / contrato.Total, 2) * 100; porcentaje = Convert.ToInt16(avance); spanAvanceFinanciero.InnerText = porcentaje.ToString() + "%"; progresoB.Style.Add("width", porcentaje.ToString() + "%"); } else { spanAvanceFisico.InnerText = "0%"; spanAvanceFinanciero.InnerText = "0%"; progresoA.Style.Add("width", 0.ToString() + "%"); progresoB.Style.Add("width", 0.ToString() + "%"); } divAvFisico.Controls.Add(spanAvanceFisico); divAvFinanciero.Controls.Add(spanAvanceFinanciero); } }
protected void btnGuardarEstimacion_Click(object sender, EventArgs e) { int usuario = int.Parse(Session["IdUser"].ToString()); this.idObra = int.Parse(Session["XidObra"].ToString()); Estimaciones estimacion = new Estimaciones(); ContratosDeObra contrato = uow.ContratosDeObraBL.Get(p => p.ObraId == this.idObra).FirstOrDefault(); decimal importeEstimado, iva, total; decimal amortizacion, ret5, ret2, ret2Bis, importefinal; importeEstimado = 0; iva = 0; total = 0; amortizacion = 0; ret5 = 0; ret2 = 0; ret2Bis = 0; importefinal = 0; List <EstimacionesConceptosTMP> listaConceptos = uow.EstimacionesConceptosTMPBL.Get(p => p.Usuario == usuario && p.Status == 1).ToList(); foreach (EstimacionesConceptosTMP item in listaConceptos) { importeEstimado = importeEstimado + item.subtotal; iva = iva + item.iva; total = total + item.total; amortizacion = amortizacion + item.amortizacion; ret5 = ret5 + item.retencion5; ret2 = ret2 + item.retencion2; ret2Bis = ret2Bis + item.retencion2SyV; importefinal = importefinal + item.importeFinal; } List <Estimaciones> listaEstimaciones = uow.EstimacionesBL.Get(p => p.ContratoDeObra.ObraId == this.idObra).ToList(); estimacion.ContratoDeObraId = contrato.Id; estimacion.NumeroDeEstimacion = listaEstimaciones.Max(p => p.NumeroDeEstimacion) + 1; estimacion.FechaDeEstimacion = DateTime.Parse(dtpFecha.Value.ToString()); estimacion.ImporteEstimado = importeEstimado; estimacion.IVA = iva; estimacion.Total = total; estimacion.AmortizacionAnticipo = amortizacion; estimacion.Retencion2AlMillar = ret2; estimacion.Retencion5AlMillar = ret5; estimacion.Retencion2AlMillarSV = ret2Bis; estimacion.Sanciones = 0; estimacion.ISR = 0; estimacion.Otros = 0; estimacion.PeriodoInicio = DateTime.Parse(dtpFecha.Value.ToString()); estimacion.PeriodoTermino = DateTime.Parse(dtpFecha.Value.ToString()); estimacion.ImporteNetoACobrar = importefinal; estimacion.ConceptoDePago = "est" + txtNumEstimacion.Text; estimacion.Status = 1; estimacion.FolioCL = "123"; uow.EstimacionesBL.Insert(estimacion); foreach (EstimacionesConceptosTMP item in listaConceptos) { EstimacionesConceptos concepto = new EstimacionesConceptos(); concepto.Estimacion = estimacion; concepto.PresupuestoContratadoId = item.PresupuestoContratadoId; concepto.Cantidad = item.Cantidad; concepto.Subtotal = item.subtotal; uow.EstimacionesConceptosBL.Insert(concepto); } Obra obra = uow.ObraBusinessLogic.GetByID(this.idObra); obra.StatusControlFinanciero = 6; uow.ObraBusinessLogic.Update(obra); //temporal mientras no esta el modulo de registrar pagos Estimaciones lastEstimacion = uow.EstimacionesBL.Get(p => p.NumeroDeEstimacion < estimacion.NumeroDeEstimacion).OrderByDescending(q => q.NumeroDeEstimacion).First(); lastEstimacion.Status = 2; uow.EstimacionesBL.Update(lastEstimacion); uow.SaveChanges(); if (uow.Errors.Count == 0) { Response.Redirect("wfEstimaciones.aspx"); } }