public async Task Modificar(ComprobanteSalidaDto dto)
 {
     using (var context = new DataContext())
     {
         var comprobanteModificar = context.ComprobantesSalida.FirstOrDefault(x => x.Id == dto.Id);
         comprobanteModificar = _mapper.Map <Dominio.Entidades.ComprobanteSalida>(dto);
         await _comprobanteRepositorio.Update(comprobanteModificar);
     }
 }
 public ComprobanteSalidaViewModel(IEventAggregator eventAggregator)
 {
     this.eventAggregator = eventAggregator;
     CargarComando        = new DelegateCommand(CargaComprobante);
     CancelarCommando     = new DelegateCommand(Cancelar);
     ComprobanteSalida    = new ComprobanteSalidaDto();
     this.eventAggregator.GetEvent <PubSubEvent <string> >().Subscribe(Usado);
     this.eventAggregator.GetEvent <PubSubEvent <decimal> >().Subscribe(PasandoPrecio);
     this.eventAggregator.GetEvent <PubSubEvent <ComprobanteCompraDto> >().Subscribe(Compra);
 }
        public async Task <long> Insertar(ComprobanteSalidaDto dto)
        {
            using (var context = new DataContext())
            {
                var comprobanteNuevo = _mapper.Map <Dominio.Entidades.ComprobanteSalida>(dto);
                await _comprobanteRepositorio.Create(comprobanteNuevo);

                return(comprobanteNuevo.Id);
            }
        }
        private void Cancelar()
        {
            var diccionario = new Dictionary <string, bool>();

            Subtotal = 0; IVA = 0; Recargos = 0; Descuento = 0; Percepcion = 0; Retencion = 0;
            diccionario.Add("ComprobanteSalida", false);
            ComprobanteSalida = new ComprobanteSalidaDto();
            eventAggregator.GetEvent <PubSubEvent <bool> >().Publish(false);
            eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario);
            ActivarSubtotal = true;
        }
        public async void CargaComprobante()
        {
            if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado"))
            {
                ComprobanteSalida.Monto = Subtotal;
                if (ComprobanteSalida.Monto > 0 && ComprobanteSalida.NumeroComprobante > 0 && ComprobanteSalida.SubRubro != null && ComprobanteSalida.TipoComprobanteSalida > 0)
                {
                    ComprobanteSalida.UsuarioId    = UsuarioGral.UsuarioId;
                    ComprobanteSalida.Interes      = Recargos;
                    ComprobanteSalida.Descuento    = Descuento;
                    ComprobanteSalida.Retenciones  = Retencion;
                    ComprobanteSalida.Percepciones = Percepcion;
                    ComprobanteSalida.Iva          = IVA;
                    ComprobanteSalida.SubRubroId   = ComprobanteSalida.SubRubro.Id;
                    await ApiProcessor.PostApi <ComprobanteSalidaDto>(ComprobanteSalida, "ComprobanteSalida/Insert");

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

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

                    var diccionario = new Dictionary <string, bool>();
                    diccionario.Add("ComprobanteSalida", false);
                    eventAggregator.GetEvent <PubSubEvent <bool> >().Publish(true);
                    eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario);
                    ComprobanteSalida = new ComprobanteSalidaDto();
                    Subtotal          = 0; IVA = 0; Recargos = 0; Descuento = 0; Percepcion = 0; Retencion = 0;
                    ActivarSubtotal   = true;
                }
                else
                {
                    MessageBox.Show("Faltan datos que rellenar");
                }
            }
            else
            {
                MessageBox.Show("Por favor abra la caja");
            }
        }