Exemple #1
0
        /// <summary>
        /// Generar una devolución
        /// </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="codigoTipoTransaccion">Código tipo transacción</param>
        /// <param name="folioVentaOriginal">Folio de la venta</param>
        /// <param name="numeroNominaVentaEmpleado">Número nómina venta empleado</param>
        /// <param name="codigoMayorista">Código de Mayorista</param>
        /// <returns>Resultado de la operación</returns>
        public DevolucionRespose GenerarDevolucion(int codeStore, int codeBox, int codeEmployee, String codigoTipoTransaccion,
                                                   String folioVentaOriginal, int numeroNominaVentaEmpleado, int codigoMayorista)
        {
            DevolucionRespose devolucionRespose = new DevolucionRespose();
            var parameters = new Dictionary <string, object>();

            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@CodigoCaja", codeBox);
            parameters.Add("@CodigoEmpleado", codeEmployee);
            parameters.Add("@CodigoTipoTransaccion", codigoTipoTransaccion);
            parameters.Add("@FolioVentaOriginal", folioVentaOriginal);
            parameters.Add("@NumeroNominaVentaEmpleado", numeroNominaVentaEmpleado);
            parameters.Add("@CodigoMayorista", codigoMayorista);
            List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>();

            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@FolioVenta", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            parametersOut.Add(new System.Data.SqlClient.SqlParameter()
            {
                ParameterName = "@FolioDevolucion", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 17
            });
            var result = this.data.ExecuteProcedure("[dbo].[sp_vanti_GenerarDevolucion]", parameters, parametersOut);

            devolucionRespose.FolioDevolucion = result["@FolioDevolucion"].ToString();
            devolucionRespose.FolioVenta      = result["@FolioVenta"].ToString();
            return(devolucionRespose);
        }
Exemple #2
0
        /// <summary>
        /// Método para generar una devolución
        /// </summary>
        /// <param name="folioVenta">Objeto de peticion de linea ticket de la venta</param>
        /// <returns>Resultado de la operación</returns>
        public ResponseBussiness <VentaResponse> GenerarDevolucion(String folioVenta)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                VentaResponse ventaResponse = new VentaResponse();
                using (TransactionScope scope = new TransactionScope())
                {
                    ventaResponse = new SalesBusiness(token).BuscarVentaPorFolio(folioVenta, 1);
                    // Asignar bandera de devolución a lineas existentes
                    foreach (var item in ventaResponse.Lineas)
                    {
                        item.PerteneceVentaOriginal = true;
                    }

                    // Generar la devolución
                    DevolucionRespose devolucionRespose = repository.GenerarDevolucion(token.CodeStore, token.CodeBox, token.CodeEmployee,
                                                                                       ventaResponse.TipoCabeceraVenta, ventaResponse.FolioVenta, ventaResponse.NumeroNominaVentaEmpleado, ventaResponse.CodigoMayorista);
                    ventaResponse.FolioVentaOriginal = ventaResponse.FolioVenta;
                    ventaResponse.FolioDevolucion = devolucionRespose.FolioDevolucion;
                    ventaResponse.FolioVenta = devolucionRespose.FolioVenta;
                    ventaResponse.ImporteVentaNetoOriginal = ventaResponse.ImporteVentaNeto;
                    scope.Complete();
                }
                return ventaResponse;
            }));
        }