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 sesionWsfe = identificadores.FacturaElectronicaEnte.GetSesion(Sesion.ServicioWSFE);

            objSpace.CommitChanges( );

            var comprobante = ( Comprobante )View.CurrentObject;

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

            var request = new FECompConsultaReq {
                CbteNro = comprobante.Numero, CbteTipo = Convert.ToInt32(((ComprobanteTipo)comprobante.Tipo.GetMemberValue(AFIPModule.PropertyNameCodigoAfip)).Codigo), PtoVta = comprobante.Sector
            };

            var resp = ConsultarAutorizacion(sesionWsfe, request);

            if (resp.Errors != null && resp.Errors.Count > 0)
            {
                var err = resp.Errors.Aggregate("", (current, error) => current + (error.Code + " - " + error.Msg + "\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.ResultGet == null)
            {
                throw new Exception("Error en la operación:\nNo se obtuvieron datos para la consulta");
            }

            comprobante.AutorizadaResultado = resp.ResultGet.Resultado;
            comprobante.AutorizadaNotas     = "";

            if (resp.ResultGet.Observaciones != null && resp.ResultGet.Observaciones.Count > 0)
            {
                var obs = resp.ResultGet.Observaciones.Aggregate("", (current, observacion) => current + (observacion.Code + " - " + observacion.Msg + "\n"));
                comprobante.AutorizadaNotas += obs;
            }

            comprobante.AutorizadaCodigo = resp.ResultGet.CodAutorizacion;
            if (!string.IsNullOrWhiteSpace(resp.ResultGet.FchVto))
            {
                comprobante.AutorizadaCodigoFecVto = new DateTime(Convert.ToInt32(resp.ResultGet.FchVto.Substring(0, 4)),
                                                                  Convert.ToInt32(resp.ResultGet.FchVto.Substring(4, 2)),
                                                                  Convert.ToInt32(resp.ResultGet.FchVto.Substring(6, 2)));
            }
        }
        private FECompConsultaResponse ObtenerComprobanteAfip(FEAuthRequest feAuthRequest, FECAERequest feCAERequest, long cbteNro)
        {
            WsfeClient        client            = new WsfeClient();
            FECompConsultaReq feCompConsultaReq = new FECompConsultaReq();

            feCompConsultaReq.CbteNro  = cbteNro;
            feCompConsultaReq.CbteTipo = feCAERequest.FeCabReq.CbteTipo;
            feCompConsultaReq.PtoVta   = feCAERequest.FeCabReq.PtoVta;
            return(client.CompConsultar(feAuthRequest, feCompConsultaReq));
        }
Exemple #3
0
        public FECompConsultaResponse CompConsultar(FEAuthRequest feAuthRequest, FECompConsultaReq feCompConsultaReq)
        {
            try
            {
                FECompConsultaResponse result;
                using (ServiceSoapClient client = new ServiceSoapClient())
                {
                    return(result = client.FECompConsultar(feAuthRequest, feCompConsultaReq));
                }
            }

            catch (Exception excepcionAlInvocarWsfe)
            {
                throw new Exception("***Error INVOCANDO al servicio WFSE : " + excepcionAlInvocarWsfe.Message);
            }
        }
Exemple #4
0
        public bool CmpConsultar(int Tipo_cbte, int Punto_vta, long nro, ref FECompConsultaResponse Cbte)
        {
            FECompConsultaReq request = new FECompConsultaReq();

            request.CbteTipo = Tipo_cbte;
            request.PtoVta   = Punto_vta;
            request.CbteNro  = nro;

            FECompConsultaResponse response = getClient().FECompConsultar(mAuthRequest, request);


            if (!isError(response.Errors))
            {
                Cbte = response;

                return(true);
            }

            return(false);
        }
        public async Task <bool> CmpConsultar(int Tipo_cbte, int Punto_vta, long nro, FECompConsultaResponse Cbte)
        {
            FECompConsultaReq request = new FECompConsultaReq();

            request.CbteTipo = Tipo_cbte;
            request.PtoVta   = Punto_vta;
            request.CbteNro  = nro;

            FECompConsultarResponse response = await getClient().FECompConsultarAsync(mAuthRequest, request);


            if (!isError(response.Body.FECompConsultarResult.Errors))
            {
                _Comp = response.Body.FECompConsultarResult;

                return(true);
            }

            return(false);
        }
Exemple #6
0
        public FECompConsultaResponse CompConsultar(FEAuthRequest feAuthRequest, FECompConsultaReq feCompConsultaReq)
        {
            AfipWrapperServiceClient client = new AfipWrapperServiceClient();

            ClientCredentialHelper.SetCredentials(client.ClientCredentials);
            try
            {
                var t = client.CompConsultar(feAuthRequest, feCompConsultaReq);
                client.Close();
                return(t);
            }
            catch
            {
                if (client.State != System.ServiceModel.CommunicationState.Closed)
                {
                    client.Abort();
                }

                throw;
            }
        }
        public FECompConsultaResponse ConsultarAutorizacion(Sesion sesion, FECompConsultaReq request)
        {
            var resp = service.FECompConsultar(GetAuth(sesion), request);

            return(resp);
        }