Пример #1
0
        public void ResetCountedBinTask(BinByTask binTask)
        {
            //Saca el listado delso completado, para cancelarlos.
            IList <BinByTaskExecution> list = Factory.DaoBinByTaskExecution()
                                              .Select(new BinByTaskExecution {
                BinTask = binTask
            })
                                              .Where(f => f.Status.StatusID == DocStatus.Completed || f.Status.StatusID == DocStatus.New)
                                              .ToList(); //, Status = new Status { StatusID = DocStatus.Completed }

            if (list == null || list.Count == 0)
            {
                return;
            }

            Status cancelled = WType.GetStatus(new Status {
                StatusID = DocStatus.Cancelled
            });

            foreach (BinByTaskExecution bte in list)
            {
                bte.Status     = cancelled;
                bte.ModDate    = DateTime.Now;
                bte.ModifiedBy = binTask.ModifiedBy;
                Factory.DaoBinByTaskExecution().Update(bte);
            }
        }
Пример #2
0
        public override IQuery GetHsql(Object data)
        {
            StringBuilder sql     = new StringBuilder("select a from BinByTask a    where  ");
            BinByTask     binTask = (BinByTask)data;

            if (binTask != null)
            {
                Parms = new List <Object[]>();
                if (binTask.RowID != 0)
                {
                    sql.Append(" a.RowID = :id     and   ");
                    Parms.Add(new Object[] { "id", binTask.RowID });
                }


                if (binTask.Bin != null && binTask.Bin.BinID != 0)
                {
                    sql.Append(" a.Bin.BinID = :idd1  and  ");
                    Parms.Add(new Object[] { "idd1", binTask.Bin.BinID });
                }


                if (binTask.Status != null && binTask.Status.StatusID != 0)
                {
                    sql.Append(" a.Status.StatusID = :ids5     and   ");
                    Parms.Add(new Object[] { "ids5", binTask.Status.StatusID });
                }

                if (binTask.Bin != null && !String.IsNullOrEmpty(binTask.Bin.BinCode))
                {
                    sql.Append(" a.Bin.BinCode = :idd2  and  ");
                    Parms.Add(new Object[] { "idd2", binTask.Bin.BinCode });
                }

                if (binTask.TaskDocument != null && binTask.TaskDocument.DocID != 0)
                {
                    sql.Append(" a.TaskDocument.DocID = :idd3     and   ");
                    Parms.Add(new Object[] { "idd3", binTask.TaskDocument.DocID });
                }

                if (binTask.Product != null && binTask.Product.ProductID != 0)
                {
                    sql.Append(" a.Product.ProductID = :idd4     and   ");
                    Parms.Add(new Object[] { "idd4", binTask.Product.ProductID });
                }
            }

            sql = new StringBuilder(sql.ToString());

            sql.Append(" 1=1 order by a.Bin.BinCode"); //.BinCode asc


            IQuery query = Factory.Session.CreateQuery(sql.ToString());

            SetParameters(query);
            return(query);
        }
Пример #3
0
        private void RemoveRecord()
        {
            if (View.LvAssigned.SelectedItems == null || View.LvAssigned.SelectedItems.Count == 0)
            {
                return;
            }

            string    msg = "";
            BinByTask bin = null;

            foreach (Object obj in View.LvAssigned.SelectedItems)
            {
                try
                {
                    bin = (BinByTask)obj;

                    //Removerla del Server
                    service.DeleteBinByTask(bin);

                    View.Model.AssignBin.Remove((BinByTask)obj);
                    View.Model.AvailableBin.Insert(0, ((BinByTask)obj).Bin);
                }

                catch (Exception ex)
                {
                    msg += "Error trying to delete Bin: " + bin.Bin.BinCode + ". " + ex.Message;
                }
            }


            if (!string.IsNullOrEmpty(msg))
            {
                Util.ShowError(msg);
            }

            View.LvAvailable.Items.Refresh();
            View.LvAssigned.Items.Refresh();
            //View.BtnStep1.Visibility = (View.Model.AssignedDocs == null || View.Model.AssignedDocs.Count == 0) ? Visibility.Collapsed : Visibility.Visible;


            if ((View.Model.AssignBin == null || View.Model.AssignBin.Count == 0) && View.CboToDo.IsEnabled == false)
            {
                View.CboToDo.IsEnabled = true;
            }
        }
Пример #4
0
        public IList <BinByTask> Select(BinByTask data)
        {
            IList <BinByTask> datos = new List <BinByTask>();

            try {
                datos = GetHsql(data).List <BinByTask>();
                if (!Factory.IsTransactional)
                {
                    Factory.Commit();
                }
            }
            catch (Exception e)
            {
                NHibernateHelper.WriteEventLog(WriteLog.GetTechMessage(e));
            }


            return(datos);
        }
Пример #5
0
        public void CreateScheduledCount()
        {
            DocumentType docType = new DocumentType {
                DocClass = new DocumentClass {
                    DocClassID = SDocClass.Task
                }
            };

            docType.DocTypeID = SDocType.CountTask;

            // search for the Scheduled counts...
            IList <CountSchedule> list = Factory.DaoCountSchedule().Select(new CountSchedule {
                NextDateRun = DateTime.Today, IsDone = false
            });

            foreach (CountSchedule sch in list)
            {
                Document document = new Document
                {
                    Comment      = "Scheduled Counting : " + sch.Title,
                    DocType      = docType,
                    CrossDocking = false,
                    IsFromErp    = false,
                    Location     = sch.Location,
                    Company      = sch.Location.Company,
                    Date1        = DateTime.Today,
                    CreationDate = DateTime.Now,
                    CreatedBy    = WmsSetupValues.SystemUser,
                    Notes        = sch.CountOption.ToString()
                };
                document = DocMngr.CreateNewDocument(document, true);

                // parametros para ejecutar el query
                DataSet paramsQuery = BasicMngr.GetDataSet(sch.Parameters);

                // ejecuta el query q trae los productos/bines
                DataSet dataSet = Factory.DaoIqReport().GetReportObject(sch.Query, paramsQuery);


                bool useProduct = true;

                if (sch.CountOption == 0) //Only BIN
                {
                    useProduct = false;
                }

                foreach (DataRow row in dataSet.Tables[0].Rows)
                {
                    //  siempre deben enviar los alias "producto" "binCode" en el reporte !!!
                    Product prod = null;
                    try
                    {
                        if (!string.IsNullOrEmpty(row["Product"].ToString()) && useProduct)
                        {
                            prod = Factory.DaoProduct().Select(new Product {
                                ProductCode = row["Product"].ToString()
                            }, 0)[0];
                        }
                    }
                    catch { }

                    Bin bin = null;
                    try
                    {
                        if (!string.IsNullOrEmpty(row["BinCode"].ToString()))
                        {
                            bin = Factory.DaoBin().Select(new Bin {
                                BinCode = row["BinCode"].ToString()
                            })[0];
                        }
                    }
                    catch { }

                    //Crea el BinTask x prod/bin
                    BinByTask binByTask = new BinByTask
                    {
                        CreatedBy    = WmsSetupValues.SystemUser,
                        CreationDate = DateTime.Now,
                        Bin          = bin,
                        Product      = prod,
                        TaskDocument = document,
                        Status       = new Status {
                            StatusID = DocStatus.New
                        }
                    };

                    try
                    {
                        Factory.DaoBinByTask().Save(binByTask);
                    }
                    catch (Exception e)
                    {
                        continue;
                    }
                }

                // programamos sgte fecha de conteo (si no se pasa de la fecha final)
                if (sch.NextDateRun.Value.AddDays(double.Parse(sch.RepeatEach.ToString())) <= sch.Finish.Value)
                {
                    sch.NextDateRun = sch.NextDateRun.Value.AddDays(double.Parse(sch.RepeatEach.ToString()));
                }

                else  // ya finaliza el conteo repetitivo
                {
                    sch.IsDone = true;
                }

                sch.ModDate    = DateTime.Now;
                sch.ModifiedBy = WmsSetupValues.SystemUser;

                Factory.DaoCountSchedule().Update(sch);
            }
        }
Пример #6
0
 public void DeleteBinByTask(BinByTask data)
 {
     try
     {
         SetService(); SerClient.DeleteBinByTask(data);
     }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
             SerClient.Abort();
     }
 }
Пример #7
0
 public BinByTask SaveBinByTask(BinByTask data)
 {
     try
     {
         SetService(); return SerClient.SaveBinByTask(data);
     }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
             SerClient.Abort();
     }
 }
        private void NewTask()
        {
            WMSServiceClient serv = new WMSServiceClient();

            DocumentType docType = new DocumentType { DocClass = new DocumentClass { DocClassID = SDocClass.Task } };
            docType.DocTypeID = SDocType.CountTask;

            // CAA [2010/05/05] Valida que se incluyan las columnas necesarias en el reporte
            // Indica si utiliza Product para la programacion del conteo.
            bool useProduct = true;
            if (cboToDo.SelectedIndex == 0) //Only BIN
            {
                useProduct = false;
                if (!products.Columns.Contains("BinCode"))
                {
                    Util.ShowError("BinCode column missing.");
                    return;
                }
            }
            else
                if (cboToDo.SelectedIndex == 1) // BIN & PRODUCT
                {
                    if (!products.Columns.Contains("BinCode") || !products.Columns.Contains("Product"))
                    {
                        Util.ShowError("BinCode and/or Product columns are missing.");
                        return;
                    }
                }

            Document document = new Document
            {
                DocType = docType,
                CrossDocking = false,
                IsFromErp = false,
                Location = App.curLocation,
                Company = App.curCompany,
                Date1 = DateTime.Today,
                CreationDate = DateTime.Now,
                CreatedBy = App.curUser.UserName,
                Notes = cboToDo.SelectedIndex.ToString()
            };
            document = serv.CreateNewDocument(document, true); // SaveDocument(document);


            // Details
            foreach (DataRow row in products.Rows)
            {
                //  ojo...  siempre deben enviar los alias "producto" "binCode" en el reporte !!!
                Product prod = null;
                try
                {
                    if (!string.IsNullOrEmpty(row["Product"].ToString()) && useProduct)
                        prod = serv.GetProduct(new Product { ProductCode = row["Product"].ToString() })[0];
                }
                catch { }

                Bin bin = null;
                try
                {
                    if (!string.IsNullOrEmpty(row["BinCode"].ToString()))
                        bin = serv.GetBin(new Bin { BinCode = row["BinCode"].ToString() })[0];
                }
                catch { }

                //Crea el BinTask en el server
                BinByTask binByTask = new BinByTask
                {
                    CreatedBy = App.curUser.UserName,
                    CreationDate = DateTime.Now,
                    Bin = bin,
                    Product = prod,
                    TaskDocument = document,
                    Status = new Status { StatusID = DocStatus.New }

                };

                try { serv.SaveBinByTask(binByTask); }
                catch  {  continue; }                

            }

            Util.ShowMessage("Counting Task " + document.DocNumber + " was created.");
            ClosePopup();
        }
Пример #9
0
        private void NewTask()
        {
            WMSServiceClient serv = new WMSServiceClient();

            DocumentType docType = new DocumentType {
                DocClass = new DocumentClass {
                    DocClassID = SDocClass.Task
                }
            };

            docType.DocTypeID = SDocType.CountTask;

            // CAA [2010/05/05] Valida que se incluyan las columnas necesarias en el reporte
            // Indica si utiliza Product para la programacion del conteo.
            bool useProduct = true;

            if (cboToDo.SelectedIndex == 0) //Only BIN
            {
                useProduct = false;
                if (!products.Columns.Contains("BinCode"))
                {
                    Util.ShowError("BinCode column missing.");
                    return;
                }
            }
            else
            if (cboToDo.SelectedIndex == 1)     // BIN & PRODUCT
            {
                if (!products.Columns.Contains("BinCode") || !products.Columns.Contains("Product"))
                {
                    Util.ShowError("BinCode and/or Product columns are missing.");
                    return;
                }
            }

            Document document = new Document
            {
                DocType      = docType,
                CrossDocking = false,
                IsFromErp    = false,
                Location     = App.curLocation,
                Company      = App.curCompany,
                Date1        = DateTime.Today,
                CreationDate = DateTime.Now,
                CreatedBy    = App.curUser.UserName,
                Notes        = cboToDo.SelectedIndex.ToString()
            };

            document = serv.CreateNewDocument(document, true); // SaveDocument(document);


            // Details
            foreach (DataRow row in products.Rows)
            {
                //  ojo...  siempre deben enviar los alias "producto" "binCode" en el reporte !!!
                Product prod = null;
                try
                {
                    if (!string.IsNullOrEmpty(row["Product"].ToString()) && useProduct)
                    {
                        prod = serv.GetProduct(new Product {
                            ProductCode = row["Product"].ToString()
                        })[0];
                    }
                }
                catch { }

                Bin bin = null;
                try
                {
                    if (!string.IsNullOrEmpty(row["BinCode"].ToString()))
                    {
                        bin = serv.GetBin(new Bin {
                            BinCode = row["BinCode"].ToString()
                        })[0];
                    }
                }
                catch { }

                //Crea el BinTask en el server
                BinByTask binByTask = new BinByTask
                {
                    CreatedBy    = App.curUser.UserName,
                    CreationDate = DateTime.Now,
                    Bin          = bin,
                    Product      = prod,
                    TaskDocument = document,
                    Status       = new Status {
                        StatusID = DocStatus.New
                    }
                };

                try { serv.SaveBinByTask(binByTask); }
                catch  { continue; }
            }

            Util.ShowMessage("Counting Task " + document.DocNumber + " was created.");
            ClosePopup();
        }
Пример #10
0
        private void AddToAssigned(Bin record, Product product)
        {
            if (record == null && product == null)
                return;

            try
            {
                if (View.Model.AssignBin == null)
                    View.Model.AssignBin = new List<BinByTask>();

                //Si ya esta en la lista se devuelve

                if (record != null && View.Model.AssignBin.Where(f=> f.Bin != null && f.Bin.BinID == record.BinID).Count() > 0)
                    return;

                if (product != null && View.Model.AssignBin.Where(f => f.Product != null &&  f.Product.ProductID == product.ProductID).Count() > 0)
                    return;


                //Cuando es un conteo de PRODUCT asocia el BIN MAIN
                if (countType == 1)
                    record = service.GetBin(new Bin { BinCode = DefaultBin.MAIN, Location = App.curLocation }).First();


                if (App.curLocation.LocationID != View.Model.Document.Location.LocationID)
                {
                    Util.ShowError("Location for the document " + View.Model.Document.Location.Name + ". Is different to the current location " + App.curLocation.Name);
                    return;
                }


                if (record.Location.LocationID != View.Model.Document.Location.LocationID)
                {
                    Util.ShowError("Location for the document " + View.Model.Document.Location.Name + ". Is different to the bin location " + record.Location.Name);
                    return;
                }



                //Crea el BinTask en el server
                BinByTask binByTask = new BinByTask {
                    CreatedBy = App.curUser.UserName,
                    CreationDate = DateTime.Now,
                    Bin = record,
                    Product = product,
                    TaskDocument = View.Model.Document,
                    ProductDesc = (countType == 1) ? product.FullDesc : "Any Product",
                    BinDesc = (countType == 0) ? record.BinCode : "Any Bin",
                    Status = new Status { StatusID = DocStatus.New }
                };

                service.SaveBinByTask(binByTask);


                View.Model.AssignBin.Insert(0, binByTask);


                if (View.CboToDo.SelectedIndex == 0)
                    View.Model.AvailableBin.Remove(record);
                else
                    View.Model.AvailableProduct.Remove(product);


                if (View.Model.AssignBin != null && View.Model.AssignBin.Count > 0 && View.CboToDo.IsEnabled == true)
                    View.CboToDo.IsEnabled = false;


                //View.BtnStep1.Visibility = (View.Model.AssignedDocs == null || View.Model.AssignedDocs.Count == 0) ? Visibility.Collapsed : Visibility.Visible;

            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Пример #11
0
        private void AddToAssigned(Bin record, Product product)
        {
            if (record == null && product == null)
            {
                return;
            }

            try
            {
                if (View.Model.AssignBin == null)
                {
                    View.Model.AssignBin = new List <BinByTask>();
                }

                //Si ya esta en la lista se devuelve

                if (record != null && View.Model.AssignBin.Where(f => f.Bin != null && f.Bin.BinID == record.BinID).Count() > 0)
                {
                    return;
                }

                if (product != null && View.Model.AssignBin.Where(f => f.Product != null && f.Product.ProductID == product.ProductID).Count() > 0)
                {
                    return;
                }


                //Cuando es un conteo de PRODUCT asocia el BIN MAIN
                if (countType == 1)
                {
                    record = service.GetBin(new Bin {
                        BinCode = DefaultBin.MAIN, Location = App.curLocation
                    }).First();
                }


                if (App.curLocation.LocationID != View.Model.Document.Location.LocationID)
                {
                    Util.ShowError("Location for the document " + View.Model.Document.Location.Name + ". Is different to the current location " + App.curLocation.Name);
                    return;
                }


                if (record.Location.LocationID != View.Model.Document.Location.LocationID)
                {
                    Util.ShowError("Location for the document " + View.Model.Document.Location.Name + ". Is different to the bin location " + record.Location.Name);
                    return;
                }



                //Crea el BinTask en el server
                BinByTask binByTask = new BinByTask {
                    CreatedBy    = App.curUser.UserName,
                    CreationDate = DateTime.Now,
                    Bin          = record,
                    Product      = product,
                    TaskDocument = View.Model.Document,
                    ProductDesc  = (countType == 1) ? product.FullDesc : "Any Product",
                    BinDesc      = (countType == 0) ? record.BinCode : "Any Bin",
                    Status       = new Status {
                        StatusID = DocStatus.New
                    }
                };

                service.SaveBinByTask(binByTask);


                View.Model.AssignBin.Insert(0, binByTask);


                if (View.CboToDo.SelectedIndex == 0)
                {
                    View.Model.AvailableBin.Remove(record);
                }
                else
                {
                    View.Model.AvailableProduct.Remove(product);
                }


                if (View.Model.AssignBin != null && View.Model.AssignBin.Count > 0 && View.CboToDo.IsEnabled == true)
                {
                    View.CboToDo.IsEnabled = false;
                }


                //View.BtnStep1.Visibility = (View.Model.AssignedDocs == null || View.Model.AssignedDocs.Count == 0) ? Visibility.Collapsed : Visibility.Visible;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #12
0
 public BinByTask SelectById(BinByTask data)
 {
     return((BinByTask)base.SelectById(data));
 }
Пример #13
0
 public Boolean Delete(BinByTask data)
 {
     return(base.Delete(data));
 }
Пример #14
0
 public Boolean Update(BinByTask data)
 {
     return(base.Update(data));
 }
Пример #15
0
 public BinByTask Save(BinByTask data)
 {
     return((BinByTask)base.Save(data));
 }