Пример #1
0
        public PedidosModel ImportarPresupuesto(PresupuestosModel presupuesto)
        {
            //calcular serie asociada
            if (presupuesto.Lineas.Any(f => (f.Cantidad ?? 0) - (f.Cantidadpedida ?? 0) > 0))
            {
                var prospectoService = FService.Instance.GetService(typeof(ProspectosModel), _context);
                if (prospectoService.exists(presupuesto.Fkclientes))
                {
                    throw new Exception(RProspectos.ErrorCrearPedidoProspecto);
                }

                var result = Helper.fModel.GetModel <PedidosModel>(_context);
                result.Importado = true;
                ImportarCabecera(presupuesto, result);
                var maxId = result.Lineas.Any() ? result.Lineas.Max(f => f.Id) : 0;
                result.Lineas.AddRange(ImportarLineas(maxId, ConvertLineasModelToILineas(presupuesto.Id.Value.ToString(), presupuesto.Referencia, presupuesto.Lineas)));
                EstablecerSerie(presupuesto.Fkseries, result);

                //recalculo importes lineas y totales
                RecalculaLineas(result.Lineas, result.Porcentajedescuentoprontopago ?? 0, result.Porcentajedescuentocomercial ?? 0, result.Fkregimeniva, result.Importeportes ?? 0, result.Decimalesmonedas);
                result.Totales = Recalculartotales(result.Lineas, result.Porcentajedescuentoprontopago ?? 0,
                                                   result.Porcentajedescuentocomercial ?? 0, result.Importeportes ?? 0,
                                                   result.Decimalesmonedas).ToList();

                return(result);
            }

            throw new ValidationException(RPresupuestos.ErrorSinCantidadPendiente);
        }
Пример #2
0
        private void ImportarCabecera(PresupuestosModel presupuesto, PedidosModel result)
        {
            var properties = typeof(PedidosModel).GetProperties();

            foreach (var item in properties)
            {
                if (item.Name != "Lineas" && item.Name != "Totales")
                {
                    var property = typeof(PresupuestosModel).GetProperty(item.Name);
                    if (property != null && property.CanWrite)
                    {
                        var value = property.GetValue(presupuesto);
                        item.SetValue(result, value);
                    }
                }
            }

            result.Fechadocumento = DateTime.Now;
            var appService = new ApplicationHelper(_context);

            result.Fkestados = appService.GetConfiguracion().Estadopedidosventasinicial;
        }