コード例 #1
0
        public override CAEDetalleRespuesta DatosDeComprobante( Autorizacion aut, int tipoComprobante, int nroComprobante, int ptoVta )
        {
            AuthRequestType feAutRequest = this.wa.ConvertirMTXCA( aut );
            ConsultaComprobanteRequestType solicitud = new ConsultaComprobanteRequestType();
            solicitud.numeroComprobante = nroComprobante;
            solicitud.codigoTipoComprobante = (short) tipoComprobante;
            solicitud.numeroPuntoVenta = (short) ptoVta;

            CodigoDescripcionType[] observaciones;
            CodigoDescripcionType[] errores;
            CodigoDescripcionType evento;

            ComprobanteType respuesta = this.ws.consultarComprobante( feAutRequest, solicitud, out observaciones, out errores, out evento );
            this.managerErrores.CapturarError( errores );

            ConversorConsultaCaeARespuestaCae conversor = new ConversorConsultaCaeARespuestaCae();
            CAEDetalleRespuesta respuestaConvertida = conversor.ConvertirDetalle( respuesta );

            return respuestaConvertida;
        }
コード例 #2
0
        private void recuperarAutorizacionAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            //cargar identificadores y sesión de la AFIP. Si no hay una válida, se inicia una nueva sesión y se guardan los cambios en la DB
            var objSpace        = ( XPObjectSpace )Application.CreateObjectSpace( );
            var identificadores = Identificadores.GetInstance(objSpace);

            if (identificadores.FacturaElectronicaEnte == null)
            {
                throw new Exception("Ente de factura electrónica no definida para esta empresa");
            }

            var sesionWsmtxca = identificadores.FacturaElectronicaEnte.GetSesion(ServiceName);

            objSpace.CommitChanges( );

            var comprobante = ( Comprobante )View.CurrentObject;

            //if ( comprobante.AutorizadaResultado == "A" )
            //  throw new Exception( "Comprobante ya autorizado" );


            CodigoDescripcionType[] arrayObservaciones;
            CodigoDescripcionType[] arrayErrores;
            CodigoDescripcionType   evento;

            var consultaComprobanteRequest = new ConsultaComprobanteRequestType( )
            {
                codigoTipoComprobante = Convert.ToInt16(((ComprobanteTipo)comprobante.Tipo.GetMemberValue(AFIPModule.PropertyNameCodigoAfip)).Codigo),
                numeroPuntoVenta      = ( short )comprobante.Sector,
                numeroComprobante     = comprobante.Numero
            };

            var resp = service.consultarComprobante(GetAuth(sesionWsmtxca),
                                                    consultaComprobanteRequest,
                                                    out arrayObservaciones,
                                                    out arrayErrores,
                                                    out evento);

            if (arrayErrores != null && arrayErrores.Length > 0)
            {
                var err = arrayErrores.Aggregate("", (current, error) => current + (error.codigo + " - " + error.descripcion + "\n"));
                //TODO errores de Encoding. No encontre otra manera de arreglarlo
                err = err.Replace("ó", "ó").Replace("ú", "ú");

                comprobante.AutorizadaNotas = err;
                throw new Exception("Error en la operación:\n" + err);
            }

            if (resp == null)
            {
                throw new Exception("Error en la operación:\nNo se obtuvieron datos para la consulta");
            }

            //comprobante.AutorizadaResultado = resp.;
            comprobante.AutorizadaNotas = "";

            if (arrayObservaciones != null && arrayObservaciones.Length > 0)
            {
                var obs = arrayObservaciones.Aggregate("", (current, observacion) => current + (observacion.codigo + " - " + observacion.descripcion + "\n"));
                comprobante.AutorizadaNotas += obs;
            }

            comprobante.AutorizadaCodigo       = resp.codigoAutorizacion.ToString( );
            comprobante.AutorizadaCodigoFecVto = resp.fechaVencimiento;
        }