/// <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); }
/// <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; })); }