Exemplo n.º 1
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;
            }));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método para obtener CashOut de las Cajas
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public CompendioCashOut ObtenerCashOut(TokenDto token)
        {
            CompendioCashOut   compendioCashOut = new CompendioCashOut();
            List <CashOutCaja> cashOutCajas     = new List <CashOutCaja>();

            compendioCashOut.CodigoTienda = token.CodeStore;
            // Procesar información de las Cajas
            var parametrosCD = new Dictionary <string, object>();

            foreach (var caja in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerCajasDestino]", parametrosCD))
            {
                // Procesar información de las Lecturas de cada Caja
                CashOutCaja cashOutCaja = new CashOutCaja();
                cashOutCaja.CodigoCaja = Convert.ToInt16(caja.GetValue(1));
                List <LecturaZ> lecturasZ    = new List <LecturaZ>();
                var             parametrosLZ = new Dictionary <string, object>();
                parametrosLZ.Add("@CodigoTienda", compendioCashOut.CodigoTienda);
                parametrosLZ.Add("@CodigoCaja", cashOutCaja.CodigoCaja);
                foreach (var lectura in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerLecturasZPorCaja]", parametrosLZ))
                {
                    LecturaZ lecturaZ = new LecturaZ();
                    lecturaZ.FolioCorte = lectura.GetValue(0).ToString();
                    // Procesar información del detalle de la Lectura
                    List <DetalleLecturaFormaPago> detallesLecturaFormaPago = new List <DetalleLecturaFormaPago>();
                    var parametrosDLZ = new Dictionary <string, object>();
                    parametrosDLZ.Add("@FolioCorteZ", lecturaZ.FolioCorte);
                    foreach (var detalleLectura in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerDetalleLecturaZ]", parametrosDLZ))
                    {
                        DetalleLecturaFormaPago detalleLecturaFormaPago = new DetalleLecturaFormaPago();
                        detalleLecturaFormaPago.ImporteFisico         = 0.00M;
                        detalleLecturaFormaPago.ImporteTeorico        = Convert.ToDecimal(detalleLectura.GetValue(0));
                        detalleLecturaFormaPago.FondoFijoActual       = Convert.ToDecimal(detalleLectura.GetValue(1));
                        detalleLecturaFormaPago.TotalRetirosParciales = Convert.ToDecimal(detalleLectura.GetValue(2));
                        ConfigGeneralesCajaTiendaFormaPago configGeneralesCajaTiendaFormaPago = new ConfigGeneralesCajaTiendaFormaPago();
                        configGeneralesCajaTiendaFormaPago.IdentificadorFormaPago = detalleLectura.GetValue(3).ToString();
                        configGeneralesCajaTiendaFormaPago.CodigoFormaPago        = detalleLectura.GetValue(4).ToString();
                        configGeneralesCajaTiendaFormaPago.DescripcionFormaPago   = detalleLectura.GetValue(5).ToString();
                        detalleLecturaFormaPago.InformacionAsociadaFormasPago     = configGeneralesCajaTiendaFormaPago;
                        detallesLecturaFormaPago.Add(detalleLecturaFormaPago);
                    }
                    lecturaZ.DetallesLecturaFormaPago = detallesLecturaFormaPago.ToArray();
                    lecturasZ.Add(lecturaZ);
                }
                cashOutCaja.LecturasZ = lecturasZ.ToArray();
                cashOutCajas.Add(cashOutCaja);
            }
            compendioCashOut.CashOutCajas = cashOutCajas.ToArray();
            return(compendioCashOut);
        }
Exemplo n.º 3
0
        public ResponseBussiness <RelacionCaja> ActualizarCashOut(CompendioCashOut compendioCashOut)
        {
            TokenDto token = new TokenService().Get();

            return(new InicioFinDiaBusiness().PersistirCashOut(token, compendioCashOut));
        }