示例#1
0
        private async void FormaPagoOpen(string nombreBoton)
        {
            Vender  = false;
            Cliente = Presupuesto.Obra.Propietario;
            switch (nombreBoton)
            {
            case "Cheque":
                Cheque                 = true;
                ChequeEntrada          = new ChequeEntradaDto();
                ChequeEntrada.Monto    = Cobrar;
                ChequeEntrada.Concepto = $"Pago de la obra {Presupuesto.Obra.Codigo}-{Presupuesto.Obra.Descripcion}";
                break;

            case "Efectivo":
                Efectivo                   = true;
                ComprobanteEntrada         = new ComprobanteEntradaDto();
                ComprobanteEntrada.Monto   = Cobrar;
                ComprobanteEntrada.Detalle = $"Pago de la obra {Presupuesto.Obra.Codigo}-{Presupuesto.Obra.Descripcion}";
                break;

            case "Transferencia":
                Transferencia      = true;
                Operacion          = new OperacionDto();
                Subtotal           = Cobrar;
                Operacion.Concepto = $"Pago de la obra {Presupuesto.Obra.Codigo}-{Presupuesto.Obra.Descripcion}";
                break;

            case "Deposito":
                Deposito           = true;
                Operacion          = new OperacionDto();
                Operacion.Debe     = Cobrar;
                Operacion.Concepto = $"Pago de la obra {Presupuesto.Obra.Codigo}-{Presupuesto.Obra.Descripcion}";
                break;
            }
        }
        private async void Crear()
        {
            if (Operacion.Debe > 0 && Banco != null)
            {
                var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}");

                Operacion.CuentaCorrienteId = cuentaCorriente.Id;
                Operacion.FechaVencimiento  = Operacion.FechaEmision;
                Operacion.TipoOperacion     = TipoOperacion.Deposito;
                Operacion.Haber             = 0;
                Operacion.Referencia        = 0;
                Operacion.ReferenciaPlus    = "";
                var deposito = new DepositoDto();
                deposito.BancoId  = Banco.Id;
                deposito.Usado    = Usado;
                deposito.Entrada  = true;
                deposito.Fecha    = (DateTime)Operacion.FechaEmision;
                deposito.Concepto = Operacion.Concepto;
                deposito.DePara   = Operacion.DePara;
                deposito.Numero   = long.Parse(Operacion.CodigoCausal);
                deposito.Monto    = (decimal)Operacion.Debe;
                await ApiProcessor.PostApi(deposito, "Deposito/Insert");

                await ApiProcessor.PostApi(Operacion, "Operacion/Insert");

                var diccionario = new Dictionary <string, bool>();
                diccionario.Add("DepositoEntrada", false);
                Operacion = new OperacionDto();
                MessageBox.Show("La operacion a sido registrado con exito!");
            }
        }
        private async void Crear()
        {
            Operacion.Debe = Total;
            if (Operacion.Debe > 0 && Banco != null)
            {
                var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}");

                Operacion.CuentaCorrienteId = cuentaCorriente.Id;
                Operacion.FechaVencimiento  = Operacion.FechaEmision;
                Operacion.TipoOperacion     = TipoOperacion.Tranferencia;
                Operacion.Haber             = 0;
                Operacion.Referencia        = 0;
                Operacion.ReferenciaPlus    = "";
                var transferencia = new TransferenciaDto();
                transferencia.BancoId          = Banco.Id;
                transferencia.Usado            = Usado;
                transferencia.ImpuestoBancario = 0;
                transferencia.Concepto         = Operacion.Concepto;
                transferencia.Entrada          = true;
                transferencia.Fecha            = (DateTime)Operacion.FechaEmision;
                transferencia.PagueseA         = Operacion.DePara;
                transferencia.Numero           = long.Parse(Operacion.CodigoCausal);
                transferencia.Monto            = (decimal)Operacion.Debe;
                await ApiProcessor.PostApi(transferencia, "Transferencia/Insert");

                await ApiProcessor.PostApi(Operacion, "Operacion/Insert");

                var diccionario = new Dictionary <string, bool>();
                diccionario.Add("TransferenciaEntrada", false);
                Operacion = new OperacionDto();
                MessageBox.Show("La operacion a sido registrado con exito!");
            }
        }
示例#4
0
        private void CerrarFormaPago(string nombreBoton)
        {
            Vender = false;
            Cobrar = 0;
            switch (nombreBoton)
            {
            case "Cheque":
                Cheque        = false;
                ChequeEntrada = new ChequeEntradaDto();
                break;

            case "Efectivo":
                Efectivo = false;
                break;

            case "Transferencia":
                Transferencia = false;
                Operacion     = new OperacionDto();
                break;

            case "Deposito":
                Deposito  = false;
                Operacion = new OperacionDto();
                break;
            }
        }
        private void Cancelar()
        {
            Operacion = new OperacionDto();
            var diccionario = new Dictionary <string, bool>();

            diccionario.Add("TransferenciaEntrada", false);
            eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario);
        }
示例#6
0
 public async Task Insertar(OperacionDto dto)
 {
     using (var context = new DataContext())
     {
         var operacion = _mapper.Map <Dominio.Entidades.Operacion>(dto);
         await _operacionRepositorio.Create(operacion);
     }
 }
 public TransferenciaEntradaViewModel(IEventAggregator eventAggregator)
 {
     this.eventAggregator = eventAggregator;
     CerrarCommand        = new DelegateCommand(Cancelar);
     CrearCommand         = new DelegateCommand(Crear);
     Operacion            = new OperacionDto();
     this.eventAggregator.GetEvent <PubSubEvent <string> >().Subscribe(Uso);
 }
示例#8
0
        public TransferenciaSalidaViewModel(IEventAggregator eventAggregator)
        {
            this.eventAggregator = eventAggregator;
            CerrarCommand        = new DelegateCommand(Cancelar);
            CrearCommand         = new DelegateCommand(Crear);
            Operacion            = new OperacionDto();

            this.eventAggregator.GetEvent <PubSubEvent <ComprobanteCompraDto> >().Subscribe(CargarComprobante);
            this.eventAggregator.GetEvent <PubSubEvent <string> >().Subscribe(Uso);
            this.eventAggregator.GetEvent <PubSubEvent <decimal> >().Subscribe(PasandoPrecio);
        }
示例#9
0
        public ActionResult <T> DevolverResultadoOMostrarErrores <T>(OperacionDto <T> operacion)
        {
            if (operacion.Completado)
            {
                return(operacion.Resultado);
            }

            return(BadRequest(new
            {
                mensajes = operacion.Mensajes
            }));
        }
示例#10
0
        private async void PagoCheque()
        {
            if (ChequeEntrada.Banco != null && ChequeEntrada.Monto > 0 && !string.IsNullOrWhiteSpace(ChequeEntrada.Serie) && (Dia > 0 && Dia < 32) && (Mes > 0 && Mes < 13) && Ano > 1900 && !string.IsNullOrWhiteSpace(ChequeEntrada.EmitidoPor) && ChequeEntrada.Numero > 0)
            {
                ChequeEntrada.FechaHasta = new DateTime(Ano, Mes, Dia);
                ChequeEntrada.BancoId    = ChequeEntrada.Banco.Id;
                ChequeEntrada.Usado      = UsadoEn.Venta;
                var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{ChequeEntrada.BancoId}");

                await ApiProcessor.PostApi <ChequeEntradaDto>(ChequeEntrada, "ChequeEntrada/Insert");

                var op = new OperacionDto
                {
                    CuentaCorrienteId = cuentaCorriente.Id,
                    Debe             = ChequeEntrada.Monto,
                    EstaEnResumen    = true,
                    FechaEmision     = ChequeEntrada.FechaDesde,
                    TipoOperacion    = Constantes.TipoOperacion.Cheque,
                    DePara           = ChequeEntrada.EmitidoPor,
                    Descontado       = ChequeEntrada.MontoContado,
                    Concepto         = ChequeEntrada.Concepto,
                    FechaVencimiento = ChequeEntrada.FechaHasta,
                    CodigoCausal     = ChequeEntrada.Serie,
                    Haber            = 0,
                    Referencia       = ChequeEntrada.Numero,
                    ReferenciaPlus   = $"{ ChequeEntrada.Numero}"
                };
                await ApiProcessor.PostApi <OperacionDto>(op, "Operacion/Insert");

                ChequeEntrada        = new ChequeEntradaDto();
                Dia                  = Mes = Ano = 0;
                Presupuesto.Cobrado += Cobrar;
                if (Total == Presupuesto.Cobrado)
                {
                    Presupuesto.EstadoDeCobro = Constantes.EstadoDeCobro.Cobrado;
                }
                await ApiProcessor.PutApi(Presupuesto, $"Presupuesto/{Presupuesto.Id}");

                Cobrar = 0;
                if (Presupuesto.EstadoDeCobro == EstadoDeCobro.Cobrado)
                {
                    await Inicializar();
                }
                Presupuesto = new PresupuestoDto();
                Cheque      = false;
                MessageBox.Show("El cheque a sido registrado con exito!");
            }
            else
            {
                MessageBox.Show("Faltan datos para realizar la carga!");
            }
        }
示例#11
0
        private async void ExtraerDinero()
        {
            if (Extraccion > 0)
            {
                if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado"))
                {
                    var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}");

                    Operacion.CuentaCorrienteId = cuentaCorriente.Id;
                    Operacion.FechaVencimiento  = Operacion.FechaEmision;
                    Operacion.TipoOperacion     = TipoOperacion.Deposito;
                    Operacion.DePara            = "Gonelec";
                    Operacion.Concepto          = "Extraccion";
                    Operacion.Debe           = 0;
                    Operacion.Haber          = Extraccion;
                    Operacion.Referencia     = 0;
                    Operacion.ReferenciaPlus = "";
                    var deposito = new DepositoDto();
                    deposito.BancoId  = Banco.Id;
                    deposito.Usado    = UsadoEn.Banco;
                    deposito.Entrada  = false;
                    deposito.DePara   = Operacion.DePara;
                    deposito.Concepto = "Extraccion";
                    deposito.Fecha    = (DateTime)Operacion.FechaEmision;
                    deposito.Numero   = long.Parse(Operacion.CodigoCausal);
                    deposito.Monto    = (decimal)Operacion.Haber;
                    await ApiProcessor.PostApi(deposito, "Deposito/Insert");

                    await ApiProcessor.PostApi(Operacion, "Operacion/Insert");

                    Operacion = new OperacionDto();
                    var Caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta");

                    var detalleCaja = new DetalleCajaDto
                    {
                        CajaId         = Caja.Id,
                        Monto          = Extraccion,
                        TipoMovimiento = Constantes.TipoMovimiento.Ingreso,
                        TipoPago       = Constantes.TipoPago.Efectivo
                    };
                    await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert");

                    MessageBox.Show("Se completo la extraccion!");
                    Extraccion = 0;
                    Banco      = null;
                }
                else
                {
                    MessageBox.Show("Por favor abra la caja");
                }
            }
        }
示例#12
0
 public BancoMenuViewModel(IEventAggregator eventAggregator)
 {
     this.eventAggregator = eventAggregator;
     Operacion            = new OperacionDto();
     CancelarCommando     = new DelegateCommand(CancelarExtraccion);
     CargarCommando       = new DelegateCommand(ExtraerDinero);
     AbrirCheque          = new DelegateCommand(AbrirChequeEntrada);
     AbrirTransfEntrada   = new DelegateCommand(AbrirTransfE);
     AbrirTransfSalida    = new DelegateCommand(AbrirTransfS);
     AbrirDepositoEntrada = new DelegateCommand(AbrirDepositoE);
     AbrirDepositoSalida  = new DelegateCommand(AbrirDepositoS);
     eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Subscribe(CerrarPops);
 }
示例#13
0
        private async void PagoTransferencia()
        {
            if (Operacion.Debe > 0 && Banco != null)
            {
                var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}");

                Operacion.CuentaCorrienteId = cuentaCorriente.Id;
                Operacion.FechaEmision      = DateTime.Now;
                Operacion.FechaVencimiento  = DateTime.Now;
                Operacion.TipoOperacion     = TipoOperacion.Tranferencia;
                Operacion.DePara            = Cliente.RazonSocial;
                Operacion.Haber             = 0;
                Operacion.Referencia        = 0;
                Operacion.ReferenciaPlus    = "";
                await ApiProcessor.PostApi(Operacion, "Operacion/Insert");

                Operacion = new OperacionDto();
                var transferencia = new TransferenciaDto();
                transferencia.BancoId          = Banco.Id;
                transferencia.Usado            = UsadoEn.Venta;
                transferencia.Entrada          = false;
                transferencia.ImpuestoBancario = Impuesto;
                transferencia.Concepto         = Operacion.Concepto;
                transferencia.Fecha            = (DateTime)Operacion.FechaEmision;
                transferencia.PagueseA         = Cliente.RazonSocial;
                transferencia.Numero           = long.Parse(Operacion.CodigoCausal);
                transferencia.Monto            = Total;
                await ApiProcessor.PostApi(transferencia, "Transferencia/Insert");

                Presupuesto.Cobrado += Cobrar;
                if (Total == Presupuesto.Cobrado)
                {
                    Presupuesto.EstadoDeCobro = Constantes.EstadoDeCobro.Cobrado;
                }

                await ApiProcessor.PutApi(Presupuesto, $"Presupuesto/{Presupuesto.Id}");

                Cobrar = 0;
                if (Presupuesto.EstadoDeCobro == EstadoDeCobro.Cobrado)
                {
                    await Inicializar();
                }
                Presupuesto   = new PresupuestoDto();
                Transferencia = false;
                MessageBox.Show("La operacion a sido registrado con exito!");
            }
            else
            {
                MessageBox.Show("Faltan datos para realizar la carga!");
            }
        }
示例#14
0
 public async Task Modificar(OperacionDto dto)
 {
     using (var context = new DataContext())
     {
         var operacion = context.Operaciones.FirstOrDefault(x => x.Id == dto.Id);
         operacion.CodigoCausal      = dto.CodigoCausal;
         operacion.CuentaCorrienteId = dto.CuentaCorrienteId;
         operacion.Debe             = dto.Debe;
         operacion.Haber            = dto.Haber;
         operacion.Referencia       = dto.Referencia;
         operacion.ReferenciaPlus   = dto.ReferenciaPlus;
         operacion.FechaEmision     = dto.FechaEmision;
         operacion.FechaVencimiento = dto.FechaVencimiento;
         operacion.EstaEnResumen    = dto.EstaEnResumen;
         await _operacionRepositorio.Update(operacion);
     }
 }
示例#15
0
        protected T ReturnResultShowErrors <T>(OperacionDto <T> operacion)
        {
            if (!operacion.Completado)
            {
                switch (operacion.Codigo)
                {
                case CodigosOperacionDto.NotExist:
                    GenerateNotFoundError(operacion.Mensajes);
                    break;

                default:
                    GenerarErrorDeOperacion(operacion);
                    break;
                }
            }
            return(operacion.Resultado);
        }
示例#16
0
        public async Task <IActionResult> RouletteOpening(OperacionDto operacionDto)
        {
            string mesage = string.Empty;

            try
            {
                var fecha1 = Convert.ToDateTime(operacionDto.Fecha);
                operacionDto.Fecha = fecha1.ToString("yyyy-MM-ddTHH:mm:ssZ");
                var operacion = _mapper.Map <Operacion>(operacionDto);
                await _sdOperacion.RouletteOpening(operacion);

                operacionDto = _mapper.Map <OperacionDto>(operacion);
            }
            catch (CustomException ex)
            {
                mesage = ex.Message;
            }
            return(Ok(mesage));
        }
        protected T ObtenerResultadoOGenerarErrorDeOperacion <T>(OperacionDto <T> operacion)
        {
            if (!operacion.Completado)
            {
                switch (operacion.Codigo)
                {
                case CodigosOperacionDto.NoExiste:
                    GenerarNotFoundError(operacion.Mensajes);
                    break;

                default:
                    GenerarBadRequestError((int)operacion.Codigo, operacion.Mensajes);
                    break;
                }
            }


            return(operacion.Resultado);
        }
示例#18
0
        private async void Crear()
        {
            Operacion.Haber = Total;
            if (Operacion.Haber > 0 && Banco != null)
            {
                var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}");

                Operacion.Haber             = Total;
                Operacion.CuentaCorrienteId = cuentaCorriente.Id;
                Operacion.FechaVencimiento  = Operacion.FechaEmision;
                Operacion.TipoOperacion     = TipoOperacion.Tranferencia;
                Operacion.Debe           = 0;
                Operacion.Referencia     = 0;
                Operacion.ReferenciaPlus = "";
                var transferencia = new TransferenciaDto();
                transferencia.BancoId          = Banco.Id;
                transferencia.Usado            = Usado;
                transferencia.Entrada          = false;
                transferencia.ImpuestoBancario = Impuesto;
                transferencia.Concepto         = Operacion.Concepto;
                transferencia.Fecha            = (DateTime)Operacion.FechaEmision;
                transferencia.PagueseA         = Operacion.DePara;
                transferencia.Numero           = long.Parse(Operacion.CodigoCausal);
                transferencia.Monto            = Total;
                await ApiProcessor.PostApi(transferencia, "Transferencia/Insert");

                await ApiProcessor.PostApi(Operacion, "Operacion/Insert");

                var diccionario = new Dictionary <string, bool>();
                eventAggregator.GetEvent <PubSubEvent <bool> >().Publish(true);
                diccionario.Add("TransferenciaSalida", true);
                eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario);
                Operacion       = new OperacionDto();
                ActivarSubtotal = true;
                MessageBox.Show("La operacion a sido registrado con exito!");
            }
            else
            {
                MessageBox.Show("Faltan ingresar datos");
            }
        }
示例#19
0
 public VentasPresupuestosViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
 {
     this.eventAggregator = eventAggregator;
     this.regionManager   = regionManager;
     Command             = new DelegateCommand <PresupuestoDto>(DobleClick);
     Presupuesto         = null;
     Operacion           = new OperacionDto();
     SacarPantalla       = new DelegateCommand(SacarPantallas);
     CargarTransferencia = new DelegateCommand(PagoTransferencia);
     CargarCheque        = new DelegateCommand(PagoCheque);
     CargarDeposito      = new DelegateCommand(PagoDeposito);
     CrearCommand        = new DelegateCommand(Facturar);
     CobrarEfectivo      = new DelegateCommand(CobrarEfec);
     AbrirFormaPago      = new DelegateCommand <string>(FormaPagoOpen);
     CancelarFormaPago   = new DelegateCommand <string>(CerrarFormaPago);
     Cerrar = new DelegateCommand(CerrarOpc);
     CancelarBlancoCommand = new DelegateCommand(CancelarBlanco);
     CancelarNegroCommand  = new DelegateCommand(CancelarNegro);
     PagoSinComprobante    = new DelegateCommand(SinComprobanteAbrir);
     PagoConComprobante    = new DelegateCommand(ConComprobanteAbrir);
 }
示例#20
0
        public async void CargarChequeSalida()
        {
            if (ChequeEntrada.Banco != null && ChequeEntrada.Monto > 0 && !string.IsNullOrWhiteSpace(ChequeEntrada.Serie) && (Dia > 0 && Dia < 32) && (Mes > 0 && Mes < 13) && Ano > 1900 && !string.IsNullOrWhiteSpace(ChequeEntrada.EmitidoPor) && ChequeEntrada.Numero > 0)
            {
                ChequeEntrada.FechaHasta = new DateTime(Ano, Mes, Dia);
                ChequeEntrada.BancoId    = ChequeEntrada.Banco.Id;
                await Servicios.ApiProcessor.PostApi(ChequeEntrada, "ChequeEntrada/Insert");

                if (ChequeEntrada.Usado != UsadoEn.Caja && ChequeEntrada.Usado != UsadoEn.Proveedor)
                {
                    var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{ChequeEntrada.BancoId}");

                    var op = new OperacionDto
                    {
                        CuentaCorrienteId = cuentaCorriente.Id,
                        Debe             = ChequeEntrada.Monto,
                        EstaEnResumen    = true,
                        FechaEmision     = ChequeEntrada.FechaDesde,
                        TipoOperacion    = Constantes.TipoOperacion.Cheque,
                        DePara           = ChequeEntrada.EmitidoPor,
                        Descontado       = ChequeEntrada.MontoContado,
                        Concepto         = ChequeEntrada.Concepto,
                        FechaVencimiento = ChequeEntrada.FechaHasta,
                        CodigoCausal     = ChequeEntrada.Serie,
                        Haber            = 0,
                        Referencia       = ChequeEntrada.Numero,
                        ReferenciaPlus   = $"{ChequeEntrada.Numero}"
                    };
                    await ApiProcessor.PostApi(op, "Operacion/Insert");
                }
                else
                {
                    if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado"))
                    {
                        var Caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta");

                        var detalleCaja = new DetalleCajaDto
                        {
                            CajaId         = Caja.Id,
                            Monto          = ChequeEntrada.Monto,
                            TipoMovimiento = Constantes.TipoMovimiento.Ingreso,
                            TipoPago       = Constantes.TipoPago.Cheque
                        };
                        await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert");
                    }

                    else
                    {
                        MessageBox.Show("Por favor abra la caja");
                    }
                }
                var diccionario = new Dictionary <string, bool>();
                diccionario.Add("ChequeSalida", true);
                eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario);
                ChequeEntrada = new ChequeEntradaDto();
                MessageBox.Show("El cheque a sido registrado con exito!");
            }
            else
            {
                MessageBox.Show("Faltan datos para realizar la carga!");
            }
        }
示例#21
0
 protected void GenerarErrorDeOperacion <T>(OperacionDto <T> operacionDto)
 {
     throw new ErrorMessageException(HttpStatusCode.BadRequest, (int)operacionDto.Codigo, operacionDto.Mensajes);
 }