Exemplo n.º 1
0
        private void BtnImprimir_Click(object sender, EventArgs e)
        {
            var listado = ObtenerListado();

            if (listado.Sum(x => x.CantidadARendir) > 0)
            {
                using (var popup = new FrmReporteConsignaciones(UowFactory, listado,
                                                                ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(),
                                                                ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta))
                {
                    popup.ShowDialog();
                }
            }
        }
        private void BtnImprimir_Click(object sender, EventArgs e)
        {
            var listado = ObtenerListado();

            if (listado.Sum(x => x.CantidadARendir) > 0)
            {
                using (var popup = new FrmReporteConsignaciones(UowFactory, listado,
                    ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(),
                    ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta))
                {
                    popup.ShowDialog();
                }
            }
        }
        private void GuardarCambios(List<ConsignacionSinRendir> listado)
        {
            if (listado.Sum(x => x.CantidadARendir) > 0)
            {
                //Primero descuento para cada título, la cantidad a rendir distribuida en
                //todas sus lineas de TitulosConsignacionesVendidas
                var provId = ucFiltrosConsignaciones.ProveedorId;
                //var desde = ucFiltrosConsignaciones.Desde.AddDays(-1);
                //var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1);

                var desde = ucFiltrosConsignaciones.Desde.Date;
                var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1);

                var originales = Uow.TitulosConsignacionesVendidas.Listado()
                                    .Where(tcv => (provId == null || provId == tcv.ProveedorId)
                                      && (desde) < tcv.FechaAlta && hasta > tcv.FechaAlta && tcv.CntCn > tcv.CntPag)
                                    .OrderBy(x => x.FechaAlta).ToList();

                foreach (var titulo in listado)
                {
                    var cantARendir = titulo.CantidadARendir;
                    var consignacionesVendidas = originales.Where(tcv => tcv.TituloId == titulo.TituloId).ToList();

                    var i = 0;
                    while (cantARendir > 0)
                    {
                        var consignacion = consignacionesVendidas.ElementAt(i);
                        var rendir = cantARendir > consignacion.CntCn - consignacion.CntPag
                                         ? consignacion.CntCn - consignacion.CntPag
                                         : cantARendir;

                        consignacion.CntPag += rendir;
                        Uow.TitulosConsignacionesVendidas.Modificar(consignacion);
                        cantARendir -= Convert.ToInt32(rendir);
                        i++;
                    }

                    //Controlo si se modificaron los precio de compra de los tiulos
                    var titulooriginal = Uow.Titulos.Obtener(t => t.Id == titulo.TituloId);
                    if ((titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) || (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo))
                    {
                        if (titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo)
                            titulooriginal.PrecioCompraTitulo = titulo.PrecioCompraCalculado;
                        if (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo)
                             titulooriginal.PrecioVentaTitulo = titulo.PrecioVentaTitulo;

                        titulooriginal.FechaModificacion = DateTime.Now;
                        titulooriginal.OperadorModificacionId = Context.OperadorActual.Id;
                        titulooriginal.SucursalModificacionId = Context.SucursalActual.Id;

                        Uow.Titulos.Modificar(titulooriginal);
                        //MessageBox.Show(titulo.NombreTitulo + " " + titulo.PrecioCompraTitulo.ToString() + " " +
                        //                titulo.PrecioCompraCalculado.ToString());
                    }
                }

                //Ahora guardo la tabla ConsignacionRendida
                var consignacionRendida = new TituloConsignacionRendida()
                                              {
                                                  FechaAlta = DateTime.Now,
                                                  Id = Guid.NewGuid(),
                                                  Importe = _total,
                                                  LCN = CalcularLCN(),
                                                  Observaciones = TxtObservaciones.Text,
                                                  OperadorAltaId = Context.OperadorActual.Id,
                                                  ProveedorId = Proveedor.Id,
                                                  SucursalAltaId = Context.SucursalActual.Id,
                                                  TipoConsignacionId = 2,
                                                  FechaConsignacion = DateTime.Now //TODO ELIMINAR O NO
                                              };

                foreach (var t in listado)
                {
                    var detalle = new TituloConsignacionRendidasDetalle()
                                      {
                                          Id = Guid.NewGuid(),
                                          Cantidad = t.CantidadARendir,
                                          Importe = t.TotalARendir,
                                          PorcentajeDescuento = t.Descuento.GetValueOrDefault(),
                                          PrecioCompra = t.PrecioCompraCalculado,
                                          PrecioVenta = t.PrecioVentaTitulo.GetValueOrDefault(),
                                          TituloConsignacionRendidaId = consignacionRendida.Id,
                                          TituloId = t.TituloId.GetValueOrDefault()
                                      };
                    Uow.TitulosConsignacionesRendidasDetalle.Agregar(detalle);
                }
                Uow.TitulosConsignacionesRendidas.Agregar(consignacionRendida);

                Uow.Commit();

                if (chxImprimir.Checked)
                {
                    using (var popup = new FrmReporteConsignaciones(UowFactory, listado,
                        ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(),
                        ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta))
                    {
                        popup.ShowDialog();
                    }
                }
                ReiniciarVentana();
            }
            else
            {
                MessageBox.Show("No hay consignaciones por rendir");
            }
        }
Exemplo n.º 4
0
        private void GuardarCambios(List <ConsignacionSinRendir> listado)
        {
            if (listado.Sum(x => x.CantidadARendir) > 0)
            {
                //Primero descuento para cada título, la cantidad a rendir distribuida en
                //todas sus lineas de TitulosConsignacionesVendidas
                var provId = ucFiltrosConsignaciones.ProveedorId;
                //var desde = ucFiltrosConsignaciones.Desde.AddDays(-1);
                //var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1);

                var desde = ucFiltrosConsignaciones.Desde.Date;
                var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1);

                var originales = Uow.TitulosConsignacionesVendidas.Listado()
                                 .Where(tcv => (provId == null || provId == tcv.ProveedorId) &&
                                        (desde) < tcv.FechaAlta && hasta > tcv.FechaAlta && tcv.CntCn > tcv.CntPag)
                                 .OrderBy(x => x.FechaAlta).ToList();

                foreach (var titulo in listado)
                {
                    var cantARendir            = titulo.CantidadARendir;
                    var consignacionesVendidas = originales.Where(tcv => tcv.TituloId == titulo.TituloId).ToList();

                    var i = 0;
                    while (cantARendir > 0)
                    {
                        var consignacion = consignacionesVendidas.ElementAt(i);
                        var rendir       = cantARendir > consignacion.CntCn - consignacion.CntPag
                                         ? consignacion.CntCn - consignacion.CntPag
                                         : cantARendir;

                        consignacion.CntPag += rendir;
                        Uow.TitulosConsignacionesVendidas.Modificar(consignacion);
                        cantARendir -= Convert.ToInt32(rendir);
                        i++;
                    }

                    //Controlo si se modificaron los precio de compra de los tiulos
                    var titulooriginal = Uow.Titulos.Obtener(t => t.Id == titulo.TituloId);
                    if ((titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) || (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo))
                    {
                        if (titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo)
                        {
                            titulooriginal.PrecioCompraTitulo = titulo.PrecioCompraCalculado;
                        }
                        if (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo)
                        {
                            titulooriginal.PrecioVentaTitulo = titulo.PrecioVentaTitulo;
                        }

                        titulooriginal.FechaModificacion      = DateTime.Now;
                        titulooriginal.OperadorModificacionId = Context.OperadorActual.Id;
                        titulooriginal.SucursalModificacionId = Context.SucursalActual.Id;

                        Uow.Titulos.Modificar(titulooriginal);
                        //MessageBox.Show(titulo.NombreTitulo + " " + titulo.PrecioCompraTitulo.ToString() + " " +
                        //                titulo.PrecioCompraCalculado.ToString());
                    }
                }

                //Ahora guardo la tabla ConsignacionRendida
                var consignacionRendida = new TituloConsignacionRendida()
                {
                    FechaAlta          = DateTime.Now,
                    Id                 = Guid.NewGuid(),
                    Importe            = _total,
                    LCN                = CalcularLCN(),
                    Observaciones      = TxtObservaciones.Text,
                    OperadorAltaId     = Context.OperadorActual.Id,
                    ProveedorId        = Proveedor.Id,
                    SucursalAltaId     = Context.SucursalActual.Id,
                    TipoConsignacionId = 2,
                    FechaConsignacion  = DateTime.Now                              //TODO ELIMINAR O NO
                };

                foreach (var t in listado)
                {
                    var detalle = new TituloConsignacionRendidasDetalle()
                    {
                        Id                          = Guid.NewGuid(),
                        Cantidad                    = t.CantidadARendir,
                        Importe                     = t.TotalARendir,
                        PorcentajeDescuento         = t.Descuento.GetValueOrDefault(),
                        PrecioCompra                = t.PrecioCompraCalculado,
                        PrecioVenta                 = t.PrecioVentaTitulo.GetValueOrDefault(),
                        TituloConsignacionRendidaId = consignacionRendida.Id,
                        TituloId                    = t.TituloId.GetValueOrDefault()
                    };
                    Uow.TitulosConsignacionesRendidasDetalle.Agregar(detalle);
                }
                Uow.TitulosConsignacionesRendidas.Agregar(consignacionRendida);

                Uow.Commit();

                if (chxImprimir.Checked)
                {
                    using (var popup = new FrmReporteConsignaciones(UowFactory, listado,
                                                                    ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(),
                                                                    ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta))
                    {
                        popup.ShowDialog();
                    }
                }
                ReiniciarVentana();
            }
            else
            {
                MessageBox.Show("No hay consignaciones por rendir");
            }
        }