RetailSolutions.Shared.Microservices.Gemco.PedidoVenda
1.0.47
See the version list below for details.
dotnet add package RetailSolutions.Shared.Microservices.Gemco.PedidoVenda --version 1.0.47
NuGet\Install-Package RetailSolutions.Shared.Microservices.Gemco.PedidoVenda -Version 1.0.47
<PackageReference Include="RetailSolutions.Shared.Microservices.Gemco.PedidoVenda" Version="1.0.47" />
<PackageVersion Include="RetailSolutions.Shared.Microservices.Gemco.PedidoVenda" Version="1.0.47" />
<PackageReference Include="RetailSolutions.Shared.Microservices.Gemco.PedidoVenda" />
paket add RetailSolutions.Shared.Microservices.Gemco.PedidoVenda --version 1.0.47
#r "nuget: RetailSolutions.Shared.Microservices.Gemco.PedidoVenda, 1.0.47"
#:package RetailSolutions.Shared.Microservices.Gemco.PedidoVenda@1.0.47
#addin nuget:?package=RetailSolutions.Shared.Microservices.Gemco.PedidoVenda&version=1.0.47
#tool nuget:?package=RetailSolutions.Shared.Microservices.Gemco.PedidoVenda&version=1.0.47
PedidoVendaService
A biblioteca PedidoVendaService é uma solução para gerenciamento de pedidos de venda, fornecendo uma interface robusta para criação e processamento de pedidos no sistema Gemco.
Instalação
dotnet add package RetailSolutions.Shared.Microservices.Gemco.PedidoVenda
Dependências
- .NET 6.0 ou superior
- Dapper
- Oracle.ManagedDataAccess.Client
- Microsoft.Extensions.Logging
Uso Básico
Configuração do Serviço
// Configuração do logger
var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
var logger = loggerFactory.CreateLogger<PedidoVendaService>();
// Criação do modelo de pedido
var pedidoVendaModel = new PedidoVendaModel
{
CodigoFilial = 1,
CodigoCliente = 123,
EstadoCliente = "SP",
DataPedido = DateTime.Now,
TipoPedido = TipoPedidoGemco.Entrega,
ValoresPedido = new ValoresPedidoModel
{
ValorTotalPedido = 1000.00m,
ValorMercadoria = 1000.00m
},
ItensPedido = new List<ItensPedidoVendaModel>
{
new()
{
CodigoItemProduto = 123,
CodigoBarras = 456,
Quantidade = 1,
ValoresItemPedido = new ValoresItemPedidoModel
{
ValorTotal = 1000.00m
}
}
},
ParametrosCaixa = new ParametrosCaixaModel
{
CodigoFilialCaixa = 1,
NumeroCaixa = 1,
CodigoOperadorCaixa = 1
},
ParametrosPedido = new ParametrosPedidoModel
{
RatearDescontoEntreItens = true,
RatearFreteEntreItens = true,
RatearSeguroEntreItens = true
}
};
// Criação do serviço
var pedidoVendaService = new PedidoVendaService(pedidoVendaModel, logger);
Processamento do Pedido
// Exemplo de uso com Oracle
using (var connection = new OracleConnection(connectionString))
{
await connection.OpenAsync();
using var transaction = await connection.BeginTransactionAsync();
try
{
var response = await pedidoVendaService.InserirPedidoVendaAsync(
connection,
transaction,
CancellationToken.None
);
await transaction.CommitAsync();
Console.WriteLine($"Pedido criado com sucesso: {response.NumPedven}");
}
catch (Exception ex)
{
await transaction.RollbackAsync();
throw;
}
}
Modelos Principais
PedidoVendaModel
O modelo principal que contém todas as informações necessárias para criar um pedido:
public class PedidoVendaModel
{
public int CodigoFilial { get; set; }
public int CodigoCliente { get; set; }
public string EstadoCliente { get; set; }
public DateTime DataPedido { get; set; }
public TipoPedidoGemco TipoPedido { get; set; }
public ValoresPedidoModel ValoresPedido { get; set; }
public List<ItensPedidoVendaModel> ItensPedido { get; set; }
public ParametrosCaixaModel ParametrosCaixa { get; set; }
public ParametrosPedidoModel ParametrosPedido { get; set; }
// ... outras propriedades
}
ItensPedidoVendaModel
Modelo para os itens do pedido:
public class ItensPedidoVendaModel
{
public int CodigoItemProduto { get; set; }
public int CodigoBarras { get; set; }
public decimal Quantidade { get; set; }
public ValoresItemPedidoModel ValoresItemPedido { get; set; }
// ... outras propriedades
}
Validações
O serviço realiza várias validações importantes:
- Verifica se existem itens no pedido
- Valida se os códigos de produtos e códigos de barras são válidos
- Verifica se a filial e o cliente são válidos
- Valida os valores do pedido
- Verifica a data do pedido
- Valida parâmetros específicos para pedidos de retirada
- Verifica parâmetros do caixa e do pedido
Tratamento de Erros
O serviço utiliza exceções personalizadas para tratamento de erros:
try
{
var response = await pedidoVendaService.InserirPedidoVendaAsync(connection, transaction, cancellationToken);
}
catch (PedidoVendaException ex)
{
// Tratamento específico para erros de pedido
logger.LogError(ex, "Erro ao processar pedido");
}
catch (Exception ex)
{
// Tratamento para outros erros
logger.LogError(ex, "Erro inesperado");
}
Funcionalidades Principais
- Criação de pedidos de venda
- Validação de produtos e estoque
- Cálculo de valores e taxas
- Gerenciamento de parcelas
- Integração com sistema de caixa
- Rateio automático de descontos, fretes e seguros
- Atualização de estoque reserva
Observações Importantes
- O serviço requer uma transação ativa para garantir a integridade dos dados
- É necessário fornecer um logger para registro de operações
- Todos os valores monetários devem ser fornecidos em decimal
- O serviço suporta diferentes tipos de pedido (Entrega, Retira, RetiraPosterior)
- É necessário configurar corretamente os parâmetros do caixa e do pedido
Contribuição
Para contribuir com o projeto:
- Faça um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -m 'Adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Abra um Pull Request
Licença
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- RetailSolutions.Shared.Microservices (>= 1.2.37)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.67 | 594 | 7/22/2025 |
1.0.65 | 156 | 7/10/2025 |
1.0.62 | 156 | 7/9/2025 |
1.0.58 | 181 | 7/1/2025 |
1.0.56 | 142 | 7/1/2025 |
1.0.54 | 158 | 7/1/2025 |
1.0.50 | 149 | 6/26/2025 |
1.0.49 | 119 | 6/20/2025 |
1.0.48 | 155 | 6/17/2025 |
1.0.47 | 160 | 6/15/2025 |
1.0.46 | 115 | 6/15/2025 |
1.0.45 | 124 | 6/15/2025 |
1.0.44 | 122 | 6/15/2025 |
1.0.43 | 206 | 6/13/2025 |
1.0.42 | 90 | 6/6/2025 |
1.0.41 | 161 | 6/4/2025 |
1.0.40 | 153 | 6/3/2025 |
1.0.38 | 155 | 6/1/2025 |