private void GenerarLineas(AlbaranesService albaranesService, List <FacturasLinModel> lineas, IEnumerable <string> albaranesreferencia) { var list = albaranesreferencia.Where(f => CanImportarLinea(lineas, f)); foreach (var item in list) { GenerarLinea(albaranesService, lineas, item); } }
private void GenerarLinea(AlbaranesService albaranesService, List <FacturasLinModel> lineas, string referencia) { var albaran = albaranesService.GetByReferencia(referencia); albaran = albaranesService.get(albaran.Id.ToString()) as AlbaranesModel; //if (albaran.Lineas.Any(f => (f.Cantidad ?? 0) - (f.Cantidadpedida ?? 0) > 0)) - ANG - se quita la comprobación de cantidad pedida, el albaran siempre se factura entero if (albaran.Lineas.Any(f => (f.Cantidad ?? 0) != 0)) { var maxId = lineas.Any() ? lineas.Max(f => f.Id) + 1 : 1; lineas.AddRange(ImportarLineas(albaran.Id, maxId, albaranesService.GetLineasImportarAlbaran(referencia))); } if (lineas.Count == 0) { throw new ValidationException("Los albaranes seleccionados no han generado ninguna linea"); } }
//public void GetVencimientoId(FacturasModel cabecera, FacturasVencimientosModel item) //{ // var formapagoService = FService.Instance.GetService(typeof(FormasPagoModel), _context) as FormasPagoService; // var formapagoObj = formapagoService.get(cabecera.Fkformaspago.ToString()) as FormasPagoModel; // var clienteService = FService.Instance.GetService(typeof(ClientesModel), _context) as ClientesService; // var clienteObj = clienteService.get(cabecera.Fkclientes) as ClientesModel; // var monedasService = FService.Instance.GetService(typeof(MonedasModel), _context) as MonedasService; // var monedasObj = monedasService.get(cabecera.Fkmonedas.ToString()) as MonedasModel; // var diafijo1 = clienteObj.Diafijopago1; // var diafijo2 = clienteObj.Diafijopago2; // var fechaFactura = cabecera.Fechadocumento; // var decimales = monedasObj.Decimales; // item.Fechavencimiento = GetFechavencimiento(fechaFactura.Value, item.Diasvencimiento.Value, diafijo1, // diafijo2, formapagoObj.ExcluirFestivos); // item.Importevencimiento = Math.Round(item.Importevencimiento.Value, decimales); // item.Decimalesmonedas = monedasObj.Decimales; //} #endregion #region Helper private void ModificarCantidadesPedidasAlbaranes(FacturasModel model, TipoOperacion tipo = TipoOperacion.Editar) { var AlbaranesService = new AlbaranesService(_context, _db); AlbaranesService.EjercicioId = EjercicioId; foreach (var item in model.Lineas) { var albaran = _db.Albaranes.Include("AlbaranesLin").Single( f => f.empresa == model.Empresa && f.id == item.Fkalbaranes); foreach (var linea in albaran.AlbaranesLin) { linea.cantidadpedida = tipo == TipoOperacion.Baja ? 0 : linea.cantidad; } var validationService = AlbaranesService._validationService as AlbaranesValidation; validationService.EjercicioId = EjercicioId; validationService.FlagActualizarCantidadesFacturadas = true; validationService.ValidarGrabar(albaran); _db.Albaranes.AddOrUpdate(albaran); } _db.SaveChanges(); }