/// <summary> /// Efectua la cancelación de la orden de compra /// </summary> public void CancelarOrdenCompra() { Entities.OrdenesComprasCanceladas occ = new Entities.OrdenesComprasCanceladas(); occ.Comentarios = this.Comentarios; occ.Fecha = DB.GetDate(); occ.OrdenCompra_ID = this.OrdenCompra_ID; occ.Usuario_ID = Sesion.Usuario_ID; occ.Create(); Entities.OrdenesCompras oc = Entities.OrdenesCompras.Read(this.OrdenCompra_ID); oc.EstatusOrdenCompra_ID = 2; oc.Update(); }
private void RegistrarMovimiento() { DoValidate(); int PorSurtir = 0; foreach (Entities.Vista_ComprasAlmacen vistaCompra in VistaCompras) { PorSurtir += vistaCompra.Entrada; } if (PorSurtir == 0) { AppHelper.ThrowException( "La orden de compra {0} esta completamente surtida", this.OrdenCompra.OrdenCompra_ID); } NotaAlmacen = new Entities.NotasAlmacen(); MovimientoInventario = new Entities.MovimientosInventario(); // Insertar Nota Almacen NotaAlmacen.Fecha = DB.GetDate(); NotaAlmacen.OrdenCompra_ID = OrdenCompra.OrdenCompra_ID; NotaAlmacen.TipoMovimientoInventario_ID = 2; // Compra NotaAlmacen.Usuario_ID = Sesion.Usuario_ID; NotaAlmacen.Empresa_ID = Sesion.Empresa_ID.Value; NotaAlmacen.Estacion_ID = Sesion.Estacion_ID.Value; NotaAlmacen.Factura = FacturaTextBox.Text; NotaAlmacen.Create(); // Insertar Movimientos Inventario foreach (Entities.Vista_ComprasAlmacen compra in VistaCompras) { if (compra.Entrada > 0) { MovimientoInventario.Cantidad = compra.Entrada; MovimientoInventario.CantidadPost = MovimientoInventario.CantidadPrev + compra.Entrada; MovimientoInventario.CostoUnitario = compra.CostoUnitario; MovimientoInventario.Fecha = NotaAlmacen.Fecha; MovimientoInventario.NotaAlmacen_ID = NotaAlmacen.NotaAlmacen_ID; MovimientoInventario.OrdenCompra_ID = NotaAlmacen.OrdenCompra_ID; MovimientoInventario.Refaccion_ID = compra.Refaccion_ID; MovimientoInventario.TipoMovimientoInventario_ID = NotaAlmacen.TipoMovimientoInventario_ID; MovimientoInventario.Usuario_ID = NotaAlmacen.Usuario_ID; MovimientoInventario.Valor = compra.Entrada * compra.CostoUnitario; MovimientoInventario.Empresa_ID = Sesion.Empresa_ID.Value; MovimientoInventario.Estacion_ID = Sesion.Estacion_ID.Value; MovimientoInventario.Calculate(); MovimientoInventario.Create(); // Actualizar refaccion MovimientoInventario.UpdateRefaccion(true); } } // Actualizar compra y sacar totale de Orden de Compra decimal subtotal = 0; foreach (Entities.Vista_ComprasAlmacen vistaCompra in VistaCompras) { Entities.Compras compra = Entities.Compras.Read(vistaCompra.Compra_ID); if (vistaCompra.Entrada > 0) { compra.RefaccionesSurtidas += vistaCompra.Entrada; compra.CostoUnitario = vistaCompra.CostoUnitario; compra.Update(); subtotal += vistaCompra.CostoUnitario * compra.Cantidad; } else { subtotal += compra.CostoUnitario * compra.Cantidad; } } // Actualizar Factura y Totales de Orden de Compra if (String.IsNullOrEmpty(OrdenCompra.Factura)) { OrdenCompra.Factura = FacturaTextBox.Text.ToUpper().Trim(); } else { OrdenCompra.Factura = OrdenCompra.Factura.Trim() + ", " + FacturaTextBox.Text.ToUpper().Trim(); } OrdenCompra.Subtotal = subtotal; OrdenCompra.IVA = OrdenCompra.Subtotal * (decimal)0.16; OrdenCompra.Total = OrdenCompra.Subtotal + OrdenCompra.IVA; OrdenCompra.Update(); OrdenCompra = null; this.label4.Visible = false; this.FacturaTextBox.Visible = false; }