Esempio n. 1
0
        private TransApartadoResponse FinalizarApartadoInternal(FinalizarApartadoRequest request)
        {
            TransApartadoResponse    result             = new TransApartadoResponse();
            AdministracionTipoCambio administracionTipo = new AdministracionTipoCambio();
            //Obtenemos el folio apartado y el numero de empleado para usarlos en el metodo externo sale
            string folioVenta     = request.FolioApartado;
            int    codigoEmpleado = token.CodeEmployee;

            using (TransactionScope scope = new TransactionScope())
            {
                result = repository.FinalizarApartado(token.CodeStore, token.CodeBox, this.token.CodeEmployee, request);

                //Invocamos el servicio para obtener la respuesta del servicio de sale, si el numero de codigo es el indicado completa la transaccion
                //en caso de que el codigo no sea el indicado enviara el codigo de error y la descripcion
                //var resultSale = administracionTipo.GetSaleExternalService(request.FormasPagoUtilizadas, folioVenta, codigoEmpleado);
                if (result.CodeNumber.Equals("342")) //&& resultSale.CodeNumber.Equals("000"))
                {
                    var respuesta = this.ActivarTarjetaRegalo(request);
                    if (respuesta.CodeNumber == "1")
                    {
                        scope.Complete();
                    }
                }
            }
            return(result);
        }
Esempio n. 2
0
        public ResponseBussiness <OperationResponse> FinalizarApartado(FinalizarApartadoRequest request)
        {
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperationResponse> response = new ApartadosBusiness(token).FinalizarApartado(request);

            return(response);
        }
Esempio n. 3
0
        /// <summary>
        /// Finalizar Apartado
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ResponseBussiness <OperationResponse> FinalizarApartado(FinalizarApartadoRequest request)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                TransApartadoResponse response = FinalizarApartadoInternal(request);
                OperationResponse operationResponse = new OperationResponse();

                ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token);
                imprimeTicketsMM.PrintTicket(response.FolioVenta, false);

                operationResponse.CodeNumber = response.CodeNumber;
                operationResponse.CodeDescription = response.CodeDescription;
                operationResponse.informacionAsociadaRetiroEfectivo = response.informacionAsociadaRetiroEfectivo;
                return operationResponse;
            }));
        }
Esempio n. 4
0
        private OperationResponse ActivarTarjetaRegalo(FinalizarApartadoRequest request)
        {
            OperationResponse response = new OperationResponse();

            response.CodeNumber = "1";
            TarjetaRegalosBusiness business = new TarjetaRegalosBusiness(this.token);

            foreach (InformacionFoliosTarjeta informacion in request.InformacionFoliosTarjeta)
            {
                var respuesta = business.ActivarTarjeta(this.token.CodeEmployee, informacion.FolioTarjeta.ToString(), request.FolioApartado);
                if (response.CodeNumber == "0")
                {
                    response.CodeDescription = respuesta.Data.CodeDescription;
                }
            }
            return(response);
        }
Esempio n. 5
0
        private TransApartadoResponse FinalizarTransaccionApartado(int codeStore, int codeBox, FinalizarApartadoRequest finalizarApartadoRequest)
        {
            TransApartadoResponse             operationResponse = new TransApartadoResponse();
            InformacionAsociadaRetiroEfectivo informacionAsociadaRetiroEfectivo = new InformacionAsociadaRetiroEfectivo();
            var parameters = new Dictionary <string, object>();

            parameters.Add("@FolioApartado", finalizarApartadoRequest.FolioApartado);
            parameters.Add("@CodigoCaja", codeBox);
            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@TotalPagosRealizados", finalizarApartadoRequest.FormasPagoUtilizadas.Length);
            parameters.Add("@DiasVencimiento", finalizarApartadoRequest.DiasVencimiento);
            parameters.Add("@ImportePago", finalizarApartadoRequest.ImportePagado);
            parameters.Add("@Saldo", finalizarApartadoRequest.Saldo);
            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("[sp_vanti_FinalizarTransaccionApartado]", 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);
        }
Esempio n. 6
0
        /// <summary>
        /// Finalizar apartado
        /// </summary>
        /// <param name="codeStore"></param>
        /// <param name="codeBox"></param>
        /// <param name="codeEmployee"></param>
        /// <param name="request"></param>
        ///
        /// <returns></returns>
        public TransApartadoResponse FinalizarApartado(int codeStore, int codeBox, int codeEmployee, FinalizarApartadoRequest request)
        {
            TransApartadoResponse operationResponse = new TransApartadoResponse();

            new FormasPagoRepository().AsociarFormasPago(codeStore, codeBox, codeEmployee, request.FolioApartado, request.FormasPagoUtilizadas, "APARTADO");
            operationResponse = this.FinalizarTransaccionApartado(codeStore, codeBox, request);
            // Si la venta fue procesada exitosamente se almacena el log de transacción
            if (operationResponse.CodeNumber.Equals("342"))
            {
                // TODO: Falta llenar el objeto transacción
                //TransactionLogRepository<Transaccion> transactionLogRepository = new TransactionLogRepository<Transaccion>(new TokenDto(codeStore, codeBox));
                //Transaccion ventaFinalizada = new Transaccion();
                if (request.LineasConDigitoVerificadorIncorrecto != null)
                {
                    this.RegistrarArticulosConIncidenciaDigitoVerificador(request.FolioApartado, codeStore, codeBox, request.LineasConDigitoVerificadorIncorrecto);
                }
                //transactionLogRepository.Add(ventaFinalizada, codeStore + "." + codeBox + "." + finalizarVentaRequest.FolioVenta);
            }
            return(operationResponse);
        }