/// <summary> /// Publica Servicio /// </summary> /// <returns></returns> private RetornoOperacion publicaServicio() { //Establecemos variable resultado RetornoOperacion resultado = null; //Consumimos Web Service using (DespachoCentral.DespachoClient despacho = new DespachoCentral.DespachoClient()) { //Instanciamos Compañia using (SAT_CL.Global.CompaniaEmisorReceptor objCompania = new CompaniaEmisorReceptor(((UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { //Instanciamos Servicio using (SAT_CL.Documentacion.Servicio objServicio = new SAT_CL.Documentacion.Servicio(this._id_servicio)) { string resultado_web_service = despacho.PublicaServicio(objServicio.id_servicio, objServicio.id_compania_emisor, objCompania.nombre, objServicio.id_compania_emisor, objCompania.nombre, txtNoServicio.Text, txtConfirmacion.Text, txtObservacion.Text, SAT_CL.Tarifas.TipoCargo.ObtieneTipoCargoDescripcion(objCompania.id_compania_emisor_receptor, "Flete"), Convert.ToDecimal(txtTarifa.Text), Cadena.RegresaCadenaSeparada(txtProducto.Text, "ID:", 0), Convert.ToInt32(Cadena.RegresaCadenaSeparada(txtProducto.Text, ":ID", 1)), Convert.ToDecimal(txtPeso.Text), txtContacto.Text, txtTelefono.Text, chkFull.Checked, chkManiobras.Checked, chkRC.Checked, ddlDimensiones.SelectedItem.Text, SAT_CL.Despacho.ConsumoSOAPCentral.ObtieneParadasPublicacionUnidad(SAT_CL.Despacho.Parada.CargaParadasParaPublicacionDeUnidad(objServicio.id_servicio)), CapaNegocio.m_capaNegocio.RegresaVariableCatalogoBD("Direccion del Servidor", 0), CapaNegocio.m_capaNegocio.RegresaVariableCatalogoBD("Nombre de BD", 0), TSDK.Base.Cadena.VerificaCadenaVacia(SAT_CL.Global.Referencia.CargaReferencia("0", 25, objCompania.id_compania_emisor_receptor, "Consumo Web Service", "Contraseña"), ""), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).nombre); //Obtenemos Documento generado XDocument xDoc = XDocument.Parse(resultado_web_service); //Validamos que exista Respuesta if (xDoc != null) { //Traduciendo resultado resultado = new RetornoOperacion(Convert.ToInt32(xDoc.Descendants("idRegistro").FirstOrDefault().Value), xDoc.Descendants("mensaje").FirstOrDefault().Value.ToString(), Convert.ToBoolean(xDoc.Descendants("operacionExitosa").FirstOrDefault().Value)); //Validamos Resultado if (resultado.OperacionExitosa) { //Personalizamos Mensaje resultado = new RetornoOperacion("El servicio ha sido Publicado", true); } } else { //Establecmos Mensaje Resultado resultado = new RetornoOperacion("No es posible obtener la respuesta de WS"); } //Mostrando Mensaje de Operación TSDK.ASP.ScriptServer.MuestraNotificacion(btnPublicar, resultado, ScriptServer.PosicionNotificacion.AbajoDerecha); } } //Cerramos Conexion despacho.Close(); } return(resultado); }
/// <summary> /// Realiza la carga del domicilio en base a la entidad que sea requedida /// </summary> /// <param name="entidad">Entidad que se actualizará ("emisor", "sucursal" y "receptor" son los valores aceptados)</param> private void cargaDomicilioRequerido(string entidad) { //Definiendo objeto domicilio Direccion u = new Direccion(); //Determinando que entidad será consultada switch (entidad) { case "emisor": //Instanciando emisor using (CompaniaEmisorReceptor em = new CompaniaEmisorReceptor(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) //Instanciando ubicación asignada u = new Direccion(em.id_direccion); //Indicando el control de texto que debe ser afectado txtDomicilioEmisor.Text = u.ObtieneDireccionCompleta() + " ID:" + u.id_direccion.ToString(); break; case "sucursal": //Instanciando sucursal using (Sucursal suc = new Sucursal(Convert.ToInt32(ddlSucursal.SelectedValue))) //Instanciando ubicación asignada u = new Direccion(suc.id_direccion); //Indicando el control de texto que debe ser afectado txtDomicilioSucursal.Text = u.ObtieneDireccionCompleta() + " ID:" + u.id_direccion.ToString(); break; case "receptor": //Instanciando receptor using (CompaniaEmisorReceptor rec = new CompaniaEmisorReceptor(Convert.ToInt32(Cadena.RegresaCadenaSeparada(txtReceptor.Text, "ID:", 1)))) //Instanciando ubicación asignada u = new Direccion(rec.id_direccion); //Indicando el control de texto que debe ser afectado txtDomicilioReceptor.Text = u.ObtieneDireccionCompleta() + " ID:" + u.id_direccion.ToString(); break; case "lugar_expedicion": //Determinando si el lugar estará dado por el domicilio de sucursal if (ddlSucursal.SelectedValue != "0") { //Instanciando sucursal using (Sucursal suc = new Sucursal(Convert.ToInt32(ddlSucursal.SelectedValue))) //Instanciando ubicación asignada u = new Direccion(suc.id_direccion); } else { //Instanciando emisor using (CompaniaEmisorReceptor em = new CompaniaEmisorReceptor(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) //Instanciando ubicación asignada u = new Direccion(em.id_direccion); } //Indicando el control de texto que debe ser afectado txtLugarExpedicion.Text = u.municipio + ", " + Catalogo.RegresaDescripcionCatalogo(16, u.id_estado); //Actualizando panel, ya que al estar en tabs distintos no se puede añadir el trigger en diseño uptxtLugarExpedicion.Update(); break; } }
/// <summary> /// Realiza la carga de la cuenta de pago predeterminada para el receptor /// </summary> private void cargaCuentaPagoReceptor() { //Instanciando receptor using (CompaniaEmisorReceptor rec = new CompaniaEmisorReceptor(Convert.ToInt32(Cadena.RegresaCadenaSeparada(txtReceptor.Text, "ID:", 1)))) { //Si el Método de págo es Transferencia electrónica if (ddlMetodoPago.SelectedValue == "10") { ddlNoCuentaPago.Text = "NO IDENTIFICADO"; ddlNoCuentaPago.Enabled = false; } else { // ddlNoCuentaPago.Text = rec.no_cuenta_pago; ddlNoCuentaPago.Enabled = true; } } }
/// <summary> /// Realiza la descarga del XML del comprobante /// </summary> private void descargarXML() { //Instanciando registro en sesión using (SAT_CL.FacturacionElectronica.Comprobante c = new SAT_CL.FacturacionElectronica.Comprobante(Convert.ToInt32(Session["id_registro"]))) { //Si existe y está generado if (c.generado) { //Obteniendo bytes del archivo XML byte[] cfdi_xml = System.IO.File.ReadAllBytes(c.ruta_xml); //Realizando descarga de archivo if (cfdi_xml.Length > 0) { //Instanciando al emisor using (CompaniaEmisorReceptor em = new CompaniaEmisorReceptor(c.id_compania_emisor)) Archivo.DescargaArchivo(cfdi_xml, string.Format("{0}_{1}{2}.xml", em.nombre_corto != "" ? em.nombre_corto : em.rfc, c.serie, c.folio), Archivo.ContentType.binary_octetStream); } } } }
/// <summary> /// Inicializa control de Usuario /// </summary> /// <param name="id_tabla">Tabla de la bitácora (Unidad =19)</param> /// <param name="id_registro">Id Registro</param> /// <param name="hab_consultar">Habilitación de la Edición</param> public void InicializaControl(int id_tabla, int id_registro, bool hab_consultar) { //Asignando a atributos privados this._id_tabla = id_tabla; this._id_registro = id_registro; this._hab_consultar = hab_consultar; //Habilitando petición de ubicación sólo si la compañía tiene configurada aplicación móvil btnSolicitarUbicacionMovil.Visible = CompaniaEmisorReceptor.ValidaConfiguracionUsoAplicacionMovil(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor).OperacionExitosa; //Carga catálogo de tipos de bitácora cargaCatalogos(); //Asigna el valor de inicio a los controles txtFechaInicio (menos un dia) y txtFechaFin el valor de la fecha actual txtFechaInicio.Text = Convert.ToString(TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Date.ToString("dd/MM/yyyy HH:mm")); txtFechaFin.Text = Convert.ToString(TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Date.AddDays(1).AddMinutes(-1).ToString("dd/MM/yyyy HH:mm")); //Cargando catálogo SAT_CL.CapaNegocio.m_capaNegocio.CargaCatalogoGeneral(ddlTamanoBitacoraMonitoreo, "", 18); //Realizando carga de Bitácora cargaHistorialBitacora(); }
/// <summary> /// Método para descargar el XML si la nomina de empleado tiene Comprobante versión 3.3 /// </summary> /// <param name="idComprobante33"></param> private void descargaXML_comprobante33(int idComprobante33) { //Instanciar registro en sesión using (SAT_CL.FacturacionElectronica33.Comprobante Comprobante33 = new SAT_CL.FacturacionElectronica33.Comprobante(idComprobante33)) { //Si existe y está generado if (Comprobante33.bit_generado && Comprobante33.habilitar) { //Obtener bytes del archivo XML byte[] comprobante_nomina_XML = System.IO.File.ReadAllBytes(Comprobante33.ruta_xml); //Realizar descarga de archivo if (comprobante_nomina_XML.Length > 0) { //Instanciar al emisor using (CompaniaEmisorReceptor Emisor = new CompaniaEmisorReceptor(Comprobante33.id_compania_emisor)) { Archivo.DescargaArchivo(comprobante_nomina_XML, string.Format("{0}_{1}{2}.xml", Emisor.nombre_corto != "" ? Emisor.nombre_corto : Emisor.rfc, Comprobante33.serie, Comprobante33.folio), Archivo.ContentType.binary_octetStream); } } } } }
/// <summary> /// Inicializamos Valores /// </summary> private void inicializamosValores(UsuarioSesion objUsuarioSesion) { //Referenciando al usuario de la sesión actual using (Usuario u = (Usuario)Session["usuario"]) { //Nombre de Usuario lkbUsuario.Text = u.nombre; //Fecha de Inicio de Sesión lkbInicioSesion.Text = "Inicio Sesión: " + objUsuarioSesion.fecha_inicio.ToString("dd/MM/yyyy HH:mm"); //Obteniendo el perfil de seguridad actual del usuario SAT_CL.Seguridad.PerfilSeguridadUsuario perfilActivo = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(u.id_usuario); using (SAT_CL.Seguridad.PerfilSeguridad perfil = new PerfilSeguridad(perfilActivo.id_perfil)) { //Perfil lkbPerfil.Text = string.Format("Perfil: {0}", perfil.descripcion); } //Instanciamos Compañia de la sesión actual using (CompaniaEmisorReceptor objCompania = new CompaniaEmisorReceptor(((UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { lkbCompania.Text = "Compañía: " + objCompania.nombre_corto; } //Validamos exista dias de Vigencia (0 = Sin vigencia, es permanente) if (u.dias_vigencia > 0) { //Si la vigencia ha caducado if (DateTime.Today.CompareTo(u.fecha_contrasena.Date.AddDays(u.dias_vigencia)) > 0) { //Redireccionamos a pagina Cambio de Contraseña Response.Redirect("~/CambioContrasena.aspx"); } } } }
/// <summary> /// Carga valores de un registro determinado /// </summary> private void inicializaValoresRegistro() { //Determinando el tipo de carga a realizar en base al estatus switch ((Pagina.Estatus)Session["estatus"]) { //Nuevo registro case Pagina.Estatus.Nuevo: //Id de Registro lblID.Text = "ID"; //Emisor using (SAT_CL.Global.CompaniaEmisorReceptor Emisor = new SAT_CL.Global.CompaniaEmisorReceptor(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { txtEmisor.Text = Emisor.nombre + " ID:" + Emisor.id_compania_emisor_receptor.ToString(); } //Serie y Folio txtSerie.Text = txtFolio.Text = ""; //Domicilio Emisor cargaDomicilioRequerido("emisor"); //Sucursal ddlSucursal.SelectedValue = "0"; //Domicilio de Sucursal txtDomicilioSucursal.Text = ""; //Receptor y Domicilio receptor txtReceptor.Text = txtDomicilioReceptor.Text = ""; //Método de Pago predeterminado "Transferencia Electrónica" ddlMetodoPago.SelectedValue = "5"; ddlNoCuentaPago.SelectedValue = "0"; //Tipo de Comprobante ddlTipoComprobante.SelectedValue = "1"; //Estatus ddlEstatus.SelectedValue = "1"; //Condiciones de Pago ddlCondicionesPago.SelectedValue = "1"; //Forma de Pago "Una sola exhibición" ddlFormaPago.SelectedValue = "1"; //Parcialidades y Datos de Comprobante Original inicializaParcialidades(); //Moneda y Tipo de Cambio ddlMoneda.SelectedValue = "1"; txtTipoCambio.Text = "1.0000"; //Fechas de Captura y Expedición txtFechaCaptura.Text = txtFechaExpedicion.Text = //Lugar de Expedición y Sello Digital txtSelloDigital.Text = ""; cargaDomicilioRequerido("lugar_expedicion"); //fecha Cancelación txtFechaCancelacion.Text = ""; //Check Timbrado chkGenerado.Checked = false; //Totales de Comprobante lblSubtotalCaptura.Text = lblSubtotalNacional.Text = lblDescuentosCaptura.Text = lblDescuentosNacional.Text = lblImpuestosCaptura.Text = lblImpuestosNacional.Text = lblTotalCaptura.Text = lblTotalNacional.Text = string.Format("{0:c4}", 0); break; //Lectura y edición de registro activo en sesión case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: //Instanciando registro comprobante using (SAT_CL.FacturacionElectronica.Comprobante c = new SAT_CL.FacturacionElectronica.Comprobante(Convert.ToInt32(Session["id_registro"]))) { //Asignando valores de registro //Id de Registro lblID.Text = c.id_comprobante.ToString(); //Serie y Folio txtSerie.Text = c.serie; txtFolio.Text = c.folio.ToString(); //Emisor using (SAT_CL.Global.CompaniaEmisorReceptor Emisor = new SAT_CL.Global.CompaniaEmisorReceptor(c.id_compania_emisor)) { txtEmisor.Text = Emisor.nombre + " ID:" + Emisor.id_compania_emisor_receptor.ToString(); } //Domicilio Emisor cargaDomicilioRequerido("emisor"); //Sucursal ddlSucursal.SelectedValue = c.id_sucursal.ToString(); //Domicilio de Sucursal cargaDomicilioRequerido("sucursal"); //Receptor y Domicilio receptor using (CompaniaEmisorReceptor r = new CompaniaEmisorReceptor(c.id_compania_receptor)) { txtReceptor.Text = r.nombre + " ID:" + r.id_compania_emisor_receptor.ToString(); } cargaDomicilioRequerido("receptor"); //Método de Pago predeterminado "Transferencia Electrónica" ddlMetodoPago.SelectedValue = c.id_metodo_pago.ToString(); //Cargando Cuentas Pago SAT_CL.CapaNegocio.m_capaNegocio.CargaCatalogo(ddlNoCuentaPago, 42, "NO IDENTIFICADO", 25, "", c.id_compania_receptor, ""); ddlNoCuentaPago.SelectedValue = c.id_cuenta_pago.ToString(); //Tipo de Comprobante ddlTipoComprobante.SelectedValue = ((byte)c.tipo_comprobante).ToString(); //Estatus ddlEstatus.SelectedValue = ((byte)c.estatus_comprobante).ToString(); //Condiciones de Pago ddlCondicionesPago.SelectedValue = c.id_condiciones_pago.ToString(); //Forma de Pago "Una sola exhibición" ddlFormaPago.SelectedValue = c.id_forma_pago.ToString(); //Parcialidades y Datos de Comprobante Original txtNoParcialidad.Text = c.no_parcialidad.ToString(); txtTotalParcialidades.Text = c.total_parcialidades.ToString(); txtSerieOriginal.Text = c.serie_folio_original; txtFolioOriginal.Text = c.folio_original.ToString(); txtMontoFolioOriginal.Text = c.monto_folio_original.ToString(); txtFechaFolioOriginal.Text = Fecha.ConvierteDateTimeString(c.fecha_folio_original, "yyyy/MM/dd hh:mm:ss tt"); //Moneda y Tipo de Cambio if (c.id_moneda > 1) { using (TipoCambio tc = new TipoCambio(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, c.id_moneda, c.fecha_tipo_cambio, 0)) { ddlMoneda.SelectedValue = tc.id_moneda.ToString(); txtTipoCambio.Text = tc.valor_tipo_cambio.ToString(); } } //Si no hay tipo de cambio else { ddlMoneda.SelectedValue = "1"; txtTipoCambio.Text = "1.0000"; } //Fechas de Captura y Expedición txtFechaCaptura.Text = c.fecha_captura.ToString("yyyy/MM/dd hh:mm:ss tt"); txtFechaExpedicion.Text = Fecha.ConvierteDateTimeString(c.fecha_expedicion, "yyyy/MM/dd hh:mm:ss tt"); //Lugar de Expedición y Sello Digital txtLugarExpedicion.Text = c.lugar_expedicion; txtSelloDigital.Text = c.sello; //fecha Cancelación txtFechaCancelacion.Text = Fecha.ConvierteDateTimeString(c.fecha_cancelacion, "yyyy/MM/dd hh:mm:ss tt"); //Check Timbrado chkGenerado.Checked = c.generado; //Totales de Comprobante lblSubtotalCaptura.Text = string.Format("{0:c4}", c.subtotal_moneda_captura); lblSubtotalNacional.Text = string.Format("{0:c4}", c.subtotal_moneda_nacional); lblDescuentosCaptura.Text = string.Format("{0:c4}", c.descuento_moneda_captura); lblDescuentosNacional.Text = string.Format("{0:c4}", c.descuento_moneda_nacional); lblImpuestosCaptura.Text = string.Format("{0:c4}", c.impuestos_moneda_captura); lblImpuestosNacional.Text = string.Format("{0:c4}", c.impuestos_moneda_nacional); lblTotalCaptura.Text = string.Format("{0:c4}", c.total_moneda_captura); lblTotalNacional.Text = string.Format("{0:c4}", c.total_moneda_nacional); } break; } //Estableciendo indice de tab por default //tbcComprobante.ActiveTabIndex = 0; }
/// <summary> /// Exportar XML y PDF de la nomina de empleados /// </summary> private void exportarNominasEmpleado() { //Declarar lista de archivos List <KeyValuePair <string, byte[]> > archivos = new List <KeyValuePair <string, byte[]> >(); //Declarar lista de errores List <string> errores = new List <string>(); //Verificar que el gridview contenga registros if (gvNominaEmpleados.DataKeys.Count > 0) { //Obtener filas seleccionadas GridViewRow[] filasSeleccionadas = Controles.ObtenerFilasSeleccionadas(gvNominaEmpleados, "chkVariosNominaEmpleado"); //Verificar que existan filas seleccionadas if (filasSeleccionadas.Length > 0) { //Almacenar rutas en un arreglo foreach (GridViewRow row in filasSeleccionadas) {//Instanciar Nomina de Empleado del valor obtenido de la fila seleccionada using (SAT_CL.Nomina.NomEmpleado NomEmp = new SAT_CL.Nomina.NomEmpleado(Convert.ToInt32(gvNominaEmpleados.DataKeys[row.RowIndex].Value))) { //Instanciar al comprobante que corresponde a la nómina //Si la nomina de empleado usa comprobante en la version anterior if (NomEmp.id_comprobante != 0) { using (SAT_CL.FacturacionElectronica.Comprobante Comprobante = new SAT_CL.FacturacionElectronica.Comprobante(NomEmp.id_comprobante)) { //Validar seleccion de PDF if (chkPDF.Checked == true) { //Añadir PDF using (CompaniaEmisorReceptor Emisor = new CompaniaEmisorReceptor(Comprobante.id_compania_emisor)) { archivos.Add(new KeyValuePair <string, byte[]>(Emisor.nombre_corto != "" ? Comprobante.serie : Emisor.rfc + Comprobante.serie + Comprobante.folio.ToString() + ".pdf", NomEmp.GeneraPDFComprobanteNomina33())); } } //Validar seleccion de XML if (chkXML.Checked == true) { //Guardar archivo en arreglo de bytes byte[] archivoXML = System.IO.File.ReadAllBytes(Comprobante.ruta_xml); //Añadir XML a la lista using (CompaniaEmisorReceptor Emisor = new CompaniaEmisorReceptor(Comprobante.id_compania_emisor)) { archivos.Add(new KeyValuePair <string, byte[]>(Emisor.nombre_corto != "" ? Emisor.nombre_corto : Emisor.rfc + Comprobante.serie + Comprobante.folio.ToString() + ".xml", archivoXML)); } } } } //Si la nomina de empleado usa comprobante en la version 3.3 else if (NomEmp.id_comprobante33 != 0) { using (SAT_CL.FacturacionElectronica33.Comprobante Comprobante33 = new SAT_CL.FacturacionElectronica33.Comprobante(NomEmp.id_comprobante33)) { //Validar seleccion de PDF if (chkPDF.Checked == true) { //Añadir PDF archivos.Add(new KeyValuePair <string, byte[]>(Comprobante33.serie + Comprobante33.folio.ToString() + ".pdf", NomEmp.GeneraPDFComprobanteNomina33())); } //Validar seleccion de XML if (chkXML.Checked == true) { //Guardar archivo en arreglo de bytes byte[] archivoXML = System.IO.File.ReadAllBytes(Comprobante33.ruta_xml); //Añadir XML a la lista archivos.Add(new KeyValuePair <string, byte[]>(Comprobante33.serie + Comprobante33.folio.ToString() + ".xml", archivoXML)); } } } } } //Generar archivo comprimido con las rutas byte[] zip_file = Archivo.ConvirteArchivoZIP(archivos, out errores); //Si al menos un archivo fue correcto; descarga. if (zip_file != null) { Archivo.DescargaArchivo(zip_file, "NominasEmpleado.zip", Archivo.ContentType.binary_octetStream); } else { //Recorrer errores foreach (string error in errores) { //Muestra mensaje de error //lblError.Text += error + "<br>"; } } } else //Mostrar mensaje { //lblError.Text ="Debe seleccionar al menos un comprobante."; } } }
/// <summary> /// Carga valores de un registro determinado /// </summary> private void inicializaValoresRegistro() { //Determinando el tipo de carga a realizar en base al estatus switch ((Pagina.Estatus)Session["estatus"]) { //Nuevo registro case Pagina.Estatus.Nuevo: //Id de Registro lblID.Text = "ID"; //Serie txtSerie.Text = ""; //Folio txtFolio.Text = ""; //Emisor using (SAT_CL.Global.CompaniaEmisorReceptor Emisor = new SAT_CL.Global.CompaniaEmisorReceptor(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { txtEmisor.Text = Emisor.nombre + " ID:" + Emisor.id_compania_emisor_receptor.ToString(); } //Domicilio Emisor cargaDomicilioRequerido("emisor"); //Sucursal ddlSucursal.SelectedValue = "0"; //Receptor y Domicilio receptor txtReceptor.Text = ""; //Método de Pago predeterminado "Transferencia Electrónica" ddlMetodoPago.SelectedValue = "5"; //Tipo de Comprobante ddlTipoComprobante.SelectedValue = "1"; //Estatus ddlEstatus.SelectedValue = "1"; //Confirmacion txtConfirmacion.Text = ""; //Régimen Fiscal txtRegimenFiscal.Text = ""; //Uso CFDI ddlUsoCFDI.SelectedValue = ""; //Condiciones de Pago txtCondicionesPago.Text = ""; //Forma de Pago "Una sola exhibición" ddlFormaPago.SelectedValue = "1"; //Moneda ddlMoneda.SelectedValue = "1"; //Tipo de Cambio txtTipoCambio.Text = "1.0000"; //Fechas de Captura txtFechaCaptura.Text = ""; //Fecha de Expedición txtFechaExpedicion.Text = ""; //Lugar de Expedición cargaDomicilioRequerido("lugar_expedicion"); //Check timbrado chkGenerado.Checked = false; //Sello digital txtSelloDigital.Text = ""; //fecha Cancelación txtFechaCancelacion.Text = ""; //Totales de Comprobante lblSubtotalCaptura.Text = lblSubtotalNacional.Text = lblDescuentosCaptura.Text = lblDescuentosNacional.Text = lblImpuestosCaptura.Text = lblImpuestosNacional.Text = lblTotalCaptura.Text = lblTotalNacional.Text = string.Format("{0:c4}", 0); break; //Lectura y edición de registro activo en sesión case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: //Instanciando registro comprobante using (SAT_CL.FacturacionElectronica33.Comprobante c = new SAT_CL.FacturacionElectronica33.Comprobante(Convert.ToInt32(Session["id_registro"]))) { //Asignando valores de registro //Id de Registro lblID.Text = c.id_comprobante33.ToString(); //Serie txtSerie.Text = c.serie; //Folio txtFolio.Text = c.folio.ToString(); //Emisor using (SAT_CL.Global.CompaniaEmisorReceptor Emisor = new SAT_CL.Global.CompaniaEmisorReceptor(c.id_compania_emisor)) { txtEmisor.Text = Emisor.nombre + " ID:" + Emisor.id_compania_emisor_receptor.ToString(); } //Domicilio Emisor cargaDomicilioRequerido("emisor"); //Sucursal ddlSucursal.SelectedValue = c.id_sucursal.ToString(); //Receptor y Domicilio receptor using (CompaniaEmisorReceptor r = new CompaniaEmisorReceptor(c.id_compania_receptor)) { txtReceptor.Text = r.nombre + " ID:" + r.id_compania_emisor_receptor.ToString(); } //Método de Pago predeterminado "Transferencia Electrónica" ddlMetodoPago.SelectedValue = c.id_metodo_pago.ToString(); //Tipo de Comprobante ddlTipoComprobante.SelectedValue = ((byte)c.id_tipo_comprobante).ToString(); //Estatus ddlEstatus.SelectedValue = ((byte)c.id_estatus_vigencia).ToString(); //Condiciones de Pago txtCondicionesPago.Text = c.condicion_pago.ToString(); //Forma de Pago "Una sola exhibición" ddlFormaPago.SelectedValue = c.id_forma_pago.ToString(); //Moneda ddlMoneda.SelectedValue = c.id_moneda.ToString(); //Tipo de Cambio txtTipoCambio.Text = c.tipo_cambio.ToString(); //Fechas de Captura txtFechaCaptura.Text = c.fecha_captura.ToString("yyyy/MM/dd hh:mm:ss tt"); //Fecha de Expedición txtFechaExpedicion.Text = Fecha.ConvierteDateTimeString(c.fecha_expedicion, "yyyy/MM/dd hh:mm:ss tt"); //Lugar de Expedición txtLugarExpedicion.Text = c.lugar_expedicion; //Check Timbrado chkGenerado.Checked = c.bit_generado; //Sello Digital txtSelloDigital.Text = c.sello; //fecha Cancelación txtFechaCancelacion.Text = Fecha.ConvierteDateTimeString(c.fecha_cancelacion, "yyyy/MM/dd hh:mm:ss tt"); //Totales de Comprobante lblSubtotalCaptura.Text = string.Format("{0:c4}", c.subtotal_captura); lblSubtotalNacional.Text = string.Format("{0:c4}", c.subtotal_nacional); lblDescuentosCaptura.Text = string.Format("{0:c4}", c.descuentos_captura); lblDescuentosNacional.Text = string.Format("{0:c4}", c.descuentos_nacional); lblImpuestosCaptura.Text = string.Format("{0:c4}", c.impuestos_captura); lblImpuestosNacional.Text = string.Format("{0:c4}", c.impuestos_nacional); lblTotalCaptura.Text = string.Format("{0:c4}", c.total_captura); lblTotalNacional.Text = string.Format("{0:c4}", c.total_nacional); } break; } //Estableciendo indice de tab por default //tbcComprobante.ActiveTabIndex = 0; }
/// <summary> /// Recupera información de interés del servicio y la envía en un archivo a un servidor FTP especificado /// </summary> /// <param name="secuencia">Secuencia de notificación del servicio</param> /// <param name="codificacion">Codificación del archivo</param> /// <returns></returns> private RetornoOperacion enviaInformacionServicioFTP(int secuencia, System.Text.Encoding codificacion) { //Declarando objeto de resultado sin errores RetornoOperacion resultado = new RetornoOperacion(this._id_servicio); //Obteniendo Proveedores FTP using (DataTable dtProveedoresFTP = SAT_CL.Monitoreo.ProveedorWS.ObtieneProveedoresFTP(this._id_compania_emisor)) { //Validando Proveedores if (Validacion.ValidaOrigenDatos(dtProveedoresFTP)) { //Recorriendo Datos foreach (DataRow dr in dtProveedoresFTP.Rows) { //Validando la Compania if (this._id_compania_emisor == 76) { switch (dr["Identificador"].ToString()) { case "TEM - Omnitracs FTP": { //Realizando la recuperación de información using (DataTable mit = Reportes.CargaInformacionServicioOmnitracs(this._id_servicio, Convert.ToInt32(dr["Id"]))) { //Si hay elementos que utilizar if (mit != null) { //Instanciando compañía a la que pertenece el servicio using (CompaniaEmisorReceptor comp = new CompaniaEmisorReceptor(this._id_compania_emisor)) { //Definiendo variables auxiliares string no_viaje = ""; byte[] bytesArchivo = null; //Creando archivo en memoria using (MemoryStream archivo = new MemoryStream()) { //Creando escritos de texto en flujo StreamWriter escritor = new StreamWriter(archivo, codificacion); //Añadiendo encabezado escritor.Write("OPERACION|FECHA VIAJE|DT|PI ORIGEN|CITA LLEGADA ORIGEN|PI DESTINO|CITA LLEGADA DESTINO|SHIPPER|RUTA MAESTRA|EJE TRANSITO|NIVEL SEGURIDAD|SCAC|OPERADOR|VEHICULO|PLATPORTABLE1|PORTABLE1|TIPO REMOLQUE|REMOLQUE1|PLATPORTABLE2|PORTABLE2|REMOLQUE2|PLATPORTABLE3|PORTABLE3|SHIPPER2|DESCRIPCION|EVENTO LOG1|EVENTO LOG2"); //Dando el formato solicitado para el contenido del archivo foreach (DataRow r in mit.Rows) { //Extrayendo número de viaje no_viaje = Cadena.TruncaCadena(string.Format("{0}{1}", r["DT"].ToString(), secuencia > 0 ? "-" + secuencia.ToString() : ""), 15, ""); //Nueva linea de texto string linea = string.Format("{0}|{1}|NS{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|{11}|{12}|{13}|{14}|{15}|{16}|{17}|{18}|{19}|{20}|{21}|{22}|{23}|{24}|{25}|{26}", Cadena.TruncaCadena(r["Operacion"].ToString(), 3, ""), r.Field <DateTime>("FechaViaje").ToString("dd/MM/yyyy HH:mm"), no_viaje, Cadena.TruncaCadena(r["PiOrigen"].ToString(), 31, ""), r.Field <DateTime>("CitaLlegadaOrigen").ToString("dd/MM/yyyy HH:mm"), Cadena.TruncaCadena(r["PiDestino"].ToString(), 31, ""), r.Field <DateTime>("CitaLlegadaDestino").ToString("dd/MM/yyyy HH:mm"), Cadena.TruncaCadena(r["Shipper"].ToString(), 30, ""), Cadena.TruncaCadena(r["RutaMaestra"].ToString(), 30, ""), Cadena.TruncaCadena(r["EjeTransito"].ToString(), 30, ""), Cadena.TruncaCadena(r["NivelSeguridad"].ToString(), 8, ""), Cadena.TruncaCadena(r["SCAC"].ToString(), 4, ""), Cadena.TruncaCadena(r["Operador"].ToString(), 40, ""), Cadena.TruncaCadena(r["Vehiculo"].ToString(), 30, ""), Cadena.TruncaCadena(r["PlatPortable1"].ToString(), 10, ""), Cadena.TruncaCadena(r["Portable1"].ToString(), 15, ""), Cadena.TruncaCadena(r["TipoRemolque"].ToString(), 30, ""), Cadena.TruncaCadena(r["Remolque1"].ToString(), 30, ""), Cadena.TruncaCadena(r["PlatPortable2"].ToString(), 10, ""), Cadena.TruncaCadena(r["Portable2"].ToString(), 15, ""), Cadena.TruncaCadena(r["Remolque2"].ToString(), 30, ""), Cadena.TruncaCadena(r["PlatPortable3"].ToString(), 10, ""), Cadena.TruncaCadena(r["Portable3"].ToString(), 15, ""), Cadena.TruncaCadena(r["Shipper2"].ToString(), 30, ""), Cadena.TruncaCadena(r["Descripcion"].ToString(), 30, ""), Cadena.TruncaCadena(r["EventoLog1"].ToString(), 15, ""), Cadena.TruncaCadena(r["EventoLog2"].ToString(), 15, "")); //Añadiendo linea creada if (!string.IsNullOrEmpty(linea)) { escritor.Write(Environment.NewLine + linea); } } //Confirmando cambios en flujo y liberando recursos de escritor escritor.Flush(); //Obteniendo arreglo de bytes del flujo de archivo bytesArchivo = TSDK.Base.Flujo.ConvierteFlujoABytes(archivo); } //Recuperando datos de autenticación en servidor FTP string servidorFTP = dr["Endpoint"].ToString(); string usuarioFTP = dr["Usuario"].ToString(); string contrasenaFTP = dr["Contraseña"].ToString(); try { //Definiendo nombre de archivo string nombre_archivo = string.Format("{0}-DT{1}_{2:ddMMyyyy_HHmmss}.csv", comp.nombre_corto, no_viaje, Fecha.ObtieneFechaEstandarMexicoCentro()); //Creando peticioón FTP FtpWebRequest peticionFTP = FTP.CreaPeticionFTP(string.Format("{0}/{1}", servidorFTP, nombre_archivo), WebRequestMethods.Ftp.UploadFile, usuarioFTP, contrasenaFTP); //Dimensionando archivo por transferir en la petición peticionFTP.ContentLength = bytesArchivo.Length; //Recuperando flujo de petición ftp Stream flujoPeticionFTP = peticionFTP.GetRequestStream(); //Añadiendo bytes del archivo creado a flujo de petición (escribiendo) flujoPeticionFTP.Write(bytesArchivo, 0, bytesArchivo.Length); //Cerrando flujo de escritura de archivo flujoPeticionFTP.Close(); } //Si no hubo petición devuelta catch (NullReferenceException) { //En caso de error resultado = new RetornoOperacion(string.Format("Error al crear petición al servidor FTP '{0}'.", servidorFTP)); using (EventLog eventLog = new EventLog("Application")) { eventLog.Source = "Application"; eventLog.WriteEntry(resultado.Mensaje, EventLogEntryType.Information, 101, 1); } } catch (Exception ex) { //En caso de error resultado = new RetornoOperacion(ex.Message); using (EventLog eventLog = new EventLog("Application")) { eventLog.Source = "Application"; eventLog.WriteEntry(resultado.Mensaje, EventLogEntryType.Information, 101, 1); } } } } else { resultado = new RetornoOperacion("No pudo ser recuperada la información del servicio para su envío."); } } break; } case "TEM - Unicomm FTP": { //Realizando la recuperación de información using (DataTable mit = Reportes.CargaInformacionServicioOmnitracs(this._id_servicio, Convert.ToInt32(dr["Id"]))) { //Si hay elementos que utilizar if (mit != null) { //Definiendo variables auxiliares string no_viaje = ""; byte[] bytesArchivo = Excel.BytesDataTableExcel(mit, "Reporte UNICOMM FTP", new string[] { "FechaViaje", "CitaLlegadaDestino", "CitaLlegadaOrigen" }); //Recuperando datos de autenticación en servidor FTP string servidorFTP = dr["Endpoint"].ToString(); string usuarioFTP = dr["Usuario"].ToString(); string contrasenaFTP = dr["Contraseña"].ToString(); //Instanciando compañía a la que pertenece el servicio using (CompaniaEmisorReceptor comp = new CompaniaEmisorReceptor(this._id_compania_emisor)) { try { //Definiendo nombre de archivo string nombre_archivo = string.Format("{0}-DT{1}_{2:ddMMyyyy_HHmmss}.xlsx", comp.nombre_corto, no_viaje, Fecha.ObtieneFechaEstandarMexicoCentro()); //Creando peticioón FTP FtpWebRequest peticionFTP = FTP.CreaPeticionFTP(string.Format("{0}/{1}", servidorFTP, nombre_archivo), WebRequestMethods.Ftp.UploadFile, usuarioFTP, contrasenaFTP); //Dimensionando archivo por transferir en la petición peticionFTP.ContentLength = bytesArchivo.Length; //Recuperando flujo de petición ftp Stream flujoPeticionFTP = peticionFTP.GetRequestStream(); //Añadiendo bytes del archivo creado a flujo de petición (escribiendo) flujoPeticionFTP.Write(bytesArchivo, 0, bytesArchivo.Length); //Cerrando flujo de escritura de archivo flujoPeticionFTP.Close(); //Guardamos el Archivo en la Ruta Especifica Archivo.GuardaArchivoCreandoRuta(bytesArchivo, string.Format(@"{0}UnicommTEM\{1}", SAT_CL.CapaNegocio.m_capaNegocio.RegresaVariableCatalogoBD("Directorio Raíz Gestor Archivos SAT"), nombre_archivo), false); } //Si no hubo petición devuelta catch (NullReferenceException) { //En caso de error resultado = new RetornoOperacion(string.Format("Error al crear petición al servidor FTP '{0}'.", servidorFTP)); using (EventLog eventLog = new EventLog("Application")) { eventLog.Source = "Application"; eventLog.WriteEntry(resultado.Mensaje, EventLogEntryType.Information, 101, 1); } } catch (Exception ex) { //En caso de error resultado = new RetornoOperacion(ex.Message); using (EventLog eventLog = new EventLog("Application")) { eventLog.Source = "Application"; eventLog.WriteEntry(resultado.Mensaje, EventLogEntryType.Information, 101, 1); } } } } } break; } } } } } } //Devolviendo resultado return(resultado); }
/// <summary> /// Metodo encargado de Guardar un Proveedor /// </summary> private void guardaCertificadoDigital() { //Validamos que exista carga de Archivos if (ViewState["ExtensionArchivoCer"] != null && ViewState["ExtensionArchivoKey"] != null) { //Validamos Archivo if (ViewState["ExtensionArchivoCer"].ToString() == ".cer" && ViewState["ExtensionArchivoKey"].ToString() == ".key") { //Declaracion de objeto resultado RetornoOperacion resultado = new RetornoOperacion(); //Declaramos Variable para Guardar Certificado int id_Certificado = 0, id_archivo_cer = 0; //Creamos la transacción using (System.Transactions.TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //De acuerdo al estatus de la pagina switch ((Pagina.Estatus)Session["estatus"]) { //Insertando Proveedor case Pagina.Estatus.Nuevo: { resultado = SAT_CL.Global.CertificadoDigital.InsertaCertificado(Convert.ToInt32(ddlEmisor.SelectedValue), Convert.ToInt32(ddlSucursal.SelectedValue), (SAT_CL.Global.CertificadoDigital.TipoCertificado) Convert.ToByte(ddlTipo.SelectedValue), txtNuevaContrasena.Text, txtNuevaContrasenaRevocacion.Text, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario ); //Asignamos Variable Certificado id_Certificado = resultado.IdRegistro; //Si se insertó Correctamen el Ceriticado Digital if (resultado.OperacionExitosa) { int key = 0; int cer = 0; //Validamos Tipo de Certificado switch ((SAT_CL.Global.CertificadoDigital.TipoCertificado)Convert.ToInt32(ddlTipo.SelectedValue)) //FIEL { case SAT_CL.Global.CertificadoDigital.TipoCertificado.FIEL: cer = 12;; key = 14; break; case SAT_CL.Global.CertificadoDigital.TipoCertificado.CSD: cer = 13; key = 15; break; } //Instanciamos Emisor using (CompaniaEmisorReceptor objEmisor = new CompaniaEmisorReceptor(Convert.ToInt32(ddlEmisor.SelectedValue))) { //Validamos Emisor if (objEmisor.id_compania_emisor_receptor > 0) { //Construyendo ruta de almacenamiento de certificados string ruta_certificado = string.Format(@"{0}{1}\{2}-{3}", SAT_CL.CapaNegocio.m_capaNegocio.RegresaVariableCatalogoBD("Directorio Raíz Gestor Archivos SAT"), 114.ToString("0000"), id_Certificado.ToString("0000000"), TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().ToString("yyMMddHHmmss")); //Insertamos Archivo Registro .cer resultado = ArchivoRegistro.InsertaArchivoRegistro(114, id_Certificado, cer, "", ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario, (byte[])ViewState["BytesArchivoCer"], ruta_certificado + ".cer"); //Validamos Resultado if (resultado.OperacionExitosa) { //Asignando Id de archivo certificado (.cer) id_archivo_cer = resultado.IdRegistro; //Insertamos Archivo Registro (.key) resultado = ArchivoRegistro.InsertaArchivoRegistro(114, id_Certificado, key, "", ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario, (byte[])ViewState["BytesArchivoKey"], ruta_certificado + ".key"); //Si no se guardó correctamente if (!resultado.OperacionExitosa) { //Deshabilitamos Registros Archivo using (ArchivoRegistro objArchivoKey = new ArchivoRegistro(id_archivo_cer)) //Deshabilitamos Registro objArchivoKey.DeshabilitaArchivoRegistro(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } else { resultado = new RetornoOperacion("No se encontrarón datos complementarios Emisor"); } } } break; } case Pagina.Estatus.Edicion: { break; } } //ValidamosResultado if (resultado.OperacionExitosa) { //Finalizamos Transacción scope.Complete(); } } //Validamos que la operacion se haya realizado if (resultado.OperacionExitosa) { //Establecemos el id del registro Session["id_registro"] = id_Certificado; //Establecemos el estatus de la forma Session["estatus"] = Pagina.Estatus.Lectura; //Inicializamos la forma inicializaPagina(); } //Actualizamos la etiqueta de errores lblError.Text = resultado.Mensaje; } else { lblError.Text = "Los archivos de certificado seleccionados no tienen las extensiones apropiadas."; } } else { lblError.Text = "Los archivos aún no se han cargado."; } }
/// <summary> /// Método Privado encargado de Inicializar los Valores /// </summary> private void inicializaValores() { //Validando el estatus de la Página switch ((Pagina.Estatus)Session["estatus"]) { case Pagina.Estatus.Nuevo: { //Asignando Valores lblId.Text = "Por Asignar"; txtTotalCobrado.Text = "0.00"; txtTotalDeuda.Text = txtMontoCobro.Text = txtSaldo.Text = //txtDiasCobro.Text = "0"; txtEntidad.Text = txtReferencia.Text = ""; txtFechaIni.Text = TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().ToString("dd/MM/yyyy"); txtFechaUltCob.Text = ""; //Inicializando Cobro Recurrente TSDK.ASP.Controles.InicializaGridview(gvCobroRecurrenteLiquidacion); break; } case Pagina.Estatus.Lectura: case Pagina.Estatus.Edicion: { //Instanciando Cobro Recurrente using (SAT_CL.Liquidacion.CobroRecurrente cr = new SAT_CL.Liquidacion.CobroRecurrente(Convert.ToInt32(Session["id_registro"]))) { //Validando que exista el Registro if (cr.id_cobro_recurrente != 0) { //Asignando Valores lblId.Text = cr.id_cobro_recurrente.ToString(); txtTotalDeuda.Text = cr.total_deuda.ToString(); txtTotalCobrado.Text = cr.total_cobrado.ToString(); txtSaldo.Text = cr.saldo.ToString(); txtMontoCobro.Text = cr.monto_cobro.ToString(); //txtDiasCobro.Text = cr.dias_cobro.ToString(); ddlTipoEntApl.SelectedValue = cr.id_tipo_entidad_aplicacion.ToString(); ddlTipoCobroRecurrente.SelectedValue = cr.id_tipo_cobro_recurrente.ToString(); //Validando si el tipo de entidad if (cr.id_operador != 0) { /**** Operador ****/ using (Operador op = new Operador(cr.id_operador)) { //Validando si existe if (op.id_operador != 0) { //Asignando Valor txtEntidad.Text = op.nombre + " ID:" + op.id_operador.ToString(); } } } else if (cr.id_proveedor_compania != 0) { /**** Proveedor ****/ using (CompaniaEmisorReceptor pro = new CompaniaEmisorReceptor(cr.id_proveedor_compania)) { //Validando si existe if (pro.id_compania_emisor_receptor != 0) { //Asignando Valor txtEntidad.Text = pro.nombre + " ID:" + pro.id_compania_emisor_receptor.ToString(); } } } else if (cr.id_unidad != 0) { /**** Unidad ****/ using (Unidad uni = new Unidad(cr.id_unidad)) { //Validando si existe if (uni.id_unidad != 0) { //Asignando Valor txtEntidad.Text = uni.numero_unidad + " ID:" + uni.id_unidad.ToString(); } } } else if (cr.id_empleado != 0) { /**** Empleado ****/ txtEntidad.Text = " ID:" + cr.id_empleado.ToString(); } //Asignando los Valores txtReferencia.Text = cr.referencia; txtFechaIni.Text = cr.fecha_inicial.ToString("dd/MM/yyyy"); txtFechaUltCob.Text = cr.fecha_ultimo_cobro.ToString("dd/MM/yyyy") == "01/01/0001" ? "" : cr.fecha_ultimo_cobro.ToString("dd/MM/yyyy"); ddlEstatusTermino.SelectedValue = cr.id_estatus_termino.ToString(); //Invocando Método de Carga de Historial de Cobros cargaCobrosRecurrentesTotales(cr.id_cobro_recurrente, cr.id_tipo_entidad_aplicacion, cr.id_unidad, cr.id_operador, cr.id_proveedor_compania, cr.id_compania_emisor); } } break; } } }
/// <summary> /// Mètodo encargado de validar pagos ligados al movimiento /// </summary> /// <returns></returns> private RetornoOperacion validaPagos() { //Declaramos objeto retorno RetornoOperacion resultado = new RetornoOperacion(0); //Obtenemos Asignaciones Liquidadas using (DataTable mitAsignaciones = MovimientoAsignacionRecurso.CargaAsignacionesLiquidadas(this._id_movimiento)) { //Validamos Asignaciones if (Validacion.ValidaOrigenDatos(mitAsignaciones)) { //Recorremos cada una de las asignaciones liquidadas foreach (DataRow r in mitAsignaciones.Rows) { //Intsanciamos Asignación using (MovimientoAsignacionRecurso objAsignacion = new MovimientoAsignacionRecurso(r.Field <int>("Id"))) { //De acuerdo al tipo de asignación switch ((MovimientoAsignacionRecurso.Tipo)(objAsignacion.id_tipo_asignacion)) { //Si es Operador case MovimientoAsignacionRecurso.Tipo.Operador: //Instanciamos Operador using (Operador objOperador = new Operador(objAsignacion.id_recurso_asignado)) { //establecemos mensaje error resultado = new RetornoOperacion("La asignación del operador " + objOperador.nombre + " se encuentra liquidada."); } break; //Si es tercero case MovimientoAsignacionRecurso.Tipo.Tercero: //Instanciamos Tercero using (CompaniaEmisorReceptor objCompania = new CompaniaEmisorReceptor(objAsignacion.id_recurso_asignado)) { //establecemos mensaje error resultado = new RetornoOperacion("La asignación del Tercero " + objCompania.nombre_corto + " se encuentra liquidada."); } break; //Si es Unidad case MovimientoAsignacionRecurso.Tipo.Unidad: //Instanciamos Unidad using (Unidad objUnidad = new Unidad(objAsignacion.id_recurso_asignado)) { //establecemos mensaje error resultado = new RetornoOperacion("La asignación de la unidad " + objUnidad.numero_unidad + " se encuentra liquidada."); } break; } } } } //Validamos si existen pagos else if (PagoMovimiento.ValidaPagoMovimiento(this._id_movimiento)) { //Establecemos Mensaje Error resultado = new RetornoOperacion("Existen pagos ligados al movimiento."); } } //Retornamos resultado return(resultado); }
/// <summary> /// Realiza la configuración incial del control de usuario respecto al registro solicitado y las caracteristicas adicionales de visualización /// </summary> /// <param name="tipo_aplicacion">Tipo de Aplicación del vencimiento</param> /// <param name="id_recurso">Id de recurso (unidad/operador)</param> /// <param name="ver_terminados">True para mostrar vencimientos en estatus terminado</param> /// <param name="hab_consultar_terminar">True para mostrar columnas de opciones Consultar y Terminar, de lo contrario False</param> /// <param name="estatus">Estatus del vencimiento que se desea mostrar en el gv</param> /// <param name="id_tipo_vencimiento">Tipo de Vencimiento que se desea mostrar en el gv</param> /// <param name="id_prioridad">Id Prioridad del Vencimiento que se desea mostrar en el gv</param> /// <param name="rango_fechas">Valor que identifica si se requiere realizar la búsqueda por fecha,</param> /// <param name="fecha_inicio_vencimiento">tipo de fechas que se desea realizar la búsqueda en caso de ser false se realizara por fecha de fin de vencimiento,</param> /// <param name="fecha_fin">Fecha Inicio que se desea mostrar</param> /// <param name="fecha_inicio">Fecha fin que se desea mostrar</param> public void InicializaControl(TipoVencimiento.TipoAplicacion tipo_aplicacion, int id_recurso, bool hab_consultar_terminar, byte id_estatus, int id_tipo_vencimiento, byte id_prioridad, bool rango_fechas, bool fecha_inicio_vencimiento, DateTime fecha_inicio, DateTime fecha_fin) { //Asignando a atributos privados this._tipo_aplicacion = tipo_aplicacion; this._id_recurso = id_recurso; this._hab_consultar_terminar = hab_consultar_terminar; //Carga Catalogo cargaCatalogos(); //Asignando Tipo de Entidad ddlTipoEntidad.SelectedValue = Convert.ToInt32(this._tipo_aplicacion).ToString(); //Invocando Método de Configuración configuraControlesBusqueda(); //Actualizando rótulo de entidad consultada switch (this._tipo_aplicacion) { case TipoVencimiento.TipoAplicacion.Unidad: //Instanciando unidad using (Unidad u = new Unidad(this._id_recurso)) { //Validando Unidad if (u.habilitar) { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = string.Format("Vencimientos de Unidad '{0}'", u.numero_unidad); //Asignando Valor txtUnidad.Text = u.numero_unidad + " ID:" + u.id_unidad.ToString(); } else { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = "Vencimientos de Unidad"; //Asignando Valor txtUnidad.Text = ""; } } break; case TipoVencimiento.TipoAplicacion.Operador: //Instanciando operador using (Operador o = new Operador(this._id_recurso)) { //Validando Operador if (o.habilitar) { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = string.Format("Vencimientos de Operador '{0}'", o.nombre); //Asignando Valor txtOperador.Text = o.nombre + " ID:" + o.id_operador.ToString(); } else { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = "Vencimientos de Operador"; //Asignando Valor txtOperador.Text = ""; } } break; case TipoVencimiento.TipoAplicacion.Transportista: //Instanciando transportista using (CompaniaEmisorReceptor t = new CompaniaEmisorReceptor(this._id_recurso)) { //Validando Transportista if (t.habilitar) { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = string.Format("Vencimientos de Transportista '{0}'", t.nombre_corto); //Asignando Valor txtProveedor.Text = t.nombre + " ID:" + t.id_compania_emisor_receptor.ToString(); } else { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = "Vencimientos de Transportista"; //Asignando Valor txtProveedor.Text = ""; } } break; case TipoVencimiento.TipoAplicacion.Servicio: //Instanciando transportista using (SAT_CL.Documentacion.Servicio s = new SAT_CL.Documentacion.Servicio(this._id_recurso)) { //Validando Servicio if (s.habilitar) { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = string.Format("Vencimientos del Servicio '{0}'", s.no_servicio); //Asignando Valor txtServicio.Text = "Servicio No." + s.no_servicio + " ID:" + s.id_servicio.ToString(); } else { //Asignando Valor al Encabezado h2EntidadConsultada.InnerText = "Vencimientos del Servicio"; //Asignando Valor txtServicio.Text = ""; } } break; } //Inicializamos Controles de acuerdo a los paramteros obtenidos ddlEstatus.SelectedValue = id_estatus.ToString(); ddlTipo.SelectedValue = id_tipo_vencimiento.ToString(); ddlPrioridad.SelectedValue = id_prioridad.ToString(); //Inicializamos Controles txtFechaInicio.Enabled = txtFechaFin.Enabled = chkRangoFechas.Checked = rango_fechas; rdbInicioVencimiento.Checked = fecha_inicio_vencimiento != true ? false : true; rdbFinVenciamiento.Checked = fecha_inicio_vencimiento != true ? true : false; //Validamos que exista Filtro de Unidades if (rango_fechas) { //Inicializamos Controles txtFechaInicio.Text = fecha_inicio.ToString("dd/MM/yyyy hh:mm"); txtFechaFin.Text = fecha_fin.ToString("dd/MM/yyyy hh:mm"); } else { //Obtenemos fecha de Default DateTime primerdia = new DateTime(TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Year, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Month, 1); DateTime ultimoDia = new DateTime(TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Year, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Month, DateTime.DaysInMonth(TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Year, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro().Month)); txtFechaInicio.Text = primerdia.ToString("dd/MM/yyyy") + " 00:00"; txtFechaFin.Text = ultimoDia.ToString("dd/MM/yyyy") + " 23:59"; } //Realizando carga de vencimientos cargaHistorialVencimientos(); }
/// <summary> /// Método encaragdo de Configurar la Entidad /// </summary> /// <param name="id_tabla"></param> /// <param name="id_registro"></param> private void configuraEntidad(int id_tabla, int id_registro) { //Inicializando Valores switch (id_tabla) { case 1: { //Configurando Unidad lblEntidad.Text = "Servicio"; //Instanciando Operador using (SAT_CL.Documentacion.Servicio serv = new SAT_CL.Documentacion.Servicio(id_registro)) { //Validando que exista if (serv.habilitar) { //Asignando Servicio lblRegistro.Text = serv.no_servicio; } else { //Limpiando Control lblRegistro.Text = "--"; } } //Configurando Control //lblValorKm.Visible = //txtValorKm.Visible = false; break; } case 19: { //Configurando Unidad lblEntidad.Text = "Unidad"; //Instanciando Operador using (Unidad unidad = new Unidad(id_registro)) { //Validando que exista if (unidad.habilitar) { //Asignando Unidad lblRegistro.Text = unidad.numero_unidad; } else { //Limpiando Control lblRegistro.Text = "--"; } } //Configurando Control //lblValorKm.Visible = //txtValorKm.Visible = true; break; } case 25: { //Configurando Unidad lblEntidad.Text = "Proveedor"; //Instanciando Proveedor using (CompaniaEmisorReceptor cer = new CompaniaEmisorReceptor(id_registro)) { //Validando que exista if (cer.habilitar) { //Asignando Proveedor lblRegistro.Text = cer.nombre; } else { //Limpiando Control lblRegistro.Text = "--"; } } //Configurando Control //lblValorKm.Visible = //txtValorKm.Visible = false; break; } case 76: { //Configurando Unidad lblEntidad.Text = "Operador"; //Instanciando Unidad using (Operador operador = new Operador(id_registro)) { //Validando que exista if (operador.habilitar) { //Asignando Unidad lblRegistro.Text = operador.nombre; } else { //Limpiando Control lblRegistro.Text = "--"; } } //Configurando Control //lblValorKm.Visible = //txtValorKm.Visible = false; break; } } }