public ResponseDTO GetMovimiento(double transactionId) { MovimientoDTO res = new MovimientoDTO(); Hashtable data = _service.Get(string.Format("mscuentatransaccion/api/movimientos/transaccion/{0}", transactionId)); return(Mapper.MapResponse(res, data)); }
private bool RegistrarListadoArticulos() { if (!VerificarDatosObligatorios()) { MessageBox.Show(@"Por favor ingrese los campos Obligatorios.", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } ///////////////// ///COMPROBANTE/// ///////////////// /// long clienteId = _clienteServicio.ObtenerClientePorDni("99999999").Id; long proveedorId = _proveedorServicio.ObtenerRazonSocial(txtRazonSocial.Text).Id; ComprobanteCompraDTO comprobante = new ComprobanteCompraDTO { Fecha = DateTime.Now, ProveedorId = proveedorId, UsuarioId = DatosSistema.UsuarioId, ClienteId = clienteId, Descuento = nudDescuento.Value, Items = detalles.Values.ToList() }; long comprobante_id; comprobante_id = _comprobanteServicio.GenerarComprobanteCompra(comprobante); DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = comprobante.Total, TipoPago = TipoPago.Efectivo }; _detalleCajaServicio.Generar(detalleCaja); ////////////// //Movimiento// ////////////// MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobante_id, Tipo = TipoMovimiento.Egreso, UsuarioID = DatosSistema.UsuarioId, Monto = comprobante.Total, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); Close(); return(true); }
public IList <MovimientoDTO> UltimosMovimientos(string pDni) { string url = "https://my-json-server.typicode.com/utn-frcu-isi-tdp/tas-db/account-movements?id=" + pDni; IList <MovimientoDTO> movimientos = new List <MovimientoDTO>(); // Empezar el timer para saber cuánto tiempo llevó la operación Stopwatch timer = new Stopwatch(); timer.Start(); // Indicador que pasará a verdadero si ocurre un error bool fallida = false; try { dynamic response = ObtenerRespuesta(url); if (response.Count >= 1) { for (int i = 0; i < response[0].response.movements.Count; i++) { MovimientoDTO mov = new MovimientoDTO(); mov.Fecha = response[0].response.movements[i].date; mov.Monto = response[0].response.movements[i].ammount; movimientos.Add(mov); } Console.WriteLine("Item completo -> {0}", response[0].response); } return(movimientos); } catch { fallida = true; // Devolver la misma excepción para que sea tratada por el nivel anterior throw; } finally { RegistrarOperacion(pDni, "Últimos movimientos", timer, fallida); } }
public void GenerarMovimiento(MovimientoDTO dto) { using (var baseDatos = new ModeloXCommerceContainer()) { var nuevoMovimiento = new AccesoDatos.Movimiento { CajaId = dto.CajaID, ComprobanteId = dto.ComprobanteID, TipoMovimento = dto.Tipo, UsuarioId = dto.UsuarioID, Monto = dto.Monto, Fecha = dto.Fecha, Descripcion = dto.Descripcion }; baseDatos.Movimientos.Add(nuevoMovimiento); baseDatos.SaveChanges(); } }
static void Main(string[] args) { string salida = string.Empty; long terminalID = int.Parse(eCatConfig.GetValue("TerminalID")); ResponseDTO transactionaCoreResponse = new ResponseDTO(); BusinessActivityService _service = new BusinessActivityService(Convert.ToString(terminalID), ref transactionaCoreResponse); Console.WriteLine("\n"); if (!_service.Available()) { Console.WriteLine("Servicio no disponible."); Console.WriteLine("-> Verificar la configuración en EmuladorCajero.exe.Config"); Console.ReadLine(); return; } while (!salida.Equals("exit")) { int dni; double saldoInicial = -1; double saldoPostDeb = -1; double saldoPostRev = -1; Console.Write("-> Ingrese DNI: "); while (!int.TryParse(Console.ReadLine(), out dni)) { Console.Write("Ingrese un DNI válido: "); } Console.Write("-> Ingrese Token: "); int token; while (!int.TryParse(Console.ReadLine(), out token)) { Console.Write("Ingrese un token numérico: "); } ResponseDTO response = _service.GetToken(dni, token); if (!response.status) { Console.WriteLine(string.Format("{0} [{1}]", response.description, response.message)); Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar..."); salida = Console.ReadLine(); continue; } RespuestaTokenDTO respuestaToken = (RespuestaTokenDTO)response.responseData; Console.WriteLine(""); Console.WriteLine("Usuario: " + respuestaToken.clienteDTO.alias); foreach (CuentaDTO cuenta in respuestaToken.cuentas) { Console.WriteLine("Cuenta: " + cuenta.numero); string tipoDeCuenta = string.Empty; switch (cuenta.tipoCuentaId) { case 19: tipoDeCuenta = "Pesos"; break; case 20: tipoDeCuenta = "Temporal"; break; case 46: tipoDeCuenta = "Cuenta Prestamos"; break; default: tipoDeCuenta = cuenta.tipoCuentaId.ToString(); break; } Console.WriteLine("Tipo de cuenta: " + tipoDeCuenta); Console.WriteLine("Saldo total: " + cuenta.saldo); saldoInicial = (double)cuenta.saldo; } Console.WriteLine("Saldo del token: " + respuestaToken.tokenCheckDTO.saldoToken); Console.WriteLine("Estado del token: " + respuestaToken.tokenCheckDTO.respuesta); Console.WriteLine("\n"); if (respuestaToken.tokenCheckDTO.estadoToken.Equals("USADO")) { Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar..."); salida = Console.ReadLine(); continue; } Console.Write("-> Ingrese el importe que desea extraer: "); int importe; while (!int.TryParse(Console.ReadLine(), out importe)) { Console.Write("Sólo números: "); } TransactionDTO debitDTO = new TransactionDTO() { dniOrigen = Convert.ToString(dni), dniDestino = Convert.ToString(dni), terminal = Convert.ToString(terminalID), importe = importe, idUsuario = respuestaToken.tokenCheckDTO.idUsuario, tokenId = respuestaToken.tokenCheckDTO.tokenId }; ResponseDTO responseDebito = _service.Debit(debitDTO); if (responseDebito.status) { double costoOperacion = 0; List <ResponseTransactionDTO> resList = new List <ResponseTransactionDTO>((IEnumerable <ResponseTransactionDTO>)responseDebito.responseData); long idTransaccion = (long)resList[0].id; foreach (ResponseTransactionDTO res in resList) { ResponseDTO responseMovimiento = _service.GetMovimiento(res.id); MovimientoDTO mov = (MovimientoDTO)responseMovimiento.responseData; Console.WriteLine("\n"); Console.WriteLine(responseDebito.description); DateTime fecha = Convert.ToDateTime(res.fecha); Console.WriteLine("\nRedATM"); Console.WriteLine("Fecha: " + fecha.Date.ToShortDateString()); Console.WriteLine("Hora: " + fecha.TimeOfDay); Console.WriteLine("Terminal: " + res.terminal); //Console.WriteLine("Número de cuenta: " + ); Console.WriteLine("Número de transacción: " + res.codigo); Console.WriteLine("Transacción: " + res.detalle); Console.WriteLine("Importe: $" + (mov.importeOrigen - mov.transaccion.costoOperacion).ToString());; Console.WriteLine("Costo de la transacción: $" + mov.transaccion.costoOperacion.ToString()); Console.WriteLine("Su saldo es (S.E.U.O): $" + mov.saldo); costoOperacion += mov.transaccion.costoOperacion; saldoPostDeb = mov.saldo; Console.WriteLine("\n"); } Console.WriteLine("¿Desea simular una reversa?"); Console.Write("-> Tipee \"yes\" para confirmar, o cualquier otro caracter para continuar: "); if (Console.ReadLine().Equals("yes")) { TransactionDTO creditDTO = new TransactionDTO() { dniOrigen = Convert.ToString(dni), dniDestino = Convert.ToString(dni), terminal = Convert.ToString(terminalID), importe = importe, comision = costoOperacion, idUsuario = respuestaToken.tokenCheckDTO.idUsuario, tokenId = respuestaToken.tokenCheckDTO.tokenId, idAsociadoALaTransaccion = idTransaccion }; ResponseDTO responseCredito = _service.Debit(creditDTO, true); if (responseCredito.status) { List <ResponseTransactionDTO> resReversaList = new List <ResponseTransactionDTO>((IEnumerable <ResponseTransactionDTO>)responseCredito.responseData); foreach (ResponseTransactionDTO resReversa in resReversaList) { ResponseDTO responseMovimientoReversa = _service.GetMovimiento(resReversa.id); MovimientoDTO movReversa = (MovimientoDTO)responseMovimientoReversa.responseData; Console.WriteLine("\n"); Console.WriteLine("Reversa generada correctamente"); Console.WriteLine(responseCredito.description); DateTime fechaReversa = Convert.ToDateTime(resReversa.fecha); Console.WriteLine("\nRedATM REVERSA"); Console.WriteLine("Fecha: " + fechaReversa.Date.ToShortDateString()); Console.WriteLine("Hora: " + fechaReversa.TimeOfDay); Console.WriteLine("Terminal: " + resReversa.terminal); //Console.WriteLine("Número de cuenta: " + ); Console.WriteLine("Número de transacción: " + resReversa.codigo); Console.WriteLine("Transacción: " + resReversa.detalle); Console.WriteLine("Importe: $" + (movReversa.importeOrigen).ToString());; Console.WriteLine("Costo de la transacción: $" + movReversa.transaccion.costoOperacion.ToString()); Console.WriteLine("Su saldo es (S.E.U.O): $" + movReversa.saldo); Console.WriteLine("\n"); saldoPostRev = movReversa.saldo; } } else { Console.WriteLine(string.Format("{0} [{1}]\n", responseCredito.description, responseCredito.message)); } } } else { Console.WriteLine(string.Format("{0} [{1}]", responseDebito.description, responseDebito.message)); Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar..."); salida = Console.ReadLine(); continue; } if (saldoPostDeb >= 0) { Console.WriteLine("\nSaldo inicial: " + saldoInicial.ToString()); Console.WriteLine("Saldo post-debito: " + saldoPostDeb.ToString()); if (saldoPostRev >= 0) { Console.WriteLine("Saldo post-reversa: " + saldoPostRev.ToString() + "\n"); } } Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar..."); salida = Console.ReadLine(); if (!salida.Equals("exit")) { Console.WriteLine("--------------------------------------------------------------------------\n"); } } }
private void cerrarLaMesa(long mesaId, int numeroMesa) { bool desea_imprimir = true; if (rdbCheque.Checked) { _tfPAgo = TipoFormaPago.Cheque; } if (rdbEfectivo.Checked) { _tfPAgo = TipoFormaPago.Efectivo; _tPago = TipoPago.Efectivo; } if (rdbTarjeta.Checked) { _tfPAgo = TipoFormaPago.Tarjeta; _tPago = TipoPago.Tarjeta; } if (rdbCtaCte.Checked) { _tfPAgo = TipoFormaPago.CuentaCorriente; _tPago = TipoPago.CtaCte; } var comprobanteMesaDto = _comprobanteSalonServicio.Obtener(mesaId); if (nudTotal.Value > 0) { if (_tfPAgo == TipoFormaPago.CuentaCorriente) { bool puede_continuar = _clienteServicio.DescontarDeCuenta(idCliente, comprobanteMesaDto.Total); if (!puede_continuar) { MessageBox.Show("La cuenta del cliente no tiene suficiente saldo"); return; } } else { if (_tfPAgo == TipoFormaPago.Cheque) { FormaPagoChequeDTO fp = new FormaPagoChequeDTO { TipoFormaPago = TipoFormaPago.Cheque, Monto = nudTotal.Value, ComprobanteId = idComprobante, BancoId = ((BancoDTO)cbBanco.SelectedItem).Id, Dias = (int)nudDiasCheque.Value, EnteEmisor = txtEnteCheque.Text, FechaEmision = dtFechaCheque.Value, Numero = txtNumeroCheque.Text, }; _formaPagoServicio.Generar(fp); } else { if (_tfPAgo == TipoFormaPago.Tarjeta) { FormaPagoTarjetaDTO fp = new FormaPagoTarjetaDTO { TipoFormaPago = TipoFormaPago.Tarjeta, Monto = nudTotal.Value, ComprobanteId = idComprobante, Numero = txtNumeroTarjeta.Text, Cupon = "", // PlanTarjetaId = ((PlanTarjetaDTO)cbPlan.SelectedItem).Id, NumeroTarjeta = txtClaveTarjeta.Text }; _formaPagoServicio.Generar(fp); } } } _comprobanteSalonServicio.FacturarComprobanteSalon(mesaId, comprobanteMesaDto); MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobanteMesaDto.ComprobanteId, Tipo = TipoMovimiento.Ingreso, UsuarioID = DatosSistema.UsuarioId, Monto = nudTotal.Value, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = nudTotal.Value, TipoPago = _tPago }; _detalleCajaServicio.Generar(detalleCaja); } else { _comprobanteSalonServicio.Eliminar(comprobanteMesaDto.ComprobanteId); desea_imprimir = false; } var mesaParaCerrar = _mesaServicio.ObtenerPorId(mesaId); mesaParaCerrar.estadoMesa = EstadoMesa.Cerrada; _mesaServicio.Modificar(mesaParaCerrar); if (desea_imprimir) { const string message = "Desea imprimir/ver comprobante?"; const string caption = "Comprobante"; var result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { var f = new FormularioComprobante(comprobanteMesaDto.ComprobanteId); f.ShowDialog(); } } this.Close(); }
private long?Facturar() { if (!VerificarDatosObligatorios()) { MessageBox.Show("Error, complete los datos", "Error"); return(null); } if (rbCtaCte.Checked) { bool puede_continuar = _clienteServicio.DescontarDeCuenta(idCliente, nudTotal.Value); if (!puede_continuar) { MessageBox.Show("La cuenta del cliente no tiene suficiente saldo", "Adverencia"); return(null); } } ///////////////// ///COMPROBANTE/// ///////////////// ComprobanteDTO comprobante = new ComprobanteDTO { Fecha = DateTime.Now, UsuarioId = DatosSistema.UsuarioId, ClienteId = rbCtaCte.Checked ? idCliente : consumidorFinalId, Descuento = nudDescuento.Value, Items = detalles.Values.ToList() }; long comprobante_id; if (delivery) { comprobante_id = _comprobanteServicio.GenerarComprobanteDelivery(comprobante); } else { comprobante_id = _comprobanteServicio.Generar(comprobante); } //////////////// //Detalle Caja// //////////////// var formaDePago = TipoPago.Efectivo; if (rbCtaCte.Checked) { formaDePago = TipoPago.CtaCte; } if (rbTarjeta.Checked) { formaDePago = TipoPago.Tarjeta; } //Tipo pago propiedad de detalle caja no tiene cheque //asi que si es cheque no generamos detalle caja if (!rbCheque.Checked) { DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = comprobante.Total, TipoPago = formaDePago }; _detalleCajaServicio.Generar(detalleCaja); } //////////////// ///FORMA PAGO/// //////////////// if (rbEfectivo.Checked) { FormaPagoEfectivoDTO fp = new FormaPagoEfectivoDTO { TipoFormaPago = TipoFormaPago.Efectivo, Monto = nudTotal.Value, ComprobanteId = comprobante_id, }; _formaPagoServicio.Generar(fp); } if (rbCtaCte.Checked) { //parte descontar cuenta ya está al principio FormaPagoCtaCteDTO fp = new FormaPagoCtaCteDTO { TipoFormaPago = TipoFormaPago.CuentaCorriente, Monto = nudTotal.Value, ComprobanteId = comprobante_id, ClienteId = idCliente, }; _formaPagoServicio.Generar(fp); } if (rbCheque.Checked) { FormaPagoChequeDTO fp = new FormaPagoChequeDTO { TipoFormaPago = TipoFormaPago.Cheque, Monto = nudTotal.Value, ComprobanteId = comprobante_id, BancoId = ((BancoDTO)cbBanco.SelectedItem).Id, Dias = (int)nudDiasCheque.Value, EnteEmisor = txtEnteCheque.Text, FechaEmision = dtFechaCheque.Value, Numero = txtNumeroCheque.Text, }; _formaPagoServicio.Generar(fp); } if (rbTarjeta.Checked) { FormaPagoTarjetaDTO fp = new FormaPagoTarjetaDTO { TipoFormaPago = TipoFormaPago.Tarjeta, Monto = nudTotal.Value, ComprobanteId = comprobante_id, Numero = txtNumeroTarjeta.Text, Cupon = "", //TODO ???? PlanTarjetaId = ((PlanTarjetaDTO)cbPlan.SelectedItem).Id, NumeroTarjeta = txtClaveTarjeta.Text }; _formaPagoServicio.Generar(fp); } ////////////// //Movimiento// ////////////// MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobante_id, Tipo = TipoMovimiento.Ingreso, UsuarioID = DatosSistema.UsuarioId, Monto = comprobante.Total, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); foreach (var d in detalles) { //todo:producto tendria que tener si descuenta stock o no... _articuloServicio.DescontarStock(d.Value.ProductoId, d.Value.CantidadProducto); } MessageBox.Show("Factura exitosa.", delivery ? "Delivery" : "Kiosco"); return((long?)comprobante_id); //Close(); }