Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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");
            }
        }