Beispiel #1
0
        private void RegistrarMovimiento()
        {
            DoValidate();

            int PorSurtir = 0;

            foreach (Entities.Vista_OrdenesServiciosRefaccionesAlmacen vistaOSR in Vista_OSR)
            {
                PorSurtir += vistaOSR.Salida.Value;
            }

            if (PorSurtir == 0)
            {
                AppHelper.ThrowException(
                    "La orden de trabajo {0} esta completamente surtida",
                    this.OrdenTrabajo.OrdenTrabajo_ID);
            }

            NotaAlmacen          = new Entities.NotasAlmacen();
            MovimientoInventario = new Entities.MovimientosInventario();

            //  Insertar Nota Almacen
            NotaAlmacen.Fecha                       = DB.GetDate();
            NotaAlmacen.OrdenTrabajo_ID             = OrdenTrabajo.OrdenTrabajo_ID;
            NotaAlmacen.TipoMovimientoInventario_ID = 1; // O.T.
            NotaAlmacen.Usuario_ID                  = Sesion.Usuario_ID;
            NotaAlmacen.Empresa_ID                  = Sesion.Empresa_ID.Value;
            NotaAlmacen.Estacion_ID                 = Sesion.Estacion_ID.Value;
            NotaAlmacen.Create();

            //  Insertar Movimientos Inventario
            foreach (Entities.Vista_OrdenesServiciosRefaccionesAlmacen osr in Vista_OSR)
            {
                if (osr.Salida.Value > 0 && osr.CantidadInventario.Value >= osr.Salida.Value)
                {
                    MovimientoInventario.Cantidad                    = osr.Salida.Value * -1;
                    MovimientoInventario.CantidadPost                = MovimientoInventario.CantidadPrev - osr.Salida.Value;
                    MovimientoInventario.CostoUnitario               = osr.CostoUnitario.Value;
                    MovimientoInventario.Fecha                       = NotaAlmacen.Fecha;
                    MovimientoInventario.NotaAlmacen_ID              = NotaAlmacen.NotaAlmacen_ID;
                    MovimientoInventario.OrdenTrabajo_ID             = NotaAlmacen.OrdenTrabajo_ID;
                    MovimientoInventario.Refaccion_ID                = osr.Refaccion_ID.Value;
                    MovimientoInventario.TipoMovimientoInventario_ID = NotaAlmacen.TipoMovimientoInventario_ID;
                    MovimientoInventario.Usuario_ID                  = NotaAlmacen.Usuario_ID;
                    MovimientoInventario.Valor                       = MovimientoInventario.Cantidad * MovimientoInventario.CostoUnitario;
                    MovimientoInventario.Empresa_ID                  = Sesion.Empresa_ID.Value;
                    MovimientoInventario.Estacion_ID                 = Sesion.Estacion_ID.Value;
                    MovimientoInventario.Calculate();
                    MovimientoInventario.Create();

                    //  Actualizar refaccion
                    MovimientoInventario.UpdateRefaccion(false);

                    //  Actualizar compra
                    Entities.OrdenesServiciosRefacciones OSR = Entities.OrdenesServiciosRefacciones.Read(osr.OrdenServicioRefaccion_ID.Value);
                    OSR.RefSurtidas += osr.Salida;
                    OSR.Update();
                }
            }
        }
            public void RegistrarAjuste()
            {
                Entities.AjustesInventario AjusteInventario = new Entities.AjustesInventario();

                AjusteInventario.Cantidad                = this.Cantidad;
                AjusteInventario.Comentarios             = this.Comentarios;
                AjusteInventario.CostoUnitario           = this.Refaccion.CostoUnitario.Value;
                AjusteInventario.Fecha                   = DB.GetDate();
                AjusteInventario.Refaccion_ID            = this.Refaccion.Refaccion_ID.Value;
                AjusteInventario.TipoAjusteInventario_ID = this.TipoAjuste.TipoAjusteInventario_ID;
                AjusteInventario.Total                   = AjusteInventario.CostoUnitario * AjusteInventario.Cantidad;
                AjusteInventario.Usuario_ID              = Sesion.Usuario_ID;
                AjusteInventario.Empresa_ID              = Sesion.Empresa_ID.Value;
                AjusteInventario.Estacion_ID             = Sesion.Estacion_ID.Value;

                if (this.TipoAjuste.TipoAjusteInventario_ID == 2)
                {
                    AjusteInventario.Cantidad *= -1;
                }

                AjusteInventario.Create();

                Entities.NotasAlmacen          NotaAlmacen          = new Entities.NotasAlmacen();
                Entities.MovimientosInventario MovimientoInventario = new Entities.MovimientosInventario();

                //  Insertar Nota Almacen
                NotaAlmacen.Fecha = DB.GetDate();
                NotaAlmacen.TipoMovimientoInventario_ID = 3; // Ajuste
                NotaAlmacen.Usuario_ID  = Sesion.Usuario_ID;
                NotaAlmacen.Empresa_ID  = Sesion.Empresa_ID.Value;
                NotaAlmacen.Estacion_ID = Sesion.Estacion_ID.Value;
                NotaAlmacen.Create();

                //  Insertar movimiento de inventario
                MovimientoInventario.Cantidad                    = AjusteInventario.Cantidad;
                MovimientoInventario.CostoUnitario               = Refaccion.CostoUnitario.Value;
                MovimientoInventario.Fecha                       = NotaAlmacen.Fecha;
                MovimientoInventario.NotaAlmacen_ID              = NotaAlmacen.NotaAlmacen_ID;
                MovimientoInventario.AjusteInventario_ID         = AjusteInventario.AjusteInventario_ID;
                MovimientoInventario.Refaccion_ID                = AjusteInventario.Refaccion_ID;
                MovimientoInventario.TipoMovimientoInventario_ID = NotaAlmacen.TipoMovimientoInventario_ID;
                MovimientoInventario.Usuario_ID                  = NotaAlmacen.Usuario_ID;
                MovimientoInventario.Valor                       = Refaccion.CostoUnitario.Value * AjusteInventario.Cantidad;
                MovimientoInventario.Empresa_ID                  = Sesion.Empresa_ID.Value;
                MovimientoInventario.Estacion_ID                 = Sesion.Estacion_ID.Value;
                MovimientoInventario.Calculate();
                MovimientoInventario.Create();

                //  Actualizar refaccion
                MovimientoInventario.UpdateRefaccion(false);
            }
            /// <summary>
            /// Realiza la devolución de las refacciones
            /// </summary>
            public void EfectuarDevolucion()
            {
                //  Variables
                Entities.NotasAlmacen          NotaAlmacen          = new Entities.NotasAlmacen();
                Entities.MovimientosInventario MovimientoInventario = new Entities.MovimientosInventario();

                //  Crear la nota de almacen
                NotaAlmacen.Fecha                       = DB.GetDate();
                NotaAlmacen.OrdenCompra_ID              = null;
                NotaAlmacen.OrdenTrabajo_ID             = this.OrdenTrabajo_ID;
                NotaAlmacen.TipoMovimientoInventario_ID = 6; // Cancelacion de O.T.
                NotaAlmacen.Usuario_ID                  = Sesion.Usuario_ID;
                NotaAlmacen.Empresa_ID                  = Sesion.Empresa_ID.Value;
                NotaAlmacen.Estacion_ID                 = Sesion.Estacion_ID.Value;
                NotaAlmacen.Create();

                //  Registrar el movimiento para cada refaccion
                foreach (Entities.Vista_RefaccionesDevolucionesOrdenesTrabajo devolucion in this.ListaRefacciones)
                {
                    if (devolucion.Entrada > 0)
                    {
                        MovimientoInventario.Cantidad                    = devolucion.Entrada;
                        MovimientoInventario.CostoUnitario               = devolucion.CostoUnitario;
                        MovimientoInventario.Fecha                       = NotaAlmacen.Fecha;
                        MovimientoInventario.NotaAlmacen_ID              = NotaAlmacen.NotaAlmacen_ID;
                        MovimientoInventario.OrdenTrabajo_ID             = NotaAlmacen.OrdenTrabajo_ID;
                        MovimientoInventario.Refaccion_ID                = devolucion.Refaccion_ID;
                        MovimientoInventario.TipoMovimientoInventario_ID = NotaAlmacen.TipoMovimientoInventario_ID;
                        MovimientoInventario.Usuario_ID                  = NotaAlmacen.Usuario_ID;
                        MovimientoInventario.Valor                       = MovimientoInventario.Cantidad * MovimientoInventario.CostoUnitario;
                        MovimientoInventario.Empresa_ID                  = NotaAlmacen.Empresa_ID;
                        MovimientoInventario.Estacion_ID                 = NotaAlmacen.Estacion_ID;
                        MovimientoInventario.Calculate();
                        MovimientoInventario.Create();

                        //  Actualizar refaccion
                        MovimientoInventario.UpdateRefaccion(false);
                    }
                }
            }
        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;
        }