//Insert de un Contrato Arrto de Otras Fig. Ocuapacion
        //Devuelve el Folio de contrato
        public int InsertContratoArrtoOtrasFigOcupacion(ModeloNegocios.ContratoArrto objContratoArrto)
        {
            int FolioContrato = 0;

            System.Data.Entity.Core.Objects.ObjectParameter parametroFolioContrato = new System.Data.Entity.Core.Objects.ObjectParameter("FolioContrato", FolioContrato);

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    Conn.spuInsertContratoOtrasFigurasOcupacion(

                        objContratoArrto.Fk_IdTipoOcupacion,//Comodato, Prestamo, Conscesión (aplicable solo a Arrendamiento de Otras Fig.)
                        objContratoArrto.OtroTipoOcupacion,
                        objContratoArrto.Fk_IdInmuebleArrendamiento,
                        objContratoArrto.Fk_IdTipoUsoInm, //del BUS
                        objContratoArrto.OtroUsoInmueble,
                        objContratoArrto.Fk_IdTipoMoneda,
                        objContratoArrto.Fk_IdInstitucion,
                        objContratoArrto.NombreInstitucion,
                        objContratoArrto.FechaInicioOcupacion,
                        objContratoArrto.FechaFinOcupacion,
                        objContratoArrto.AreaOcupadaM2,
                        objContratoArrto.MontoPagoMensual,
                        objContratoArrto.MontoPagoPorCajonesEstacionamiento,
                        objContratoArrto.CuotaMantenimiento,
                        objContratoArrto.PtjeImpuesto,
                        objContratoArrto.RIUF,
                        objContratoArrto.Observaciones,
                        objContratoArrto.PropietarioInmueble,
                        objContratoArrto.FuncionarioResponsable,
                        objContratoArrto.Fk_IdUsuarioRegistro,
                        objContratoArrto.CargoUsuarioRegistro,
                        //objetos de Persona Referencia (3):
                        //Responsable de la Ocupacion
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.NombreCargo,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.Nombre,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.Email,
                        //titular del OIC
                        objContratoArrto.PersonaReferenciaTitularOIC.NombreCargo,
                        objContratoArrto.PersonaReferenciaTitularOIC.Nombre,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.Email,
                        //Capturista
                        objContratoArrto.PersonaReferenciaCapturista.NombreCargo,
                        objContratoArrto.PersonaReferenciaCapturista.Nombre,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaCapturista.Email,
                        // apartado de seguridad
                        objContratoArrto.CuentaConDictamen,
                        objContratoArrto.FechaDictamen,

                        //
                        objContratoArrto.CadenaOriginal,
                        objContratoArrto.SelloDigital,
                        objContratoArrto.QR,
                        parametroFolioContrato //parametro ouput
                        );

                    Conn.SaveChanges();

                    if (parametroFolioContrato == null)
                    {
                        throw new InvalidOperationException("No se pudo registrar el Contrato de Arrendamiento, vuelva a intentar o reporte a Sistemas");
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("InsertContratoArrtoOtrasFigOcupacion: {0}", ex.Message));
                }
            }//using

            if (parametroFolioContrato.Value != null)
            {
                FolioContrato = Convert.ToInt32(parametroFolioContrato.Value);
            }

            //parametro de retorno, regresa 0 si no hay insert, o el folio > 0 si se realizo el insert
            return(FolioContrato);
        }