/// <summary> /// Asocia los datos del objeto Contrato a la interfaz /// </summary> /// <param name="bo">Origen de los datos</param> private void DatoAInterfazUsuario(ContratoRDBO bo) { try{ if (bo == null) { bo = new ContratoRDBO(); if (bo.Sucursal == null) { bo.Sucursal = new SucursalBO(); } if (bo.Sucursal.UnidadOperativa == null) { bo.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } return; } this.vista.ContratoID = bo.ContratoID; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } this.presentadorHerramientas.DatosAInterfazUsuario(bo); if (bo != null && bo.DocumentosAdjuntos != null && bo.DocumentosAdjuntos.Count > 0) { bo.DocumentosAdjuntos = bo.DocumentosAdjuntos.Where(archivo => archivo.Activo == true).ToList(); } #region Lineas if (bo.ObtenerLineaContrato() != null && bo.ObtenerLineaContrato().Equipo != null && bo.ObtenerLineaContrato().Equipo is UnidadBO && ((UnidadBO)bo.ObtenerLineaContrato().Equipo).UnidadID != null) { ElementoFlotaBO elemento = new ElementoFlotaBO() { Unidad = (UnidadBO)bo.ObtenerLineaContrato().Equipo }; elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = elemento.Unidad }, false); if (elemento != null && elemento.Unidad != null && elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = new SucursalBO(); } this.presentadorDG.DatoAInterfazUsuario(elemento as object); this.presentadorDG.ProductoServicioAInterfazUsuario(bo.ObtenerLineaContrato().ProductoServicio); this.presentadorDG.MostrarProductoServicio(true); this.presentadorEA.DatoAInterfazUsuario(elemento as object); this.presentadorEA.CargarEquiposAliados(); } else { this.presentadorDG.Inicializar(); this.presentadorEA.Inicializar(); } int?kmRecorridos = null; if (bo.ObtenerLineaContrato() != null) { kmRecorridos = bo.ObtenerLineaContrato().CalcularKilometrajeRecorrido(); } #endregion //En cualquiera de estos casos, es Cancelación bool casoPermitido1 = bo.Estatus != null && bo.Estatus == EEstatusContrato.EnPausa; bool casoPermitido2 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos == 0; //En este caso, es Cierre bool casoPermitido3 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos > 0; this.vista.Cancelable = casoPermitido1 || casoPermitido2; this.vista.Cerrable = casoPermitido3; this.vista.PermitirCerrar(casoPermitido1 || casoPermitido2 || casoPermitido3); this.presentadorDocumentosContrato.Vista.EstablecerListasArchivos(bo.DocumentosAdjuntos, new List <TipoArchivoBO>()); LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea != null) { ListadoVerificacionBO chkEntrega = new ListadoVerificacionBO(); ListadoVerificacionBO chkRecepcion = new ListadoVerificacionBO(); chkEntrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA); if (chkEntrega != null) { this.presentadorDocumentosEntrega.Vista.EstablecerListasArchivos(chkEntrega.Adjuntos, new List <TipoArchivoBO>()); } chkRecepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION); if (chkRecepcion != null) { this.presentadorDocumentosRecepcion.Vista.EstablecerListasArchivos(chkRecepcion.Adjuntos, new List <TipoArchivoBO>()); } } this.presentadorResumen.DatosAInterfazUsuario(bo); this.vista.UltimoObjeto = bo; } catch (Exception ex) { throw new Exception(this.nombreClase + ".DatoAInterfazUsuario: " + ex.Message); } }
protected void ImprimirReporte(Dictionary <string, Object> datos, XmlDocument documento) { try { #region Obtener Formato del XML string leyendaCondiciones = string.Empty; string leyendaCargoCombustible = string.Empty; string leyendaBitacora = string.Empty; string leyendaSeguro = string.Empty; string leyendaArrendatarios = string.Empty; string leyendaOperacion = string.Empty; string leyendaInspeccion = string.Empty; string leyendaTitulo = string.Empty; string numeroPlaca = string.Empty; string direccionSuc = string.Empty; string telefonoUO = string.Empty; string direccionUO = string.Empty; XmlNodeList textoCondiciones = documento.GetElementsByTagName("condiciones"); if (textoCondiciones.Count < 1) { throw new Exception("el formato del archivo XML es incorrecto"); } leyendaCondiciones = textoCondiciones[0].InnerText; XmlNodeList textoCargoCombustible = documento.GetElementsByTagName("cargoCombustible"); if (textoCargoCombustible.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaCargoCombustible = textoCargoCombustible[0].InnerText; XmlNodeList textoBitacora = documento.GetElementsByTagName("bitacora"); if (textoBitacora.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaBitacora = textoBitacora[0].InnerText; XmlNodeList textoSeguro = documento.GetElementsByTagName("seguro"); if (textoSeguro.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaSeguro = textoSeguro[0].InnerText; XmlNodeList textoArrendatarios = documento.GetElementsByTagName("arrendatarios"); if (textoArrendatarios.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaArrendatarios = textoArrendatarios[0].InnerText; XmlNodeList textoOperacion = documento.GetElementsByTagName("operacion"); if (textoOperacion.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaOperacion = textoOperacion[0].InnerText; XmlNodeList textoInspeccion = documento.GetElementsByTagName("inspeccion"); if (textoInspeccion.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaInspeccion = textoInspeccion[0].InnerText; XmlNodeList textoTitulo = documento.GetElementsByTagName("Titulo"); if (textoTitulo.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaTitulo = textoTitulo[0].InnerText; #endregion #region Iniciar Variables if (datos["Contrato"] == null) { throw new Exception("Se esperaba un contrato"); } if (datos["Firmantes"] == null) { throw new Exception("Se esperaba Firmantes"); } if (datos["Modulo"] == null) { throw new Exception("Se esperaba una configuración de módulo"); } if (!(datos["Contrato"] is ContratoRDBO)) { throw new Exception("Se esperaba un contrato de Renta Diaria"); } // Contrato ContratoRDBO contrato = (ContratoRDBO)datos["Contrato"]; if (contrato == null) { contrato = new ContratoRDBO(); } if (contrato.Sucursal == null) { contrato.Sucursal = new SucursalBO(); } if (contrato.Sucursal.DireccionesSucursal == null) { direccionSuc = string.Empty; } else { var direcUO = contrato.Sucursal.DireccionesSucursal.Find(x => x.Primaria != null && x.Primaria.Value == true); if (direcUO != null) { if (!string.IsNullOrEmpty(direcUO.Calle) && !string.IsNullOrWhiteSpace(direcUO.Calle)) { direccionSuc = direcUO.Calle; } } } if (contrato.Cliente == null) { contrato.Cliente = new CuentaClienteIdealeaseBO(); } if (contrato.Cliente.Cliente == null) { contrato.Cliente.Cliente = new ClienteBO(); } if (contrato.Cliente.Direcciones == null) { DireccionClienteBO direccion = new DireccionClienteBO(); contrato.Cliente.Agregar(direccion); } if (contrato.Operador == null) { contrato.Operador = new OperadorBO(); } if (contrato.Operador.Direccion == null) { contrato.Operador.Direccion = new DireccionPersonaBO(); } if (contrato.Operador.Licencia == null) { contrato.Operador.Licencia = new LicenciaBO(); } if (contrato.Operador.Direccion.Ubicacion == null) { contrato.Operador.Direccion.Ubicacion = new UbicacionBO(); } if (contrato.Operador.Direccion.Ubicacion.Ciudad == null) { contrato.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO(); } if (contrato.Operador.Direccion.Ubicacion.Estado == null) { contrato.Operador.Direccion.Ubicacion.Estado = new EstadoBO(); } LineaContratoRDBO linea = contrato.ObtenerLineaContrato(); if (linea == null) { linea = new LineaContratoRDBO(); } if (linea.Equipo == null) { linea.Equipo = new UnidadBO(); } if (linea.Equipo.TipoEquipoServicio == null) { linea.Equipo.TipoEquipoServicio = new TipoUnidadBO(); } if (linea.Equipo.ActivoFijo == null) { linea.Equipo.ActivoFijo = new ActivoFijoBO(); } if (linea.Equipo.Modelo == null) { linea.Equipo.Modelo = new ModeloBO(); } if (((UnidadBO)linea.Equipo).CaracteristicasUnidad == null) { ((UnidadBO)linea.Equipo).CaracteristicasUnidad = new CaracteristicasUnidadBO(); } if (linea.Equipo.TipoEquipoServicio == null) { linea.Equipo.TipoEquipoServicio = new TipoUnidadBO(); } if (linea.Cobrable == null) { linea.Cobrable = new TarifaContratoRDBO(); } contrato.LineasContrato = new List <ILineaContrato>(); contrato.AgregarLineaContrato(linea); if (linea.ListadosVerificacion == null) { linea.ListadosVerificacion = new List <ListadoVerificacionBO>(); } // Configuración del Modulo ModuloBO modulo = (ModuloBO)datos["Modulo"]; ConfiguracionUnidadOperativaBO unidadOperativaConfiguracion; if (modulo == null) { modulo = new ModuloBO(); } if (modulo.Configuracion == null) { modulo.Configuracion = new ConfiguracionModuloBO(); } if (contrato.Sucursal.UnidadOperativa.Id == null) { unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO(); } else { unidadOperativaConfiguracion = modulo.ObtenerConfiguracionUO(new UnidadOperativaBO { Id = contrato.Sucursal.UnidadOperativa.Id }); } if (unidadOperativaConfiguracion == null) { unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO(); } if (unidadOperativaConfiguracion.ConfiguracionModulo == null) { unidadOperativaConfiguracion.ConfiguracionModulo = new ConfiguracionModuloBO(); } //Tramites List <TramiteBO> tramites = (List <TramiteBO>)datos["Tramites"]; if (tramites == null) { tramites = new List <TramiteBO>(); } PlacaEstatalBO placaEstatal = (PlacaEstatalBO)tramites.Find(t => t.Tipo == ETipoTramite.PLACA_ESTATAL); if (placaEstatal != null) { numeroPlaca = placaEstatal.Resultado; } PlacaFederalBO placaFederal = (PlacaFederalBO)tramites.Find(t => t.Tipo == ETipoTramite.PLACA_FEDERAL); if (placaFederal != null) { numeroPlaca = placaFederal.Resultado; } //Firmantes Tuple <IConstituible, List <PersonaBO>, List <IConstituible> > firmantes = (Tuple <IConstituible, List <PersonaBO>, List <IConstituible> >)datos["Firmantes"]; if (firmantes == null) { IConstituible cliente = new CuentaClienteIdealeaseBO(); List <PersonaBO> representantes = new List <PersonaBO>(); List <IConstituible> depositarios = new List <IConstituible>(); firmantes = new Tuple <IConstituible, List <PersonaBO>, List <IConstituible> >(cliente, representantes, depositarios); } //Usuarios UsuarioBO usuarioCreacion = (UsuarioBO)datos["UsuarioCreacion"]; if (usuarioCreacion == null) { usuarioCreacion = new UsuarioBO(); } UsuarioBO usuarioCierre = (UsuarioBO)datos["UsuarioCierre"]; if (usuarioCierre == null) { usuarioCierre = new UsuarioBO(); } //Sucursal Matriz SucursalBO matriz = (SucursalBO)datos["SucursalMatriz"]; if (matriz == null) { matriz = new SucursalBO(); } if (matriz.UnidadOperativa == null) { matriz.UnidadOperativa = new UnidadOperativaBO(); } if (matriz.DireccionesSucursal == null) { direccionUO = string.Empty; } else { var direcUO = matriz.DireccionesSucursal.Find(x => x.Primaria != null && x.Primaria.Value == true); if (direcUO != null) { if (!string.IsNullOrEmpty(direcUO.Telefono) && !string.IsNullOrWhiteSpace(direcUO.Telefono)) { telefonoUO = direcUO.Telefono; if (!string.IsNullOrEmpty(direcUO.Calle) && !string.IsNullOrWhiteSpace(direcUO.Calle)) { direccionUO = direcUO.Calle; } } else { if (!string.IsNullOrEmpty(direcUO.Calle) && !string.IsNullOrWhiteSpace(direcUO.Calle)) { direccionUO = direcUO.Calle; } } } } #endregion #region Asignar valores al Reporte #region Encabezado xrlblTitulo.Html = leyendaTitulo; if (String.IsNullOrEmpty(unidadOperativaConfiguracion.ConfiguracionModulo.URLLogoEmpresa)) { xrLogo.ImageUrl = modulo.Configuracion.URLLogoEmpresa; } else { xrLogo.ImageUrl = unidadOperativaConfiguracion.ConfiguracionModulo.URLLogoEmpresa; } xrlblFormatoNumero.Text = contrato.NumeroContrato ?? String.Empty; if (contrato.Estatus == EEstatusContrato.Borrador || contrato.Estatus == EEstatusContrato.EnPausa) { Watermark.Text = "BORRADOR"; } #endregion #region Seccion Izquierda xrlblUnidadOperativa.Text = matriz.UnidadOperativa.Nombre ?? String.Empty; xrlblCliente.Text = contrato.Cliente.Nombre ?? String.Empty; xrlblRFC.Text = contrato.Cliente.Cliente.RFC ?? String.Empty; xrtblCellDireccion.Text = contrato.Cliente.Direccion ?? String.Empty; DireccionClienteBO direccionCliente = contrato.Cliente.Direcciones.Find(c => c.Primaria != null && c.Primaria.Value) ?? new DireccionClienteBO(); if (direccionCliente.Ubicacion == null) { direccionCliente.Ubicacion = new UbicacionBO(); } if (direccionCliente.Ubicacion.Ciudad == null) { direccionCliente.Ubicacion.Ciudad = new CiudadBO(); } if (direccionCliente.Ubicacion.Estado == null) { direccionCliente.Ubicacion.Estado = new EstadoBO(); } xrtblCellCiudad.Text = direccionCliente.Ubicacion.Ciudad.Codigo ?? String.Empty; xrtblCellEstado.Text = direccionCliente.Ubicacion.Estado.Codigo ?? String.Empty; xrtblCellCP.Text = direccionCliente.CodigoPostal ?? String.Empty; xrtblCellNumeroCuenta.Text = contrato.Cliente.Id != null?contrato.Cliente.Id.ToString() : String.Empty; //SC0021 orden de compra con N/A if (contrato.FormaPago == null) { xrtblCellOrdenCompra.Text = String.Empty; } if (contrato.FormaPago == null && contrato.TipoConfirmacion == null) { xrtblCellOrdenCompra.Text = String.Empty; } else { if (contrato.FormaPago != null && contrato.TipoConfirmacion != null && contrato.FormaPago == EFormaPago.CREDITO && contrato.TipoConfirmacion == ETipoConfirmacion.ORDEN_DE_COMPRA) { xrtblCellOrdenCompra.Text = contrato.AutorizadorOrdenCompra; } else { xrtblCellOrdenCompra.Text = "N/A"; } } xrtblCellNombreOperador.Text = contrato.Operador.Nombre ?? String.Empty; xrtblCellExperienciaOperador.Text = contrato.Operador.AñosExperiencia != null ? contrato.Operador.AñosExperiencia.ToString() : String.Empty; xrtblCellCalleOperador.Text = contrato.Operador.Direccion.Calle ?? String.Empty; xrtblCellCiudadOperador.Text = contrato.Operador.Direccion.Ubicacion.Ciudad.Nombre ?? String.Empty; xrtblCellEstadoOperador.Text = contrato.Operador.Direccion.Ubicacion.Estado.Nombre ?? String.Empty; xrtblCellCPOperador.Text = contrato.Operador.Direccion.CodigoPostal ?? String.Empty; if (contrato.Operador.Licencia.Tipo == ETipoLicencia.ESTATAL) { xrchkEstatal.Checked = true; } if (contrato.Operador.Licencia.Tipo == ETipoLicencia.FEDERAL) { xrchkFederal.Checked = true; } xrTableCell20.Controls.Add(xrchkEstatal); xrTableCell21.Controls.Add(xrchkFederal); xrtblCellNumeroLicencia.Text = contrato.Operador.Licencia.Numero ?? String.Empty; xrtblCellEstadoLicencia.Text = contrato.Operador.Licencia.Estado ?? String.Empty; xrtblCellFechaExpiracion.Text = contrato.Operador.Licencia.FechaExpiracion != null ? contrato.Operador.Licencia.FechaExpiracion.Value.ToString("dd/MM/yyyy") : String.Empty; xrtblCellFechaNacimiento.Text = contrato.Operador.FechaNacimiento != null ? contrato.Operador.FechaNacimiento.Value.ToString("dd/MM/yyyy") : String.Empty; xrlblLeyendaCondiciones.Html = leyendaCondiciones; xrtblCellAreaOperacion.Text = contrato.DestinoAreaOperacion ?? String.Empty; xrtblCellVehiculoDevuelto.Text = direccionSuc ?? String.Empty; xrtblCellMercanciaTrasportar.Text = contrato.MercanciaTransportar ?? String.Empty; if (contrato.MotivoRenta == EMotivoRenta.DEMOSTRACION) { xrchkDemostracion.Checked = true; } if (contrato.MotivoRenta == EMotivoRenta.MATERIAL_PELIGROSO) { xrchkMaterialPeligroso.Checked = true; } if (contrato.MotivoRenta == EMotivoRenta.SUSTITUCION_TEMPORAL) { xrchkSustitucionTemporal.Checked = true; } if (contrato.MotivoRenta == EMotivoRenta.UNIDAD_EXTRA) { xrchkUnidadExtra.Checked = true; } xrlblLeyendaCargosCombustible.Html = leyendaCargoCombustible; xrlblLeyendaBitacoraViaje.Html = leyendaBitacora; if (contrato.BitacoraViajeConductor == true) { xrchkBitacora.Checked = true; } SeguroBO seguro = (SeguroBO)tramites.Find(t => t.Tipo == ETipoTramite.SEGURO); if (seguro != null) { string aseguradoraTelefono = string.Empty; aseguradoraTelefono = !String.IsNullOrEmpty(seguro.Aseguradora) ? seguro.Aseguradora : string.Empty; aseguradoraTelefono = !String.IsNullOrEmpty(seguro.Contacto) ? (!String.IsNullOrEmpty(aseguradoraTelefono) ? aseguradoraTelefono + " - " + seguro.Contacto : aseguradoraTelefono) : aseguradoraTelefono; xrtblCellCompaniaAseguradora.Text = !String.IsNullOrEmpty(aseguradoraTelefono) ? aseguradoraTelefono : String.Empty; xrlblNumeroPoliza.Text = seguro.NumeroPoliza ?? String.Empty; xrlblCompania.Text = seguro.Aseguradora ?? String.Empty; } LineaContratoRDBO lineaTemp = contrato.ObtenerLineaContrato(); if (lineaTemp.Equipo.ActivoFijo.CostoSinIva == null) { leyendaSeguro = leyendaSeguro.Replace("{MONTODEDUCIBLE}", "__________"); } else { Decimal?montoDeducibleCalcuado = 0; montoDeducibleCalcuado = lineaTemp.Equipo.ActivoFijo.CostoSinIva; var unidad = (UnidadBO)lineaTemp.Equipo; if (unidad.EquiposAliados.Count > 0) { montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto); } //SC0021 formato de decimales leyendaSeguro = leyendaSeguro.Replace("{MONTODEDUCIBLE}", String.Format("{0:#,##0.00##}", contrato.CalcularMontoDeducible((Decimal)montoDeducibleCalcuado).Value)); } xrlblLeyendaSeguro.Html = leyendaSeguro; xrlblFirmaUnidadOperativa.Text = matriz.UnidadOperativa.Nombre; xrlblRepresentanteUnidadOperativa.Text = unidadOperativaConfiguracion.Representante; xrlblTelefonoUnidadOperativa.Text = telefonoUO; xrlblDireccionUnidadOperativa.Text = direccionUO; if (contrato.Cliente.EsFisico == null || contrato.Cliente.EsFisico == true) { RepresentanteLegalBO representante; if (firmantes.Item2 == null) { representante = new RepresentanteLegalBO(); } else { representante = (RepresentanteLegalBO)firmantes.Item2[0]; } string cliente = representante.Nombre; cliente = !String.IsNullOrEmpty(representante.Telefono) ? cliente + "/n" + representante.Telefono : cliente; cliente = !String.IsNullOrEmpty(representante.Direccion) ? cliente + "/n" + representante.Direccion : cliente; xrlblDatosClienteMoral.Text = cliente; xrSubreport3.Visible = false; } if (contrato.Cliente.EsFisico == false) { xrlblDatosClienteMoral.BorderWidth = 0; string clienteMoral = contrato.Cliente.Nombre; var direccion = contrato.Cliente.Direcciones.Find(p => p.Primaria != null && p.Primaria.Value); if (direccion != null) { if (!String.IsNullOrWhiteSpace(direccion.Telefono) && !String.IsNullOrEmpty(direccion.Telefono)) { clienteMoral = clienteMoral + "\n" + direccion.Telefono; } } clienteMoral = clienteMoral + "\n" + contrato.Cliente.Direccion; xrlblDatosClienteMoral.Text = clienteMoral; if (firmantes.Item2 != null) { firmantes.Item2.ForEach(r => r.Telefono = null); xrSubreport3.ReportSource.DataSource = firmantes.Item2.ConvertAll(r => (RepresentanteLegalBO)r); } else { xrSubreport3.Visible = false; } } #endregion #region Seccion Derecha xrlblFecha.Text = contrato.FechaContrato != null ? contrato.FechaContrato.Value.ToShortDateString() : String.Empty; xrlblFechaPromesaDevolucion.Text = contrato.FechaPromesaDevolucion != null ? contrato.FechaPromesaDevolucion.Value.ToShortDateString() : String.Empty; xrlblModelo.Text = lineaTemp.Equipo.Modelo.Nombre ?? String.Empty; xrtblCellNumeroEconomico.Text = ((UnidadBO)lineaTemp.Equipo).NumeroEconomico ?? String.Empty; xrtblCellNumeroSerie.Text = lineaTemp.Equipo.NumeroSerie ?? String.Empty; xrtblCellNumeroPlaca.Text = numeroPlaca; //SC0021 formato de decimales xrtblCellPBC.Text = ((UnidadBO)lineaTemp.Equipo).CaracteristicasUnidad.PBCMaximoRecomendado != null ? String.Format("{0:#,##0.00##}", ((UnidadBO)lineaTemp.Equipo).CaracteristicasUnidad.PBCMaximoRecomendado) : String.Empty; xrlblTipo.Text = lineaTemp.Equipo.TipoEquipoServicio.Nombre ?? String.Empty; xrSubreport1.ReportSource.DataSource = ((UnidadBO)linea.Equipo).EquiposAliados; //xrlblModeloEquipoAliado.DataBindings.Add(new XRBinding("Text", (((UnidadBO)linea.Equipo).EquiposAliados), "Modelo.Nombre")); //xrlblSerieEquipoAliado.DataBindings.Add(new XRBinding("Text", (((UnidadBO)linea.Equipo).EquiposAliados), "NumeroSerie")); if (lineaTemp.Equipo.EquipoID != null) { xrtblCellFechaDevolucion.Text = contrato.ObtenerFechaDevolucion((UnidadBO)lineaTemp.Equipo) != null ? contrato.ObtenerFechaDevolucion((UnidadBO)lineaTemp.Equipo) .Value.ToString() : String.Empty; xrtblCellFechaSalida.Text = contrato.ObtenerFechaEntrega((UnidadBO)lineaTemp.Equipo) != null ? contrato.ObtenerFechaEntrega((UnidadBO)lineaTemp.Equipo) .Value.ToString() : String.Empty; xrtblCellKmTotal.Text = contrato.CalcularKilometrajeRecorrido((UnidadBO)lineaTemp.Equipo) != null ? String.Format("{0:#,##0}", contrato.CalcularKilometrajeRecorrido((UnidadBO)lineaTemp.Equipo)) : String.Empty; xrlblCargoKilometro.Text = ((TarifaContratoRDBO)lineaTemp.Cobrable).RangoTarifas.First().CargoKm != null ? "$ " + String.Format("{0:#,##0.00##}", ((TarifaContratoRDBO)lineaTemp.Cobrable).RangoTarifas.First().CargoKm) : "$"; xrtblCellTotalEquipoAliado.Text = contrato.CalcularHorasConsumidas((UnidadBO)lineaTemp.Equipo) != null ? String.Format("{0:#,##0}", contrato.CalcularHorasConsumidas((UnidadBO)lineaTemp.Equipo)) : String.Empty; } else { xrtblCellFechaDevolucion.Text = String.Empty; xrtblCellFechaSalida.Text = String.Empty; xrtblCellKmTotal.Text = String.Empty; xrlblCargoKilometro.Text = "$"; xrtblCellTotalEquipoAliado.Text = String.Empty; } xrtblCellDias.Text = contrato.CalcularDiasTranscurridosRenta() != null ? String.Format("{0:#,##0}", contrato.CalcularDiasTranscurridosRenta()) : String.Empty; xrtblCellHoras.Text = contrato.CalcularHorasTranscurridasRenta() != null ? String.Format("{0:#,##0.00##}", contrato.CalcularHorasTranscurridasRenta()) : String.Empty; if (contrato.LectorKilometraje == ELectorKilometraje.HUBODOMETRO) { xrchkHubodometro.Checked = true; } if (contrato.LectorKilometraje == ELectorKilometraje.ODOMETRO) { xrchkOdometro.Checked = true; } ListadoVerificacionBO listadoEntrada = lineaTemp.ListadosVerificacion.Find(l => l.Tipo == ETipoListadoVerificacion.RECEPCION); if (listadoEntrada == null) { xrtblCellKmEntrada.Text = String.Empty; xrtblCellHrEntrada.Text = String.Empty; } else { xrtblCellKmEntrada.Text = listadoEntrada.Kilometraje != null ? String.Format("{0:#,##0}", listadoEntrada.Kilometraje) : String.Empty; xrtblCellHrEntrada.Text = listadoEntrada.Horometro != null ? String.Format("{0:#,##0}", listadoEntrada.Horometro) : String.Empty; } ListadoVerificacionBO listadoSalida = lineaTemp.ListadosVerificacion.Find(l => l.Tipo == ETipoListadoVerificacion.ENTREGA); if (listadoSalida == null) { xrtblCellKmSalida.Text = String.Empty; xrtblCellHrSalida.Text = String.Empty; } else { xrtblCellKmSalida.Text = listadoSalida.Kilometraje != null ? String.Format("{0:#,##0}", listadoSalida.Kilometraje) : String.Empty; xrtblCellHrSalida.Text = listadoSalida.Horometro != null ? String.Format("{0:#,##0}", listadoSalida.Horometro) : String.Empty; } //SC0021 formato de decimales var tarifaContrato = lineaTemp.Cobrable != null ? lineaTemp.Cobrable as TarifaContratoRDBO : new TarifaContratoRDBO(); xrlblTarifaDiaria.Text = tarifaContrato.TarifaDiaria != null ? "$ " + String.Format("{0:#,##0.00##}", tarifaContrato.TarifaDiaria) : "$"; xrlblTarifaHora.Text = tarifaContrato.RangoTarifas != null && tarifaContrato.RangoTarifas.Any() && tarifaContrato.RangoTarifas.First().CargoHr != null ? "$ " + String.Format("{0:#,##0.00##}", tarifaContrato.RangoTarifas.First().CargoHr) : "$"; if (unidadOperativaConfiguracion.PrecioUnidadCombustible == null) { xrtblCellLitro.Text = ""; } xrtblCellPrecioLitro.Text = unidadOperativaConfiguracion.PrecioUnidadCombustible != null ? "$ " + String.Format("{0:#,##0.00##}", unidadOperativaConfiguracion.PrecioUnidadCombustible) : "$"; string descripcion = string.Empty; if (contrato.FormaPago != null) { FieldInfo fi = contrato.FormaPago.GetType().GetField(contrato.FormaPago.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attributes != null && attributes.Length > 0) { descripcion = attributes[0].Description; } else { descripcion = contrato.FormaPago.ToString(); } } if (contrato.TipoConfirmacion != null) { FieldInfo fi = contrato.TipoConfirmacion.GetType().GetField(contrato.TipoConfirmacion.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attributes != null && attributes.Length > 0) { descripcion = !String.IsNullOrEmpty(descripcion) ? descripcion + " - " + attributes[0].Description : attributes[0].Description; } else { descripcion = !String.IsNullOrEmpty(descripcion) ? descripcion + " - " + contrato.TipoConfirmacion.ToString() : contrato.TipoConfirmacion.ToString(); } } this.xrtblCellCreditoAprobadoPor.Text = !string.IsNullOrEmpty(contrato.AutorizadorTipoConfirmacion) && !string.IsNullOrWhiteSpace(contrato.AutorizadorTipoConfirmacion) ? contrato.AutorizadorTipoConfirmacion.Trim().ToUpper() : string.Empty; xrtblCellTipoConfirmacion.Text = descripcion; if (contrato.FormaPago != null) { xrchkDeposito.Checked = true; if (lineaTemp.Equipo.ActivoFijo.CostoSinIva == null) { xrtblCellDepositoRecibido.Text = "$"; } else { Decimal?montoDeducibleCalcuado = 0; montoDeducibleCalcuado = lineaTemp.Equipo.ActivoFijo.CostoSinIva; var unidad = (UnidadBO)lineaTemp.Equipo; if (unidad.EquiposAliados.Count > 0) { montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto); } //SC0021 formato de decimales xrtblCellDepositoRecibido.Text = contrato.CalcularMontoDeposito((Decimal)montoDeducibleCalcuado) != null ? "$" + String.Format("{0:#,##0.00##}", contrato.CalcularMontoDeposito((Decimal)montoDeducibleCalcuado)) : "$"; } } if (contrato.TipoConfirmacion != null && contrato.TipoConfirmacion == ETipoConfirmacion.ORDEN_DE_COMPRA) { xrchkDeposito.Checked = false; xrtblCellDepositoRecibido.Text = "$0.00"; } xrtblCellPreparadoPor.Text = usuarioCreacion.Nombre ?? String.Empty; xrtblCellCompletadoPor.Text = usuarioCierre.Nombre ?? String.Empty; #region CU011 – Imprimir Cierre de Contrato de Renta Diaria //se obtiene los datos de finalizacion del contrato object finalizacion = contrato.ObtenerFinalizacionContratoRD(); CierreContratoRDBO cierreContrato = null; if (finalizacion != null && typeof(CierreContratoRDBO) == finalizacion.GetType() && lineaTemp != null) { cierreContrato = (CierreContratoRDBO)finalizacion; } if (cierreContrato != null) { // se realizan los calculos decimal?importeRenta = contrato.CalcularDiasTranscurridosRenta() * ((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria; decimal?importeKmAdicional = contrato.CalcularMontoPorKilometrosExcedidos((UnidadBO)lineaTemp.Equipo); decimal?importeHrAdicional = contrato.CalcularMontoPorHorasExcedidas((UnidadBO)lineaTemp.Equipo); decimal?subtotalTarifa = importeRenta + importeKmAdicional + importeHrAdicional; int? litrosUnidad = contrato.CalcularDiferenciaCombustible(); decimal?importeLitros = contrato.CalcularMontoPorCombustible(unidadOperativaConfiguracion.PrecioUnidadCombustible); decimal?subtotalCargos = unidadOperativaConfiguracion.PrecioUnidadCombustible.HasValue ? contrato.CalcularSubTotalCargos(unidadOperativaConfiguracion.PrecioUnidadCombustible.Value) : null; decimal?importeSinIva = subtotalTarifa + subtotalCargos; decimal?importeDelIva = (importeSinIva * (contrato.Sucursal.Impuesto != null ? contrato.Sucursal.Impuesto.PorcentajeImpuesto : null)) / 100; decimal?cargoNeto = importeSinIva + importeDelIva; //decimal? montoDeposito = contrato.CalcularMontoDeposito(lineaTemp.Equipo.ActivoFijo.CostoSinIva.Value); decimal?totalPagar = cargoNeto; // se asignan valores a los campos del reporte xrtblCellTarifaDiaria.Text = importeRenta != null ? "$ " + String.Format("{0:#,##0.00##}", importeRenta) : string.Empty; xrtblCellCargoKilometro.Text = importeKmAdicional != null ? "$ " + String.Format("{0:#,##0.00##}", importeKmAdicional) : string.Empty; xrtblCellTarifaHora.Text = importeHrAdicional != null ? "$ " + String.Format("{0:#,##0.00##}", importeHrAdicional) : string.Empty; xrtblCellSubtotalTarifa.Text = subtotalTarifa != null ? "$ " + String.Format("{0:#,##0.00##}", subtotalTarifa) : string.Empty; xrtblCellLitros.Text = litrosUnidad != null?String.Format("{0:#,##0.00##}", litrosUnidad) : string.Empty; xrtblCellImporteLitros.Text = importeLitros != null ? "$ " + String.Format("{0:#,##0.00##}", importeLitros) : string.Empty; xrtblCellCargoAbuso.Text = cierreContrato.CargoAbusoOperacion != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.CargoAbusoOperacion) : string.Empty; xrtblCellCargoBasura.Text = cierreContrato.CargoDisposicionBasura != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.CargoDisposicionBasura) : string.Empty; xrtblCellSubtotalCargos.Text = subtotalCargos != null ? "$ " + String.Format("{0:#,##0.00##}", subtotalCargos) : string.Empty; xrtblCellPorcentajeIva.Text = contrato.Sucursal.Impuesto.PorcentajeImpuesto.HasValue ? contrato.Sucursal.Impuesto.PorcentajeImpuesto.Value.ToString() + " %" : string.Empty; xrtblCellCargoNeto.Text = cargoNeto != null ? "$ " + String.Format("{0:#,##0.00##}", cargoNeto) : string.Empty; xrtblCellRembolso.Text = cierreContrato.ImporteReembolso != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.ImporteReembolso) : string.Empty; xrtblCellTotalPagar.Text = totalPagar != null ? "$ " + String.Format("{0:#,##0.00##}", totalPagar) : string.Empty; xrtblCellRembolsoRecibidoPor.Text = cierreContrato.PersonaRecibeReembolso; xrtblCellImporteIVA.Text = importeDelIva != null ? "$ " + String.Format("{0:#,##0.00##}", importeDelIva) : string.Empty; } #endregion #endregion #region Pie de Reporte xrlblLeyendaArrendatarios.Html = leyendaArrendatarios; xrlblLeyendaOperacion.Html = leyendaOperacion; xrlblLeyendaInspeccion.Html = leyendaInspeccion; xrlblNumeroCheckList.Text = contrato.CalcularNumeroListadoVerificacion() ?? String.Empty; #endregion #endregion } catch (Exception ex) { throw new Exception("ContratoRentaDiariaRPT.ImprimirReporte:Error al intentar generar el reporte." + ex.Message); } }
private void DatoAInterfazUsuario(object obj) { ContratoRDBO bo = (ContratoRDBO)obj; if (bo == null) { bo = new ContratoRDBO(); } if (bo.Cliente == null) { bo.Cliente = new CuentaClienteIdealeaseBO(); } if (bo.Divisa == null) { bo.Divisa = new DivisaBO(); } if (bo.Divisa.MonedaDestino == null) { bo.Divisa.MonedaDestino = new MonedaBO(); } if (bo.Operador == null) { bo.Operador = new OperadorBO(); } if (bo.Operador.Direccion == null) { bo.Operador.Direccion = new DireccionPersonaBO(); } if (bo.Operador.Direccion.Ubicacion == null) { bo.Operador.Direccion.Ubicacion = new UbicacionBO(); } if (bo.Operador.Direccion.Ubicacion.Ciudad == null) { bo.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO(); } if (bo.Operador.Direccion.Ubicacion.Estado == null) { bo.Operador.Direccion.Ubicacion.Estado = new EstadoBO(); } if (bo.Operador.Direccion.Ubicacion.Pais == null) { bo.Operador.Direccion.Ubicacion.Pais = new PaisBO(); } if (bo.Operador.Licencia == null) { bo.Operador.Licencia = new LicenciaBO(); } if (bo.Sucursal == null) { bo.Sucursal = new SucursalBO(); } if (bo.Sucursal.UnidadOperativa == null) { bo.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } if (bo.CierreContrato == null) { bo.CierreContrato = new CancelacionContratoRDBO(); } if (bo.CierreContrato.Usuario == null) { bo.CierreContrato.Usuario = new UsuarioBO(); } LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea == null) { linea = new LineaContratoRDBO(); if (linea.Equipo == null) { linea.Equipo = new UnidadBO(); } if (linea.Cobrable == null) { linea.Cobrable = new TarifaContratoRDBO(); } } else { this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); if (linea.Equipo != null) { this.vista.EquipoID = linea.Equipo.EquipoID; //Se consulta la información de la flota if (linea.Equipo is UnidadBO) { this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID; ElementoFlotaBO elemento = new ElementoFlotaBO() { Unidad = (UnidadBO)linea.Equipo }; elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = elemento.Unidad }, false); if (elemento != null && elemento.Unidad != null && elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = new SucursalBO(); } this.presentadorDG.DatoAInterfazUsuario(elemento as object); this.presentadorEA.DatoAInterfazUsuario(elemento as object); this.presentadorEA.CargarEquiposAliados(); } else { this.presentadorDG.Inicializar(); this.presentadorEA.Inicializar(); } } } this.vista.ContratoID = bo.ContratoID; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } this.vista.FechaCancelacion = bo.CierreContrato.Fecha; this.vista.ObservacionesCancelacion = bo.CierreContrato.Observaciones; if (bo.CierreContrato is CancelacionContratoRDBO) { this.vista.MotivoCancelacion = ((CancelacionContratoRDBO)bo.CierreContrato).Motivo; } else { this.vista.MotivoCancelacion = null; } vista.FechaContrato = bo.FechaContrato; this.presentadorHerramientas.DatosAInterfazUsuario(bo); this.presentadorResumen.DatosAInterfazUsuario(bo); }
/// <summary> /// Obtiene los datos de la Vista /// </summary> /// <returns></returns> private object InterfazUsuarioADato() { UnidadOperativaBO unidadOperativa = new UnidadOperativaBO(); if (this.vista.UnidadOperativaID != null) { unidadOperativa.Id = this.vista.UnidadOperativaID; } if (this.vista.UnidadOperativaNombre != null) { unidadOperativa.Nombre = vista.UnidadOperativaNombre; } ContratoRDBO bo = new ContratoRDBO(); bo.Cliente = new CuentaClienteIdealeaseBO(); bo.Cliente.Cliente = new ClienteBO(); bo.Cliente.UnidadOperativa = new UnidadOperativaBO(); bo.Divisa = new DivisaBO(); bo.Divisa.MonedaDestino = new MonedaBO(); bo.Sucursal = new SucursalBO(); bo.Sucursal.UnidadOperativa = new UnidadOperativaBO(); bo.LineasContrato = new List <ILineaContrato>(); bo.Operador = new OperadorBO(); bo.Operador.Direccion = new DireccionPersonaBO(); bo.Operador.Direccion.Ubicacion = new UbicacionBO() { Ciudad = new CiudadBO(), Estado = new EstadoBO(), Municipio = new MunicipioBO(), Pais = new PaisBO() }; bo.Operador.Licencia = new LicenciaBO(); bo.Tipo = ETipoContrato.RD; if (this.vista.SucursalID != null) { bo.Sucursal.Id = this.vista.SucursalID; } if (this.vista.SucursalNombre != null) { bo.Sucursal.Nombre = this.vista.SucursalNombre; } bo.Sucursal.UnidadOperativa = unidadOperativa; bo.Cliente.UnidadOperativa = unidadOperativa; if (this.vista.CuentaClienteID != null) { bo.Cliente.Id = this.vista.CuentaClienteID; } if (vista.CuentaClienteNombre != null) { bo.Cliente.Nombre = vista.CuentaClienteNombre; } bo.Cliente.Cliente.RFC = this.vista.ClienteRFC ?? this.vista.ClienteRFC; bo.Cliente.Cliente.Numero = this.vista.CuentaClienteNumeroCuenta ?? this.vista.CuentaClienteNumeroCuenta; if (this.vista.CodigoMoneda != null) { bo.Divisa.MonedaDestino.Codigo = this.vista.CodigoMoneda; } if (this.vista.RepresentantesLegales != null) { bo.RepresentantesLegales = this.vista.RepresentantesLegales.ConvertAll(s => (PersonaBO)s); } bo.SoloRepresentantes = vista.SoloRepresentantes; bo.Avales = vista.Avales; #region Dirección del Cliente DireccionClienteBO direccion = new DireccionClienteBO { Ubicacion = new UbicacionBO { Pais = new PaisBO { Codigo = this.vista.ClienteDireccionPais }, Municipio = new MunicipioBO { Codigo = this.vista.ClienteDireccionMunicipio }, Estado = new EstadoBO { Codigo = this.vista.ClienteDireccionEstado }, Ciudad = new CiudadBO { Codigo = this.vista.ClienteDireccionCiudad } }, CodigoPostal = this.vista.ClienteDireccionCodigoPostal, Calle = this.vista.ClienteDireccionCalle, Colonia = this.vista.ClienteDireccionColonia, Id = this.vista.ClienteDireccionId, Primaria = true }; bo.Cliente.RemoverDirecciones(); bo.Cliente.Agregar(direccion); #endregion #region Operador if (this.vista.OperadorID != null) { bo.Operador.OperadorID = this.vista.OperadorID; } if (this.vista.OperadorAniosExperiencia != null) { bo.Operador.AñosExperiencia = this.vista.OperadorAniosExperiencia; } if (this.vista.OperadorFechaNacimiento != null) { bo.Operador.FechaNacimiento = this.vista.OperadorFechaNacimiento; } if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCalle)) { bo.Operador.Direccion.Calle = this.vista.OperadorDireccionCalle; } if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCiudad)) { bo.Operador.Direccion.Ubicacion.Ciudad.Nombre = this.vista.OperadorDireccionCiudad; } if (!string.IsNullOrEmpty(this.vista.OperadorDireccionEstado)) { bo.Operador.Direccion.Ubicacion.Estado.Nombre = this.vista.OperadorDireccionEstado; } if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCP)) { bo.Operador.Direccion.CodigoPostal = this.vista.OperadorDireccionCP; } if (!string.IsNullOrEmpty(this.vista.OperadorLicenciaEstado)) { bo.Operador.Licencia.Estado = this.vista.OperadorLicenciaEstado; } if (this.vista.OperadorLicenciaFechaExpiracion != null) { bo.Operador.Licencia.FechaExpiracion = this.vista.OperadorLicenciaFechaExpiracion; } if (!string.IsNullOrEmpty(this.vista.OperadorLicenciaNumero)) { bo.Operador.Licencia.Numero = this.vista.OperadorLicenciaNumero; } if (this.vista.OperadorLicenciaTipoID != null) { bo.Operador.Licencia.Tipo = (ETipoLicencia)Enum.Parse(typeof(ETipoLicencia), this.vista.OperadorLicenciaTipoID.ToString()); } if (!string.IsNullOrEmpty(this.vista.OperadorNombre)) { bo.Operador.Nombre = this.vista.OperadorNombre; } #endregion if (this.vista.FechaContrato != null) { bo.FechaContrato = this.vista.FechaContrato; } if (this.vista.FechaPromesaDevolucion != null) { bo.FechaPromesaDevolucion = this.vista.FechaPromesaDevolucion; } if (this.vista.FormaPagoID != null) { bo.FormaPago = (EFormaPago)Enum.Parse(typeof(EFormaPago), this.vista.FormaPagoID.ToString()); } if (this.vista.FrecuenciaFacturacionID != null) { bo.FrecuenciaFacturacion = (EFrecuencia)Enum.Parse(typeof(EFrecuencia), this.vista.FrecuenciaFacturacionID.ToString()); } if (this.vista.AutorizadorTipoConfirmacion != null) { bo.AutorizadorTipoConfirmacion = this.vista.AutorizadorTipoConfirmacion; } if (this.vista.AutorizadorOrdenCompra != null) { bo.AutorizadorOrdenCompra = this.vista.AutorizadorOrdenCompra; } if (this.vista.BitacoraViajeConductor != null) { bo.BitacoraViajeConductor = this.vista.BitacoraViajeConductor; } if (this.vista.DestinoAreaOperacion != null) { bo.DestinoAreaOperacion = this.vista.DestinoAreaOperacion; } if (this.vista.LectorKilometrajeID != null) { bo.LectorKilometraje = (ELectorKilometraje)Enum.Parse(typeof(ELectorKilometraje), this.vista.LectorKilometrajeID.ToString()); } if (this.vista.MercanciaTransportar != null) { bo.MercanciaTransportar = this.vista.MercanciaTransportar; } if (this.vista.MotivoRentaID != null) { bo.MotivoRenta = (EMotivoRenta)Enum.Parse(typeof(EMotivoRenta), this.vista.MotivoRentaID.ToString()); } if (this.vista.PorcentajeDeducible != null) { bo.PorcentajeDeducible = this.vista.PorcentajeDeducible; } if (this.vista.TipoConfirmacionID != null) { bo.TipoConfirmacion = (ETipoConfirmacion)Enum.Parse(typeof(ETipoConfirmacion), this.vista.TipoConfirmacionID.ToString()); } if (this.vista.Observaciones != null) { bo.Observaciones = this.vista.Observaciones; } #region BEP1401.SC0026 if (this.vista.DiasFacturar != null) { bo.DiasFacturar = this.vista.DiasFacturar; } #endregion if (this.vista.EstatusID != null) { bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString()); } if (this.vista.FC != null) { bo.FC = this.vista.FC; } if (this.vista.UC != null) { bo.UC = this.vista.UC; } if (this.vista.FUA != null) { bo.FUA = this.vista.FUA; } if (this.vista.UUA != null) { bo.UUA = this.vista.UUA; } #region Linea de Contrato LineaContratoRDBO lineaBO = new LineaContratoRDBO() { Activo = true }; if (this.vista.EquipoID != null) { if (lineaBO.Equipo == null) { lineaBO.Equipo = new UnidadBO(); } lineaBO.Equipo.EquipoID = this.vista.EquipoID; } if (this.vista.UnidadID != null) { if (lineaBO.Equipo == null) { lineaBO.Equipo = new UnidadBO(); } ((UnidadBO)lineaBO.Equipo).UnidadID = this.vista.UnidadID; } if (!string.IsNullOrWhiteSpace(this.vista.ClaveProductoServicio)) { if (lineaBO.ProductoServicio == null) { lineaBO.ProductoServicio = new ProductoServicioBO(); } lineaBO.ProductoServicio.Id = this.vista.ProductoServicioId; lineaBO.ProductoServicio.NombreCorto = this.vista.ClaveProductoServicio; lineaBO.ProductoServicio.Nombre = this.vista.DescripcionProductoServicio; } if (this.vista.TipoTarifaID != null) { lineaBO.TipoTarifa = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaID.ToString()); } lineaBO.Cobrable = new TarifaContratoRDBO() { RangoTarifas = new List <RangoTarifaRDBO>() { new RangoTarifaRDBO() }, TarifasEquipoAliado = new List <TarifaContratoRDEquipoAliadoBO>() }; if (string.IsNullOrEmpty(this.vista.TarifaDescripcion)) { ((TarifaContratoRDBO)lineaBO.Cobrable).Descripcion = this.vista.TarifaDescripcion; } if (this.vista.CapacidadCarga != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).CapacidadCarga = this.vista.CapacidadCarga; } if (this.vista.TarifaDiaria != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).TarifaDiaria = this.vista.TarifaDiaria; } if (this.vista.KmsLibres != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).KmsLibres = this.vista.KmsLibres; ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().KmRangoInicial = this.vista.KmsLibres + 1; } if (this.vista.TarifaKmAdicional != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().CargoKm = this.vista.TarifaKmAdicional; } if (this.vista.HrsLibres != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).HrsLibres = this.vista.HrsLibres; ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().HrRangoInicial = this.vista.HrsLibres + 1; } if (this.vista.TarifaHrAdicional != null) { ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().CargoHr = this.vista.TarifaHrAdicional; } if (!String.IsNullOrEmpty(this.vista.NumeroEconomico)) { if (lineaBO.Equipo == null) { lineaBO.Equipo = new UnidadBO(); } ((UnidadBO)lineaBO.Equipo).NumeroEconomico = this.vista.NumeroEconomico; } bo.LineasContrato.Add(lineaBO); #endregion #region Archivos Adjuntos List <ArchivoBO> adjuntos = presentadorDocumentos.Vista.ObtenerArchivos() ?? new List <ArchivoBO>(); foreach (ArchivoBO adjunto in adjuntos) { adjunto.TipoAdjunto = ETipoAdjunto.ContratoRD; adjunto.Auditoria = new AuditoriaBO { FC = this.vista.FC, UC = this.vista.UC, FUA = this.vista.FUA, UUA = this.vista.UUA }; } bo.DocumentosAdjuntos = adjuntos; #endregion return(bo); }
protected void ImprimirReporte(Dictionary <string, Object> datos, XmlDocument documento) { try { string leyendaTitulo = string.Empty; string leyendaDatosEncabezado = string.Empty; string leyendaClausulas = string.Empty; XmlNodeList textoEncabezado = documento.GetElementsByTagName("datosEncabezado"); if (textoEncabezado.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaDatosEncabezado = textoEncabezado[0].InnerText; XmlNodeList textoTitulo = documento.GetElementsByTagName("Titulo"); if (textoTitulo.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaTitulo = textoTitulo[1].InnerText; XmlNodeList textoClausulas = documento.GetElementsByTagName("clausulas"); if (textoClausulas.Count < 1) { throw new Exception("El formato del archivo XML es incorrecto"); } leyendaClausulas = textoClausulas[0].InnerText; #region Inicializacion de Variables //Contrato ContratoRDBO contrato = (ContratoRDBO)datos["Contrato"]; if (contrato == null) { contrato = new ContratoRDBO(); } if (contrato.Sucursal == null) { contrato.Sucursal = new SucursalBO(); } if (contrato.Sucursal.UnidadOperativa == null) { contrato.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } if (contrato.Cliente == null) { contrato.Cliente = new CuentaClienteIdealeaseBO(); } LineaContratoRDBO linea = contrato.ObtenerLineaContrato(); if (linea == null) { linea = new LineaContratoRDBO(); } if (linea.Cobrable == null) { linea.Cobrable = new TarifaContratoRDBO(); } contrato.LineasContrato = new List <ILineaContrato>(); contrato.AgregarLineaContrato(linea); //Configuración del modulo ModuloBO modulo = (ModuloBO)datos["Modulo"]; ConfiguracionUnidadOperativaBO unidadOperativaConfiguracion; if (modulo == null) { modulo = new ModuloBO(); } if (modulo.Configuracion == null) { modulo.Configuracion = new ConfiguracionModuloBO(); } if (contrato.Sucursal.UnidadOperativa.Id == null) { unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO(); } else { unidadOperativaConfiguracion = modulo.ObtenerConfiguracionUO(new UnidadOperativaBO { Id = contrato.Sucursal.UnidadOperativa.Id }); } if (unidadOperativaConfiguracion == null) { unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO(); } if (unidadOperativaConfiguracion.ConfiguracionModulo == null) { unidadOperativaConfiguracion.ConfiguracionModulo = new ConfiguracionModuloBO(); } //Sucursal Matriz SucursalBO matriz = (SucursalBO)datos["SucursalMatriz"]; if (matriz == null) { matriz = new SucursalBO(); } if (matriz.UnidadOperativa == null) { matriz.UnidadOperativa = new UnidadOperativaBO(); } #endregion #region Asignacion de Datos xrlblTitulo.Html = leyendaTitulo; if (!String.IsNullOrEmpty(contrato.NumeroContrato)) { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{NUMEROCONTRATO}", "<u>" + contrato.NumeroContrato + "</u>"); } else { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{NUMEROCONTRATO}", "_____________"); } if (!String.IsNullOrEmpty(contrato.Sucursal.UnidadOperativa.Nombre)) { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{ARRENDADOR}", "<u>" + contrato.Sucursal.UnidadOperativa.Nombre + "</u>"); } else { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{ARRENDADOR}", "________________________________________________________"); } if (!String.IsNullOrEmpty(contrato.Cliente.Nombre)) { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{ARRENDATARIO}", "<u>" + contrato.Cliente.Nombre + "</u>"); } else { leyendaDatosEncabezado = leyendaDatosEncabezado.Replace("{ARRENDATARIO}", "________________________________________________________"); } xrlblDatosEncabezado.Html = leyendaDatosEncabezado; LineaContratoRDBO lineaTemp = contrato.ObtenerLineaContrato(); if (((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria == null) { leyendaClausulas = leyendaClausulas.Replace("{CARGOHORASADICIONALES}", "____"); leyendaClausulas = leyendaClausulas.Replace("{DAÑOSODOMETRO}", "____"); leyendaClausulas = leyendaClausulas.Replace("{ENTREGAIMPUNTUAL}", "____"); } else { //SC0021 formato de decimales leyendaClausulas = leyendaClausulas.Replace("{CARGOHORASADICIONALES}", String.Format("{0:#,##0.00##}", ((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria)); leyendaClausulas = leyendaClausulas.Replace("{DAÑOSODOMETRO}", String.Format("{0:#,##0.00##}", ((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria)); leyendaClausulas = leyendaClausulas.Replace("{ENTREGAIMPUNTUAL}", String.Format("{0:#,##0.00##}", ((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria)); } leyendaClausulas = leyendaClausulas.Replace("{PORCENTAJEPOSTFACTURA}", unidadOperativaConfiguracion.PorcentajePagoPostFactura == null ? "____" : String.Format("{0:#,##0.00}", unidadOperativaConfiguracion.PorcentajePagoPostFactura)); leyendaClausulas = leyendaClausulas.Replace("{DIASPOSTFACTURA}", unidadOperativaConfiguracion.DiasPagoPostFactura == null ? "____" : unidadOperativaConfiguracion.DiasPagoPostFactura.ToString()); leyendaClausulas = leyendaClausulas.Replace("{UBICACIONTRIBUNALES}", CultureInfo.InvariantCulture.TextInfo.ToTitleCase(unidadOperativaConfiguracion.UbicacionTribunales.ToLower()) ?? "_____________________________"); leyendaClausulas = leyendaClausulas.Replace("{UNIDADOPERATIVA}", matriz.UnidadOperativa.Nombre ?? "____________________________"); xrlblClausulas.Html = leyendaClausulas; #endregion } catch (Exception ex) { throw new Exception("ContratoRentaDiariaRevRPT.ImprimirReporte:Error al intentar generar el reporte." + ex.Message); } }
private void DatoAInterfazUsuario(object obj) { ContratoRDBO bo = (ContratoRDBO)obj; if (bo == null) { bo = new ContratoRDBO(); } if (bo.Cliente == null) { bo.Cliente = new CuentaClienteIdealeaseBO(); } if (bo.Divisa == null) { bo.Divisa = new DivisaBO(); } if (bo.Divisa.MonedaDestino == null) { bo.Divisa.MonedaDestino = new MonedaBO(); } if (bo.Operador == null) { bo.Operador = new OperadorBO(); } if (bo.Operador.Direccion == null) { bo.Operador.Direccion = new DireccionPersonaBO(); } if (bo.Operador.Direccion.Ubicacion == null) { bo.Operador.Direccion.Ubicacion = new UbicacionBO(); } if (bo.Operador.Direccion.Ubicacion.Ciudad == null) { bo.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO(); } if (bo.Operador.Direccion.Ubicacion.Estado == null) { bo.Operador.Direccion.Ubicacion.Estado = new EstadoBO(); } if (bo.Operador.Direccion.Ubicacion.Pais == null) { bo.Operador.Direccion.Ubicacion.Pais = new PaisBO(); } if (bo.Operador.Licencia == null) { bo.Operador.Licencia = new LicenciaBO(); } if (bo.Sucursal == null) { bo.Sucursal = new SucursalBO(); } if (bo.Sucursal.UnidadOperativa == null) { bo.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } if (bo.CierreContrato == null) { bo.CierreContrato = new CancelacionContratoRDBO(); } if (bo.CierreContrato.Usuario == null) { bo.CierreContrato.Usuario = new UsuarioBO(); } LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea == null) { linea = new LineaContratoRDBO(); } if (linea.Equipo == null) { linea.Equipo = new UnidadBO(); } if (linea.Cobrable == null) { linea.Cobrable = new TarifaContratoRDBO(); } this.vista.ContratoID = bo.ContratoID; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } this.vista.EquipoID = linea.Equipo.EquipoID; if (linea.Equipo is UnidadBO) { this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID; } else { this.vista.UnidadID = null; } if (linea.Equipo.ActivoFijo != null && linea.Equipo.ActivoFijo.CostoSinIva != null) { Decimal?montoDeducibleCalcuado = 0; montoDeducibleCalcuado = linea.Equipo.ActivoFijo.CostoSinIva; var unidad = (UnidadBO)linea.Equipo; if (unidad.EquiposAliados.Count > 0) { montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto); } this.vista.ImporteDeposito = bo.CalcularMontoDeposito(montoDeducibleCalcuado.Value); } else { this.vista.ImporteDeposito = null; } //Tarifas var tarifaTemporal = ((TarifaContratoRDBO)linea.Cobrable); this.vista.TarifaKmLibres = tarifaTemporal.KmsLibres; this.vista.TarifaKmExcedido = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoKm ?? 0 : 0; this.vista.TarifaHrsLibres = tarifaTemporal.HrsLibres; this.vista.TarifaHrsExcedidas = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoHr ?? 0 : 0; //Listados de Verificación ListadoVerificacionBO entrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA); if (entrega == null) { entrega = new ListadoVerificacionBO(); } ListadoVerificacionBO recepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION); if (recepcion == null) { recepcion = new ListadoVerificacionBO(); } this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmExcedido = linea.CalcularKilometrosExcedidos(); this.vista.MontoKmExcedido = linea.CalcularMontoPorKilometrosExcedidos(); this.vista.HrsExcedidas = linea.CalcularHorasExcedidas(); this.vista.HrsConsumidas = linea.CalcularHorasConsumidas(); this.vista.MontoHrsExcedidas = linea.CalcularMontoPorHorasExcedidas(); this.vista.KmEntrega = entrega.Kilometraje; this.vista.HrsEntrega = entrega.Horometro; this.vista.KmRecepcion = recepcion.Kilometraje; this.vista.HrsRecepcion = recepcion.Horometro; this.vista.DiferenciaCombustible = linea.CalcularDiferenciaCombustible(); if (this.vista.ImporteUnidadCombustible != null) { this.vista.ImporteTotalCombustible = linea.CalcularMontoCombustible(this.vista.ImporteUnidadCombustible.Value); } else { this.vista.ImporteUnidadCombustible = null; } this.vista.FechaRecepcion = recepcion.Fecha; //Cierre del Contrato this.vista.ObservacionesCierre = bo.CierreContrato.Observaciones; if (bo.CierreContrato is CierreContratoRDBO) { this.vista.ImporteReembolso = ((CierreContratoRDBO)bo.CierreContrato).ImporteReembolso; this.vista.CargoAbusoOperacion = ((CierreContratoRDBO)bo.CierreContrato).CargoAbusoOperacion; this.vista.CargoDisposicionBasura = ((CierreContratoRDBO)bo.CierreContrato).CargoDisposicionBasura; this.vista.PersonaRecibeReembolso = ((CierreContratoRDBO)bo.CierreContrato).PersonaRecibeReembolso; } else { this.vista.ImporteReembolso = null; this.vista.CargoAbusoOperacion = null; this.vista.CargoDisposicionBasura = null; this.vista.PersonaRecibeReembolso = null; } //Cálculos de Días de Renta this.vista.DiasRentaProgramada = bo.CalcularDiasPrometidosRenta(); this.vista.DiasEnTaller = 0; //Integración con módulo de mantenimiento this.vista.DiasRealesRenta = bo.CalcularDiasTranscurridosRenta(); if (this.vista.DiasRentaProgramada != null && this.vista.DiasRealesRenta != null) { this.vista.DiasAdicionales = this.vista.DiasRealesRenta.Value - this.vista.DiasRentaProgramada.Value; } else { this.vista.DiasAdicionales = null; } if (this.vista.DiasAdicionales != null && ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria != null) { this.vista.MontoTotalDiasAdicionales = this.vista.DiasAdicionales * ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria; } else { this.vista.MontoTotalDiasAdicionales = null; } vista.FechaContrato = bo.FechaContrato; this.presentadorHerramientas.DatosAInterfazUsuario(bo); this.presentadorResumen.DatosAInterfazUsuario(bo); }
/// <summary> /// Enlaza los datos a la interfaz de usuario /// </summary> /// <param name="bo"> objeto con los datos necesarios</param> private void DatoAInterfazUsuario(ContratoRDBO bo) { this.vista.ContratoID = bo.ContratoID; this.vista.FechaContrato = bo.FechaContrato; if (bo.Estatus != null) { this.vista.EstatusID = (int)bo.Estatus; } else { this.vista.EstatusID = null; } if (bo.CierreContrato == null) { bo.CierreContrato = new CancelacionContratoRDBO(); } if (bo.CierreContrato.Usuario == null) { bo.CierreContrato.Usuario = new UsuarioBO(); } LineaContratoRDBO linea = bo.ObtenerLineaContrato(); if (linea != null) { if (linea.Equipo != null) { this.vista.EquipoID = linea.Equipo.EquipoID; if (linea.Equipo is UnidadBO) { this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID; ElementoFlotaBO elemento = new ElementoFlotaBO() { Unidad = (UnidadBO)linea.Equipo }; elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = elemento.Unidad }, false); if (elemento != null) { if (elemento.Unidad != null && elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = linea.Equipo.Sucursal; } this.presentadorDG.DatoAInterfazUsuario(elemento as object); this.presentadorEA.DatoAInterfazUsuario(elemento as object); this.presentadorEA.CargarEquiposAliados(); } } else { this.vista.UnidadID = null; } } if (linea.Equipo.ActivoFijo != null && linea.Equipo.ActivoFijo.CostoSinIva != null) { Decimal?montoDeducibleCalcuado = 0; montoDeducibleCalcuado = linea.Equipo.ActivoFijo.CostoSinIva; var unidad = (UnidadBO)linea.Equipo; if (unidad.EquiposAliados.Count > 0) { montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto); } this.vista.ImporteDeposito = bo.CalcularMontoDeposito(montoDeducibleCalcuado.Value); } else { this.vista.ImporteDeposito = null; } //Tarifas if (linea.Cobrable == null) { var tarifaTemporal = ((TarifaContratoRDBO)linea.Cobrable); this.vista.TarifaKmLibres = tarifaTemporal.KmsLibres; this.vista.TarifaKmExcedido = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoKm ?? 0 : 0; this.vista.TarifaHrsLibres = tarifaTemporal.HrsLibres; this.vista.TarifaHrsExcedidas = tarifaTemporal.RangoTarifas != null && tarifaTemporal.RangoTarifas.Any() ? tarifaTemporal.RangoTarifas.First().CargoHr ?? 0 : 0; } //Listados de Verificación ListadoVerificacionBO entrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA); if (entrega == null) { entrega = new ListadoVerificacionBO(); } ListadoVerificacionBO recepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION); if (recepcion == null) { recepcion = new ListadoVerificacionBO(); } this.vista.FechaRecepcion = recepcion.Fecha; this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmRecorrido = linea.CalcularKilometrajeRecorrido(); this.vista.KmExcedido = linea.CalcularKilometrosExcedidos(); this.vista.MontoKmExcedido = linea.CalcularMontoPorKilometrosExcedidos(); this.vista.HrsExcedidas = linea.CalcularHorasExcedidas(); this.vista.HrsConsumidas = linea.CalcularHorasConsumidas(); this.vista.MontoHrsExcedidas = linea.CalcularMontoPorHorasExcedidas(); this.vista.KmEntrega = entrega.Kilometraje; this.vista.HrsEntrega = entrega.Horometro; this.vista.KmRecepcion = recepcion.Kilometraje; this.vista.HrsRecepcion = recepcion.Horometro; this.vista.DiferenciaCombustible = linea.CalcularDiferenciaCombustible(); if (this.vista.ImporteUnidadCombustible != null) { this.vista.ImporteTotalCombustible = linea.CalcularMontoCombustible(this.vista.ImporteUnidadCombustible.Value); } else { this.vista.ImporteUnidadCombustible = null; } //Cierre del Contrato this.vista.ObservacionesCierre = bo.CierreContrato.Observaciones; if (bo.CierreContrato is CierreContratoRDBO) { this.vista.ImporteReembolso = ((CierreContratoRDBO)bo.CierreContrato).ImporteReembolso; this.vista.CargoAbusoOperacion = ((CierreContratoRDBO)bo.CierreContrato).CargoAbusoOperacion; this.vista.CargoDisposicionBasura = ((CierreContratoRDBO)bo.CierreContrato).CargoDisposicionBasura; this.vista.PersonaRecibeReembolso = ((CierreContratoRDBO)bo.CierreContrato).PersonaRecibeReembolso; } else { this.vista.ImporteReembolso = null; this.vista.CargoAbusoOperacion = null; this.vista.CargoDisposicionBasura = null; this.vista.PersonaRecibeReembolso = null; } //Cálculos de Días de Renta this.vista.DiasRentaProgramada = bo.CalcularDiasPrometidosRenta(); this.vista.DiasEnTaller = 0; this.vista.DiasRealesRenta = bo.CalcularDiasTranscurridosRenta(); if (this.vista.DiasRentaProgramada != null && this.vista.DiasRealesRenta != null) { this.vista.DiasAdicionales = this.vista.DiasRealesRenta.Value - this.vista.DiasRentaProgramada.Value; } else { this.vista.DiasAdicionales = null; } if (this.vista.DiasAdicionales != null && ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria != null) { this.vista.MontoTotalDiasAdicionales = this.vista.DiasAdicionales * ((TarifaContratoRDBO)linea.Cobrable).TarifaDiaria; } else { this.vista.MontoTotalDiasAdicionales = null; } } this.presentadorHerramientas.DatosAInterfazUsuario(bo); this.presentadorResumen.DatosAInterfazUsuario(bo); }