Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }