/// <summary> /// Totalizar Venta /// </summary> /// <param name="totalizarVentaRequest">Petición de totalización de venta</param> /// <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> /// <returns>Folio de Venta</returns> public TotalizarApartadoResponse TotalizarApartado(TotalizarApartadoRequest totalizarVentaRequest, int codeStore, int codeBox, int codeEmployee) { FormasPagoRepository formasPagoRepository = new FormasPagoRepository(); TotalizarApartadoResponse totalizarVentaResponse = new TotalizarApartadoResponse(); using (TransactionScope scope = new TransactionScope()) { totalizarVentaResponse.FolioOperacion = totalizarVentaRequest.cabeceraVentaRequest.FolioOperacion; // Actualizar el estatus de la venta var parameters = new Dictionary <string, object>(); parameters.Add("@FolioOperacion", totalizarVentaResponse.FolioOperacion); parameters.Add("@CodigoTienda", codeStore); parameters.Add("@CodigoCaja", codeBox); List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>(); this.data.ExecuteProcedure("[dbo].[sp_vanti_TotalizarApartado]", parameters, parametersOut); // Información acerca de las formas de pago que deben mostrarse en el Front totalizarVentaResponse.InformacionAsociadaFormasPago = formasPagoRepository.GetConfigFormasPago(codeBox, codeStore, totalizarVentaRequest.cabeceraVentaRequest.FolioOperacion, totalizarVentaRequest.cabeceraVentaRequest.FolioDevolucion, totalizarVentaRequest.cabeceraVentaRequest.TipoCabeceraVenta); totalizarVentaResponse.InformacionAsociadaFormasPagoMonedaExtranjera = formasPagoRepository.GetConfigFormasPagoExt(codeBox, codeStore, totalizarVentaRequest.cabeceraVentaRequest.FolioOperacion, totalizarVentaRequest.cabeceraVentaRequest.FolioDevolucion, totalizarVentaRequest.cabeceraVentaRequest.TipoCabeceraVenta); // Actualizar la cabecera this.ActualizarCabeceraApartado(codeStore, codeBox, codeEmployee, totalizarVentaRequest.cabeceraVentaRequest); scope.Complete(); } return(totalizarVentaResponse); }
/// <summary> /// Obtener detalle de apartado de pago por folio /// </summary> /// <param name="request">Folio del apartado</param> /// <param name="codeStore">Código de la tienda</param> /// <param name="codeBox">Código de la caja</param> /// <returns></returns> public ApartadoResponse BuscarPorFolio(ApartadoBusquedaRequest request, int codeStore, int codeBox) { ApartadoResponse apartadoResponse = new ApartadoResponse(); FormasPagoRepository formasPagoRepository = new FormasPagoRepository(); List <ApartadosEncontradosResponse> lista = new List <ApartadosEncontradosResponse>(); var parameters = new Dictionary <string, object>(); parameters.Add("@FolioApartado", request.FolioApartado); parameters.Add("@Telefono", request.Telefono); parameters.Add("@Nombre", request.Nombre); parameters.Add("@CodigoTienda", codeStore); parameters.Add("@CodigoCaja", codeBox); foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_BuscaApartadoCabPorFolio]", parameters)) { ApartadosEncontradosResponse apartado = new ApartadosEncontradosResponse(); apartado.CodigoTienda = Convert.ToInt32(item.GetValue(0)); apartado.CodigoCaja = Convert.ToInt32(item.GetValue(1)); apartado.CodigoCliente = Convert.ToInt64(item.GetValue(2)); apartado.Estatus = item.GetValue(3).ToString(); apartado.ImportePagado = Convert.ToDecimal(item.GetValue(4)); apartado.Saldo = Convert.ToDecimal(item.GetValue(5).ToString()); apartado.DiasVencimiento = Convert.ToInt32(item.GetValue(6)); apartado.TipoCabeceraApartado = item.GetValue(7).ToString(); apartado.CodigoEmpleado = Convert.ToInt32(item.GetValue(8).ToString()); apartado.CodigoEmpleadoVendedor = Convert.ToInt32(item.GetValue(9).ToString()); apartado.ImporteApartadoBruto = Convert.ToDecimal(item.GetValue(10)); apartado.ImporteApartadoImpuestos = Convert.ToDecimal(item.GetValue(11)); apartado.ImporteApartadoNeto = Convert.ToDecimal(item.GetValue(12)); apartado.ConsecutivoSecuenciaFormasPago = Convert.ToInt32(item.GetValue(13)); apartado.FolioApartado = item.GetValue(14).ToString(); apartado.NombreCliente = item.GetValue(15).ToString(); apartado.TelefonoCliente = item.GetValue(16).ToString(); apartado.FechaVencimiento = item.GetValue(17).ToString(); apartado.FechaCancelacion = item.GetValue(18).ToString(); lista.Add(apartado); } apartadoResponse.Apartados = lista.ToArray(); if (apartadoResponse.Apartados.Length > 0) { // Información acerca de las formas de pago que deben mostrarse en el Front apartadoResponse.InformacionAsociadaFormasPago = formasPagoRepository.GetConfigFormasPago(codeBox, codeStore, "", "", apartadoResponse.Apartados[0].TipoCabeceraApartado); apartadoResponse.InformacionAsociadaFormasPagoMonedaExtranjera = formasPagoRepository.GetConfigFormasPagoExt(codeBox, codeStore, "", "", apartadoResponse.Apartados[0].TipoCabeceraApartado); } return(apartadoResponse); }