private void btnConfirmar_Click(object sender, EventArgs e)
        {
            //chequeos

            //Actualizo el estado del pedido seleccionado
            Pedido pedido = extras.GetPedido(new Pedido()
            {
                Id = long.Parse(dgvPedidos.SelectedRows[0].Cells["IdPedido"].Value.ToString())
            });

            pedido.Estado = "ENTREGADO";

            Remito remito = new Remito()
            {
                Id = extras.GetRemito_Id() + 1,
                EmisionRecepcion = "EMISION",
                IdEmisor         = 0,
                IdDestinatario   = pedido.IdCliente,
                FechaEmision     = dtpFechaEnvio.Value.AddDays(-1).ToString("yyyy-MM-dd"),
                FechaEntrega     = dtpFechaEnvio.Value.ToString("yyyy-MM-dd"),
                Numero           = txtRemito.Text,
                Estado           = "ABIERTO",
                Observaciones    = txtDestino.Text
            };

            List <LineaPedido>        lineasPedido        = new List <LineaPedido>();
            List <LineaRemito>        lineasRemito        = new List <LineaRemito>();
            List <MovimientoProducto> movimientosProducto = new List <MovimientoProducto>();

            foreach (DataGridViewRow row in dgvContenido.Rows)
            {
                LineaPedido lineaPedido = extras.GetLineaPedido(new LineaPedido()
                {
                    Id = long.Parse(row.Cells["cId"].Value.ToString())
                });

                //lineaPedido = decimal.Parse(row.Cells["cBultosE"].Value.ToString());
                //lineaPedido.UnidadesEntregadas = decimal.Parse(row.Cells["cUnidadesE"].Value.ToString());
                //lineaPedido.KilosEntregados = decimal.Parse(row.Cells["cKilosE"].Value.ToString());

                lineasPedido.Add(lineaPedido);

                LineaRemito lineaRemito = new LineaRemito()
                {
                    Id         = extras.GetLineaRemito_Id() + 1,
                    IdRemito   = remito.Id,
                    IdProducto = lineaPedido.IdProducto,
                    //Cantidad = lineaPedido.KilosEntregados,
                    Estado = "ABIERTO"
                };

                lineasRemito.Add(lineaRemito);

                MovimientoProducto movimiento = new MovimientoProducto()
                {
                    Id             = extras.GetMovimientoProducto_Id() + 1,
                    IdProducto     = lineaPedido.IdProducto,
                    TipoMovimiento = "ENTREGA",
                    //Cantidad = lineaPedido.KilosEntregados * -1,
                    Fecha         = dtpFechaEnvio.Value.ToString("yyyy-MM-dd"),
                    Stock         = 0,
                    Observaciones = "Remito " + remito.Numero
                };

                movimientosProducto.Add(movimiento);
            }

            extras.EditPedido(pedido, false);

            foreach (LineaPedido linea in lineasPedido)
            {
                extras.EditLineaPedido(linea);
            }

            extras.AddRemito(remito);
            extras.AddLineaRemito(lineasRemito);
            extras.AddMovimientoProducto(movimientosProducto);


            //Finalizo
            DescartarCambios();
            lblBarra1.Visible = false;
            this.Controles_Inicio();
            dgvPedidos.Focus();


            SetTable_Pedidos();
        }
Exemple #2
0
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            //chequeos

            if (!extras.CkConfirmacion("registrar la recepción de esta Orden de Compra"))
            {
                return;
            }

            //Actualizo estado de Orden de Compra
            OrdenDeCompra orden = new OrdenDeCompra()
            {
                Id = long.Parse(dgvOrdenes.SelectedRows[0].Cells["Id"].Value.ToString())
            };

            orden        = extras.GetOrdenDeCompra(orden);
            orden.Estado = "CERRADA";

            List <LineaOrdenDeCompra> lineasOC = extras.GetLineasOrdenDeCompra(orden);

            foreach (LineaOrdenDeCompra linea in lineasOC)
            {
                if (linea.Estado == "ABIERTA")
                {
                    orden.Estado = "ABIERTA";
                }
            }

            extras.EditOrdenDeCompra(orden);

            //Ingreso el remito/recepción

            Proveedor proveedor = new Proveedor()
            {
                Id = extras.GetId(cmbProveedores.SelectedItem.ToString())
            };

            Remito remito = new Remito()
            {
                Id = extras.GetRemito_Id() + 1,
                EmisionRecepcion = "RECEPCIÓN",
                IdEmisor         = proveedor.Id,
                IdDestinatario   = 0,
                FechaEmision     = dtpFechaEmision.Value.ToString("yyyy-MM-dd"),
                FechaEntrega     = dtpFechaEntrega.Value.ToString("yyyy-MM-dd"),
                Numero           = txtRemito.Text,
                Estado           = "ENTREGADO",
                Observaciones    = "N/A"
            };

            List <LineaRemito> lineasRemito = new List <LineaRemito>();
            long idLineaRemito = extras.GetLineaRemito_Id();

            List <MovimientoProducto> listaMovimientos = new List <MovimientoProducto>();
            long idMovimientoProducto = extras.GetMovimientoProducto_Id();

            foreach (DataGridViewRow row in dgvContenido.Rows)
            {
                idLineaRemito        += 1;
                idMovimientoProducto += 1;

                Producto producto = new Producto()
                {
                    Id = long.Parse(row.Cells["IdProducto"].Value.ToString())
                };
                producto = extras.GetProducto(producto);

                decimal cantidadPedida   = decimal.Parse(row.Cells["Cantidad Pedida"].Value.ToString());
                decimal cantidadRecibida = decimal.Parse(row.Cells["Cantidad Recibida"].Value.ToString());

                string estado = "";

                if (cantidadRecibida >= cantidadPedida)
                {
                    estado = "RECIBIDO";
                }
                else if (cantidadRecibida > 0 && cantidadRecibida < cantidadPedida)
                {
                    estado = "PARCIALMENTE RECIBIDO";
                }
                else
                {
                    estado = "NO RECIBIDO";
                }

                LineaRemito lineaRemito = new LineaRemito()
                {
                    Id         = idLineaRemito,
                    IdRemito   = remito.Id,
                    IdProducto = producto.Id,
                    Cantidad   = cantidadRecibida,
                    Estado     = estado
                };

                lineasRemito.Add(lineaRemito);

                MovimientoProducto movimiento = new MovimientoProducto()
                {
                    Id             = idMovimientoProducto,
                    IdProducto     = producto.Id,
                    TipoMovimiento = "COMPRA",
                    Cantidad       = cantidadRecibida,
                    Fecha          = dtpFechaEntrega.Value.ToString("yyyy-MM-dd"),
                    Stock          = extras.GetProducto_Stock(producto) + cantidadRecibida,
                    Observaciones  = "Remito: " + remito.Numero
                };

                listaMovimientos.Add(movimiento);
            }

            extras.AddRemito(remito);
            extras.AddLineaRemito(lineasRemito);
            extras.AddMovimientoProducto(listaMovimientos);

            MessageBox.Show("Jeje");

            this.Controles_Inicio();

            dgvContenido.DataSource = new DataTable();
            dgvOrdenes.DataSource   = new DataTable();

            txtRemito.Text        = "";
            dtpFechaEmision.Value = DateTime.Today;
            dtpFechaEntrega.Value = DateTime.Today;

            cmbProveedores.SelectedIndex = 0;


            //Actualizo stock de articulos
        }