public void InsertPedidoItem(Orden orden) { using (var dbTransaction = _applicationDbContext.Database.BeginTransaction()) { try { //Lista de bienes patrimoniales List <int> bienServList = orden.OrdenItem.Select(x => x.BienServicioId).ToList(); string mes = orden.FechaOrden.Month.ToString(new string(DigitosConstante.CERO[0], 2)); MesContable mesContable = _applicationDbContext .MesContable.Where(x => x.Codigo == mes).FirstOrDefault(); foreach (int item in bienServList) { OrdenSaldo ordenSaldo = _applicationDbContext .OrdenSaldo.Where(x => x.BienServicioId == item && x.AlmacenId == orden.AlmacenId && x.PeriodoEmpresaId == orden.PeriodoEmpresaId).FirstOrDefault(); foreach (var ordenItem in orden.OrdenItem) { if (ordenItem.BienServicioId.Equals(ordenSaldo.BienServicioId)) { _applicationDbContext.OrdenSaldo.Where(x => x.BienServicioId == item && x.AlmacenId == orden.AlmacenId && x.PeriodoEmpresaId == orden.PeriodoEmpresaId).ToList().ForEach(x => { x.CantidadSalida += ordenItem.Cantidad; x.CantidadReserva -= ordenItem.Cantidad; x.ValorSalida += ordenItem.Cantidad * ordenItem.ValorUnitario; x.MontoSaldo -= x.ValorSalida; }); _applicationDbContext.SaveChanges(); break; } } } _applicationDbContext.OrdenItem.AddRange(orden.OrdenItem); orden.Cantidad = orden.OrdenItem.Sum(x => x.Cantidad); orden.SubTotal = orden.OrdenItem.Sum(x => x.ValorUnitario) * orden.Cantidad; orden.TotalPedido = orden.SubTotal; orden.MesContableId = mesContable.MesContableId; orden.Impuesto = 0; _applicationDbContext.Orden.Add(orden); _applicationDbContext.SaveChanges(); dbTransaction.Commit(); } catch (DbEntityValidationException ex) { dbTransaction.Rollback(); string entityValidationError = GetEntityValidationErrorMessage(ex); throw new Exception(entityValidationError); } } }
public void Update(MesContableDTO entity) { try { MesContable mesContable = Mapper.Map <MesContable>(entity); mesContableRepository.Update(mesContable); } catch (Exception ex) { throw ex; } }
protected override async Task OpenCreateModalAsync() { lastPeriodoContable = await AppService.GetLastAsync(); MesContable inicio = new MesContable(DateTime.Now.Year, DateTime.Now.Month); if (lastPeriodoContable != null) { inicio = lastPeriodoContable.Fin + 1; InicioDisabled = true; } await base.OpenCreateModalAsync(); NewEntity.Inicio = ObjectMapper.Map <MesContable, MesContableEditDto>(inicio); NewEntity.Fin = ObjectMapper.Map <MesContable, MesContableEditDto>(inicio + 11); }
public async Task <PeriodoContable> CreateAsync(MesContable inicio, MesContable fin) { var last = await GetLastAsync(); if (last != null) { if (!inicio.Equals(last.Fin + 1)) { throw new ArgumentException("El inicio debe ser un mes contiguo al último periodo"); } } PeriodoContable periodo = new PeriodoContable(inicio, fin); await _periodosStore.InsertAsync(periodo, autoSave : true); return(periodo); }
public void suma() { var mes = new MesContable(2010, 1); var uno = mes; uno++; var diez = mes + 10; var once = mes + 12; var dosaños = mes + 24; uno.Año.ShouldBe(2010); uno.Mes.ShouldBe(2); diez.Año.ShouldBe(2010); diez.Mes.ShouldBe(11); once.Año.ShouldBe(2011); once.Mes.ShouldBe(1); dosaños.Año.ShouldBe(2012); dosaños.Mes.ShouldBe(1); }
public async Task InsertarCompra(Orden orden) { using (var dbTransaction = _applicationDbContext.Database.BeginTransaction()) { try { List <int> bienServList = orden.OrdenItem.Select(x => x.BienServicioId).ToList(); string mes = orden.FechaOrden.Month.ToString(new string(DigitosConstante.CERO[0], 2)); MesContable mesContable = await _applicationDbContext.MesContable.Where(x => x.Codigo == mes).FirstOrDefaultAsync(); foreach (int item in bienServList) { OrdenSaldo ordenSaldo = await _applicationDbContext.OrdenSaldo .Where(x => x.BienServicioId == item && x.AlmacenId == orden.AlmacenId && x.PeriodoEmpresaId == orden.PeriodoEmpresaId).FirstOrDefaultAsync(); if (ordenSaldo == null) { foreach (var ordenItem in orden.OrdenItem) { if (item.Equals(ordenItem.BienServicioId)) { var ordeSaldo = new OrdenSaldo { AlmacenId = orden.AlmacenId, MesContableId = mesContable.MesContableId, PeriodoEmpresaId = orden.PeriodoEmpresaId, BienServicioId = ordenItem.BienServicioId }; ordeSaldo.CantidadIngreso += ordenItem.Cantidad; ordeSaldo.ValorIngreso += ordenItem.Cantidad * ordenItem.ValorUnitario; ordeSaldo.MontoSaldo += ordenItem.Cantidad * ordenItem.ValorUnitario; ordeSaldo.CantidadReserva += ordenItem.Cantidad; _applicationDbContext.OrdenSaldo.Add(ordeSaldo); await _applicationDbContext.SaveChangesAsync(); break; } } } else { foreach (var ordenItem in orden.OrdenItem) { if (ordenItem.BienServicioId.Equals(ordenSaldo.BienServicioId)) { _applicationDbContext.OrdenSaldo.Where(x => x.BienServicioId == item && x.AlmacenId == orden.AlmacenId && x.PeriodoEmpresaId == orden.PeriodoEmpresaId).ToList().ForEach(x => { x.CantidadIngreso += ordenItem.Cantidad; x.ValorIngreso = ordenItem.Cantidad * ordenItem.ValorUnitario; }); await _applicationDbContext.SaveChangesAsync(); break; } } } } _applicationDbContext.OrdenItem.AddRange(orden.OrdenItem); decimal impuesto = ParametrosSistema.VALOR_IMPUESTO / 100; orden.Cantidad = orden.OrdenItem.Sum(x => x.Cantidad); orden.SubTotal = orden.OrdenItem.Sum(x => x.ValorUnitario) * orden.Cantidad; orden.Impuesto = orden.SubTotal * impuesto; orden.TotalPedido = orden.SubTotal + orden.Impuesto; orden.MesContableId = mesContable.MesContableId; _applicationDbContext.Orden.Add(orden); await _applicationDbContext.SaveChangesAsync(); dbTransaction.Commit(); } catch (DbEntityValidationException ex) { dbTransaction.Rollback(); string entityValidationError = GetEntityValidationErrorMessage(ex); throw new Exception(entityValidationError); } } }
public PeriodoContable(MesContable inicio, MesContable fin) { Inicio = inicio; Fin = fin; }