Ejemplo n.º 1
0
        private void GarantiasNotaDeCredito()
        {
            // Se verifican las filas marcadas, que tengan el estatus correcto
            var oGarantias = new List<int>();
            foreach (DataGridViewRow oFila in this.dgvGarantias.Rows)
            {
                if (!Util.Logico(oFila.Cells["garSel"].Value))
                    continue;
                if (Util.Entero(oFila.Cells["garEstatusGenericoID"].Value) == Cat.EstatusGenericos.EnRevision)
                    oGarantias.Add(Util.Entero(oFila.Cells["garVentaGarantiaID"].Value));
                else
                    oFila.Cells["garSel"].Value = false;
            }

            if (oGarantias.Count > 0)
            {
                // Se piden los datos de la nota de crédito
                var frmNotaDeCredito = new ProveedorNotaDeCreditoForma();
                if (frmNotaDeCredito.ShowDialog(Principal.Instance) == DialogResult.OK)
                {
                    Cargando.Mostrar();

                    // Se genera la nota de crédito
                    var oNotaC = new ProveedorNotaDeCredito()
                    {
                        ProveedorID = this.Proveedor.ProveedorID,
                        Folio = frmNotaDeCredito.Folio,
                        Fecha = frmNotaDeCredito.Fecha,
                        Subtotal = frmNotaDeCredito.Subtotal,
                        Iva = frmNotaDeCredito.Iva,
                        Disponible = true,
                        OrigenID = Cat.OrigenesNotasDeCreditoProveedor.Garantia,
                        Observacion = frmNotaDeCredito.Observacion
                    };
                    AdmonProc.CrearNotaDeCreditoProveedor(oNotaC);

                    // Se afectan las garantías correspondientes
                    foreach (int iGarantiaID in oGarantias)
                    {
                        var oGarantia = Datos.GetEntity<VentaGarantia>(c => c.VentaGarantiaID == iGarantiaID && c.Estatus);
                        oGarantia.RespuestaID = Cat.VentasGarantiasRespuestas.NotaDeCredito;
                        oGarantia.EstatusGenericoID = Cat.EstatusGenericos.Resuelto;
                        Datos.Guardar<VentaGarantia>(oGarantia);

                        // Se guarda el detalle de la Nota de crédito
                        var oNotaDet = new ProveedorNotaDeCreditoDetalle()
                        {
                            ProveedorNotaDeCreditoID = oNotaC.ProveedorNotaDeCreditoID,
                            MovimientoInventarioID = oGarantia.MovimientoInventarioID.Valor()
                        };
                    }

                    Cargando.Cerrar();

                    this.LlenarGarantias(this.Proveedor.ProveedorID);
                }
                frmNotaDeCredito.Dispose();
            }
        }
Ejemplo n.º 2
0
        private void DevolucionesNotasDeCredito()
        {
            // Se verifican las filas marcadas, que tengan el estatus correcto
            var oDevs = new List<int>();
            foreach (DataGridViewRow oFila in this.dgvDevoluciones.Rows)
            {
                if (!Util.Logico(oFila.Cells["des_Sel"].Value))
                    continue;
                oDevs.Add(Util.Entero(oFila.Cells["des_MovimientoInventarioID"].Value));
            }

            if (oDevs.Count > 0)
            {
                // Se piden los datos de la nota de crédito
                var frmNotaDeCredito = new ProveedorNotaDeCreditoForma();
                if (frmNotaDeCredito.ShowDialog(Principal.Instance) == DialogResult.OK)
                {
                    Cargando.Mostrar();

                    // Se genera la nota de crédito
                    var oNotaC = new ProveedorNotaDeCredito()
                    {
                        ProveedorID = this.Proveedor.ProveedorID,
                        Folio = frmNotaDeCredito.Folio,
                        Fecha = frmNotaDeCredito.Fecha,
                        Subtotal = frmNotaDeCredito.Subtotal,
                        Iva = frmNotaDeCredito.Iva,
                        Disponible = true,
                        OrigenID = Cat.OrigenesNotasDeCreditoProveedor.Devolucion,
                        Observacion = frmNotaDeCredito.Observacion
                    };
                    AdmonProc.CrearNotaDeCreditoProveedor(oNotaC);

                    // Se marcan los movimientos afectados
                    foreach (int iMovID in oDevs)
                    {
                        var oMovDev = Datos.GetEntity<MovimientoInventario>(c => c.MovimientoInventarioID == iMovID && c.Estatus);
                        oMovDev.FueLiquidado = true;
                        Datos.Guardar<MovimientoInventario>(oMovDev);

                        // Se guarda el detalle de la Nota de crédito
                        var oNotaDet = new ProveedorNotaDeCreditoDetalle()
                        {
                            ProveedorNotaDeCreditoID = oNotaC.ProveedorNotaDeCreditoID,
                            MovimientoInventarioID = iMovID
                        };
                    }

                    Cargando.Cerrar();
                }
                frmNotaDeCredito.Dispose();

                this.CargarDevoluciones(this.Proveedor.ProveedorID);
            }
        }