Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
            }
        }