예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }