/// <summary>
        /// Obtiene los datos que seran enviados a Actualizar
        /// </summary>
        /// <returns>Objeto que sera actualizado</returns>
        private Object InterfazUsuarioDato()
        {
            ContratoBO contrato      = this.vista.ContratoConsultado;
            SucursalBO nuevaSucursal = new SucursalBO()
            {
                Auditoria = new AuditoriaBO(), UnidadOperativa = this.vista.UnidadOperativa
            };

            nuevaSucursal.Id     = this.vista.SucursalIdNueva != null ? this.vista.SucursalIdNueva : null;
            nuevaSucursal.Nombre = this.vista.SucursalNombreNueva != null ? this.vista.SucursalNombreNueva : null;
            DateTime?fua = DateTime.Now;
            Int32?   uua = this.vista.UsuarioId;

            contrato.Sucursal = nuevaSucursal;
            contrato.FUA      = fua;
            contrato.UUA      = uua;
            foreach (ILineaContrato linea in contrato.LineasContrato)
            {
                linea.Equipo.Sucursal = nuevaSucursal;
                linea.Equipo.FUA      = fua;
                linea.Equipo.UUA      = uua;
                if ((linea.Equipo as UnidadBO).EquiposAliados != null && (linea.Equipo as UnidadBO).EquiposAliados.Any())
                {
                    UnidadBO unidad = (linea.Equipo as UnidadBO);
                    foreach (EquipoAliadoBO equipoAliado in unidad.EquiposAliados)
                    {
                        equipoAliado.Sucursal = nuevaSucursal;
                        equipoAliado.FUA      = fua;
                        equipoAliado.UUA      = uua;
                    }
                }
            }

            return(contrato);
        }
 /// <summary>
 /// Establece en la Interfaz el Objeto de Navegación
 /// </summary>
 /// <param name="objetoNavegacion">Contrato que cambiara de sucursal</param>
 public void EstablecerPaqueteNavegacion(ContratoBO objetoNavegacion)
 {
     if (objetoNavegacion == null)
     {
         throw new Exception(nombreClase + ".EstablecerPaqueteNavegacion: El contrato que cambiara de sucursal no puede ser Nulo");
     }
     this.ContratoId   = objetoNavegacion.ContratoID != null ? objetoNavegacion.ContratoID : null;
     this.TipoContrato = objetoNavegacion.Tipo != null ? objetoNavegacion.Tipo : null;
 }
        private void gridContratos_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {
            ContratoBO contratoBO = new ContratoBO((Contrato)gridContratos.CurrentRow.DataBoundItem);
            DataTable  dt         = contratoBO.pegarBoletos();
            DataTable  dt2        = contratoBO.pegarDadosContrato();

            CONCEPTI_FACTORING.VIEW.Cenarios.Relatorio.FCarneCliente Cc = new FCarneCliente(dt, dt2);
            Cc.ShowDialog();
        }
        /// <summary>
        /// Determina el Paquete que sera enviado a la interfaz de detalle
        /// </summary>
        /// <param name="nombre">Nombre del paquete</param>
        /// <param name="valor">Objeto que sera enviado</param>
        public ContratoBO ObtenerPaqueteNavegacion()
        {
            ContratoBO contrato = (ContratoBO)Session["ContratoProxyBO"];

            if (contrato == null)
            {
                throw new Exception(nombreClase + ".ObtenerPaqueteNavegacion: No se encontro el Contrato que Cambiara de Sucursal");
            }
            this.Session.Remove("ContratoProxyBO");
            return(contrato);
        }
 /// <summary>
 /// Establece el Paquete de Navegacion para el Detalle del Contrato Seleccionado
 /// </summary>
 /// <param name="Clave">Clave del Paquete</param>
 /// <param name="contrato">Identificador del Contrato Seleccionado</param>
 public void EstablecerPaqueteNavegacion(string Clave, ContratoBO contrato)
 {
     if (contrato != null && contrato.ContratoID != null)
     {
         Session[Clave] = contrato;
     }
     else
     {
         throw new Exception(NombreClase +
                             ".EstablecerPaqueteNavegacion: El contrato proporcionado no contiene un identificador.");
     }
 }
예제 #6
0
        private void gridContratos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            ContratoBO contratoBO = new ContratoBO((Contrato)gridContratos.CurrentRow.DataBoundItem);
            DataTable  dt         = new DataTable();

            switch (TipoRelatorio.ToString())
            {
            case "1":
                dt = contratoBO.pegarBoletos();
                break;

            case "2":
                dt = contratoBO.pegarBoletosAbertos();
                break;
            }

            CONCEPTI_FACTORING.VIEW.Cenarios.Relatorio.FBoletos fb = new Relatorio.FBoletos(dt);
            fb.ShowDialog();
        }
        protected void grdContratos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    ContratoBO contrato = (ContratoBO)e.Row.DataItem;

                    Label labelSucursalNombre = e.Row.FindControl("lblSucursal") as Label;
                    if (labelSucursalNombre != null)
                    {
                        string sucursalNombre = string.Empty;
                        if (contrato.Sucursal != null)
                        {
                            if (contrato.Sucursal.Nombre != null)
                            {
                                sucursalNombre = contrato.Sucursal.Nombre;
                            }
                        }
                        labelSucursalNombre.Text = sucursalNombre;
                    }

                    Label labelClienteNombre = e.Row.FindControl("lblCliente") as Label;
                    if (labelClienteNombre != null)
                    {
                        string clienteNombre = string.Empty;
                        if (contrato.Cliente != null)
                        {
                            if (contrato.Cliente.Nombre != null)
                            {
                                clienteNombre = contrato.Cliente.Nombre;
                            }
                        }
                        labelClienteNombre.Text = clienteNombre;
                    }
                }
            }
            catch (Exception ex)
            {
                MostrarMensaje("Inconsistencias al presentar la información", ETipoMensajeIU.ERROR, nombreClase + ".grdContratos_RowDataBound: " + ex.Message);
            }
        }
        protected void grdContratos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                switch (e.CommandName.Trim())
                {
                case "Detalles":
                {
                    int?ContratoID = (e.CommandArgument != null) ? (int?)Convert.ToInt32(e.CommandArgument) : null;
                    this.ContratoId = ContratoID;

                    ContratoBO contrato = ContratosEncontrados.FirstOrDefault(x => x.ContratoID == ContratoID);
                    if (contrato != null)
                    {
                        this.TipoContrato = contrato.Tipo;
                    }

                    presentador.RedirigirADetalle();
                    break;
                }

                case "Page":
                    break;

                default:
                {
                    MostrarMensaje("Comando no encontrado", ETipoMensajeIU.ERROR, "El comando no está especificado en el sistema");
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                MostrarMensaje("Inconsistencias al intentar realizar una acción sobre un contrato:", ETipoMensajeIU.ERROR, nombreClase + ".grdContratos_RowCommand: " + ex.Message);
            }
        }
        /// <summary>
        /// Determina si es posible generar el pago adicional del contrato
        /// </summary>
        /// <returns>Devuelve la inconsitencia encontrada para genera el pago adicional</returns>
        private string ValidarPagoAdicional()
        {
            if (this.vista.TipoContrato == null)
            {
                return("No se ha seleccionado del Departamento del Contrato");
            }
            if (this.vista.SucursalID == null)
            {
                return("No se ha seleccionado la Sucursal del Contrato");
            }
            if (String.IsNullOrEmpty(this.vista.FolioContrato))
            {
                return("No se ha introducido el Folio del Contrato");
            }

            ContratoBO contratoBo = null;

            List <ContratoBO> contratos = new List <ContratoBO>();

            switch (vista.TipoContrato)
            {
            case ETipoContrato.RD:
                contratoBo = new ContratoRDBO {
                    NumeroContrato = vista.FolioContrato, Sucursal = new SucursalBO {
                        Id = vista.SucursalID
                    }, Estatus = EEstatusContrato.EnCurso
                };
                var contratosRD = new ContratoRDBR().Consultar(this.dctx, (ContratoRDBO)contratoBo);
                contratos.AddRange(contratosRD);
                break;

            case ETipoContrato.FSL:
                contratoBo = new ContratoFSLBO {
                    NumeroContrato = vista.FolioContrato, Sucursal = new SucursalBO {
                        Id = vista.SucursalID
                    }, Estatus = EEstatusContrato.EnCurso
                };
                var contratosFsl = new ContratoFSLBR().Consultar(this.dctx, (ContratoFSLBO)contratoBo);
                contratos.AddRange(contratosFsl);
                break;

            case ETipoContrato.CM:
            case ETipoContrato.SD:
                contratoBo = new ContratoManttoBO {
                    NumeroContrato = vista.FolioContrato, Tipo = vista.TipoContrato, Sucursal = new SucursalBO {
                        Id = vista.SucursalID
                    }, Estatus = EEstatusContrato.EnCurso
                };
                var contratosMantto = new ContratoManttoBR().Consultar(this.dctx, (ContratoManttoBO)contratoBo);
                contratos.AddRange(contratosMantto);
                break;
            }

            if (!contratos.Any())
            {
                return("No se encontró el Contrato solicitado");
            }
            switch (vista.TipoContrato)
            {
            case ETipoContrato.RD:
                var contratoRD = contratos.FirstOrDefault() as ContratoRDBO;
                if (!String.IsNullOrEmpty(TiempoMaximoRecepcionRD))
                {
                    if (DateTime.Now < contratoRD.FechaPromesaDevolucion.Value.AddHours(int.Parse(TiempoMaximoRecepcionRD)))
                    {
                        return("Deben pasar al menos " + TiempoMaximoRecepcionRD + " hrs para poder generar un pago adicional después de la Fecha de Promesa de Devolución.");
                    }
                }

                break;
            }
            this.vista.ContratoID = contratos.FirstOrDefault().ContratoID;

            PagoUnidadContratoBO pagoBo = new PagoUnidadContratoBOF {
                ReferenciaContrato = new ReferenciaContratoBO()
                {
                    ReferenciaContratoID = this.vista.ContratoID
                }
            };
            PagoUnidadContratoBR pagoBr = new PagoUnidadContratoBR();
            var pagos = pagoBr.Consultar(this.dctx, (PagoUnidadContratoBO)pagoBo);

            if (!pagos.Any())
            {
                return("No se han generado Pagos para el Contrato");
            }

            var ultimoPago = pagos.Last(x => x.Activo.Value);

            if (ultimoPago.EnviadoFacturacion != null && !ultimoPago.EnviadoFacturacion.Value)
            {
                return("No se ha Facturado el Último Pago Activo del Contrato");
            }

            this.ultimoPagoContrato = ultimoPago;

            return(null);
        }
        /// <summary>
        /// Metodo que genera el pago adicional
        /// </summary>
        public void GenerarPagoAdicional()
        {
            try
            {
                string validacion = this.ValidarPagoAdicional();
                if (!String.IsNullOrEmpty(validacion))
                {
                    this.vista.MostrarMensaje("No se puede generar el pago Adicional: " + validacion, ETipoMensajeIU.INFORMACION);
                    return;
                }

                ContratoBO        contratoBo     = null;
                IGeneradorPagosBR generadorPagos = null;
                SeguridadBO       seguridadBo    = this.CrearObjetoSeguridad();
                List <ContratoBO> contratos      = new List <ContratoBO>();
                switch (vista.TipoContrato)
                {
                case ETipoContrato.RD:
                    contratoBo = new ContratoRDBO {
                        ContratoID = this.vista.ContratoID
                    };
                    var contratosRd = new ContratoRDBR().ConsultarCompleto(this.dctx, (ContratoRDBO)contratoBo, false);
                    contratos.AddRange(contratosRd);
                    generadorPagos = new GeneradorPagoRDBR();
                    break;

                case ETipoContrato.FSL:
                    contratoBo = new ContratoFSLBO {
                        ContratoID = this.vista.ContratoID
                    };
                    var contratosFsl = new ContratoFSLBR().ConsultarCompleto(this.dctx, (ContratoFSLBO)contratoBo);
                    contratos.AddRange(contratosFsl);
                    generadorPagos = new GeneradorPagosFSLBR();
                    break;

                case ETipoContrato.CM:
                case ETipoContrato.SD:
                    contratoBo = new ContratoManttoBO {
                        ContratoID = this.vista.ContratoID
                    };
                    var contratosMantto = new ContratoManttoBR().ConsultarCompleto(this.dctx, (ContratoManttoBO)contratoBo, true, false);
                    contratos.AddRange(contratosMantto);
                    generadorPagos = new GeneradorPagosManttoBR();
                    break;
                }
                if (generadorPagos == null)
                {
                    throw new Exception("No se pudo determinar el Tipo del Pago a Generar.");
                }

                generadorPagos.GenerarPagoAdicional(this.dctx, contratos.First(), (ultimoPagoContrato.NumeroPago.Value + 1), seguridadBo, false, true);
                PagoUnidadContratoBO pagoBo = new PagoUnidadContratoBOF {
                    ReferenciaContrato = new ReferenciaContratoBO()
                    {
                        ReferenciaContratoID = this.vista.ContratoID
                    }
                };
                PagoUnidadContratoBR pagoBr = new PagoUnidadContratoBR();
                var pagos = pagoBr.Consultar(this.dctx, (PagoUnidadContratoBO)pagoBo);

                this.Inicializar();

                this.vista.MostrarMensaje("El pago " + pagos.Last().NumeroPago.ToString() + " con Fecha " + pagos.Last().FechaVencimiento.Value.ToShortDateString() + " se ha Creado con Éxito.", ETipoMensajeIU.EXITO);
            }
            catch (Exception ex)
            {
                this.vista.MostrarMensaje("Error al generar el pago Adicional", ETipoMensajeIU.ERROR, NombreClase + ".GenerarPagoAdicional: " + ex.GetBaseException().Message);
            }
        }
        /// <summary>
        /// Obtiene el Contrato que sera Editado
        /// </summary>
        private void ConsultarCompleto()
        {
            ContratoBO contrato = new ContratoProxyBO()
            {
                ContratoID = this.vista.ContratoId
            };
            ContratoBO contratoCompleto = null;

            switch (this.vista.TipoContrato)
            {
            case ETipoContrato.RD:
                ContratoRDBR controladorRD = new ContratoRDBR();
                var          contratoRd    = new ContratoRDBO((ContratoBO)contrato);
                var          contratosRd   = controladorRD.ConsultarCompleto(this.dataContext, contratoRd);
                contratoCompleto = contratosRd.FirstOrDefault();

                this.controlador          = new ContratoRDBR();
                this.vista.ObjetoAnterior = contratoCompleto != null?controladorRD.ConsultarCompleto(this.dataContext, contratoRd).FirstOrDefault() : null;

                break;

            case ETipoContrato.FSL:
                ContratoFSLBR controladorFsl = new ContratoFSLBR();
                var           contratoFsl    = new ContratoFSLBO()
                {
                    ContratoID = this.vista.ContratoId
                };
                var contratosFsl = controladorFsl.ConsultarCompleto(this.dataContext, contratoFsl);
                contratoCompleto = contratosFsl.FirstOrDefault();

                this.controlador          = new ContratoFSLBR();
                this.vista.ObjetoAnterior = contratoCompleto != null?controladorFsl.ConsultarCompleto(this.dataContext, contratoFsl).FirstOrDefault() : null;

                break;

            case ETipoContrato.CM:
            case ETipoContrato.SD:
                ContratoManttoBR controladorMantto = new ContratoManttoBR();
                var contratoMantto  = new ContratoManttoBO((ContratoBO)contrato);
                var contratosMantto = controladorMantto.ConsultarCompleto(this.dataContext, contratoMantto, false);
                contratoCompleto = contratosMantto.FirstOrDefault();

                this.controlador          = new ContratoManttoBR();
                this.vista.ObjetoAnterior = contratoCompleto != null?controladorMantto.ConsultarCompleto(this.dataContext, contratoMantto, false).FirstOrDefault() : null;

                break;

            default:
                contratoCompleto = null;
                break;
            }
            if (contratoCompleto != null)
            {
                this.vista.ContratoId            = contratoCompleto.ContratoID;
                this.vista.NumeroContrato        = contratoCompleto.NumeroContrato;
                this.vista.SucursalIdAntigua     = contratoCompleto.Sucursal.Id;
                this.vista.SucursalNombreAntigua = contratoCompleto.Sucursal.Nombre;
                this.vista.TipoContrato          = contratoCompleto.Tipo;
                this.vista.ContratoConsultado    = contratoCompleto;
            }
            else
            {
                throw new Exception(nombreClase + ".ConsultarCompleto: No se encontro el Contrato solicitado");
            }
        }
        /// <summary>
        /// Cambia el contrato de Sucursal
        /// </summary>
        public void CambiarSucursal()
        {
            try
            {
                string s = this.ValidarCampos();
                if (!String.IsNullOrEmpty(s))
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                ContratoBO contrato = (ContratoBO)InterfazUsuarioDato();
                if (contrato == null)
                {
                    throw new Exception("No se pudo obtener el contrato que sera cambiado de sucursal desde la interfaz");
                }

                SeguridadBO seguridadBo = this.CrearObjetoSeguridad();
                #region Conexion a BD

                Guid firma = Guid.NewGuid();
                try
                {
                    this.dataContext.OpenConnection(firma);
                    this.dataContext.BeginTransaction(firma);
                }
                catch (Exception)
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                    throw new Exception("Se encontraron inconsistencias al Cambiar la Sucursal del Contrato.");
                }

                #endregion
                try
                {
                    bool cambioExitoso = false;
                    switch (this.vista.TipoContrato)
                    {
                    case ETipoContrato.RD:
                        this.controlador = new ContratoRDBR();
                        cambioExitoso    = ((ContratoRDBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoRDBO)contrato, (ContratoRDBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.FSL:
                        this.controlador = new ContratoFSLBR();
                        cambioExitoso    = ((ContratoFSLBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoFSLBO)contrato, (ContratoFSLBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.CM:
                    case ETipoContrato.SD:
                        this.controlador = new ContratoManttoBR();
                        cambioExitoso    = ((ContratoManttoBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoManttoBO)contrato, (ContratoManttoBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;
                    }

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar El contrato y las Unidades de Sucursal");
                    }

                    ModificarPagosBR modificarPagosBr = new ModificarPagosBR();
                    cambioExitoso = modificarPagosBr.CambiarPagosSucursal(this.dataContext, contrato, seguridadBo);

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar Los Pagos de Sucursal");
                    }

                    this.dataContext.CommitTransaction(firma);
                    this.vista.PermitirGuardar(false);

                    this.vista.MostrarMensaje("El Contrato cambio de Sucursal con Éxito", ETipoMensajeIU.EXITO);
                }
                catch (Exception ex)
                {
                    this.dataContext.RollbackTransaction(firma);
                    throw;
                }
                finally
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".CambiarSucursal: " + ex.Message, ex.InnerException);
            }
        }
예제 #13
0
        private void GerarBoletos(Contrato contrato)
        {
            Contrato c = new ContratoBO().Find(co => co.COD_CONTRATO == contrato.COD_CONTRATO).First();

            new ContratoBO(c).gerarBoletos();
        }
예제 #14
0
 private void gridContratos_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     ContratoBO contratoBO = new ContratoBO((Contrato)gridContratos.CurrentRow.DataBoundItem);
     DataTable  dt         = contratoBO.pegarBoletos();
 }