/// <summary> /// Abonar a un apartado /// </summary> /// <param name="request"></param> /// <returns></returns> public ResponseBussiness <OperationResponse> Abonar(AbonoApartadoRequest request) { return(tryCatch.SafeExecutor(() => { TransApartadoResponse response = new TransApartadoResponse(); OperationResponse operationResponse = new OperationResponse(); //OperationResponse operationResponseSW = new OperationResponse(); //AdministracionTipoCambio administracionTipoCambio = new AdministracionTipoCambio(); using (TransactionScope scope = new TransactionScope()) { response = new ApartadoAbonoRepository().Abonar(this.token.CodeStore, this.token.CodeBox, this.token.CodeEmployee, request, "APARTADO"); //operationResponseSW = administracionTipoCambio.GetSaleExternalService(request.FormasPagoUtilizadas, request.FolioApartado, this.token.CodeEmployee); if (((response.CodeNumber == "349") || (response.CodeNumber == "350"))) //&& operationResponseSW.CodeNumber == "000") { scope.Complete(); } //else //{ // operationResponse.CodeDescription = operationResponseSW.CodeDescription; // operationResponse.CodeNumber = operationResponseSW.CodeNumber; //} } ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(response.FolioVenta, false); operationResponse.CodeDescription = response.CodeDescription; operationResponse.CodeNumber = response.CodeNumber; operationResponse.informacionAsociadaRetiroEfectivo = response.informacionAsociadaRetiroEfectivo; return operationResponse; })); }
private TransApartadoResponse AbonarApartadoInternal(int codeStore, int codeBox, int codeEmployee, AbonoApartadoRequest abonoApartadoRequest, decimal abonoPagado) { TransApartadoResponse operationResponse = new TransApartadoResponse(); InformacionAsociadaRetiroEfectivo informacionAsociadaRetiroEfectivo = new InformacionAsociadaRetiroEfectivo(); var parameters = new Dictionary <string, object>(); parameters.Add("@FolioApartado", abonoApartadoRequest.FolioApartado); parameters.Add("@CodigoCaja", codeBox); parameters.Add("@CodigoTienda", codeStore); parameters.Add("@CodigoEmpleado", codeEmployee); parameters.Add("@ImportePagado", abonoApartadoRequest.ImportePagado); parameters.Add("@ImporteCambio", abonoApartadoRequest.ImporteCambio); parameters.Add("@AbonoPagado", abonoPagado); parameters.Add("@Saldo", abonoApartadoRequest.Saldo); if (abonoApartadoRequest.ApartadoLiquidado) { parameters.Add("@EsLiquidacion", 1); } else { parameters.Add("@EsLiquidacion", 0); } List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>(); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MensajeEfectivoMaximo", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 4000 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@EfectivoMaximoCaja", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Decimal, Scale = 2 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@DotacionInicial", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Decimal, Scale = 2 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MontoActualCaja", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Decimal, Scale = 2 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MostrarAlertaRetiroEfectivo", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Bit }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@PermitirIgnorar", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Bit }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@CodigoResultado", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MensajeResultado", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 4000 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@FolioVenta", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 4000 }); var result = data.ExecuteProcedure("[dbo].[sp_vanti_server_AbonarApartado]", parameters, parametersOut); // Información referente a retiro de Efectivo informacionAsociadaRetiroEfectivo.MensajeEfectivoMaximo = result["@MensajeEfectivoMaximo"].ToString(); informacionAsociadaRetiroEfectivo.EfectivoMaximoPermitidoCaja = Convert.ToDecimal(result["@EfectivoMaximoCaja"]); informacionAsociadaRetiroEfectivo.DotacionInicialCaja = Convert.ToDecimal(result["@DotacionInicial"]); informacionAsociadaRetiroEfectivo.EfectivoActualCaja = Convert.ToDecimal(result["@MontoActualCaja"]); informacionAsociadaRetiroEfectivo.MostrarAlertaRetiroEfectivo = Convert.ToBoolean(result["@MostrarAlertaRetiroEfectivo"]); informacionAsociadaRetiroEfectivo.PermitirIgnorarAlertaRetiroEfectivo = Convert.ToBoolean(result["@PermitirIgnorar"]); operationResponse.informacionAsociadaRetiroEfectivo = informacionAsociadaRetiroEfectivo; // Información referente a estatus de la operación operationResponse.CodeNumber = result["@CodigoResultado"].ToString(); operationResponse.CodeDescription = result["@MensajeResultado"].ToString(); operationResponse.FolioVenta = result["@FolioVenta"].ToString(); return(operationResponse); }
/// <summary> /// Abonar un apartado /// </summary> /// <param name="codeStore">Código de la tienda</param> /// <param name="codeBox">Código de la caja</param> /// <param name="codeEmployee">Código del empleado</param> /// <param name="abonoApartadoRequest">Petición del abono</param> /// <param name="clasificacionVenta">Clasificación de la venta realizada</param> /// <returns></returns> public TransApartadoResponse Abonar(int codeStore, int codeBox, int codeEmployee, AbonoApartadoRequest abonoApartadoRequest, string clasificacionVenta) { TransApartadoResponse operationResponse = new TransApartadoResponse(); new FormasPagoRepository().AsociarFormasPago(codeStore, codeBox, codeEmployee, abonoApartadoRequest.FolioApartado, abonoApartadoRequest.FormasPagoUtilizadas, clasificacionVenta); operationResponse = this.AbonarApartadoInternal(codeStore, codeBox, codeEmployee, abonoApartadoRequest, 0); return(operationResponse); }
public ResponseBussiness <OperationResponse> AbonarApartado(AbonoApartadoRequest request) { TokenDto token = new TokenService().Get(); return(new ApartadosBusiness(token).Abonar(request)); }