コード例 #1
0
        public viewComprasInv()
        {
            InitializeComponent();

            proTA = new PROVEEDORESTableAdapter();
            matTA = new MATERIALES_UNIDADESTableAdapter();
            comTA = new COMPRASTableAdapter();
            comdetTA = new DETALLE_COMPRATableAdapter();

            //Cargamos los proveedores al ComboBox
            InventariosDS iDS = new InventariosDS();
            proTA.Fill(iDS.PROVEEDORES);
            txtProveedor.ItemsSource=iDS.PROVEEDORES.DefaultView;
            txtProveedor.DisplayMemberPath="NOMBRE";
            txtProveedor.SelectedValuePath="ID_PROVEEDOR";

            //Cargamos los materiales
            matTA.Fill(iDS.MATERIALES_UNIDADES);
            gridDetalle.DataContext = iDS.MATERIALES_UNIDADES.DefaultView;
            txtMaterial.DisplayMemberPath="NOMBRE";
            txtMaterial.SelectedValuePath="ID_MATERIAL";

            //Creamos la tabla detalle de Factura
            GenerarTabla();
            dgDetalleF.ItemsSource=tblDetalle.DefaultView;

            //Cargamos la fecha actual del sistema
            txtFecha.Text = DateTime.Today.ToString();
            txtProveedor.Focus();

            txtTUnit.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroEnteroMath);
            txtPrecioU.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
        }
コード例 #2
0
 public viewInventarioKardex()
 {
     this.InitializeComponent();
     INVENTARIO_CARDEXTableAdapter ita = new INVENTARIO_CARDEXTableAdapter();
     InventariosDS ids = new InventariosDS();
     ita.Fill(ids.INVENTARIO_CARDEX);
     this.DataContext = ids.INVENTARIO_CARDEX;
 }
コード例 #3
0
        void ctlExpander_Expanded(object sender, RoutedEventArgs e)
        {
            //Primero Interceptamos el Expander que provoco el evento
            ctlExpander = sender as controlExpanderInventario;

            //Ahora recuperamos el valor del ID_MATERIAL para la consulta de su detalle
            string IDM = ctlExpander.IDMaterial;

            //Instaciamos el TA y cargamos la Consulta por el ID_Material
            ListBox dg = (ListBox)ctlExpander.Content;
            InventariosDS iDS = new InventariosDS();
            //dg.Items.Clear();
            iTA.FillByID(iDS.INVENTARIO_CARDEX, Int32.Parse(IDM));
            dg.ItemsSource= iDS.INVENTARIO_CARDEX;
        }
コード例 #4
0
        public viewOrdenFabricacion()
        {
            this.InitializeComponent();
            mtTA = new ONLY_MATERIAL_DISPONIBLETableAdapter();
            funcTA = new FuncionesTableAdapter();
            ofTA = new ORDEN_FABRICACIONTableAdapter();
            InventariosDS ivDS = new InventariosDS();

            //Cargamos fechas por defecto
            txtFechaExp.SelectedDate = DateTime.Today;
            txtFechaInicio.SelectedDate = DateTime.Today;

            //Cargamos la lista de materiales en el combobox
            mtTA.Fill(ivDS.ONLY_MATERIAL_DISPONIBLE);
            gridReqMateriales.DataContext = ivDS.ONLY_MATERIAL_DISPONIBLE.DefaultView;
            txtMaterial.DisplayMemberPath = "NOMBRE";
            txtMaterial.SelectedValuePath = "ID_MATERIAL";

            //Generamos la tabla que se conecta a la tabla de Req. Materiales
            GenerarTabla();
            dgReqMateriales.ItemsSource = tblReqMateriales.DefaultView;

            //Pasamos el handler a la clase manejadora de expresiones matematicas
            txtCantidad.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroEnteroMath);
            txtCantidadReq.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroEnteroMath);
            //txtSalarioxHora.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
            //txtMODNumeroHoras.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroEnteroMath);
            //txtGIFMonto.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
            //txtGIFTasa.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);

            //Pasamos tambn el handler cuando entran al TextBox se seleccione el texto
            txtArticulo.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtEspecificaciones.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtCantidad.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtCantidadReq.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtNoObreros.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtSalarioxHora.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtMODNumeroHoras.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtGIFMonto.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
            txtGIFTasa.GotFocus += new RoutedEventHandler(HandlerMathJMP.TextSelect);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        private void btnCompra_Click(object sender, RoutedEventArgs e)
        {
            DateTime dt;
            int iIDProv;
            try {
            dt = DateTime.Parse(txtFecha.Text);
            } catch (Exception ex) {
            ex.Data.Clear();
            MessageBox.Show("Por favor, seleccione la fecha de la operacion");
            txtFecha.Focus();
            return;
            }

            try
            {
            iIDProv = (int)txtProveedor.SelectedValue;
            }
            catch (Exception ex)
            {
            ex.Data.Clear();
            MessageBox.Show("Por favor, seleccione un proveedor para la compra");
            txtProveedor.Focus();
            return;
            }

            //Agregamos la transaccion a la tabla COMPRAS, que es la info general
            comTA.Insert(iIDProv, txtFecha.SelectedDate);

            int iIDCompra;

            //Recalculamos totales por cualquier cosa
            CalcularTotales();

            //Una vez agregada tenemos que recuperar el ID_COMPRA
            InventariosDS iDSTMP = new InventariosDS();
            comTA.Fill(iDSTMP.COMPRAS);
            iIDCompra = (int)iDSTMP.COMPRAS[iDSTMP.COMPRAS.Rows.Count-1]["ID_COMPRA"];

            //Una vez recuperado empezamos agregar material por material a la tabla detalle de compras
            foreach (DataRow dr in tblDetalle.Rows)
            {
            comdetTA.Insert(iIDCompra, (int)dr["CODIGO"], (int)dr["CANTIDAD"], (decimal)dr["PRECIO"]);
            }

            //Una vez con la compra de materieles tenemos que realizar la transaccion de Inventario Mercaderia
            //Calculamos el IVA y a que cuenta vamos abonar
            decimal dMontoT = decimal.Parse(lblTotalC.Text.Substring(1));
            decimal dIVA = Math.Round(dMontoT * 0.13m, 2);
            int iIDTransaccion;
            TRANSACCIONESTableAdapter transTA = new TRANSACCIONESTableAdapter();
            ContaGeneralDS contaDS = new ContaGeneralDS();
            DETALLE_TRANSACCIONESTableAdapter detTransTA = new DETALLE_TRANSACCIONESTableAdapter();

            //Hacemos primero la insercion en la tabla transacciones
            transTA.Insert(12, DateTime.Today, string.Format("F{0}", iIDCompra), dMontoT, "Compra de Materiales");
            transTA.FillByCodigo(contaDS.TRANSACCIONES, string.Format("F{0}", iIDCompra));
            iIDTransaccion = (int)contaDS.TRANSACCIONES[0]["ID_TRANSACCION"];

            //Ahora afectamos las cuentas de la opoeracions d compra de materiales
            detTransTA.Insert(iIDTransaccion, 1, 39, dIVA, 0);
            detTransTA.Insert(iIDTransaccion, 2, 80, dMontoT-dIVA, 0);
            if (optEfectivo.IsChecked == true)
            detTransTA.Insert(iIDTransaccion, 3, 1, 0, dMontoT);     //EFECTIVO
            else
            detTransTA.Insert(iIDTransaccion, 3, 31, 0, dMontoT);    //CxP

            MessageBox.Show("La transaccion de Compra de Mercaderia se realizo con exito", "Transaccion Exitosa", MessageBoxButton.OK, MessageBoxImage.Information);
            tblDetalle.Clear();
            txtPrecioU.Text = "0";
            txtTUnit.Text = "0";
            txtFecha.Focus();
        }