private PagamentoInfo gerarPagamento(MotoristaInfo motorista, FreteInfo frete, PagamentoCartaoInfo cartao = null) { var pagamento = new PagamentoInfo { IdUsuario = motorista.Id, Situacao = SituacaoPagamentoEnum.Aberto, Tipo = TipoPagamentoEnum.Credito, Observacao = "15% da primeira hora" }; pagamento.Itens.Add(new PagamentoItemInfo { Descricao = "15% da primeira hora", Quantidade = 1, Valor = frete.Preco * 0.15 }); if (cartao != null) { pagamento.Bandeira = cartao.Bandeira; pagamento.Token = cartao.Token; pagamento.NomeCartao = cartao.Nome; pagamento.CVV = cartao.CVV; } return(pagamento); }
public static PagamentoInfo gerar(PedidoInfo pedido) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var pagamento = new PagamentoInfo { IdUsuario = usuario.Id, Cpf = usuario.CpfCnpj, Cep = pedido.Cep, Logradouro = pedido.Logradouro, Complemento = pedido.Complemento, Numero = pedido.Numero, Bairro = pedido.Bairro, Cidade = pedido.Cidade, Uf = pedido.Uf, Situacao = SituacaoPagamentoEnum.Aberto }; foreach (var item in pedido.Itens) { pagamento.Itens.Add(new PagamentoItemInfo { Descricao = item.Produto.Nome, Quantidade = item.Quantidade, Valor = (item.Produto.ValorPromocao > 0) ? item.Produto.ValorPromocao : item.Produto.Valor }); } return(pagamento); }
private async void gerarBoleto(PagamentoInfo pagamento) { UserDialogs.Instance.ShowLoading("Gerando boleto..."); try { var regraPagamento = PagamentoFactory.create(); pagamento.DataVencimento = DateTime.Now.AddDays(3); var retorno = await regraPagamento.pagar(pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.AguardandoPagamento) { this.Pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, this.Pagamento); } else { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(retorno.Mensagem, "Erro", "Fechar"); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
public async Task <PagamentoRetornoInfo> pagarComToken(PagamentoInfo pagamento) { string url = GlobalUtils.URLAplicacao + "/api/pagamento/pagar-com-token"; var args = new List <object>(); args.Add(pagamento); return(await queryPut <PagamentoRetornoInfo>(url, args.ToArray())); }
private void preencherEndereco(PagamentoInfo pagamento, EnderecoInfo endereco) { pagamento.Cep = endereco.Cep; pagamento.Logradouro = endereco.Logradouro; pagamento.Complemento = endereco.Complemento; pagamento.Numero = endereco.Numero; pagamento.Bairro = endereco.Bairro; pagamento.Cidade = endereco.Cidade; pagamento.Uf = endereco.Uf; }
public int InsertPagamento(PagamentoInfo pagamentoInfo) { if (accessDbMySql.Conectar()) { accessDbMySql.AddParametrosMySql("@venda", pagamentoInfo.pagamentoidvenda); accessDbMySql.AddParametrosMySql("@quant", pagamentoInfo.pagamentoquantforma); accessDbMySql.AddParametrosMySql("@valor", pagamentoInfo.pagamentovalor); accessDbMySql.AddParametrosMySql("@troco", pagamentoInfo.pagamentotroco); return(accessDbMySql.ExecutarScalarMySql("spInsertPagamento")); } else { return(0); } }
private PagamentoColecao PreencherPagamentoColecao(DataTable dataTable) { PagamentoColecao pagamentoColecao = new PagamentoColecao(); foreach (DataRow row in dataTable.Rows) { PagamentoInfo pagamentoInfo = new PagamentoInfo { pagamentoid = Convert.ToInt32(row["pagamentoid"]), pagamentoidvenda = Convert.ToInt32(row["pagamentoidvenda"]), pagamentoquantforma = Convert.ToInt32(row["pagamentoquantforma"]), pagamentotroco = Convert.ToDecimal(row["pagamentotroco"]), pagamentovalor = Convert.ToDecimal(row["pagamentovalor"]) }; pagamentoColecao.Add(pagamentoInfo); } return(pagamentoColecao); }
private void inicializarComponente() { inicilizarCaracteristica(); _AlugarButton = new Button { VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, Text = "ALUGAR", Style = Estilo.Current[Estilo.BTN_PRINCIPAL] }; _AlugarButton.Clicked += (sender, e) => { var pagamento = new PagamentoInfo { IdUsuario = 0, Tipo = TipoPagamentoEnum.CREDITO, Situacao = SituacaoPagamentoEnum.ABERTO, Itens = new List <PagamentoItemInfo>() { new PagamentoItemInfo { Descricao = "Locação de Veículo", Quantidade = 1, Valor = 80 } } }; Navigation.PushAsync(new CartaoPage(pagamento) { UsaCredito = true, UsaDebito = false }); }; _FotoImage = new Image { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Center, WidthRequest = 120, HeightRequest = 80, Aspect = Aspect.Fill }; _FotoImage.SetBinding(Image.SourceProperty, new Binding("Foto")); _TituloLabel = new Label { FontAttributes = FontAttributes.Bold, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, }; _TituloLabel.SetBinding(Label.TextProperty, new Binding("Titulo")); _PromoLabel = new Label { WidthRequest = 150, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, }; _PromoLabel.SetBinding(Label.TextProperty, new Binding("Promocao")); _NomeLoja = new Label { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.End, FontAttributes = FontAttributes.Bold }; _NomeLoja.SetBinding(Label.TextProperty, new Binding("NomeLoja")); _ValorLabel = new Label { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.End, FontSize = 24, FontAttributes = FontAttributes.Bold }; _ValorLabel.SetBinding(Label.TextProperty, new Binding("ValorStr")); _DataIniLabel = new Label { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.End, FontSize = 16, FontAttributes = FontAttributes.Bold }; _DataIniLabel.SetBinding(Label.TextProperty, new Binding("DataInicioStr")); _DataFimLabel = new Label { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.End, FontSize = 16, FontAttributes = FontAttributes.Bold }; _DataFimLabel.SetBinding(Label.TextProperty, new Binding("DataFimStr")); }
private void Concluir() { if (troco >= 0) { if (InserirVenda() > 0) { PagamentoInfo pagamentoInfo = new PagamentoInfo { pagamentoid = 0, pagamentoidvenda = vendaInfo.venid, pagamentoquantforma = dataGridViewFormaPag.RowCount, pagamentovalor = vendaInfo.venvalor, pagamentotroco = troco }; int cod = vendaNegocios.InsertPagamento(pagamentoInfo); if (cod > 0) { foreach (GridFormaPagamentoInfo pag in gridFormaPagamentoColecao) { PagamentoDetalhesInfo pagamentoDetalhesInfo = new PagamentoDetalhesInfo { pagdetalhesid = 0, pagdetalhesidmaquineta = pag.pagband, pagdetalhesidpag = cod, pagdetalhesidtipopag = pag.pagtipo, pagdetalhesnumparcelas = pag.parc, pagdetalhesvalor = pag.pagid == 1 ? pag.pagvalor - troco : pag.pagvalor, pagdetalhesidform = pag.pagid }; if (vendaNegocios.InsertPagamentoDetalhes(pagamentoDetalhesInfo) == 0) { Form1.encerrarThread = true; FormMessage.ShowMessegeWarning("Falha, tente novamente!"); return; } } PessoaInfo infoPessoa = clienteNegocios.ConsultarPessoaId(vendaInfo.venidcliente); Caixa caixa = new Caixa(); CaixaTurnoInfo caixaTurnoInfo = caixa.ConsultarTurnoAberto(); EntradaSaidaInfo entradaSaidaSalvar = new EntradaSaidaInfo { entracodtodasparcelas = 0, entraconfirmada = true, entradatalancamento = DateTime.Now, entradatavenc = DateTime.Now.Date, entradocumento = Convert.ToString(vendaInfo.venid), entraid = 0, entraidfunc = Form1.User.useidfuncionario, entraidunidade = Form1.Unidade.uniid, entranumparcela = 1, entranumtotalparcelas = 1, entraobs = "Controle da venda: " + string.Format("{0:000000000}", pagamentoInfo.pagamentoidvenda) + Environment.NewLine + "Cliente: " + infoPessoa.Nome + Environment.NewLine + "Vendedor: " + Form1.User.usenome, entratipocatdecricao = "", entratipoidcat = 4, entravalor = pagamentoInfo.pagamentovalor, entravalorpago = pagamentoInfo.pagamentovalor, entraidtipoentrada = 4, entraparcelado = false }; EntradaSaidaNegocios entradaSaidaNegocios = new EntradaSaidaNegocios(Form1.Empresa.empconexao); if (entradaSaidaNegocios.InsertEntradaSaidaLancamento(entradaSaidaSalvar) == 0) { Form1.encerrarThread = true; FormMessage.ShowMessegeWarning("Falha, tente novamente!"); return; } Form1.encerrarThread = true; this.DialogResult = DialogResult.Yes; } } else { Form1.encerrarThread = true; FormMessage.ShowMessegeWarning("Falha ao tentar concluir a venda!"); this.DialogResult = DialogResult.Cancel; } } else { Form1.encerrarThread = true; FormMessage.ShowMessegeWarning("Todo o valor precisa ser liquidado para concluir a venda!"); } Form1.encerrarThread = true; pictureBoxLoad.Visible = false; }
public static void gerarPagamento(FreteInfo frete, Action <FreteInfo> aoEfetuarPagamento) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var pgtoInicial = new PagamentoInfo { Cpf = usuario.CpfCnpj, IdUsuario = usuario.Id }; pgtoInicial.Itens.Add(new PagamentoItemInfo { Descricao = "Frete", Quantidade = 1, Valor = frete.Preco }); var metodoPagamento = new PagamentoMetodoPage { Pagamento = pgtoInicial, UsaCredito = true, UsaDebito = false, UsaBoleto = false, UsaDinheiro = true }; metodoPagamento.AoEfetuarPagamento += async(sender, pagamento) => { frete.IdPagamento = pagamento.IdPagamento; UserDialogs.Instance.ShowLoading("Processando pagamento..."); try { var regraFrete = FreteFactory.create(); switch (pagamento.Situacao) { case SituacaoPagamentoEnum.Pago: frete.Situacao = FreteSituacaoEnum.ProcurandoMotorista; break; case SituacaoPagamentoEnum.Cancelado: frete.Situacao = FreteSituacaoEnum.Cancelado; break; default: frete.Situacao = FreteSituacaoEnum.AguardandoPagamento; break; } var id_frete = frete.Id; if (id_frete > 0) { await regraFrete.alterar(frete); } else { id_frete = await regraFrete.inserir(frete); } var novoFrete = await regraFrete.pegar(id_frete); UserDialogs.Instance.HideLoading(); aoEfetuarPagamento?.Invoke(novoFrete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } UserDialogs.Instance.HideLoading(); }; ((RootPage)App.Current.MainPage).PushAsync(metodoPagamento); }
public string[] CriarCupom(VendaInfo venda, string servico = "") { servico = string.IsNullOrEmpty(servico) ? "" : "(" + servico + ")"; string cupom = string.Empty; string fiscal = "CUPOM NÃO FISCAL"; string a = fiscal.Substring(0, fiscal.Length / 2).PadLeft(tam / 2, '='); string b = fiscal.Substring(fiscal.Length / 2).PadRight(tam / 2, '='); string titulo = a + b; decimal desconto = 0; string nomTitulo = string.Empty; //dados da venda. if (venda != null) { switch (venda.venidstatus) { case 1: nomTitulo = "ORÇAMENTO"; break; case 2: nomTitulo = "VENDA"; break; case 3: nomTitulo = "CANCELADA"; break; default: break; } string nomA = nomTitulo.Substring(0, nomTitulo.Length / 2).PadLeft(tam / 2); string nomB = nomTitulo.Substring(nomTitulo.Length / 2).PadRight(tam / 2); nomTitulo = nomA + nomB; PessoaInfo funcInfo = funcNegocios.ConsultarPessoaId(venda.venidfunc); string dadosvenda = string.Empty; dadosvenda += "CONTROLE: " + string.Format("{0:00000000}", venda.venid) + Environment.NewLine; dadosvenda += "VENDEDOR: " + funcInfo.pssnome + Environment.NewLine; dadosvenda += "DATA/HORA: " + venda.vendatacad + Environment.NewLine; string dadositem = string.Empty; VendaDetalhesColecao venDetalhesColecao = vendaNegocios.ConsultarVendaDetalhesIdVenda(venda.venid); //dados da empresa string empresa = "EMPRESA"; string empA = string.Empty; string empB = string.Empty; empA = empresa.Substring(0, empresa.Length / 2).PadLeft(tam / 2); empB = empresa.Substring(empresa.Length / 2).PadRight(tam / 2); empresa = empA + empB; EmpresaNegocios empresaNegocios = new EmpresaNegocios(Form1.Empresa.empconexao); UnidadeInfo unidade = empresaNegocios.ConsultarUnidadeId(venda.venidunidade); string dadosemp = string.Empty; dadosemp += empresa + Environment.NewLine; dadosemp += unidade.unifantasia + Environment.NewLine; dadosemp += "Cnpj: " + string.Format(@"{0:00\.000\.000\/0000\-00}", Convert.ToDouble(unidade.unicnpj)) + Environment.NewLine; dadosemp += "End.: " + unidade.unicomplemento + ", " + Environment.NewLine; dadosemp += unidade.unilogradouro + Environment.NewLine; dadosemp += unidade.unibairro + ", " + unidade.unicidade + "-" + unidade.uniuf + Environment.NewLine; dadosemp += "Ref.: " + unidade.unireferencia + Environment.NewLine; dadosemp += "Telefone: " + unidade.unitelefone + Environment.NewLine; dadosemp += "Site: " + unidade.unisite.ToLower() + Environment.NewLine; dadosemp += "Email: " + unidade.uniemail.ToLower() + Environment.NewLine; //dados do cliente PessoaInfo infoPessoa = clienteNegocios.ConsultarPessoaId(venda.venidcliente); string cliente = "CLIENTE " + servico; string cliA = string.Empty; string cliB = string.Empty; cliA = cliente.Substring(0, cliente.Length / 2).PadLeft(tam / 2); cliB = cliente.Substring(cliente.Length / 2).PadRight(tam / 2); cliente = cliA + cliB; string dadoscliente = string.Empty; dadoscliente += cliente + Environment.NewLine; dadoscliente += infoPessoa.pssnome + Environment.NewLine; dadoscliente += "End.: " + infoPessoa.pssendcomplemento + ", " + Environment.NewLine + infoPessoa.pssendlogradouro + Environment.NewLine; dadoscliente += infoPessoa.pssendbairro + ", " + infoPessoa.pssendcidade + "-" + infoPessoa.pssenduf + Environment.NewLine; dadoscliente += "Telefone: " + infoPessoa.psstelefone + Environment.NewLine; dadoscliente += "Email: " + infoPessoa.pssemail + Environment.NewLine; //produtos int item = 1; foreach (VendaDetalhesInfo detalhes in venDetalhesColecao) { ProdutoInfo produtoInfo = produtoNegocios.ConsultarProdutosId(detalhes.vendetalhesidprod); decimal calc = 0; if (produtoInfo.protaxa) { calc = -detalhes.vendetalhesvalordesc; } else { calc = (detalhes.vendetalhesvalorunit - detalhes.vendetalhesvalordesc) * detalhes.vendetalhesquant; } string desc = string.Empty; string prod = string.Empty; dadositem += string.Format("{0:00}", item++) + " "; if (calc > 0) { desc = (-calc).ToString("C2"); prod += desc; } prod += (detalhes.vendetalhesquant + " UN x " + detalhes.vendetalhesvalordesc.ToString("C2") + " = " + (detalhes.vendetalhesquant * detalhes.vendetalhesvalordesc).ToString("C2")).PadLeft(tam - desc.Length); dadositem += string.Format("{0:00000}", produtoInfo.proId) + " " + produtoInfo.proDescricao + Environment.NewLine; dadositem += prod.PadLeft(tam) + Environment.NewLine; desconto += calc; } //formas de pagamentos string dadosformapag = string.Empty; string troco = string.Empty; if (venda.venmodo > 0) { string pagamento = "FORMA DE PAGAMENTO"; string pagA = string.Empty; string pagB = string.Empty; pagA = pagamento.Substring(0, pagamento.Length / 2).PadLeft(tam / 2); pagB = pagamento.Substring(pagamento.Length / 2).PadRight(tam / 2); pagamento = pagA + pagB; dadosformapag = pagamento + Environment.NewLine; VFormaPagPorVendaColecao forma = vendaNegocios.ConsultarVFormaPagPorVendaColecao(venda.venid); PagamentoInfo pagamentoInfo = vendaNegocios.ConsultarPagamentoIdVenda(venda.venid); foreach (VFormaPagPorVendaInfo pag in forma) { string descricao = pag.formpagdescricao; if (pag.pagdetalhesnumparcelas > 1) { decimal valor = pag.pagdetalhesvalor / pag.pagdetalhesnumparcelas; descricao += " " + pag.pagdetalhesnumparcelas + "x " + valor.ToString("C2"); } else { descricao += " À VISTA"; } if (pag.formpagid == 1 && pagamentoInfo.pagamentotroco > 0) { descricao = descricao.Replace(" À VISTA", ""); descricao += ", Recebido = " + (pag.pagdetalhesvalor + pagamentoInfo.pagamentotroco).ToString("C2"); } dadosformapag += descricao + pag.pagdetalhesvalor.ToString("C2").PadLeft(tam - descricao.Length) + Environment.NewLine; } troco += Environment.NewLine; if (desconto > 0) { string totalDesconto = "(" + string.Format("{0:0.00}", ((desconto * 100) / (venda.venvalor + desconto))) + "%) " + (-desconto).ToString("C2"); troco += "DESCONTO TOTAL: " + totalDesconto.PadLeft(tam - 16) + Environment.NewLine; } if (pagamentoInfo.pagamentotroco > 0) { troco += "TROCO: " + (-pagamentoInfo.pagamentotroco).ToString("C2").PadLeft(tam - 7) + Environment.NewLine; } } string total = "SUBTOTAL: " + (venda.venvalor + desconto).ToString("C2").PadLeft(tam - 10) + Environment.NewLine; total += "VALOR A PAGAR: " + venda.venvalor.ToString("C2").PadLeft(tam - "VALOR A PAGAR: ".Length); cupom += titulo + Environment.NewLine; cupom += "" + Environment.NewLine; cupom += nomTitulo + Environment.NewLine; cupom += dadosvenda; cupom += "".PadLeft(tam, '=') + Environment.NewLine; cupom += dadosemp; cupom += "".PadLeft(tam, '=') + Environment.NewLine; cupom += dadoscliente; cupom += "".PadLeft(tam, '-') + Environment.NewLine; cupom += "ITEM COD. DESCRICAO" + Environment.NewLine; cupom += "".PadLeft(tam, '-') + Environment.NewLine; cupom += dadositem + Environment.NewLine; cupom += "".PadLeft(tam, '*') + Environment.NewLine; cupom += "QUANT DE ITENS: " + string.Format("{0:00}", venda.venquant).PadLeft(tam - 16) + Environment.NewLine; cupom += total; cupom += "" + Environment.NewLine; cupom += "" + Environment.NewLine; cupom += dadosformapag; cupom += troco; string corpo = cupom; string rodape = string.Empty; if (venda.venmodo > 0) { rodape += "".PadLeft(tam, '.') + Environment.NewLine; rodape += "" + Environment.NewLine; rodape += nomTitulo + Environment.NewLine; rodape += dadosvenda; rodape += "UNIDADE: " + unidade.uniunidade + Environment.NewLine; rodape += "" + Environment.NewLine; rodape += dadoscliente; rodape += "" + Environment.NewLine; rodape += total; rodape += "" + Environment.NewLine; rodape += "" + Environment.NewLine; rodape += dadosformapag; rodape += troco; rodape += "".PadLeft(tam, '.') + Environment.NewLine; } string[] ArrCupom = new string[2]; ArrCupom[0] = corpo; ArrCupom[1] = rodape; return(ArrCupom); } else { FormMessage.ShowMessegeWarning("Nada foi encontrado!"); return(null); } }
private void inicializarComponente() { _ValorTotalLabel = new Label { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO], HorizontalTextAlignment = TextAlignment.Center, FontSize = 24 }; _ValorTotalLabel.SetBinding(Label.TextProperty, new Binding("ValorTotalStr", stringFormat: "R${0}")); _TrocoParaEntry = new Entry { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Keyboard = Keyboard.Numeric }; _ObservacaoEntry = new Entry { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_PADRAO] }; _ConcluirButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "FINALIZAR PEDIDO" }; _ConcluirButton.Clicked += async(sender, e) => { if (Pagamento == null) { await DisplayAlert("Erro", "Nenhum pagamento informando.", "Fechar"); return; } UserDialogs.Instance.ShowLoading("Enviando..."); try { var regraPagamento = PagamentoFactory.create(); Pagamento.Tipo = TipoPagamentoEnum.Dinheiro; Pagamento.Observacao = _ObservacaoEntry.Text; double trocoPara = 0; if (double.TryParse(_TrocoParaEntry.Text, out trocoPara)) { Pagamento.TrocoPara = trocoPara; } var retorno = await regraPagamento.pagar(Pagamento); Pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, Pagamento); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }; }