public viewInventarioKardex()
 {
     this.InitializeComponent();
     INVENTARIO_CARDEXTableAdapter ita = new INVENTARIO_CARDEXTableAdapter();
     InventariosDS ids = new InventariosDS();
     ita.Fill(ids.INVENTARIO_CARDEX);
     this.DataContext = ids.INVENTARIO_CARDEX;
 }
예제 #2
0
 public ViewInventarioD()
 {
     InitializeComponent();
     iTA = new INVENTARIO_CARDEXTableAdapter();
 }
        private void btnCrearOF_Click(object sender, RoutedEventArgs e)
        {
            DateTime dtFE, dtFRxC, dtFI, dtFT;

            //Validamos primero las fechas de los datos generales de la OF
            if ((!ValidacionesJMP.IsSelectedDate(txtFechaExp.Text, out dtFE)) || (!ValidacionesJMP.IsSelectedDate(txtFechaReq.Text,out dtFRxC)))
            {
                MessageBox.Show("ERROR! Primero debe de seleccionar la Fecha de Expedicion y Fecha Requerida por el cliente", "ERROR! de datos", MessageBoxButton.OK, MessageBoxImage.Error);
                txtFechaExp.Focus();
                return;
            }

            if (DateTime.Compare(dtFRxC,dtFE) < 0)
            {
                MessageBox.Show("ERROR! La fecha REQUERIDA POR EL CLIENTE no puede ser MENOR que la fecha de EXPEDICION", "ERROR! de Fechas", MessageBoxButton.OK, MessageBoxImage.Error);
                txtFechaReq.Focus();
                return;
            }

            //Ahora validamos los datos de Produccion
            int iCantidadProd;
            if ((ValidacionesJMP.IsNull(txtArticulo.Text)) || (!ValidacionesJMP.IsNumericoMayor(txtCantidad.Text, out iCantidadProd)) ||
                (!ValidacionesJMP.IsSelectedDate(txtFechaInicio.Text, out dtFI)) || (!ValidacionesJMP.IsSelectedDate(txtFechaFinalizacion.Text, out dtFT)) ||
                (ValidacionesJMP.IsNull(txtEspecificaciones.Text)))
            {
                MessageBox.Show("ERROR! Los campo de los datos de produccion contienen errores. Por favor, corrijalos y vuelva a intentarlo", "ERROR! de datos", MessageBoxButton.OK, MessageBoxImage.Error);
                txtArticulo.Focus();
                return;
            }

            if (DateTime.Compare(dtFT, dtFI) < 0)
            {
                MessageBox.Show("ERROR! La fecha de FINALIZACION no puede ser MENOR que la fecha de INICIO", "ERROR! de Fechas", MessageBoxButton.OK, MessageBoxImage.Error);
                txtFechaReq.Focus();
                return;
            }

            //Ahora validamos datos del MOD
            if (lblTotalMOD.Text == "ERROR")
            {
                MessageBox.Show("ERROR! Los campos de los datos de MOD contiene errores", "ERROR! de datos", MessageBoxButton.OK, MessageBoxImage.Error);
                txtNoObreros.Focus();
                return;
            }

            //Por ultimo validamos los datos del CIF
            if (lblTotalGIF.Text == "ERROR")
            {
                MessageBox.Show("ERROR! Los campos de los datos de CIF contiene errores", "ERROR! de datos", MessageBoxButton.OK, MessageBoxImage.Error);
                txtGIFTasa.Focus();
                return;
            }

            //Tambien validamos que exista requisicion de material en la orden
            if (tblReqMateriales.Rows.Count == 0)
            {
                MessageBox.Show("ERROR! No se puede continuar debido a que no a requerido de ningun material", "ERROR! No existe requisicion de material", MessageBoxButton.OK, MessageBoxImage.Error);
                txtMaterial.Focus();
                return;
            }

            //Una vez tenemos validado todos los datos, podemos pasar primero agregar todo los datos
            //a la tabla de OF.
            ofTA.Insert(dtFE, dtFRxC, dtFI, dtFT, txtArticulo.Text,iCantidadProd,
                        txtEspecificaciones.Text, iMOD_NObreros, iMOD_Nhoras, dMOD_Salario,
                        dGIF_Monto, (float)dGIF_Tasa);

            //Recuperamos el numero de operacion que fue asignado a la Orden de Fabricacion
            int iIDOFab = funcTA.GET_NOLAST_ORDEN_FAB().Value;

            //Ahora tenemos que ingresa los materiales de manera de PEPS
            int iCTotal,iIDMat,iDifArt,iDRCantidad;
            InventariosDS iDS = new InventariosDS();
            INVENTARIO_CARDEXTableAdapter icxTA = new INVENTARIO_CARDEXTableAdapter();
            REQUISICION_MATERIALESTableAdapter reqmatTA = new REQUISICION_MATERIALESTableAdapter();

            foreach (DataRow dr in tblReqMateriales.Rows)
            {
                iIDMat = (int)dr["CODIGO"];
                iCTotal = (int)dr["CANTIDAD"];
                iDifArt = 0;

                //Cargamos la tabla con todos los productos disponibles ordenados en PEPS
                iDS.Clear();
                icxTA.FillByIDMaterial(iDS.INVENTARIO_CARDEX, iIDMat);
                foreach (DataRow drM in iDS.INVENTARIO_CARDEX.Rows)
                {
                    //Verificamos si la cantidad del primero articulo en PEPS alcanza para cubrir el material
                    iDRCantidad = (int)drM["DIFERENCIA"];
                    if (iDRCantidad >= iCTotal - iDifArt)
                    {
                        //Significa que la cnatidad de la compra alcanza para cubrirla requesicion
                        reqmatTA.Insert(iIDMat, iIDOFab, (int)drM["ID_COMPRA"], iCTotal - iDifArt);
                        break;
                    }
                    else
                    {
                        reqmatTA.Insert(iIDMat, iIDOFab, (int)drM["ID_COMPRA"], (int)drM["DIFERENCIA"]);
                        iDifArt += (int)drM["DIFERENCIA"];
                    }
                }

            }

            //Una vez terminado mostramos que la orden de fabriacion se realizo exitosamente
            MessageBox.Show(string.Format("La Orden de Fabriacion con No. {0}, se efectuo exitosamente en el sistema", iIDOFab),
                                "La orden de fabricacion se ingreso correctamente en el sistema",
                                MessageBoxButton.OK, MessageBoxImage.Information);
        }