Ejemplo n.º 1
0
        /// <summary>
        /// Obtener folios par una lectura X
        /// </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="esLecturaOffline">Indica si se trata de una Lectura Offline</param>
        /// <returns>Respuesta de la operación</returns>
        public LecturaX ObtenerFoliosLecturaX(int codeStore, int codeBox, int codeEmployee, int esLecturaOffline)
        {
            LecturaX lecturaX   = new LecturaX();
            var      parameters = new Dictionary <string, object>();

            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@CodigoCaja", codeBox);
            parameters.Add("@CodigoEmpleado", codeEmployee);
            parameters.Add("@EsLecturaOffline", esLecturaOffline);
            List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>();

            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@FolioCorteParcial", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioVenta", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioDevolucion", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioApartados", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioRetiros", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioTransacciones", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioPagosMayorista", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@UltimoFolioPagosMM", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            var result = data.ExecuteProcedure("[dbo].[sp_vanti_ObtenerFoliosLecturaX]", parameters, parametersOut);

            lecturaX.FolioCorteParcial         = result["@FolioCorteParcial"].ToString();
            lecturaX.UltimoFolioVenta          = result["@UltimoFolioVenta"].ToString();
            lecturaX.UltimoFolioDevolucion     = result["@UltimoFolioDevolucion"].ToString();
            lecturaX.UltimoFolioApartados      = result["@UltimoFolioApartados"].ToString();
            lecturaX.UltimoFolioRetiros        = result["@UltimoFolioRetiros"].ToString();
            lecturaX.UltimoFolioTransacciones  = Convert.ToInt32(result["@UltimoFolioTransacciones"].ToString());
            lecturaX.UltimoFolioPagosMayorista = result["@UltimoFolioPagosMayorista"].ToString();
            lecturaX.UltimoFolioPagosMM        = result["@UltimoFolioPagosMM"].ToString();
            return(lecturaX);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Lectura Z
        /// </summary>
        /// <returns>Respuesta de la operación</returns>
        public ResponseBussiness <OperationResponse> LecturaZ(LecturaCaja lecturaCaja)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                OperationResponse resultado = new OperationResponse();
                LecturaZGuardarResponse lecturaZGuardarResponse = new LecturaZGuardarResponse();
                LecturaTotalDetalleFormaPago lecturaTotalDetalleFormaPagoCA = null;
                using (TransactionScope scope = new TransactionScope())
                {
                    int secuencia = 1;
                    // Se ejecuta la lectura X
                    LecturaX lecturaX = repository.ObtenerFoliosLecturaX(token.CodeStore, token.CodeBox, token.CodeEmployee, 0);
                    foreach (var lecturaTotalDetalleFormaPago in lecturaCaja.LecturasTotales)
                    {
                        resultado = repository.LecturaX(token.CodeStore, token.CodeBox, token.CodeEmployee, lecturaTotalDetalleFormaPago.InformacionAsociadaFormasPago.CodigoFormaPago, secuencia, lecturaTotalDetalleFormaPago.ImporteFisico, lecturaTotalDetalleFormaPago.ImporteTeorico, lecturaTotalDetalleFormaPago.ImporteFisico, lecturaX);
                        if (lecturaTotalDetalleFormaPago.InformacionAsociadaFormasPago.CodigoFormaPago == "CA")
                        {
                            lecturaTotalDetalleFormaPagoCA = lecturaTotalDetalleFormaPago;
                        }
                        secuencia = secuencia + 1;
                    }
                    // Se ejecutar la lectura Z
                    if (lecturaTotalDetalleFormaPagoCA != null)
                    {
                        lecturaZGuardarResponse = repository.LecturaZ(token.CodeStore, token.CodeBox, token.CodeEmployee,
                                                                      lecturaX.FolioCorteParcial, lecturaTotalDetalleFormaPagoCA.ImporteFisico,
                                                                      lecturaTotalDetalleFormaPagoCA.ImporteTeorico, lecturaTotalDetalleFormaPagoCA.ImporteFisico, 0);
                        resultado.CodeNumber = lecturaZGuardarResponse.CodeNumber;
                        resultado.CodeDescription = lecturaZGuardarResponse.CodeDescription;
                        // Se persisten las denominaciones
                        foreach (var item in lecturaTotalDetalleFormaPagoCA.InformacionAsociadaDenominaciones)
                        {
                            repository.PersistirDenominacionesRetiro(lecturaX.FolioCorteParcial, item.CodigoFormaPago, item.TextoDenominacion, item.Cantidad);
                        }
                    }
                    scope.Complete();
                }

                // Imprimir Ticket
                PrintTickectLecturaBusiness printTickectLectura = new PrintTickectLecturaBusiness(token);
                PrintLecturaRequest printLecturaRequest = new PrintLecturaRequest();
                printLecturaRequest.FolioCorte = lecturaZGuardarResponse.FolioCorte;
                printLecturaRequest.TipoLectura = "z";
                printTickectLectura.PrintNow(printLecturaRequest);

                PrintTicketEgresosBusiness printTicketEgresos = new PrintTicketEgresosBusiness(token);
                PrintTicketEgresosRequest printTicketEgresosRequest = new PrintTicketEgresosRequest();
                printTicketEgresosRequest.FolioCorteZ = lecturaZGuardarResponse.FolioCorte;
                printTicketEgresos.PrintNow(printTicketEgresosRequest);

                return resultado;
            }));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Lectura Z Offline
        /// </summary>
        /// <returns>Respuesta de la operación</returns>
        public ResponseBussiness <LecturaZGuardarResponse> LecturaZOffline(LecturaCaja lecturaCaja)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                OperationResponse resultado = new OperationResponse();
                LecturaZGuardarResponse lecturaZGuardarResponse = new LecturaZGuardarResponse();
                LecturaTotalDetalleFormaPago lecturaTotalDetalleFormaPagoCA = null;
                using (TransactionScope scope = new TransactionScope())
                {
                    int secuencia = 1;
                    // Se ejecuta la lectura X
                    LecturaX lecturaX = repository.ObtenerFoliosLecturaX(token.CodeStore, token.CodeBox, token.CodeEmployee, 1);
                    foreach (var lecturaTotalDetalleFormaPago in lecturaCaja.LecturasTotales)
                    {
                        // Se pone el parámetro de Caja = 0 porque es BackOffice
                        resultado = repository.LecturaX(token.CodeStore, 0, token.CodeEmployee,
                                                        lecturaTotalDetalleFormaPago.InformacionAsociadaFormasPago.CodigoFormaPago, secuencia,
                                                        lecturaTotalDetalleFormaPago.ImporteFisico, lecturaTotalDetalleFormaPago.ImporteTeorico,
                                                        lecturaTotalDetalleFormaPago.ImporteFisico, lecturaX);
                        if (lecturaTotalDetalleFormaPago.InformacionAsociadaFormasPago.CodigoFormaPago == "CA")
                        {
                            lecturaTotalDetalleFormaPagoCA = lecturaTotalDetalleFormaPago;
                        }
                        secuencia = secuencia + 1;
                    }
                    // Se ejecutar la lectura Z
                    if (lecturaTotalDetalleFormaPagoCA != null)
                    {
                        lecturaZGuardarResponse = repository.LecturaZ(token.CodeStore, token.CodeBox, token.CodeEmployee,
                                                                      lecturaX.FolioCorteParcial, lecturaTotalDetalleFormaPagoCA.ImporteFisico,
                                                                      lecturaTotalDetalleFormaPagoCA.ImporteTeorico, lecturaTotalDetalleFormaPagoCA.ImporteFisico, 1);
                        resultado.CodeNumber = lecturaZGuardarResponse.CodeNumber;
                        resultado.CodeDescription = lecturaZGuardarResponse.CodeDescription;

                        // Se persisten las denominaciones
                        foreach (var item in lecturaTotalDetalleFormaPagoCA.InformacionAsociadaDenominaciones)
                        {
                            repository.PersistirDenominacionesRetiro(lecturaX.FolioCorteParcial, item.CodigoFormaPago, item.TextoDenominacion, item.Cantidad);
                        }
                    }
                    scope.Complete();
                }
                return lecturaZGuardarResponse;
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Funcionalidad para persistir una lectura X
        /// </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="codigoFormaPago">Código de la forma de pago</param>
        /// <param name="secuencia">Número de secuencia</param>
        /// <param name="importeFisico">Importe físico</param>
        /// <param name="importeTeorico">Importe teórico</param>
        /// <param name="importeRetiro">Importe retiro</param>
        /// <param name="lecturaX">Folios de Lectura X asociados</param>
        /// <returns>Respuesta de la operación</returns>
        public OperationResponse LecturaX(int codeStore, int codeBox, int codeEmployee, string codigoFormaPago, int secuencia,
                                          decimal importeFisico, decimal importeTeorico, decimal importeRetiro, LecturaX lecturaX)
        {
            OperationResponse operationResponse = new OperationResponse();
            var parameters = new Dictionary <string, object>();

            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@CodigoCaja", codeBox);
            parameters.Add("@CodigoEmpleado", codeEmployee);
            parameters.Add("@ImporteFisico", importeFisico);
            parameters.Add("@ImporteTeorico", importeTeorico);
            parameters.Add("@ImporteRetiro", importeRetiro);
            parameters.Add("@CodigoFormaPago", codigoFormaPago);
            parameters.Add("@Secuencia", secuencia);
            parameters.Add("@FolioLectura", lecturaX.FolioCorteParcial);
            parameters.Add("@UltimoFolioVenta", lecturaX.UltimoFolioVenta);
            parameters.Add("@UltimoFolioDevolucion", lecturaX.UltimoFolioDevolucion);
            parameters.Add("@UltimoFolioApartados", lecturaX.UltimoFolioApartados);
            parameters.Add("@UltimoFolioRetiros", lecturaX.UltimoFolioRetiros);
            parameters.Add("@UltimoFolioTransacciones", lecturaX.UltimoFolioTransacciones);
            parameters.Add("@UltimoFolioPagosMayorista", lecturaX.UltimoFolioPagosMayorista);
            parameters.Add("@UltimoFolioPagosMM", lecturaX.UltimoFolioPagosMM);
            List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>();

            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
            });
            var result = data.ExecuteProcedure("[dbo].[sp_vanti_LecturaX]", parameters, parametersOut);

            operationResponse.CodeNumber      = result["@CodigoResultado"].ToString();
            operationResponse.CodeDescription = result["@MensajeResultado"].ToString();
            return(operationResponse);
        }