private void Click_Save(object sender, EventArgs e)
        {
            if (!IsValidToSave())
            {
                return;
            }
            string stringOriginalCode = String.Empty;
            string stringCode         = String.Empty;

            foreach (DataGridViewRow row in DataGridCodes.Rows)
            {
                string stringTemp = Util.ConvertDynamicToString(row.Cells[0].Value);
                stringOriginalCode += stringTemp + " ";
                stringCode         += Util.NormalizeString(stringTemp) + " ";
            }
            stringOriginalCode = stringOriginalCode.TrimEnd(' ');
            MaterialStuck materialStuck = new MaterialStuck()
            {
                OriginalCode = stringOriginalCode,
                Name         = Util.NormalizeString(NameInput.Text),
                Code         = stringCode,
                Ktl          = Util.NormalizeString(KLTInput.Text),
                Description  = DescriptionInput.Text,
                Unit         = Util.ConvertDynamicToString(UnitComboBox.SelectedItem),
                Location     = Util.NormalizeString(LocationInput.Text),
                ProviderName = Util.ConvertDynamicToString(SupplierComboBox.SelectedItem),
                Total        = Util.ConvertDynamicToDouble(AmountInput.Value)
            };

            DataDB.UpdateMaterialListForDummies(materialStuck);
            Util.ShowMessage(AlarmType.SUCCESS, $"Se han insertado el registro");
            FillDataGrid();
        }
示例#2
0
        private void DataGrid_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            DataGridViewRow row = e.Row;

            try
            {
                MaterialStuck material = new MaterialStuck
                {
                    Id           = (Guid)row.Cells["Id"].Value,
                    OriginalCode = Util.ConvertDynamicToString(row.Cells["OriginalCode"].Value),
                    //Name = Util.ConvertDynamicToString(row.Cells["Name"].Value),
                    Description = Util.ConvertDynamicToString(row.Cells["Description"].Value),
                    Provider    = Util.ConvertDynamicToString(row.Cells["ProviderName"].Value),
                    Total       = Util.ConvertDynamicToDouble(row.Cells["StockTotal"].Value),
                    Unit        = Util.ConvertDynamicToString(row.Cells["Unit"].Value),
                    Location    = Util.ConvertDynamicToString(row.Cells["Location"].Value),
                    Ktl         = Util.ConvertDynamicToString(row.Cells["KLT"].Value),
                    IsActive    = false
                };
                MaterialStuck tempMaterial = DeletedMaterialList.Find(item => item.Id == material.Id);
                //MaterialStuck tempMaterial = DeletedMaterialList.Find(item => (item.Id == material.Id && (Util.IsEmptyString(material.OriginalCode) ? true : item.OriginalCode == material.OriginalCode)));
                if (!DeletedMaterialList.Contains(tempMaterial))
                {
                    DeletedMaterialList.Add(material);
                }
            }
            catch (Exception ex)
            {
                //
            }
        }
示例#3
0
        private bool IsAlreadyInsideList(List <MaterialStuck> list, MaterialStuck material)
        {
            MaterialStuck tempMaterial = list.Find(item => (item.Id == material.Id && !Util.IsEmptyGuid(material.Id)));

            if (!list.Contains(tempMaterial))
            {
                return(false);
            }
            return(true);
        }
示例#4
0
 public static void UpdateMaterialListForDummies(MaterialStuck material)
 {
     OpenConnection();
     try
     {
         using (IDbConnection dbConnection = connection)
         {
             string     originalCode = material.OriginalCode;
             string     code         = material.Code;
             string     name         = material.Name ?? "";
             double     total        = material.Total;
             string     ktl          = material.Ktl ?? "";
             string     description  = material.Description ?? "";
             string     provider     = material.ProviderName ?? "";
             string     location     = material.Location ?? "";
             string     unit         = material.Unit ?? "";
             IDbCommand dbCommand    = dbConnection.CreateCommand();
             dbCommand.CommandType = CommandType.StoredProcedure;
             dbCommand.CommandText = @"dbo.sproc_UpdateWarehouseMaterialForDummies";
             dbCommand.Parameters.Add(new SqlParameter("@Code", code));
             dbCommand.Parameters.Add(new SqlParameter("@OriginalCode", originalCode));
             dbCommand.Parameters.Add(new SqlParameter("@Description", description));
             dbCommand.Parameters.Add(new SqlParameter("@ProviderName", provider));
             dbCommand.Parameters.Add(new SqlParameter("@Total", total));
             dbCommand.Parameters.Add(new SqlParameter("@Unit", unit));
             dbCommand.Parameters.Add(new SqlParameter("@Location", location));
             dbCommand.Parameters.Add(new SqlParameter("@KLT", ktl));
             dbCommand.Parameters.Add(new SqlParameter("@MaterialName", name));
             dbCommand.ExecuteNonQuery();
         }
         connection.Close();
     }
     catch (Exception exc)
     {
         MessageBox.Show($"Error SQL: {exc.Message}");
         connection.Close();
         throw new Exception("Get (EnabledProducts) error: " + exc.Message, exc);
     }
 }
示例#5
0
        private void Click_Save(object sender, EventArgs e)
        {
            List <MaterialStuck> materialList      = new List <MaterialStuck>();
            DataTable            dataTable         = (DataTable)DataGrid.DataSource;
            DataTable            dataTableChanges  = dataTable.GetChanges(DataRowState.Modified);
            DataTable            dataTableInserted = dataTable.GetChanges(DataRowState.Added);

            if (dataTableChanges == null && DeletedMaterialList.Count == 0 && dataTableInserted == null)
            {
                MessageBox.Show("No hay ningún cambio hecho");
                return;
            }
            materialList.AddRange(DeletedMaterialList);
            if (dataTableChanges != null)
            {
                foreach (System.Data.DataRow row in dataTableChanges.Rows)
                {
                    MaterialStuck material = null;
                    try
                    {
                        material = new MaterialStuck
                        {
                            Id           = new Guid(row["Id"].ToString()),
                            OriginalCode = Util.ConvertDynamicToString(row["OriginalCode"]),
                            //Name = Util.ConvertDynamicToString(row["Name"]),
                            Description = Util.ConvertDynamicToString(row["Description"]),
                            Provider    = Util.ConvertDynamicToString(row["ProviderName"]),
                            Total       = Util.ConvertDynamicToDouble(row["StockTotal"]),
                            Unit        = Util.ConvertDynamicToString(row["Unit"]),
                            Location    = Util.ConvertDynamicToString(row["Location"]),
                            Ktl         = Util.ConvertDynamicToString(row["KLT"]),
                            IsActive    = Util.StringToBool(row["IsActive"].ToString())
                        };
                    }
                    catch
                    {
                        Util.ShowMessage(AlarmType.WARNING, "No puede cambiar una fila recién insertada, salga de la ventana e intentelo de nuevo por favor");
                        continue;
                    }

                    if (material.OriginalCode != String.Empty)
                    {
                        if (!IsAlreadyInsideList(materialList, material))
                        {
                            materialList.Add(material);
                        }
                    }
                    else
                    {
                        Util.ShowMessage(AlarmType.WARNING, "No puede dejar la clave (Code) de un producto vacio");
                        return;
                    }
                    materialList.Add(material);
                }
            }
            if (dataTableInserted != null)
            {
                foreach (System.Data.DataRow row in dataTableInserted.Rows)
                {
                    MaterialStuck material = new MaterialStuck
                    {
                        OriginalCode = Util.ConvertDynamicToString(row["OriginalCode"]),
                        //Name = Util.ConvertDynamicToString(row["Name"]),
                        Description = Util.ConvertDynamicToString(row["Description"]),
                        Provider    = Util.ConvertDynamicToString(row["ProviderName"]),
                        Total       = Util.ConvertDynamicToDouble(row["StockTotal"]),
                        Unit        = Util.ConvertDynamicToString(row["Unit"]),
                        Location    = Util.ConvertDynamicToString(row["Location"]),
                        Ktl         = Util.ConvertDynamicToString(row["KLT"]),
                        IsActive    = true
                    };

                    if (material.OriginalCode != String.Empty)
                    {
                        if (!IsAlreadyInsideList(materialList, material))
                        {
                            materialList.Add(material);
                        }
                    }
                    else
                    {
                        Util.ShowMessage(AlarmType.WARNING, "No puede dejar la clave (Code) de un producto vacio");
                        return;
                    }
                }
            }

            DataDB.UpdateMaterialList(materialList);
            Util.ShowMessage(AlarmType.SUCCESS, $"Se han cambiado los registro(s)");
            dataTable.AcceptChanges();
            //if (dataTableInserted != null)
            //{
            //    FillDataGrid();
            //    DataGrid.FirstDisplayedScrollingRowIndex = DataGrid.RowCount - 1;
            //}
        }
示例#6
0
        public static List <MaterialStuck> ConvertExcelToMaterialListFromLetfOvers(string filePath)
        {
            List <MaterialStuck> materialList = new List <MaterialStuck>();

            Excel.Application app      = new Excel.Application();
            Excel.Workbook    workbook = app.Workbooks.Open(filePath);
            foreach (Excel._Worksheet sheet in workbook.Sheets)
            {
                Excel.Range range    = sheet.UsedRange;
                int         rowCount = range.Rows.Count;
                int         colCount = range.Columns.Count;
                if (sheet.Name.ToUpper() == Defs.EXCLUDED_SHEET_COSTOS || sheet.Name.ToUpper() == Defs.EXCLUDED_SHEET_COLORES)
                {
                    continue;
                }
                for (int rowIndex = 2; rowIndex <= rowCount; rowIndex++)
                {
                    MaterialStuck material = new MaterialStuck();
                    for (int colIndex = 1; colIndex <= 2; colIndex++)
                    {
                        int   colorNumber = System.Convert.ToInt32(((Excel.Range)sheet.Cells[rowIndex, colIndex]).Interior.Color);
                        Color color       = System.Drawing.ColorTranslator.FromOle(colorNumber);

                        if (!Util.IsLike(color.Name, Defs.COLOR_GREEN))
                        {
                            var    value = range.Cells[rowIndex, colIndex].Value2;
                            string code  = (string)(value + "");
                            break;
                        }
                        if (range.Cells[rowIndex, colIndex] != null && range.Cells[rowIndex, colIndex].Value2 != null)
                        {
                            var value = range.Cells[rowIndex, colIndex].Value2;
                            if (colIndex == Defs.NUM_COL_MATERIAL_CODE)
                            {
                                string code = (string)(value + "");
                                material.Code         = Util.NormalizeString(code);
                                material.OriginalCode = code;
                            }
                            else if (colIndex == Defs.NUM_COL_AMOUNT)
                            {
                                double amount;
                                try
                                {
                                    amount = (double)value;
                                }
                                catch (Exception e)
                                {
                                    amount = 0;
                                }
                                material.Total = amount;
                            }
                            if (rowIndex != 1 && material.Code != null && material.Total != 0)
                            {
                                material.Location = sheet.Name;
                                materialList.Add(material);
                                break;
                            }
                        }
                    }
                }
                Marshal.ReleaseComObject(range);
                Marshal.ReleaseComObject(sheet);
            }
            //cleanup
            GC.Collect();
            GC.WaitForPendingFinalizers();


            //close and release
            workbook.Close(0);
            Marshal.ReleaseComObject(workbook);
            //quit and release
            app.Quit();
            Marshal.ReleaseComObject(app);
            return(materialList);
        }
示例#7
0
        public static List <MaterialStuck> ConvertExcelToMaterialListFromWarehouseExcel(string filePath)
        {
            List <MaterialStuck> materialList = new List <MaterialStuck>();
            List <string>        errorList    = new List <string>();

            Excel.Application app      = new Excel.Application();
            Excel.Workbook    workbook = app.Workbooks.Open(filePath);

            foreach (Excel._Worksheet sheet in workbook.Sheets)
            {
                Excel.Range   range         = sheet.UsedRange;
                int           rowCount      = range.Rows.Count;
                int           colCount      = range.Columns.Count;
                List <Column> headercolumns = new List <Column>(colCount);
                string        sheetName     = sheet.Name.ToUpper();
                if (sheetName == Defs.EXCLUDED_SHEET_COSTOS || sheetName == Defs.EXCLUDED_SHEET_LEYENDA)
                {
                    continue;
                }

                for (int rowIndex = 1; rowIndex <= rowCount; rowIndex++)
                {
                    MaterialStuck material = new MaterialStuck();

                    if (headercolumns.Count < MIN_COLUMNS_BOM_AMOUNT) //Get Columns names
                    {
                        for (int colIndex = 1; colIndex <= colCount; colIndex++)
                        {
                            if (range.Cells[rowIndex, colIndex] != null && range.Cells[rowIndex, colIndex].Value2 != null)
                            {
                                var    colNameTemp = range.Cells[rowIndex, colIndex].Value2.ToString();
                                string columnName  = Util.ConvertDynamicToString(colNameTemp);
                                Column column      = new Column(columnName, colIndex);
                                headercolumns.Add(column);
                            }
                        }
                        if (rowIndex == HEADER_COLUMN_TOLERANCE)
                        {
                            break;
                        }
                    }
                    else
                    {
                        Column colWaterhouseId = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_WATERHOUSE_IDS));
                        Column colAmount       = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_TOTAL));
                        Column colUnit         = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_UNIT));
                        Column colLocation     = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_LOCATION));
                        Column colProvider     = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_PROVIDER));
                        Column colKlt          = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_KLT));

                        if (colWaterhouseId == null)
                        {
                            MessageBox.Show($"Formato no reconocido en {sheetName}");
                            break;
                        }

                        var dynamicCode     = range.Cells[rowIndex, colWaterhouseId.Index].Value;
                        var dynamicAmount   = range.Cells[rowIndex, colAmount.Index].Value;
                        var dynamicUnit     = range.Cells[rowIndex, colUnit.Index].Value;
                        var dynamicLocation = range.Cells[rowIndex, colLocation.Index].Value;
                        var dynamicProvider = range.Cells[rowIndex, colProvider.Index].Value;
                        var dynamicKlt      = range.Cells[rowIndex, colKlt.Index].Value;

                        string materialCode = Util.ConvertDynamicToString(dynamicCode);
                        material.Code         = Util.NormalizeString(materialCode);
                        material.OriginalCode = materialCode;

                        material.Total    = Util.ConvertDynamicToDouble(dynamicAmount);
                        material.Unit     = Util.ConvertDynamicToString(dynamicUnit);
                        material.Location = Util.ConvertDynamicToString(dynamicLocation);
                        material.Provider = Util.ConvertDynamicToString(dynamicProvider);
                        material.Ktl      = Util.ConvertDynamicToString(dynamicKlt);

                        //Add Valid material to list
                        if (!Util.IsEmptyString(material.Code))
                        {
                            materialList.Add(material);
                        }
                    }
                }
            }


            //cleanup
            GC.Collect();
            GC.WaitForPendingFinalizers();


            //close and release
            workbook.Close(0);
            Marshal.ReleaseComObject(workbook);
            //quit and release
            app.Quit();
            Marshal.ReleaseComObject(app);
            return(materialList);
        }
示例#8
0
        public static List <MaterialStuck> ConvertExcelToMaterialListFromMemo(string filePath)
        {
            List <MaterialStuck> materialList = new List <MaterialStuck>();
            List <string>        errorList    = new List <string>();

            Excel.Application app = new Excel.Application();
            Excel.Workbook    workbook;
            try
            {
                workbook = app.Workbooks.Open(filePath, UpdateLinks: 2);
            }
            catch (Exception e)
            {
                Util.ShowMessage(AlarmType.ERROR, e.Message);
                return(null);
            }


            foreach (Excel._Worksheet sheet in workbook.Sheets)
            {
                if (sheet.Visible == Excel.XlSheetVisibility.xlSheetHidden)
                {
                    continue;
                }
                Excel.Range   range         = sheet.UsedRange;
                int           rowCount      = range.Rows.Count;
                int           colCount      = range.Columns.Count;
                List <Column> headercolumns = new List <Column>(colCount);
                string        sheetName     = sheet.Name.ToUpper();

                int rowToleranceIndex = 0;
                for (int rowIndex = 1; rowIndex <= rowCount; rowIndex++)
                {
                    MaterialStuck material = new MaterialStuck();

                    if (headercolumns.Count < 4) //Get Columns names
                    {
                        colCount = 4;
                        for (int colIndex = 1; colIndex <= colCount; colIndex++)
                        {
                            try
                            {
                                if (range.Cells[rowIndex, colIndex] != null && range.Cells[rowIndex, colIndex].Value2 != null)
                                {
                                    string columnName = (string)range.Cells[rowIndex, colIndex].Value2.ToString();
                                    Column column     = new Column(columnName, colIndex);
                                    headercolumns.Add(column);
                                }
                            }
                            catch (Exception e)
                            {
                                break;
                            }
                        }
                        if (rowIndex == HEADER_COLUMN_TOLERANCE)
                        {
                            break;
                        }
                    }
                    else
                    {
                        string errorItem           = String.Empty;
                        string materialMessageItem = String.Empty;
                        Column colMaterialCode     = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_MATERIAL_ORDERN_MEMO));
                        Column colAmount           = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_PZAS_MEMO));
                        Column colMarca            = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_MARCA_MEMO));
                        Column colDescription      = headercolumns.Find(col => Util.IsLike(col.Name, Defs.COL_DESCRIPCION_MEMO));
                        if (colMaterialCode == null)
                        {
                            errorItem = $"\n*ERROR: Formato no reconocido en la hoja {sheet.Name.ToString()}, la columna del número de material, debe de decir: \"TEXTO BREVE Clave de material del proveedor\"";
                            errorList.Add(errorItem);
                            break;
                        }

                        var dynamicCode        = range.Cells[rowIndex, colMaterialCode.Index].Value;
                        var dynamicAmount      = range.Cells[rowIndex, colAmount.Index].Value;
                        var dynamicMarca       = range.Cells[rowIndex, colMarca.Index].Value;
                        var dynamicDescription = range.Cells[rowIndex, colDescription.Index].Value;



                        string materialCode = Util.ConvertDynamicToString(dynamicCode) == "?" ? String.Empty : Util.ConvertDynamicToString(dynamicCode);
                        if (Util.IsEmptyString(materialCode))
                        {
                            rowToleranceIndex++;
                            if (EMPTINESS_ROW_TOLERANCE < rowToleranceIndex)
                            {
                                break;
                            }
                        }
                        material.Code         = Util.NormalizeString(materialCode);
                        material.OriginalCode = materialCode;
                        material.Description  = Util.ConvertDynamicToString(dynamicDescription);

                        material.Total    = Util.ConvertDynamicToDouble(dynamicAmount);
                        material.Provider = Util.ConvertDynamicToString(dynamicMarca) == "?" ? "" : Util.ConvertDynamicToString(dynamicMarca);
                        material.Ktl      = sheet.Name;
                        //Add Valid material to list
                        if (!Util.IsEmptyString(material.Code))
                        {
                            if (Util.IsEmptyString(material.Unit))
                            {
                                material.Unit = "Unidad";
                            }
                            materialList.Add(material);
                            materialMessageItem = $"\nPROCESANDO: Hoja: {sheet.Name} Num Parte: {material.Code} Cantidad: {material.Total} Unidad {material.Unit}";
                        }
                        else if (!Util.IsEmptyString(material.Code))
                        {
                            errorItem = $"No hay información en la columna de {Defs.COL_AMOUNT} en la fila {rowIndex} de la hoja {sheet.Name.ToString()}";
                            errorList.Add(errorItem);
                        }
                    }
                }
                Marshal.ReleaseComObject(range);
                Marshal.ReleaseComObject(sheet);
            }
            //cleanup
            GC.Collect();
            GC.WaitForPendingFinalizers();


            //close and release
            workbook.Close(0);
            Marshal.ReleaseComObject(workbook);

            //quit and release
            app.Quit();
            Marshal.ReleaseComObject(app);

            if (errorList.Count > 0)
            {
                materialList.Clear();
                Util.ShowMessage(AlarmType.ERROR, errorList);
            }

            return(materialList);
        }