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); } }
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); }
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; } }
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); }
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); } }
public void DeleteBinByTask(BinByTask data) { try { SetService(); SerClient.DeleteBinByTask(data); } finally { SerClient.Close(); if (SerClient.State == CommunicationState.Faulted) SerClient.Abort(); } }
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(); }
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(); }
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; } }
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; } }
public BinByTask SelectById(BinByTask data) { return((BinByTask)base.SelectById(data)); }
public Boolean Delete(BinByTask data) { return(base.Delete(data)); }
public Boolean Update(BinByTask data) { return(base.Update(data)); }
public BinByTask Save(BinByTask data) { return((BinByTask)base.Save(data)); }