private bool validarPedidoEntrega(PedidoEntrega pedidoEntrega) { if (pedidoEntrega.FechaInicial == null || pedidoEntrega.FechaFinal == null) { XtraMessageBox.Show(@"Fecha inicial y fecha final requeridos", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } var fechaInicial = pedidoEntrega.FechaInicial.Value; var fechaFinal = pedidoEntrega.FechaFinal.Value; if (fechaInicial.CompareTo(fechaFinal) > 0) { XtraMessageBox.Show(@"Fecha inicial debe ser menor o igual fecha final", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } decimal? suma = _pedidoDetalle.PedidoEntrega.Sum(entrega => entrega.Cantidad); suma += pedidoEntrega.Cantidad; if (suma > _pedidoDetalle.Cantidad ) { XtraMessageBox.Show(@"La suma de los renglones debe coincidir con " + _pedidoDetalle.Cantidad, @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } return true; }
private void SpinEdit1KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { var pedidoEntrega = new PedidoEntrega(); pedidoEntrega.FechaInicial = deFechaInicial.DateTime; pedidoEntrega.FechaFinal = deFechaFinal.DateTime; pedidoEntrega.Cantidad = seCantidad.Value; if (validarPedidoEntrega(pedidoEntrega)) { (bsPedidoEntrega.DataSource as List<PedidoEntrega>).Add(pedidoEntrega); gvPedidoEntrega.RefreshData(); } } }
public void TestInsertarPedidoEntrega() { var pedido = new Pedido(); pedido.FechaPedido = DateTime.Now; pedido.NumeroPedido = 215; pedido.CatTipopedido = new CatTipopedido(1); pedido.Proveedor = new Proveedor(97); pedido.Anexo = new Data.Entities.Anexo(1); pedido.Requisicion = new Requisicion(1); pedido.Fundamento = new Fundamento(1); pedido.IdReservaautoriza = null; pedido.CatArea = new CatArea(1100); pedido.ImporteDescuento = 100; pedido.Iva = new Iva(new IvaId(1,16)); pedido.CatActividad = new CatActividad(1); pedido.CatPresupuesto = new CatPresupuesto(1); pedido.EstadoPedido = "A"; pedido.ImporteTotal = 100; pedido.Observaciones = "aaaa"; pedido.Usuario = new Usuario(4192); pedido.Almacen = new Almacen("C5"); pedido.FechaModificacion = DateTime.Now; pedido.IpTerminal = "aaa"; pedido.Modificacion = 1; pedido.Instituto = "eee"; pedido.NumeroRequisicion = "zzzz"; var pedidoDetalle = new PedidoDetalle(); pedidoDetalle.Pedido = pedido; pedidoDetalle.RenglonPedido = 3; pedidoDetalle.Articulo = new Articulo(new ArticuloId(2,new Almacen("F"))); pedidoDetalle.Marca = "dionisio"; pedidoDetalle.Cantidad = 1562; pedidoDetalle.PrecioUnitario = 1; pedido.PedidoDetalle.Add(pedidoDetalle); var pedidoEntrega = new PedidoEntrega(); pedidoEntrega.PedidoDetalle = pedidoDetalle; pedidoEntrega.Entrega = 15; pedidoEntrega.FechaInicial = DateTime.Now; pedidoEntrega.FechaFinal = DateTime.Now; pedidoEntrega.Cantidad = 15; pedidoDetalle.PedidoEntrega.Add(pedidoEntrega); PedidoDao.Merge(pedido); }
public void GenerarPedidoAutomatico(Pedido pedidoCentinela, Requisicion requisicion, DateTime fechaInicial, DateTime fechaFinal) { var fallos = FalloDao.ConsultarFalloByAnexo(requisicion.Anexo); foreach (var fallo in fallos) { var pedido = new Pedido(); pedido.Almacen = pedidoCentinela.Almacen; pedido.Usuario = pedidoCentinela.Usuario; pedido.IpTerminal = Util.IpTerminal(); pedido.FechaCaptura = PedidoDao.FechaServidor(); pedido.FechaModificacion = PedidoDao.FechaServidor(); pedido.FechaPedido = pedidoCentinela.FechaPedido; pedido.Fundamento = pedidoCentinela.Fundamento; pedido.CatActividad = pedidoCentinela.CatActividad; pedido.Iva = pedidoCentinela.Iva; pedido.CatPresupuesto = pedidoCentinela.CatPresupuesto; pedido.Observaciones = pedidoCentinela.Observaciones; pedido.Modificacion = 1; pedido.Instituto = fallo.Anexo.Instituto; pedido.NumeroPedido = PedidoDao.SiguienteNumeroPedido(pedido.Almacen, 1); pedido.CatTipopedido = new CatTipopedido(1);//Pedido Mayor pedido.Proveedor = fallo.Cotizacion.Proveedor; pedido.Anexo = fallo.Anexo; pedido.CatArea = requisicion.CatArea; pedido.ImporteDescuento = new decimal(0.0); pedido.CatPresupuesto = pedido.CatPresupuesto; pedido.EstadoPedido = "P"; pedido.ImporteTotal = ImporteTotal(requisicion, fallo.FalloDetalle); pedido.Requisicion = requisicion; pedido = PedidoDao.Merge(pedido); short renglonPedido = 1; //int entrega = 1; var requisicionesDetalle = RequisicionDao.CargarRequisicionDetalle(requisicion); foreach (var requisicionDetalle in requisicionesDetalle) { fallo.FalloDetalle = FalloDao.ConsultarFalloDetalle(fallo); foreach (var falloDetalle in fallo.FalloDetalle) { if(requisicionDetalle.Articulo == falloDetalle.Articulo) { //Actualizamos la cantidad pedida fallo falloDetalle.CantidadPed += requisicionDetalle.Cantidad; FalloDetalleDao.Merge(falloDetalle); var pedidoDetalle = new PedidoDetalle(); pedidoDetalle.Pedido = pedido; pedidoDetalle.RenglonPedido = renglonPedido; pedidoDetalle.Articulo = falloDetalle.Articulo; pedidoDetalle.Cantidad = requisicionDetalle.Cantidad; pedidoDetalle.PrecioUnitario = falloDetalle.PrecioFallo; //pedidoDetalle.Marca = falloDetalle. var pedidoEntrega = new PedidoEntrega(); pedidoEntrega.Entrega = 1; pedidoEntrega.FechaInicial = fechaInicial; pedidoEntrega.FechaFinal = fechaFinal; pedidoEntrega.Cantidad = requisicionDetalle.Cantidad; pedidoEntrega.PedidoDetalle = pedidoDetalle; //++entrega; pedidoDetalle.PedidoEntrega.Add(pedidoEntrega); PedidoDetalleDao.Merge(pedidoDetalle); ++renglonPedido; } } } requisicion.Estatus = "P"; RequisicionDao.Merge(requisicion); } }
private void GvPedidoDetalleCellValueChanged(object sender, CellValueChangedEventArgs e) { var rowSelectValue = e.Value; //Para realizar las validaciones PedidoActual.PedidoDetalle = bsPedidoDetalle.DataSource as List<PedidoDetalle>; if (e.Column.AbsoluteIndex == 1)//posicionado en el articulo { if (TieneRepetidoArticulo((int?)(rowSelectValue))) { XtraMessageBox.Show(@"Articulo repetido clave " + rowSelectValue, @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "DescripcionArt", ""); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "UnidadArt", ""); return; } try { var cveArt = (int)rowSelectValue; var almacen = cbxAlmacen.SelectedValue as Almacen; //var partida = searchLookUpEditPartida.GetFocusedRow() as CatPartida; if(PedidoActual.Partida == null) { XtraMessageBox.Show(@"No ha seleccionado partida", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var articuloSelect = PedidoService.AnexoService. ArticuloDao.ArticuloPartida(cveArt, almacen, PedidoActual.Partida); if(articuloSelect == null) { XtraMessageBox.Show(@"No existe la clave", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "DescripcionArt", ""); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "UnidadArt", ""); return; } gvPedidoDetalle.SetRowCellValue(e.RowHandle, "Articulo", articuloSelect); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "DescripcionArt", articuloSelect.DesArticulo); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "UnidadArt", articuloSelect.Unidad); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "Cantidad", 0); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "PrecioUnitario", 0.0); } catch (Exception ee) { gvPedidoDetalle.SetRowCellValue(e.RowHandle, "DescripcionArt", ""); gvPedidoDetalle.SetRowCellValue(e.RowHandle, "UnidadArt", ""); } } //posicionado en precio if (e.Column.AbsoluteIndex == 7) { var precio = double.Parse(rowSelectValue.ToString()); var cantidad = gvPedidoDetalle.GetRowCellValue(e.RowHandle, "Cantidad"); if (cantidad == null) precio = 0.0; var importe = double.Parse(cantidad + "") * precio; gvPedidoDetalle.SetRowCellValue(e.RowHandle, "Importe", importe); } //posicionado en cantidad if(e.Column.AbsoluteIndex == 4) { var cantidad = decimal.Parse(rowSelectValue.ToString()); if(cantidad != (decimal)0.0) { if (deFechaInicial.DateTime.CompareTo(deFechaFinal.DateTime) > 0) { XtraMessageBox.Show(@"Fecha inicial debe ser menor o igual fecha final", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Agregar un pedido entrega default var pedidoDetalleSelect = gvPedidoDetalle.GetFocusedRow() as PedidoDetalle; if (deFechaInicial.EditValue != null && deFechaFinal.EditValue != null) { pedidoDetalleSelect.PedidoEntrega.Clear(); var pedidoEntrega = new PedidoEntrega(deFechaInicial.DateTime, deFechaFinal.DateTime, cantidad); pedidoDetalleSelect.PedidoEntrega.Add(pedidoEntrega); } } //var articulo = gvPedidoDetalle.GetRowCellValue(e.RowHandle, "Articulo"); //decimal? sumaPedidoEntrega = PedidoActual.PedidoDetalle. //First(detalle=>detalle.Articulo == articulo). //PedidoEntrega.Sum(entrega => entrega.Cantidad); //if (sumaPedidoEntrega > cantidad) //{ // XtraMessageBox.Show(@"La suma de los renglones del pedido entrega debe coincidir con " + cantidad, // @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); //} } SumTotal(); }
private void CmdUpdateFechaEntregaClick(object sender, EventArgs e) { if (deFechaInicial.DateTime.CompareTo(deFechaFinal.DateTime) > 0) { XtraMessageBox.Show(@"Fecha inicial debe ser menor o igual fecha final", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } foreach(var pedidoDetalle in PedidoActual.PedidoDetalle) { pedidoDetalle.PedidoEntrega.Clear(); if(deFechaInicial.EditValue != null && deFechaFinal.EditValue != null) { var pedidoEntrega = new PedidoEntrega(deFechaInicial.DateTime, deFechaFinal.DateTime, pedidoDetalle.Cantidad); pedidoDetalle.PedidoEntrega.Add(pedidoEntrega); } } XtraMessageBox.Show(@"Fechas de Entrega Actualizadas todas las claves", @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Information); }