/// <summary> /// Método encargado de Deshabilitar las Aplicaciones de un Facturado /// </summary> /// <param name="id_factura">Facturado</param> /// <param name="id_comprobante">Comprobante v3.3</param> /// <param name="id_usuario">Usuario que actualiza el registro</param> /// <returns></returns> public static RetornoOperacion DeshabilitaAplicacionesFacturado(int id_factura, int id_comprobante, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion retorno = new RetornoOperacion(); //Instanciando Aplicaciones using (DataTable dtAplicaciones = SAT_CL.CXC.FichaIngresoAplicacion.ObtieneFichasFacturas(0, id_factura)) { //Validando que existan Aplicaciones if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtAplicaciones)) { //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Recorriendo Registros foreach (DataRow dr in dtAplicaciones.Rows) { //Instanciando Aplicacion de la Factura using (SAT_CL.CXC.FichaIngresoAplicacion fia = new SAT_CL.CXC.FichaIngresoAplicacion(Convert.ToInt32(dr["Id"]))) { //Validando que exista la Aplicación if (fia.id_ficha_ingreso_aplicacion > 0) { //Deshabilitando Ficha de Ingreso retorno = fia.DeshabilitarFichaIngresoAplicacion(id_usuario); //Validando Operación Exitosa if (!retorno.OperacionExitosa) { //Terminando Ciclo break; } else { //Instanciando Ficha de Ingreso using (SAT_CL.Bancos.EgresoIngreso fi = new SAT_CL.Bancos.EgresoIngreso(fia.id_egreso_ingreso)) { //Validando que exista el Registro if (fi.habilitar) { //Obteniendo Facturas Aplicadas using (DataTable dtAplicacionesFicha = SAT_CL.CXC.FichaIngresoAplicacion.ObtieneFichasFacturas(fi.id_egreso_ingreso, 0)) { //Si no existen Aplicaciones if (!TSDK.Datos.Validacion.ValidaOrigenDatos(dtAplicacionesFicha)) { //Actualizando Estatus de la Ficha retorno = fi.ActualizaFichaIngresoEstatus(SAT_CL.Bancos.EgresoIngreso.Estatus.Capturada, id_usuario); //Validando Operación Correcta if (retorno.OperacionExitosa) { //Terminando Ciclo break; } } } } } } } } } //Validando Desaplicación Exitosa if (retorno.OperacionExitosa) { //Declaramos Variable int facturado = 0; //Obtenemos Facturado Fcaturacion facturado = SAT_CL.Facturacion.FacturadoFacturacion.ObtieneRelacionFacturaElectronicav3_3(id_comprobante); //Instanciamos FcaturadoFacturacion using (SAT_CL.Facturacion.FacturadoFacturacion objfacturado = new SAT_CL.Facturacion.FacturadoFacturacion(facturado)) { //Instanciamos Facturado using (SAT_CL.Facturacion.Facturado objFacturado = new SAT_CL.Facturacion.Facturado(objfacturado.id_factura)) { //Actualizando Estatus de la Factura retorno = objFacturado.ActualizaEstatusFactura(SAT_CL.Facturacion.Facturado.EstatusFactura.Registrada, id_usuario); //Validando Operación Exitosa if (retorno.OperacionExitosa) { //Instanciando Excepción retorno = new RetornoOperacion(id_factura); //Completando Transacción trans.Complete(); } } } } } } else { //Instanciando Excepción retorno = new RetornoOperacion(id_factura); } } //Devolviendo Resultado Obtenido return(retorno); }
/// <summary> /// Cancelar CFDI /// </summary> private RetornoOperacion cancelaCFDI() { //Declaramos resultado RetornoOperacion resultado = new RetornoOperacion(); //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciamos Comprobamte using (SAT_CL.FacturacionElectronica.Comprobante objCompobante = new SAT_CL.FacturacionElectronica.Comprobante(Convert.ToInt32(gvComprobantes.SelectedDataKey["Id"]))) { //Enviamos link resultado = objCompobante.CancelaComprobante(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validamos Resultado if (resultado.OperacionExitosa) { //Insertando Referencia resultado = SAT_CL.Global.Referencia.InsertaReferencia(objCompobante.id_comprobante, 119, SAT_CL.Global.ReferenciaTipo.ObtieneIdReferenciaTipo(0, 119, "Motivo Cancelación", 0, "Facturacion Electrónica"), txtMotivo.Text, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro(), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario, true); //Validando Operación Exitosa if (resultado.OperacionExitosa) { //Instanciando Aplicaciones using (DataTable dtAplicaciones = SAT_CL.CXC.FichaIngresoAplicacion.ObtieneFichasFacturas(0, Convert.ToInt32(gvComprobantes.SelectedDataKey["IdFactura"]))) { //Validando que existan Aplicaciones if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtAplicaciones)) { //Recorriendo Registros foreach (DataRow dr in dtAplicaciones.Rows) { //Instanciando Aplicacion de la Factura using (SAT_CL.CXC.FichaIngresoAplicacion fia = new SAT_CL.CXC.FichaIngresoAplicacion(Convert.ToInt32(dr["Id"]))) { //Validando que exista la Aplicación if (fia.id_ficha_ingreso_aplicacion > 0) { //Deshabilitando Ficha de Ingreso resultado = fia.DeshabilitarFichaIngresoAplicacion(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Exitosa if (!resultado.OperacionExitosa) { //Terminando Ciclo break; } else { //Instanciando Ficha de Ingreso using (SAT_CL.Bancos.EgresoIngreso fi = new SAT_CL.Bancos.EgresoIngreso(fia.id_egreso_ingreso)) { //Validando que exista el Registro if (fi.habilitar) { //Obteniendo Facturas Aplicadas using (DataTable dtAplicacionesFicha = SAT_CL.CXC.FichaIngresoAplicacion.ObtieneFichasFacturas(fi.id_egreso_ingreso, 0)) { //Si no existen Aplicaciones if (!TSDK.Datos.Validacion.ValidaOrigenDatos(dtAplicacionesFicha)) { //Actualizando Estatus de la Ficha resultado = fi.ActualizaFichaIngresoEstatus(SAT_CL.Bancos.EgresoIngreso.Estatus.Capturada, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando Operación Correcta if (resultado.OperacionExitosa) { //Terminando Ciclo break; } } } } } } } } } //Validando Desaplicación Exitosa if (resultado.OperacionExitosa) { //Declaramos Variable int facturado = 0; //Obtenemos Facturado Fcaturacion facturado = FacturadoFacturacion.ObtieneRelacionFacturaElectronica(objCompobante.id_comprobante); //Instanciamos FcaturadoFacturacion using (FacturadoFacturacion objfacturado = new FacturadoFacturacion(facturado)) { //Instanciamos Facturado using (Facturado objFacturado = new Facturado(objfacturado.id_factura)) { //Actualizando Estatus de la Factura resultado = objFacturado.ActualizaEstatusFactura(Facturado.EstatusFactura.Registrada, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } } else { //Instanciando Factura resultado = new RetornoOperacion(Convert.ToInt32(gvComprobantes.SelectedDataKey["IdFactura"])); } //Validando Operación Exitosa if (resultado.OperacionExitosa) { //Cerramo Ventana Modal alternaVentanaModal("CancelarCFDI", btnAceptarCancelacionCFDI); //Carga Comprobante cargaComprobantes(); //Completando Transacción trans.Complete(); } } } } } } //Devolvemos Valor return(resultado); }