private void ModificarCantidadesPedidasPedidos(AlbaranesModel model) { var PedidosService = new PedidosService(_context, _db); PedidosService.EjercicioId = EjercicioId; var vector = model.Lineas.Where(f => f.Fkpedidos.HasValue); foreach (var item in vector) { var pedido = _db.Pedidos.Include("PedidosLin").SingleOrDefault( f => f.empresa == model.Empresa && f.id == item.Fkpedidos.Value); if (pedido != null) { var cantidadpedida = _db.AlbaranesLin.Where(f => f.empresa == model.Empresa && f.fkpedidos == item.Fkpedidos && f.fkpedidosid == item.Fkpedidosid).Sum(f => f.cantidad); var linea = pedido.PedidosLin.SingleOrDefault(f => f.id == item.Fkpedidosid); if (linea != null) { linea.cantidadpedida = cantidadpedida; var validationService = PedidosService._validationService as PedidosValidation; validationService.EjercicioId = EjercicioId; validationService.FlagActualizarCantidadesPedidas = true; validationService.ValidarGrabar(pedido); _db.Pedidos.AddOrUpdate(pedido); } } } _db.SaveChanges(); }
private void GenerarLineas(PedidosService service, PedidosComprasModel pedidocompra, List <PedidosComprasLinModel> lineas, IEnumerable <StLineasAsistentePedidos> nuevasLineas) { var dictionaryPedidosVentas = new Dictionary <string, PedidosModel>(); var dictionaryArticulos = new Dictionary <string, ArticulosDocumentosModel>(); var serviceArticulos = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var i = 1; foreach (var item in nuevasLineas) { var pedidoObj = dictionaryPedidosVentas.ContainsKey(item.ReferenciaPedidoVenta) ? dictionaryPedidosVentas[item.ReferenciaPedidoVenta] : service.get(service.GetByReferencia(item.ReferenciaPedidoVenta).Id.ToString()) as PedidosModel; if (!dictionaryPedidosVentas.ContainsKey(item.ReferenciaPedidoVenta)) { dictionaryPedidosVentas.Add(item.ReferenciaPedidoVenta, pedidoObj); } var lineaPedidoVenta = pedidoObj.Lineas.Single(f => f.Id == int.Parse(item.IdLinea)); var lineaPedidoCompra = new PedidosComprasLinModel(); var articulosObj = dictionaryArticulos.ContainsKey(lineaPedidoVenta.Fkarticulos) ? dictionaryArticulos[lineaPedidoVenta.Fkarticulos] : serviceArticulos.GetArticulo(lineaPedidoVenta.Fkarticulos, pedidocompra.Fkproveedores, (pedidocompra.Fkmonedas ?? 978).ToString(), pedidocompra.Fkregimeniva, TipoFlujo.Compra) as ArticulosDocumentosModel; if (!dictionaryArticulos.ContainsKey(lineaPedidoVenta.Fkarticulos)) { dictionaryArticulos.Add(lineaPedidoVenta.Fkarticulos, articulosObj); } var properties = lineaPedidoCompra.GetType().GetProperties(); foreach (var p in properties) { if (lineaPedidoVenta.GetType().GetProperty(p.Name) != null) { p.SetValue(lineaPedidoCompra, lineaPedidoVenta.GetType().GetProperty(p.Name).GetValue(lineaPedidoVenta)); } } lineaPedidoCompra.Fkpresupuestos = null; lineaPedidoCompra.Fkpresupuestosid = null; lineaPedidoCompra.Fkpresupuestosreferencia = ""; lineaPedidoCompra.Largo = lineaPedidoVenta.Largo; lineaPedidoCompra.Ancho = lineaPedidoVenta.Ancho; lineaPedidoCompra.Grueso = lineaPedidoVenta.Grueso; lineaPedidoCompra.Metros = lineaPedidoVenta.Metros; lineaPedidoCompra.Id = i++; lineaPedidoCompra.Precio = articulosObj.Precio; var elem = _importarService.ImportarLinea(lineaPedidoCompra); lineaPedidoCompra.Metros = elem.Metros; lineaPedidoCompra.Importe = elem.Importe; lineaPedidoCompra.Fkpedidosventas = pedidoObj.Id; lineaPedidoCompra.Fkpedidosventasreferencia = pedidoObj.Referencia; lineas.Add(lineaPedidoCompra); } }