Exemplo n.º 1
0
        public void ObtenerTipoCambio()
        {
            TipoCambioRequest tipo = new TipoCambioRequest();

            tipo.CodigoTipoDivisa      = "USD";
            tipo.ImporteMonedaNacional = 1000;
            ResponseBussiness <TipoCambioResponse> res = new AdministracionTipoCambio().ObtenerTipoCambio(tipo);

            Assert.IsNotNull(res);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Metodo para actualizar el CashOut al registrar el fin de día
        /// </summary>
        /// <param name="token">Token</param>
        /// <param name="compendioCashOut">Objeto que contiene el compendio de CashOut</param>
        /// <returns></returns>
        public ResponseBussiness <RelacionCaja> PersistirCashOut(TokenDto token, CompendioCashOut compendioCashOut)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                RelacionCaja relacionCaja = new RelacionCaja();
                using (TransactionScope scope = new TransactionScope())
                {
                    // Persistir el Cash Out
                    int idCompendioCashOut = inicioFinDiaRepository.AgregarCompendioCashOut(compendioCashOut.CodigoTienda);
                    foreach (var compendio in compendioCashOut.CashOutCajas)
                    {
                        int idCashOut = inicioFinDiaRepository.AgregarCashOut(idCompendioCashOut, compendio.CodigoCaja);
                        foreach (var lecturaZ in compendio.LecturasZ)
                        {
                            foreach (var detalleLecturaZ in lecturaZ.DetallesLecturaFormaPago)
                            {
                                if (detalleLecturaZ.InformacionAsociadaFormasPago.CodigoFormaPago == "US")
                                {
                                    //Se crea administracion tipo cambio para poder obtener el tipo de cambio
                                    AdministracionTipoCambio tipoCambio = new AdministracionTipoCambio();

                                    //Se crea la peticion tipo cambio para crear el objeto con el que se obtendra el cambio de moneda
                                    TipoCambioRequest tipoCambioRequest = new TipoCambioRequest();

                                    //Se crea el response que nos retorna la conversion de la moneda extranjera.
                                    TipoCambioResponse tipoCambioResponse = new TipoCambioResponse();
                                    decimal importeConversionDolar = 0.0M;
                                    tipoCambioRequest.CodigoTipoDivisa = detalleLecturaZ.InformacionAsociadaFormasPago.CodigoFormaPago;
                                    tipoCambioRequest.ImporteMonedaNacional = detalleLecturaZ.ImporteFisico;
                                    tipoCambioResponse = tipoCambio.GetTipoCambio(tipoCambioRequest);

                                    //Convertimos la cantidad de dolares a pesos.
                                    importeConversionDolar = ConvertirDolaresPesos(tipoCambioResponse.TasaConversionVigente, detalleLecturaZ.ImporteFisico);

                                    //En el importe teorico añadiremos el importe de moneda nacional
                                    inicioFinDiaRepository.AgregarLecturaZCashOut(idCashOut, importeConversionDolar, detalleLecturaZ.ImporteTeorico, detalleLecturaZ.ImporteFisico,
                                                                                  detalleLecturaZ.TotalRetirosParciales, detalleLecturaZ.FondoFijoActual, detalleLecturaZ.InformacionAsociadaFormasPago.IdentificadorFormaPago,
                                                                                  detalleLecturaZ.InformacionAsociadaFormasPago.CodigoFormaPago, detalleLecturaZ.InformacionAsociadaFormasPago.DescripcionFormaPago);
                                }
                                else
                                {
                                    inicioFinDiaRepository.AgregarLecturaZCashOut(idCashOut, detalleLecturaZ.ImporteFisico, detalleLecturaZ.ImporteTeorico, detalleLecturaZ.ImporteFisico,
                                                                                  detalleLecturaZ.TotalRetirosParciales, detalleLecturaZ.FondoFijoActual, detalleLecturaZ.InformacionAsociadaFormasPago.IdentificadorFormaPago,
                                                                                  detalleLecturaZ.InformacionAsociadaFormasPago.CodigoFormaPago, detalleLecturaZ.InformacionAsociadaFormasPago.DescripcionFormaPago);
                                }
                            }
                        }
                    }
                    relacionCaja = inicioFinDiaRepository.ObtenerRelacionCaja(token);
                    // Terminar la transacción
                    scope.Complete();
                }
                return relacionCaja;
            }));
        }