public override void Guardar() { try { txtCentinela.Focus();//Para rebindeeen los campos var falloCentinela = new Fallo(); falloCentinela.Anexo = AnexoSelect; falloCentinela.FechaFallo = FalloService.AnexoDao.FechaServidor(); //Se usa un fallo centinela para las validaciones if (!Util.DatosValidos(falloCentinela, lblNumErrors, listaError)) return; if (FalloService.CotizacionDao.ExisteAnexoFallo(AnexoSelect)) { XtraMessageBox.Show(@"El anexo ya tiene fallo eliminelo antes", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } var lista = FalloService.GuardarFallo(AnexoSelect, falloCentinela.FechaFallo.Value); if (lista.Count > 0) { XtraMessageBox.Show(@"Fallo realizado Exitosamente Anexo " + AnexoSelect.NumeroAnexo, @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Information); base.EntityActual = lista[0]; } else { XtraMessageBox.Show(@"El anexo no tiene ni una cotizacion", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ee) { XtraMessageBox.Show(@"Ocurrio un error en el fallo " + ee.Message, @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.Error("Generado por:" + FrmModuloAcceso.UsuarioLog, ee); } }
public List<Fallo> GuardarFallo(Anexo anexo, DateTime fechaFallo) { var result = new List<Fallo>(); var anexosDetalle = AnexoDao.CargarAnexoDetalle(anexo); double index = 1.0; foreach (var anexoDetalle in anexosDetalle) { //Evento var porcentaje = (int)((index++ / anexosDetalle.Count) * 100.0); OnFalloProceso(new FalloProcesoEvento(porcentaje)); var cotizacionesDetalle = CotizacionDao.CargarCotizacionDetalle(anexo, anexoDetalle.Articulo, anexo.Almacen); if (cotizacionesDetalle.Count == 0) continue; var cotizacionDetalle = cotizacionesDetalle[0]; var falloFound = FalloDao.ExisteProvCotiz(cotizacionDetalle.Cotizacion, cotizacionDetalle.Cotizacion.Proveedor); var fechaActual = FalloDao.FechaServidor(); Fallo falloActual = null; if (falloFound == null) { falloActual = new Fallo { IdFallo = FalloDao.MaximoId().Value, Anexo = anexo, Cotizacion = cotizacionDetalle.Cotizacion, Proveedor = cotizacionDetalle.Cotizacion.Proveedor, Estado = "A", Usuario = anexo.Usuario, Almacen = anexo.Almacen, FechaFallo = fechaFallo, FechaModificacion = fechaActual, FechaCaptura = fechaActual, IpTerminal = Util.IpTerminal(), Modificacion = 0 }; FalloDao.Insert(falloActual); } else falloActual = falloFound; falloActual.FalloDetalle = new List<FalloDetalle>(); result.Add(falloActual); var falloDetalle = new FalloDetalle() { IdFalloDetalle = FalloDetalleDao.MaximoId().Value, Fallo = falloActual, RenglonAnexo = cotizacionDetalle.RenglonAnexo, CantidadMax = 0, CantidadMin = 0, CantidadPed = 0, PrecioFallo = cotizacionDetalle.Precio, Articulo = cotizacionDetalle.Articulo }; if (anexo.TipoContrato == Contrato.ABIERTO) { falloDetalle.CantidadMin = anexoDetalle.CantidadMinimo; falloDetalle.CantidadMax = anexoDetalle.CantidadMaximo; } else if (anexo.TipoContrato == Contrato.CERRADO) { falloDetalle.CantidadMin = anexoDetalle.CantidadMaximo; falloDetalle.CantidadMax = anexoDetalle.CantidadMaximo; } FalloDetalleDao.Insert(falloDetalle); falloActual.FalloDetalle.Add(falloDetalle); } return result; }
/// <summary> /// Reporte Final de la adjudicacion por proveedor /// </summary> /// <param name="fallo"></param> private void ReporteFallo(Fallo fallo) { var listaFalloRep = new List<FalloRep>(); var fallosConsulta = FalloService.ConsultarFallo(fallo.Anexo); foreach (var falloConsulta in fallosConsulta) { var falloRep = new FalloRep{ FechaFallo = falloConsulta.FechaFallo.Value, TipoLicitacion = "LICITACION PUBLICA " + fallo.Anexo.TipoLicitacion + " O INVITACION RESTRINGIDA", Anexo = fallo.Anexo.ToString(), Proveedor = falloConsulta.Proveedor.NombreFiscal }; falloConsulta.FalloDetalle = FalloService.FalloDao. ConsultarFalloDetalle(falloConsulta); foreach (var falloDetalleConsulta in falloConsulta.FalloDetalle) { falloRep.Renglones += falloDetalleConsulta.RenglonAnexo + ","; falloRep.TotalAdjudicado += falloDetalleConsulta.CantidadMin.Value *falloDetalleConsulta.PrecioFallo.Value; } //Quitar la utima coma falloRep.Renglones = falloRep.Renglones.Substring(0, falloRep.Renglones.Length - 1); listaFalloRep.Add(falloRep); } ReporteFallo1.SetDataSource(listaFalloRep); crystalReportViewer.ReportSource = ReporteFallo1; crystalReportViewer.Refresh(); Text = @"ReporteFallo"; }