Пример #1
0
        /// <summary>
        /// Método Público encargado de Guardar los Conceptos
        /// </summary>
        /// <returns></returns>
        public RetornoOperacion GuardarFacturaConcepto()
        {   //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Validando que exista una Factura
            if (this.idFactura != 0)
            {
                //Validando que exista una Relación en Facturación Electronica
                if (FacturadoFacturacion.ObtieneFacturacionElectronicaActiva(this.idFactura) == 0)
                {
                    //Validando que exista un Concepto
                    if (gvConceptosFacturaConcepto.SelectedIndex != -1)
                    {
                        //Instanciando Registro
                        using (FacturadoConcepto objFacturadoConcepto = new FacturadoConcepto(Convert.ToInt32(gvConceptosFacturaConcepto.SelectedDataKey["Id"])))
                        {   //Editando Valores del Concepto
                            result = objFacturadoConcepto.EditaFacturaConcepto(objFacturadoConcepto.id_factura, Convert.ToDecimal(txtCantidadFacturaConcepto.Text == "" ? "0" : txtCantidadFacturaConcepto.Text),
                                                                               Convert.ToByte(ddlUnidadFacturaConcepto.SelectedValue), txtIdentificadorFacturaConcepto.Text, Convert.ToInt32(ddlConceptoCobroFacturaConcepto.SelectedValue),
                                                                               Convert.ToDecimal(txtValorUniFacturaConcepto.Text == "" ? "0" : txtValorUniFacturaConcepto.Text), 0, Convert.ToByte(ddlImpuestoRetenido.SelectedValue),
                                                                               Convert.ToDecimal(txtTasaImpRetFacturaConcepto.Text == "" ? "0" : txtTasaImpRetFacturaConcepto.Text), Convert.ToByte(ddlImpuestoTrasladado.SelectedValue),
                                                                               Convert.ToDecimal(txtTasaImpTraFacturaConcepto.Text == "" ? "0" : txtTasaImpTraFacturaConcepto.Text),
                                                                               objFacturadoConcepto.id_cargo_recurrente, ((Usuario)Session["usuario"]).id_usuario);
                        }
                    }
                    else
                    {
                        //Insertando Concepto
                        result = FacturadoConcepto.InsertaFacturaConcepto(this.idFactura, Convert.ToDecimal(txtCantidadFacturaConcepto.Text == "" ? "0" : txtCantidadFacturaConcepto.Text),
                                                                          Convert.ToByte(ddlUnidadFacturaConcepto.SelectedValue), txtIdentificadorFacturaConcepto.Text, Convert.ToInt32(ddlConceptoCobroFacturaConcepto.SelectedValue),
                                                                          Convert.ToDecimal(txtValorUniFacturaConcepto.Text == "" ? "0" : txtValorUniFacturaConcepto.Text), 0, Convert.ToByte(ddlImpuestoRetenido.SelectedValue),
                                                                          Convert.ToDecimal(txtTasaImpRetFacturaConcepto.Text == "" ? "0" : txtTasaImpRetFacturaConcepto.Text), Convert.ToByte(ddlImpuestoTrasladado.SelectedValue),
                                                                          Convert.ToDecimal(txtTasaImpTraFacturaConcepto.Text == "" ? "0" : txtTasaImpTraFacturaConcepto.Text),
                                                                          0, ((Usuario)Session["usuario"]).id_usuario);
                    }
                }
                else
                {
                    //Inicializando Contructor con Excepcion Personalizada
                    result = new RetornoOperacion("La Factura esta Registrada ó Timbrada en Facturación Electronica");
                }
            }
            else
            {
                //Inicializando Contructor con Excepcion Personalizada
                result = new RetornoOperacion("Debe existir la factura");
            }
            //Validando que la Operación haya sido exitosa
            if (result.OperacionExitosa)
            {   //Inicializando Reporte
                inicializaReporteConceptos(this.idFactura);
                //Limpiando Controles
                limpiaControlesConcepto();
            }
            //Devolviendo Resultado Obtenido
            return(result);
        }
Пример #2
0
        /// <summary>
        /// Método Público encargado de Eliminar los Conceptos
        /// </summary>
        /// <returns></returns>
        public RetornoOperacion EliminaFacturaConcepto()
        {
            //Declarando Objeto de Operacion
            RetornoOperacion resultCon = new RetornoOperacion();

            //Validando que existan Registros
            if (gvConceptosFacturaConcepto.DataKeys.Count > 0)
            {
                //Instanciando Concepto
                using (FacturadoConcepto fc = new FacturadoConcepto(Convert.ToInt32(gvConceptosFacturaConcepto.SelectedDataKey["Id"])))
                {
                    //Validando que exista una Relación en Facturación Electronica 3.3
                    if (FacturadoFacturacion.ObtieneFacturacionElectronicaActivaV3_3(this.idFactura) == 0)
                    {
                        //Validando que exista una Relación en Facturación Electronica
                        if (FacturadoFacturacion.ObtieneFacturacionElectronicaActiva(this.idFactura) == 0)
                        {
                            //Deshabilitando Registro
                            resultCon = fc.DeshabilitaFacturaConcepto(((Usuario)Session["usuario"]).id_usuario);
                        }
                        else
                        {
                            //Inicializando Contructor con Excepcion Personalizada
                            resultCon = new RetornoOperacion("La Factura esta Registrada en Facturación Electronica v3.2");
                        }
                    }
                    else
                    {
                        //Inicializando Contructor con Excepcion Personalizada
                        resultCon = new RetornoOperacion("La Factura esta Registrada en Facturación Electronica v3.3");
                    }

                    //Validando que la Operacion fuera exitosa
                    if (resultCon.OperacionExitosa)
                    {
                        //Limpiando Controles
                        limpiaControlesConcepto();
                        //Obteniendo Conceptos
                        inicializaReporteConceptos(this.idFactura);
                    }
                }
            }
            else
            {
                //Inicializando Parametros
                resultCon = new RetornoOperacion("No hay Conceptos");
            }

            //Actualizando encabezado de Factura
            return(resultCon);
        }
Пример #3
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);
        }
Пример #4
0
        /// <summary>
        /// Método encargado de Configurar las Relaciones de los Comprobantes en base al Comprobante Vigente Actual
        /// </summary>
        /// <param name="id_factura_global">Factura Global</param>
        /// <param name="id_cfdi_33">Comprobante Nuevo v3.3</param>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public static RetornoOperacion ConfiguraRelacionComprobanteCancelacionFacturaGlobal(int id_factura_global, int id_cfdi_33, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Inicializando Bloque Transaccional
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Obteniendo Factura Electronica Cancelada
                int idFE33Cancelada = FacturadoFacturacion.ObtieneFacturaElectronicaFacturaGlobalCanceladaV3_3(id_factura_global);

                //Validando existencia de una Cancelación Previa
                if (idFE33Cancelada > 0)
                {
                    //Obteniendo Relaciones del Comprobante Cancelado
                    using (DataTable dtRelaciones = ComprobanteRelacion.ObtieneRelacionesComprobante(idFE33Cancelada))
                    {
                        //Validando Relaciones
                        if (Validacion.ValidaOrigenDatos(dtRelaciones))
                        {
                            //Recorriendo Relaciones
                            foreach (DataRow dr in dtRelaciones.Rows)
                            {
                                //Instanciando Relación
                                using (ComprobanteRelacion cr = new ComprobanteRelacion(Convert.ToInt32(dr["Id"])))
                                {
                                    //Validando Relación
                                    if (cr.habilitar)
                                    {
                                        //Actualizando Comprobante
                                        result = cr.EditaComprobanteRelacion(id_cfdi_33, cr.id_comprobante_relacionado, cr.id_tipo_relacion, cr.secuencia_relacion, cr.id_aplicacion, id_usuario);
                                    }
                                    else
                                    {
                                        //Instanciando Excepción
                                        result = new RetornoOperacion("No se puede recuperar la Relación");
                                    }

                                    //Validando Operación
                                    if (!result.OperacionExitosa)
                                    {
                                        //Terminando Ciclo
                                        break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Resultado Positivo
                            result = new RetornoOperacion(0, "No existe ninguna relación previa", true);
                        }

                        //Validando Operación Exitosa
                        if (result.OperacionExitosa)
                        {
                            //Insertando Nueva Relación de Cancelación
                            result = ComprobanteRelacion.InsertaComprobanteRelacion(id_cfdi_33, idFE33Cancelada, 4, 0, 0, id_usuario);
                        }
                    }
                }
                else
                {
                    //Instanciando Resultado Positivo
                    result = new RetornoOperacion(0, "No existe ninguna cancelación previa", true);
                }

                //Validando Operación Exitosa
                if (result.OperacionExitosa)
                {
                    //Completando transacción
                    scope.Complete();
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }