示例#1
0
 /// <summary>
 /// Aplicación de un Descuento Directo
 /// </summary>
 /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
 /// <returns>Resultado de la operación</returns>
 public ResponseBussiness <OperationResponse> AplicarDescuentoDirecto(LineaTicket lineaTicket)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         return repository.AplicarDescuentoDirecto(token.CodeStore, token.CodeBox, token.CodeEmployee, lineaTicket);
     }));
 }
示例#2
0
 /// <summary>
 /// Cambio de Piezas de una Linea Ticket
 /// </summary>
 /// <param name="lineaTicket">Objeto de peticion linea ticket de apartado</param>
 /// <returns></returns>
 public ResponseBussiness <OperationResponse> CambiarPiezasLineaTicketVenta(LineaTicket lineaTicket)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         return repository.CambiarPiezasLineaTicketVenta(token.CodeStore, token.CodeBox, token.CodeEmployee, lineaTicket);
     }));
 }
示例#3
0
        public ResponseBussiness <OperationResponse> CambiarPiezasLineaTicketVenta(LineaTicket lineaTicket)
        {
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperationResponse> response = new SalesBusiness(token).CambiarPiezasLineaTicketVenta(lineaTicket);

            return(response);
        }
示例#4
0
        public ResponseBussiness <OperationResponse> AplicarDescuentoDirecto(LineaTicket lineaTicket)
        {
            new SecurityBusiness().ValidarPermisos("descuentoDirectoVenta", "E");
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperationResponse> response = new DescuentosDevolucionesBusiness(token).AplicarDescuentoDirecto(lineaTicket);

            return(response);
        }
示例#5
0
 /// <summary>
 /// Almacenamiento de una Linea Ticket
 /// </summary>
 /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
 /// <returns></returns>
 public ResponseBussiness <OperacionLineaTicketVentaResponse> AgregarLineaTicketVenta(LineaTicket lineaTicket)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         OperacionLineaTicketVentaResponse response = repository.AgregarLineaTicketVenta(token.CodeStore, token.CodeBox, token.CodeEmployee, lineaTicket);
         return response;
     }));
 }
示例#6
0
 /// <summary>
 /// Eliminación de una Linea Ticket
 /// </summary>
 /// <param name="secuenciaOriginalLineaTicket">Secuencia original de la línea eliminada</param>
 /// <param name="lineaTicket">Objeto de peticion linea ticket del apartado</param>
 /// <returns></returns>
 public ResponseBussiness <OperationResponse> EliminarLineaTicketVenta(int secuenciaOriginalLineaTicket, LineaTicket lineaTicket)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         return repository.EliminarLineaTicketApartado(token.CodeStore, token.CodeBox, token.CodeEmployee, secuenciaOriginalLineaTicket, lineaTicket);
     }));
 }
示例#7
0
        /// <summary>
        /// Aplicar descuento directo sobre línea
        /// </summary>
        /// <param name="codeStore">Código de tienda</param>
        /// <param name="codeBox">Código de caja</param>
        /// <param name="codeEmployee">Código de empleado cajero</param>
        /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
        /// <returns>Resultado de la operación</returns>
        public OperationResponse AplicarDescuentoDirecto(int codeStore, int codeBox, int codeEmployee, LineaTicket lineaTicket)
        {
            OperationResponse operationResponse = new OperationResponse();

            using (TransactionScope scope = new TransactionScope())
            {
                var parameters = new Dictionary <string, object>();
                parameters.Add("@FolioOperacion", lineaTicket.cabeceraVentaRequest.FolioOperacion);
                parameters.Add("@CodigoTienda", codeStore);
                parameters.Add("@CodigoCaja", codeBox);
                parameters.Add("@SecuenciaLineaTicket", lineaTicket.Secuencia);
                parameters.Add("@PorcentajeDescuento", lineaTicket.DescuentoDirectoLinea.PorcentajeDescuento);
                parameters.Add("@ImporteDescuento", lineaTicket.DescuentoDirectoLinea.ImporteDescuento);
                parameters.Add("@CodigoRazonDescuento", lineaTicket.DescuentoDirectoLinea.CodigoRazonDescuento);
                parameters.Add("@TipoDescuento", lineaTicket.DescuentoDirectoLinea.TipoDescuento);
                parameters.Add("@CantidadVendida", lineaTicket.CantidadVendida);
                parameters.Add("@CantidadDevuelta", lineaTicket.CantidadDevuelta);
                parameters.Add("@ImporteImpuesto1", lineaTicket.ImporteVentaLineaImpuestos1);
                parameters.Add("@ImporteImpuesto2", lineaTicket.ImporteVentaLineaImpuestos2);
                parameters.Add("@ImporteVentaLineaDescuentos", lineaTicket.ImporteVentaLineaDescuentos);
                parameters.Add("@ImporteSubtotal", lineaTicket.ImporteVentaLineaBruto);
                parameters.Add("@ImporteTotal", lineaTicket.ImporteVentaLineaNeto);
                if ((lineaTicket.DescuentoDirectoLinea.ULSession != null) && (lineaTicket.DescuentoDirectoLinea.ULSession.Length > 10))
                {
                    parameters.Add("@ULSession", lineaTicket.DescuentoDirectoLinea.ULSession);
                    parameters.Add("@EstatusDescuento", "P");
                }
                else
                {
                    parameters.Add("@ULSession", "");
                    parameters.Add("@EstatusDescuento", "F");
                }
                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 = this.data.ExecuteProcedure("[dbo].[sp_vanti_ProcesarDescuentosDet]", parameters, parametersOut);
                operationResponse.CodeNumber      = result["@CodigoResultado"].ToString();
                operationResponse.CodeDescription = result["@MensajeResultado"].ToString();
                // Actualizar la cabecera de Venta
                new SalesRepository().ActualizarCabeceraVenta(codeStore, codeBox, codeEmployee, lineaTicket.cabeceraVentaRequest);
                scope.Complete();
            }
            return(operationResponse);
        }
示例#8
0
        public ResponseBussiness <OperacionLineaTicketVentaResponse> AgregarLineaTicketVenta(LineaTicket lineaTicket)
        {
            TokenDto token = new TokenService().Get();
            ResponseBussiness <OperacionLineaTicketVentaResponse> response = new SalesBusiness(token).AgregarLineaTicketVenta(lineaTicket);

            return(response);
        }
示例#9
0
        /// <summary>
        /// Cambio de Piezas de una Linea Ticket
        /// </summary>
        /// <param name="codeStore">Código de tienda</param>
        /// <param name="codeBox">Código de caja</param>
        /// <param name="codeEmployee">Código de empleado cajero</param>
        /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
        /// <returns>Resultado de la operación</returns>
        public OperationResponse CambiarPiezasLineaTicketVenta(int codeStore, int codeBox, int codeEmployee, LineaTicket lineaTicket)
        {
            OperationResponse operationResponse = new OperationResponse();

            using (TransactionScope scope = new TransactionScope())
            {
                var parameters = new Dictionary <string, object>();
                parameters.Add("@FolioOperacion", lineaTicket.cabeceraVentaRequest.FolioOperacion);
                parameters.Add("@CodigoTienda", codeStore);
                parameters.Add("@CodigoCaja", codeBox);
                parameters.Add("@Secuencia", lineaTicket.Secuencia);
                parameters.Add("@CantidadVendida", lineaTicket.CantidadVendida);
                parameters.Add("@CantidadDevuelta", lineaTicket.CantidadDevuelta);
                parameters.Add("@TasaImpuesto1", lineaTicket.Articulo.TasaImpuesto1);
                parameters.Add("@TasaImpuesto2", lineaTicket.Articulo.TasaImpuesto2);
                parameters.Add("@ImporteImpuesto1", lineaTicket.ImporteVentaLineaImpuestos1);
                parameters.Add("@ImporteImpuesto2", lineaTicket.ImporteVentaLineaImpuestos2);
                parameters.Add("@CostoUnitario", lineaTicket.Articulo.PrecioConImpuestos);
                parameters.Add("@CodigoImpuesto1", lineaTicket.Articulo.CodigoImpuesto1);
                parameters.Add("@CodigoImpuesto2", lineaTicket.Articulo.CodigoImpuesto2);
                parameters.Add("@ImporteTotal", lineaTicket.ImporteVentaLineaNeto);
                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 = this.data.ExecuteProcedure("[dbo].[sp_vanti_CambiarPiezasLineaTicketApartado]", parameters, parametersOut);
                operationResponse.CodeNumber      = result["@CodigoResultado"].ToString();
                operationResponse.CodeDescription = result["@MensajeResultado"].ToString();
                // Actualizar la cabecera de Venta
                this.ActualizarCabeceraApartado(codeStore, codeBox, codeEmployee, lineaTicket.cabeceraVentaRequest);
                scope.Complete();
            }
            return(operationResponse);
        }
示例#10
0
        private void AgregarDetalleApartado(string folioApartado, int codigoTienda, int codigoCaja, string tipoCabeceraVenta, LineaTicket lineaTicket)
        {
            var parameters = new Dictionary <string, object>();

            parameters.Add("@FolioApartado", folioApartado);
            parameters.Add("@CodigoTienda", codigoTienda);
            parameters.Add("@CodigoCaja", codigoCaja);
            parameters.Add("@Secuencia", lineaTicket.Secuencia);
            parameters.Add("@TipoTransaccion", lineaTicket.TipoDetalleVenta);
            parameters.Add("@Sku", lineaTicket.Articulo.Sku);
            parameters.Add("@CantidadVendida", lineaTicket.CantidadVendida);
            parameters.Add("@CantidadDevuelta", lineaTicket.CantidadDevuelta);
            parameters.Add("@Upc", lineaTicket.Articulo.Upc);
            parameters.Add("@TasaImpuesto1", lineaTicket.Articulo.TasaImpuesto1);
            parameters.Add("@TasaImpuesto2", lineaTicket.Articulo.TasaImpuesto2);
            parameters.Add("@ImporteImpuesto1", lineaTicket.ImporteVentaLineaImpuestos1);
            parameters.Add("@ImporteImpuesto2", lineaTicket.ImporteVentaLineaImpuestos2);
            parameters.Add("@CostoUnitario", lineaTicket.Articulo.PrecioConImpuestos);
            parameters.Add("@CodigoImpuesto1", lineaTicket.Articulo.CodigoImpuesto1);
            parameters.Add("@CodigoImpuesto2", lineaTicket.Articulo.CodigoImpuesto2);
            parameters.Add("@ImporteTotal", lineaTicket.ImporteVentaLineaNeto);
            parameters.Add("@ImporteSubTotal", lineaTicket.ImporteVentaLineaBruto);
            parameters.Add("@DigitoVerificadorCorrecto", lineaTicket.Articulo.DigitoVerificadorArticulo.DigitoVerificadorCorrecto);
            parameters.Add("@DigitoVerificadorLeido", lineaTicket.Articulo.DigitoVerificadorArticulo.DigitoVerificadorActual);
            //Si se trata de una venta de Tiempo Aire se agrega la referencia
            if (tipoCabeceraVenta == "5")
            {
                parameters.Add("@Referencia", lineaTicket.Articulo.InformacionProveedorExternoTA.SkuCompania);
            }
            if (lineaTicket.Articulo.InformacionTarjetaRegalo != null)
            {
                parameters.Add("@FolioTarjetaRegalo", lineaTicket.Articulo.InformacionTarjetaRegalo.FolioTarjeta);
                parameters.Add("@DescripcionTarjetaRegalo", lineaTicket.Articulo.InformacionTarjetaRegalo.Descripcion);
            }
            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
            });
            data.ExecuteProcedure("[dbo].[sp_vanti_AgregarLineaTicketApartado]", parameters, parametersOut);
        }
示例#11
0
        /// <summary>
        /// Almacenamiento de una Linea Ticket
        /// </summary>
        /// <param name="codeStore">Código de tienda</param>
        /// <param name="codeBox">Código de caja</param>
        /// <param name="codeEmployee">Código de empleado cajero</param>
        /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
        /// <returns>Resultado de la operación</returns>
        public OperacionLineaTicketVentaResponse AgregarLineaTicketVenta(int codeStore, int codeBox, int codeEmployee, LineaTicket lineaTicket)
        {
            OperacionLineaTicketVentaResponse operacionLineaTicketVentaResponse = new OperacionLineaTicketVentaResponse();

            using (TransactionScope scope = new TransactionScope())
            {
                operacionLineaTicketVentaResponse.FolioOperacion = lineaTicket.cabeceraVentaRequest.FolioOperacion;
                if (operacionLineaTicketVentaResponse.FolioOperacion == "")
                {
                    operacionLineaTicketVentaResponse.FolioOperacion = this.AgregarCabeceraApartado(codeStore, codeBox,
                                                                                                    codeEmployee, lineaTicket.cabeceraVentaRequest);
                }
                this.AgregarDetalleApartado(operacionLineaTicketVentaResponse.FolioOperacion, codeStore, codeBox,
                                            lineaTicket.cabeceraVentaRequest.TipoCabeceraVenta, lineaTicket);
                this.ActualizarCabeceraApartado(codeStore, codeBox, codeEmployee, lineaTicket.cabeceraVentaRequest);
                scope.Complete();
            }
            return(operacionLineaTicketVentaResponse);
        }
示例#12
0
        /// <summary>
        /// Eliminación de una Linea Ticket
        /// </summary>
        /// <param name="codeStore">Código de tienda</param>
        /// <param name="codeBox">Código de caja</param>
        /// <param name="codeEmployee">Código de empleado cajero</param>
        /// <param name="secuenciaOriginalLineaTicket">Secuencia original de la línea eliminada</param>
        /// <param name="lineaTicket">Objeto de peticion linea ticket de la venta</param>
        /// <returns>Resultado de la operación</returns>
        public OperationResponse EliminarLineaTicketApartado(int codeStore, int codeBox, int codeEmployee, int secuenciaOriginalLineaTicket, LineaTicket lineaTicket)
        {
            OperationResponse operationResponse = new OperationResponse();

            using (TransactionScope scope = new TransactionScope())
            {
                // Actualizar el estatus de la linea que fue eliminada (eliminación lógica)
                var parameters = new Dictionary <string, object>();
                parameters.Add("@FolioOperacion", lineaTicket.cabeceraVentaRequest.FolioOperacion);
                parameters.Add("@CodigoTienda", codeStore);
                parameters.Add("@CodigoCaja", codeBox);
                parameters.Add("@Secuencia", secuenciaOriginalLineaTicket);
                List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>();
                var result = this.data.ExecuteProcedure("[dbo].[sp_vanti_ActualizarEstatusLineaTicketApartado]", parameters, parametersOut);
                // Agregar la nueva linea con transacción de tipo 87
                parameters = new Dictionary <string, object>();
                parameters.Add("@FolioApartado", lineaTicket.cabeceraVentaRequest.FolioOperacion);
                parameters.Add("@CodigoTienda", codeStore);
                parameters.Add("@CodigoCaja", codeBox);
                parameters.Add("@Secuencia", lineaTicket.Secuencia);
                parameters.Add("@TipoTransaccion", lineaTicket.TipoDetalleVenta);
                parameters.Add("@Sku", lineaTicket.Articulo.Sku);
                parameters.Add("@CantidadVendida", (lineaTicket.CantidadVendida * -1));
                parameters.Add("@CantidadDevuelta", 0);
                parameters.Add("@Upc", lineaTicket.Articulo.Upc);
                parameters.Add("@TasaImpuesto1", lineaTicket.Articulo.TasaImpuesto1);
                parameters.Add("@TasaImpuesto2", lineaTicket.Articulo.TasaImpuesto2);
                parameters.Add("@ImporteImpuesto1", (lineaTicket.ImporteVentaLineaImpuestos1 * -1));
                parameters.Add("@ImporteImpuesto2", (lineaTicket.ImporteVentaLineaImpuestos2 * -1));
                parameters.Add("@CostoUnitario", (lineaTicket.Articulo.PrecioConImpuestos * -1));
                parameters.Add("@CodigoImpuesto1", lineaTicket.Articulo.CodigoImpuesto1);
                parameters.Add("@CodigoImpuesto2", lineaTicket.Articulo.CodigoImpuesto2);
                parameters.Add("@ImporteSubtotal", (lineaTicket.ImporteVentaLineaBruto * -1));
                parameters.Add("@ImporteTotal", (lineaTicket.ImporteVentaLineaNeto * -1));
                //Si se trata de una venta de Tiempo Aire se agrega la referencia
                if (lineaTicket.cabeceraVentaRequest.TipoCabeceraVenta == "5")
                {
                    parameters.Add("@Referencia", lineaTicket.Articulo.InformacionProveedorExternoTA.SkuCompania);
                }
                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
                });
                result = this.data.ExecuteProcedure("[dbo].[sp_vanti_AgregarLineaTicketApartado]", parameters, parametersOut);
                operationResponse.CodeNumber      = result["@CodigoResultado"].ToString();
                operationResponse.CodeDescription = result["@MensajeResultado"].ToString();
                // Actualizar la cabecera de Venta
                this.ActualizarCabeceraApartado(codeStore, codeBox, codeEmployee, lineaTicket.cabeceraVentaRequest);
                scope.Complete();
            }
            return(operationResponse);
        }