public async Task <ActionResult> ReintegroAnualar(AnularVentaRequest request) { try { string result = string.Empty; using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(url); var _body = "{" + "\"IdVenta\": " + request.IdVenta + ",\"CodiEsca\": \"" + request.CodiEsca + "\"" + ",\"CodiEmpresa\": " + request.CodiEmpresa + ",\"SerieBoleto\": " + request.SerieBoleto + ",\"NumeBoleto\": " + request.NumeBoleto + ",\"Tipo\": \"" + request.Tipo + "\"" + ",\"FechaVenta\": \"" + request.FechaVenta + "\"" + ",\"CodiUsuario\": " + usuario.CodiUsuario + ",\"TipoPago\": \"" + request.TipoPago + "\"" + ",\"CodiOficina\": " + usuario.CodiSucursal + ",\"CodiPuntoVenta\": " + usuario.CodiPuntoVenta + ",\"NomUsuario\": \"" + usuario.Nombre + "\"" + ",\"PrecioVenta\": \"" + request.PrecioVenta + "\"" + ",\"CodiDestinoPas\": \"" + request.CodiDestinoPas + "\"" + ",\"IngresoManualPasajes\": " + request.IngresoManualPasajes.ToString().ToLower() + ",\"NomOficina\": \"" + usuario.CodiSucursal + "\"" + ",\"Terminal\": " + usuario.Terminal.ToString("D3") + ",\"RucEmpresa\" : \"" + request.RucEmpresa + "\"" + ",\"ElectronicoEmpresa\" : \"" + request.ElectronicoEmpresa + "\"" + "}"; HttpResponseMessage response = await client.PostAsync("AnularReintegro", new StringContent(_body, Encoding.UTF8, "application/json")); if (response.IsSuccessStatusCode) { result = await response.Content.ReadAsStringAsync(); } } JToken tmpResult = JObject.Parse(result); Response <byte> res = new Response <byte>() { Estado = (bool)tmpResult["Estado"], Mensaje = (string)tmpResult["Mensaje"], Valor = (byte)tmpResult["Valor"], EsCorrecto = (bool)tmpResult["EsCorrecto"] }; return(Json(res, JsonRequestBehavior.AllowGet)); } catch { return(Json(new Response <byte>(false, Constant.EXCEPCION, 0), JsonRequestBehavior.AllowGet)); } }
public static Response <byte> AnularReintegro(AnularVentaRequest request) { try { var anularVentaReintegro = new byte(); if (request.IdVenta > 0) { // Valida 'AnularDocumentoSUNAT' if (!request.Tipo.Equals("M") && request.ElectronicoEmpresa == "1") { // Anula 'DocumentoSUNAT' var objVentaReintegro = new VentaEntity { CodiEmpresa = request.CodiEmpresa, SerieBoleto = request.SerieBoleto, NumeBoleto = request.NumeBoleto, Tipo = request.Tipo, FechaVenta = request.FechaVenta, RucEmpresa = request.RucEmpresa }; var resAnularDocumentoSUNAT = VentaLogic.AnularDocumentoSUNAT(objVentaReintegro); if (!resAnularDocumentoSUNAT.Estado) { return(new Response <byte>(false, anularVentaReintegro, resAnularDocumentoSUNAT.MensajeError, false)); } } // Anula 'Reintegro' anularVentaReintegro = VentaRepository.AnularVenta(request.IdVenta, request.CodiUsuario); if (anularVentaReintegro > 0) { if (request.TipoPago == "03") { // Consulta 'PagoTarjetaVenta' var consultaPagoTarjetaVenta = VentaRepository.ConsultaPagoTarjetaVenta(request.IdVenta); // Actualiza 'CajaAnulacion' VentaRepository.ActualizarCajaAnulacion(consultaPagoTarjetaVenta); } //Elimina Boleto x Contrato si es que tiene ReintegroRepository.EliminarBoletoxContrato(request.IdVenta); //Libera Venta del Reintegro ReintegroRepository.LiberaReintegroEle(request.CodiEsca.Substring(1, 3), request.CodiEsca.Substring(5), request.CodiEmpresa.ToString(), request.CodiEsca.Substring(0, 1)); // Genera 'CorrelativoAuxiliar' var generarCorrelativoAuxiliarReintegro = VentaRepository.GenerarCorrelativoAuxiliar("CAJA", request.CodiOficina, request.CodiPuntoVenta, string.Empty); if (string.IsNullOrEmpty(generarCorrelativoAuxiliarReintegro)) { return(new Response <byte>(false, anularVentaReintegro, Message.MsgErrorGenerarCorrelativoAuxiliarReintegro, false)); } // Graba 'CajaReintegro' var objCajaReintegro = new CajaEntity { NumeCaja = generarCorrelativoAuxiliarReintegro.PadLeft(7, '0'), CodiEmpresa = request.CodiEmpresa, CodiSucursal = short.Parse(request.CodiOficina), FechaCaja = DataUtility.ObtenerFechaDelSistema(), TipoVale = "S", Boleto = String.Format("{0}-{1}", request.SerieBoleto.ToString().PadLeft(3, '0'), request.NumeBoleto.ToString().PadLeft(7, '0')), NomUsuario = String.Format("{0} {1}", request.CodiUsuario, request.NomUsuario), CodiBus = string.Empty, CodiChofer = string.Empty, CodiGasto = string.Empty, ConcCaja = String.Format("{0} {1}-{2}", "ANUL DE BOLETO REINT", request.SerieBoleto.ToString().PadLeft(3, '0'), request.NumeBoleto.ToString().PadLeft(7, '0')), Monto = request.PrecioVenta, CodiUsuario = short.Parse(request.CodiUsuario.ToString()), IndiAnulado = "F", TipoDescuento = "RE", TipoDoc = "16", TipoGasto = "P", Liqui = 0M, Diferencia = 0M, Recibe = "RE", CodiDestino = string.Empty, FechaViaje = "01/01/1900", HoraViaje = string.Empty, CodiPuntoVenta = short.Parse(request.CodiPuntoVenta), Voucher = string.Empty, Asiento = string.Empty, Ruc = string.Empty, IdVenta = 0, Origen = "AR", Modulo = "PR", Tipo = request.Tipo, IdCaja = 0 }; var grabarCajaReintegro = VentaRepository.GrabarCaja(objCajaReintegro); //Graba Auditoria luego de Liberar Asiento var objAuditoria = new AuditoriaEntity { CodiUsuario = Convert.ToInt16(request.CodiUsuario), NomUsuario = request.NomUsuario, Tabla = "VENTA", TipoMovimiento = "ANUL.REINTEGRO", Boleto = String.Format("{0}-{1}", request.SerieBoleto.ToString().PadLeft(3, '0'), request.NumeBoleto.ToString().PadLeft(7, '0')), NumeAsiento = "0", NomOficina = request.NomOficina, NomPuntoVenta = request.CodiPuntoVenta.PadLeft(3, '0'), Pasajero = "", FechaViaje = "01/01/1900", HoraViaje = "", NomDestino = "", Precio = 0M, Obs1 = "LIBERACION AL BOLETO : " + request.CodiEsca, Obs2 = "TERMINAL : " + request.Terminal.ToString().PadLeft(3, '0'), Obs3 = "", Obs4 = "CAJERO AFECTA " + request.CodiUsuario, Obs5 = "NRO VALE SALIDA : " + generarCorrelativoAuxiliarReintegro.PadLeft(7, '0') }; VentaRepository.GrabarAuditoria(objAuditoria); //TODO: Falta implementar Usp_Tb_venta_AnulaReintegro_ele } } return(new Response <byte>(true, anularVentaReintegro, "Se anuló el reintegro correctamente", true)); } catch (Exception ex) { Log.Instance(typeof(VentaLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex); return(new Response <byte>(false, 0, Message.MsgExcAnulaReintegro, false)); } }