Beispiel #1
0
        private void EkanbanHisControl_Load(object sender, EventArgs e)
        {
            int height = 120;

            if (EKanbanHis.EKanbanClearHis.Count > 0)
            {
                ErrorHis = true;
                //this.Hide();
                //return;
            }

            EKanbanInterface eKanbanInterface = new EKanbanInterface();

            try
            {
                try
                {
                    eKanbanInterface        = Newtonsoft.Json.JsonConvert.DeserializeObject <EKanbanInterface>(EKanbanHis.Data);
                    DS_Interface.DataSource = eKanbanInterface;
                    lbStatus.Text           = ((SysActionCode)eKanbanInterface.SysActionCode).ToString();
                }
                catch { }

                if (EKanbanHis.EKanbanAddHis != null)
                {
                    DataTable table = new DataTable();
                    table.Columns.Add("Sequence No");
                    table.Columns.Add("Sequence Quantity");
                    table.Columns.Add("Add Time");
                    table.Columns.Add("Confirm Time");


                    foreach (var item in EKanbanHis.EKanbanAddHis)
                    {
                        string finishTime = "";
                        try
                        {
                            finishTime = ((SysActionCode)eKanbanInterface.SysActionCode == SysActionCode.EKANBAN_CONFIRM_ITEM) ? eKanbanInterface.LastUpdate.ToString() : "";
                        }
                        catch { }
                        table.Rows.Add(new object[] { item.SequenceNo, item.SequenceQty, item.DateTime, finishTime });
                        height += 20;
                    }

                    dataGridView1.DataSource = table;
                }
                TotaPrepareQty = 0;
                foreach (var item in EKanbanHis.EKanbanAddHis)
                {
                    TotaPrepareQty += ShareFuncs.GetInt(item.SequenceQty);
                }

                lbTotalQty.Text = TotaPrepareQty.ToString();

                this.Height = height;
            }
            catch { }
        }
Beispiel #2
0
 public InterfaceInfo(EKanbanInterface _interface)
 {
     id         = _interface.id;
     PoNumber   = _interface.PO;
     SequenceNo = _interface.SequenceNo;
     PoQty      = _interface.POqty;
     CartQty    = _interface.CartQty;
     Line       = _interface.Line;
 }
Beispiel #3
0
 public bool AddNewEKanbanInterface(EKanbanInterface _ekanbanInterface)
 {
     try
     {
         using (EKanbanTaskContext = new EKanbanTaskContext(database))
         {
             EKanbanTaskContext.EKanbanInterfaces.Add(_ekanbanInterface);
             EKanbanTaskContext.SaveChanges();
         }
         return(true);
     }
     catch { return(false); }
 }
Beispiel #4
0
 public bool UpdateEKanbanInterface(EKanbanInterface _ekanbanInterface)
 {
     try
     {
         using (EKanbanTaskContext = new EKanbanTaskContext(database))
         {
             EKanbanTaskContext.Entry(_ekanbanInterface).State = EntityState.Modified;
             EKanbanTaskContext.SaveChanges();
         }
         return(true);
     }
     catch { return(false); }
 }
Beispiel #5
0
 public bool DeleteEKanbanInterface(EKanbanInterface _ekanbanInterface)
 {
     try
     {
         using (EKanbanTaskContext = new EKanbanTaskContext(database))
         {
             var EKanban = EKanbanTaskContext.EKanbanInterfaces.Find(_ekanbanInterface.id);
             EKanbanTaskContext.Entry(EKanban).State = EntityState.Deleted;
             EKanbanTaskContext.SaveChanges();
             return(true);
         }
     }
     catch { return(false); }
 }
Beispiel #6
0
 public EKanbanHis GetEKanbanHistory(EKanbanInterface _ekanbanInterface)
 {
     try
     {
         using (HistoryContext = new HistoryContext(database))
         {
             return(HistoryContext.EKanbanHis
                    .Include("EKanbanAddHis")
                    .Include("EKanbanConfirmHis")
                    .Include("EKanbanClearHis")
                    .Where(i => i.EKanbanInterface_Id == _ekanbanInterface.id)
                    .First());
         }
     }
     catch { return(null); }
 }
Beispiel #7
0
        private void UpdateSelectedEkanbanDevice()
        {
            SelectedEKanbanDevice    = new EKanbanDevice();
            SelectedEKanbanInterface = new EKanbanInterface();

            if (lbEKanbanDevice.SelectedItem == null)
            {
                return;
            }

            SelectedEKanbanDevice = lbEKanbanDevice.SelectedItem as EKanbanDevice;

            SelectedEKanbanInterface = EKanbanTaskQuery.GetLastEKanbanInterface(SelectedEKanbanDevice.id);

            DS_EKBInterface.DataSource = new EKanbanInterface();
            if (SelectedEKanbanInterface != null)
            {
                lbStatus.Text = (SysActionCode)SelectedEKanbanInterface.SysActionCode == SysActionCode.EKANBAN_CONFIRM_ITEM ? "CONFORM OK" : "WAITING";
                DS_EKBInterface.DataSource = SelectedEKanbanInterface;
            }
        }
Beispiel #8
0
        /// <summary>
        /// Thêm thông tin vào Ekanban
        /// </summary>
        private void AddSequenceToEKanban()
        {
            if (SelectedEKanbanDevice == null || SelectedEKanbanDevice.id == 0)
            {
                MessageBox.Show("An Error orcured while adding Sequence to EKanban.\r\nError: Missing Ekanban device.", "Message",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            var ekbLoading = EKanbanTaskQuery.GetEKanbanLoading(SelectedSequence.id);

            if (ekbLoading != null)
            {
                MessageBox.Show("An Error orcured while adding Sequence to EKanban.\r\nError: The sequence is already added.", "Message",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (SelectedOriginalPo.id == 0 || SelectedSequence.id == 0 || SelectedSchedule.id == 0)
            {
                MessageBox.Show("An Error orcured while adding Sequence to EKanban.\r\nError: Missing data.", "Message",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            var dresult = MessageBox.Show("Make sure you want to continue?", "Question",
                                          MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

            if (dresult != DialogResult.Yes)
            {
                return;
            }

            int           action  = 0;
            SysActionCode SysCode = SysActionCode.UNKNOW;

            EKanbanHis EkanbanHis = new EKanbanHis();

            if (SelectedEKanbanInterface == null)
            {
                action = 0;
            }
            else
            {
                if (SelectedEKanbanInterface.id != 0)
                {
                    SysCode    = (SysActionCode)SelectedEKanbanInterface.SysActionCode;
                    EkanbanHis = SysHistoryQuery.GetEKanbanHistory(SelectedEKanbanInterface);
                }
            }


            switch (SysCode)
            {
            case SysActionCode.SEQUENCE_PREPARING:
            case SysActionCode.EKANBAN_ADD_NEW_ITEM:
                dresult = MessageBox.Show("EKanban is holding data, do you want to continue?", "Message",
                                          MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

                if (dresult != DialogResult.Yes)
                {
                    return;
                }
                action = 1;
                break;

            case SysActionCode.SEQUENCE_CONFORM:
            case SysActionCode.EKANBAN_CONFIRM_ITEM:
                action = 0;
                break;

            default:
                break;
            }

            switch (action)
            {
            case 0:     // add new interface
                List <EKanbanComponent> eKanbanComponent = new List <EKanbanComponent>();
                foreach (var item in SelectShoeComponent)
                {
                    if (item.AddToEkanban)
                    {
                        eKanbanComponent.Add(new EKanbanComponent
                        {
                            ShoeComponent_Id = item.Id,
                            CuttingType_Id   = item.CuttingType.id,
                        });
                    }
                }
                // add new interface
                EKanbanInterface eKanbanInterface = new EKanbanInterface
                {
                    LastUpdate        = DateTime.Now,
                    PO                = GetShortPoNumber(SelectedSchedule.PoNumber),
                    Line              = SelectedScheduleLine,
                    EKanbanDevice_Id  = SelectedEKanbanDevice.id,
                    POqty             = SelectedSchedule.Quantity.ToString(),
                    SysActionCode     = (int)SysActionCode.EKANBAN_ADD_NEW_ITEM,
                    EkanbanComponents = new List <EKanbanComponent>(eKanbanComponent),
                    SequenceNo        = SelectedSequence.SequenceNo.ToString(),
                    CartQty           = SelectedSequence.Quantity.ToString(),

                    EKanbanLoadings = new List <EKanbanLoading>
                    {
                        new EKanbanLoading
                        {
                            SysActionCode       = (int)SysActionCode.SEQUENCE_PREPARING,
                            OriginalPo_Id       = SelectedOriginalPo.id,
                            OriginalSequence_Id = SelectedSequence.id,
                            LastUpdate          = DateTime.Now,
                            SequenceQty         = SelectedSequence.Quantity
                        }
                    }
                };

                if (EKanbanTaskQuery.AddNewEKanbanInterface(eKanbanInterface))
                {
                    var inf1 = EKanbanTaskQuery.FindEKanbanInterface(eKanbanInterface.id);

                    string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(inf1);
                    EkanbanHis = new EKanbanHis
                    {
                        EKanbanInterface_Id = eKanbanInterface.id,
                        EKanbanDevice_Id    = SelectedEKanbanDevice.id,
                        DateTime            = DateTime.Now,
                        ProductionLine_Id   = SelectedSchedule.ProductionLine_Id,
                        Data = jsonStr,
                    };

                    MessageBox.Show("Add new Ekanban Interface successfully", "Message");

                    bool success = SysHistoryQuery.AddNewEKanbanHisotry(EkanbanHis);

                    if (!success)
                    {
                        MessageBox.Show("Add new Ekanban history record error", "Message");
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("An error orcured while adding new Po to Ekanban.\r\nError: Failed to add new Ekanban interface to database.", "Message",
                                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                break;

            case 1:     // update interface

                EKanbanLoading eKanbanLoading = new EKanbanLoading
                {
                    EKanbanInterface_Id = SelectedEKanbanInterface.id,
                    SysActionCode       = (int)SysActionCode.SEQUENCE_PREPARING,
                    OriginalPo_Id       = SelectedOriginalPo.id,
                    OriginalSequence_Id = SelectedSequence.id,
                    LastUpdate          = DateTime.Now,
                    SequenceQty         = SelectedSequence.Quantity,
                };

                bool exp1 = EKanbanTaskQuery.AddNewEKanbanLoading(eKanbanLoading);

                if (!exp1)
                {
                    MessageBox.Show("An error orcured while adding new Po to Ekanban.\r\nError: Failed to add EkanbanLoading to database.", "Message",
                                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                SelectedEKanbanInterface.PO         += $",{GetShortPoNumber(SelectedSchedule.PoNumber)}";
                SelectedEKanbanInterface.SequenceNo += $",{SelectedSequence.SequenceNo}";
                SelectedEKanbanInterface.POqty      += $",{SelectedSchedule.Quantity}";
                SelectedEKanbanInterface.CartQty    += $",{SelectedSequence.Quantity}";
                SelectedEKanbanInterface.LastUpdate  = DateTime.Now;
                bool exp2 = EKanbanTaskQuery.UpdateEKanbanInterface(SelectedEKanbanInterface);

                EKanbanInterface inf2 = EKanbanTaskQuery.FindEKanbanInterface(SelectedEKanbanInterface.id);

                var    his      = SysHistoryQuery.GetEKanbanHistory(SelectedEKanbanInterface);
                string jsonStr2 = Newtonsoft.Json.JsonConvert.SerializeObject(inf2);
                his.Data     = jsonStr2;
                his.DateTime = DateTime.Now;
                SysHistoryQuery.UpdateEKanbanHis(his);



                if (exp1 && exp2)
                {
                    MessageBox.Show("Add new Po to Ekanban succeesfully", "Message");
                }

                if (!exp2)
                {
                    MessageBox.Show("An error orcured while adding new Po to Ekanban.\r\nError: Failed to update Ekanban interface.", "Message");
                    EKanbanTaskQuery.DeleteEKanbanLoading(eKanbanLoading);
                    return;
                }

                // update interface
                break;
            }

            UpdateSelectedSchedule();

            UpdateSelectedEkanbanDevice();

            UpdateSelectedOriginalSequence();

            AddNewStockMeasure();

            AddNewHistory(EkanbanHis.id);
        }