Example #1
0
        private async Task <FECAEResponse> ParseFeCaeResponseAsync(ElectronicInvoiceTest.FECAESolicitarResponse input,
                                                                   ElectronicInvoiceTest.FEAuthRequest _auth,
                                                                   ElectronicInvoiceTest.ServiceSoapClient soapClient,
                                                                   FECAERequestInfo requestInfo)
        {
            var errs             = input.Body.FECAESolicitarResult.Errors?.Select(x => _mapper.Map <ElectronicInvoiceTest.Err, FECAEResponse.CodeMessage>(x));
            var events           = input.Body.FECAESolicitarResult.Events?.Select(x => _mapper.Map <ElectronicInvoiceTest.Evt, FECAEResponse.CodeMessage>(x));
            var feCaeCabResponse = _mapper.Map <ElectronicInvoiceTest.FECAECabResponse, FECAEResponse.FECAECabResponse>(input.Body.FECAESolicitarResult.FeCabResp);
            var feDetResp        = await Task.WhenAll(input.Body.FECAESolicitarResult.FeDetResp?.Select(x => GetComprobanteTest(input, _auth, soapClient, requestInfo, x, feCaeCabResponse)));

            return(new FECAEResponse(errs, events, feCaeCabResponse, feDetResp));
        }
Example #2
0
        private async Task <FECAEResponse.FECAEDetResponse> GetComprobanteTest(ElectronicInvoiceTest.FECAESolicitarResponse input, ElectronicInvoiceTest.FEAuthRequest _auth, ElectronicInvoiceTest.ServiceSoapClient soapClient, FECAERequestInfo requestInfo, ElectronicInvoiceTest.FECAEDetResponse x, FECAEResponse.FECAECabResponse feCaeCabResponse)
        {
            var result = _mapper.Map <ElectronicInvoiceTest.FECAEDetResponse, FECAEResponse.FECAEDetResponse>(x);

            if (feCaeCabResponse.Resultado == "A")
            {
                if (input.Body.FECAESolicitarResult.FeDetResp.Count() == 1)
                {
                    result.ImpTotal = Convert.ToDouble(requestInfo.Invoices.Sum());
                }
                else
                {
                    var consultar = new ElectronicInvoiceTest.FECompConsultaReq
                    {
                        CbteNro  = x.CbteDesde,
                        CbteTipo = feCaeCabResponse.CbteTipo,
                        PtoVta   = feCaeCabResponse.PtoVta
                    };
                    try
                    {
                        var comprobate = await soapClient.FECompConsultarAsync(_auth, consultar);

                        result.ImpTotal = comprobate.Body.FECompConsultarResult.ResultGet.ImpTotal;
                    }
                    catch { }
                }
            }
            return(result);
        }