示例#1
0
 public void AmendExportDetail()
 {
     if (CreateBoxChecks())
     {
         return;
     }
     if (CurrentExportDetail == null)
     {
         MessageBox.Show("Please Select an Item.");
         return;
     }
     using (var ctx = new MNIBDBDataContext())
     {
         var rd = ctx.ExportDetails.FirstOrDefault(x => x.ExportDetailId == CurrentExportDetail.ExportDetailId);
         if (rd == null)
         {
             MessageBox.Show("Item No Yet Saved!");
             return;
         }
         rd = ctx.ExportDetails.FirstOrDefault(x => x.ExportDetailId == CurrentExportDetail.ExportDetailId);
         UpdateExportDetail(rd);
         OnPropertyChanged(nameof(TotalBoxWeight));
         CurrentExportDetail.Weight = Weight - Box.Weight;
         ctx.SubmitChanges();
         Print(rd);
     }
     ResetAfterEditorAdd();
 }
示例#2
0
        public DailySummary PrepareDailySummary()
        {
            using (var ctx = new MNIBDBDataContext())
            {
                var ds  = new DailySummary();
                var res = ctx.ExportReportLines.Where(x => x.ExportDate == this.ExportDate)
                          .OrderBy(x => x.CustomerInfo)
                          .ThenBy(y => y.TransactionNumber)
                          .ThenBy(z => z.Harvester)
                          .ThenBy(z => z.ProductDescription)
                          .Select(w => new DailySummary.ReportLine()
                {
                    TransactionType   = w.SourceTransaction,
                    Customer          = w.CustomerInfo,
                    TransactionNumber = w.TransactionNumber,
                    Harvester         = w.Harvester,
                    Product           = w.ProductDescription,
                    Weight            = w.Weight,
                    BarCode           = w.ExportNumber
                }).ToList();
                ds.Summary = new ObservableCollection <DailySummary.SummaryLine>(
                    ctx.ExportReportLines.GroupBy(x => x.ReceiptNumber.Substring(0, x.ReceiptNumber.LastIndexOf("-")))
                    .Select(x => new DailySummary.SummaryLine()
                {
                    LotNumber = x.Key, TotalWeight = x.Sum(y => y.Weight)
                })
                    );

                ds.Lines       = new ObservableCollection <DailySummary.ReportLine>(res);
                ds.TotalWeight = res.Sum(x => x.Weight);
                ds.TotalBoxes  = res.Count;
                ds.ReportDate  = ExportDate;
                return(ds);
            }
        }
示例#3
0
        private bool CreateExport(MNIBDBDataContext ctx)
        {
            if (TotalWeight == 0)
            {
                MessageBox.Show("Please Enter Total Weight");
                return(false);
            }
            if (SourceTransaction == "Sales Order" && (CurrentHarvester == null && string.IsNullOrEmpty(Barcode)))
            {
                MessageBox.Show("Please Enter Current Harvester");
                return(false);
            }
            if (SourceTransaction != "Sales Order" && string.IsNullOrEmpty(Barcode))
            {
                MessageBox.Show("Please Enter Barcode");
                return(false);
            }
            if (SetExport(ctx))
            {
                return(true);
            }

            Export = new Export()
            {
                ExportDate        = ExportDate,
                SourceTransaction = SourceTransaction,
                TotalWeight       = TotalWeight
            };
            ctx.Exports.InsertOnSubmit(Export);
            ctx.SubmitChanges();

            return(true);
        }
示例#4
0
        private bool CreateExport(MNIBDBDataContext ctx)
        {
            if (TotalWeight == 0)
            {
                MessageBox.Show("Please Enter Total Weight");
                return(false);
            }
            if (SetExport(ctx))
            {
                return(true);
            }

            Export = new Export()
            {
                ExportDate         = ExportDate,
                SourceTransaction  = SourceTransaction,
                ProductNumber      = Product.ProductId,
                ProductDescription = Product.ProductDescription,
                TotalWeight        = TotalWeight
            };
            ctx.Exports.InsertOnSubmit(Export);
            ctx.SubmitChanges();

            return(true);
        }
示例#5
0
        public void CreateExportDetail()
        {
            if (SourceTransaction == "Sales Order" && (CurrentHarvester == null && string.IsNullOrEmpty(Barcode)))
            {
                MessageBox.Show("Please Enter Current Harvester Or Barcode if already received.");
                return;
            }
            if (SourceTransaction != "Sales Order" && string.IsNullOrEmpty(Barcode))
            {
                MessageBox.Show("Please Enter Barcode");
                return;
            }
            if (CreateBoxChecks())
            {
                return;
            }
            using (var ctx = new MNIBDBDataContext())
            {
                if (!CreateExport(ctx))
                {
                    return;
                }

                if (CurrentExportDetail == null)
                {
                    var rd = UpdateExportDetail(new ExportDetail());
                    ctx.ExportDetails.InsertOnSubmit(rd);
                    ExportDetails.Insert(0, rd);
                    ctx.SubmitChanges();
                    PrintLarge(rd);
                }
            }
            ResetAfterEditorAdd();
        }
示例#6
0
 public LabelViewModel()
 {
     try
     {
         Export = new Export()
         {
             ExportDate = DateTime.Today
         };
         ExportDetails = new ObservableCollection <ExportDetail>();
         ExportDate    = DateTime.Today;
         using (var ctx = new MNIBDBDataContext())
         {
             Products   = new ObservableCollection <Item>(ctx.Items);
             Customers  = new ObservableCollection <Customer>(ctx.Customers);
             Harvesters = new ObservableCollection <Harvester>(ctx.Harvesters);
             Boxes      = new ObservableCollection <Box>(ctx.Boxes);
             ctx.Locations.Select(
                 x =>
                 new Customer()
             {
                 CustomerName    = x.LocationName,
                 CustomerAddress = x.LocationName,
                 CustomerNumber  = x.Id
             }).ToList().ForEach(x => Customers.Add(x));
         }
         ExportDetails.CollectionChanged += ExportDetailsOnCollectionChanged;
         InputBoxVisibility = Visibility.Collapsed;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         Application.Current.Shutdown();
     }
 }
示例#7
0
        public bool SetExport(MNIBDBDataContext ctx)
        {
            //ResetExport();

            if (Product == null)
            {
                // MessageBox.Show("Please elect Product");
                return(false);
            }


            List <ExportDetail> srdetails;

            if (SourceTransaction == "Sales Order")
            {
                if (CurrentHarvester == null && Barcode == null)
                {
                    MessageBox.Show("Please Enter Harvester or Barcode if items already Recieved.");
                    return(false);
                }
                if (CurrentHarvester != null)
                {
                    srdetails = ctx.ExportDetails.Where(x => x.ReceiptNumber.StartsWith(CurrentHarvester.Intials) &&
                                                        x.ReceiptNumber.Contains(Product.ProductId) &&
                                                        x.ReceiptNumber.Contains(ExportDate.ToString("yyyyMMdd"))).ToList();
                }
                else
                {
                    srdetails = ctx.ExportDetails.Where(x => x.ReceiptNumber.Contains(Barcode)).ToList();
                }
            }
            else
            {
                if (string.IsNullOrEmpty(TransactionNumber))
                {
                    // MessageBox.Show("Please Enter ExportNumber");
                    return(false);
                }
                srdetails = ctx.ExportDetails.Where(x => x.ReceiptNumber.Contains(TransactionNumber.ToString()) &&
                                                    x.ReceiptNumber.Contains(Barcode)).ToList();
            }

            //if (sr.ExportId == Export?.ExportId) return true;
            if (srdetails.Any()) //
            {
                // if (!VeifyBoxWeight()) return false;

                //ctx.ExportDetails.Where(x => x.ExportId == sr.ExportId).OrderByDescending(x => x.ExportDetailId).ToList().ForEach(x => ExportDetails.Add(x));

                srdetails.ForEach(x => ExportDetails.Add(x));
                var sr = ctx.Exports.FirstOrDefault(x => x.ExportId == srdetails.First().ExportId);
                Export = sr;
                // TotalWeight = (float) sr.TotalWeight;
                // OnPropertyChanged(nameof(TotalWeight));
                return(true);
            }

            return(false);
        }
示例#8
0
        internal async Task <DataTable> GetExportReport(DateTime startDate, DateTime endDate)
        {
            // var eb = db.PayrollItems.AsEnumerable().GroupBy(b => new BranchSummary { BranchName = b.Name, PayrollItems = new ObservableCollection<DataLayer.PayrollItem>(( p => p.PayrollItems)), Total = b.Sum(p => p.NetAmount) }).AsEnumerable().Pivot(E => E.PayrollItems, E => E.PayrollJob.Branch.Name, E => E.Amount, true, TransformerClassGenerationEventHandler).ToList();
            try
            {
                var dt = new DataTable();
                //get Data for Date
                var xDetailsData = new List <ExportReportLine>();
                using (var ctx = new MNIBDBDataContext())
                {
                    xDetailsData =
                        ctx.ExportReportLines.Where(x => x.ExportDate >= startDate && x.ExportDate <= endDate.AddHours(23)).ToList();
                }

                if (xDetailsData.Any() == false)
                {
                    return(dt);
                }


                dt.Columns.Add("ExportDate");
                dt.Columns.Add("ExportNumber");
                dt.Columns.Add("TransactionType");
                dt.Columns.Add("Harvester");
                dt.Columns.Add("ProductNumber");
                dt.Columns.Add("ProductDescription");
                dt.Columns.Add("LineNumber");
                dt.Columns.Add("Weight");


                var lst = xDetailsData.OrderBy(x => x.ExportDate).ThenBy(x => x.Harvester)
                          .ThenBy(x => x.ProductNumber)
                          .Select(x => new List <string>()
                {
                    x.ExportDate.ToString("dd-MMM-yyyy"),
                    x.ExportNumber,
                    x.SourceTransaction,
                    x.Harvester,
                    x.ProductNumber,
                    x.ProductDescription,
                    x.LineNumber.ToString(),
                    x.Weight.ToString("n1")
                });

                foreach (var itm in lst)
                {
                    dt.Rows.Add(itm.ToArray <string>());
                }


                return(dt);
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#9
0
 public bool ValidateUser(string password)
 {
     using (var ctx = new MNIBDBDataContext())
     {
         var u =
             ctx.Harvesters.FirstOrDefault(
                 x => x.CanDelete.GetValueOrDefault() == true && x.Password.Equals(password));
         if (u == null)
         {
             MessageBox.Show("Incorrect Password!");
             return(false);
         }
         return(true);
     }
 }
示例#10
0
        private void UpdateModel()
        {
            if (string.IsNullOrEmpty(TransactionNumber))
            {
                return;
            }
            using (var ctx = new MNIBDBDataContext())
            {
                switch (SourceTransaction)
                {
                case "Sales Order":
                    var prn = ctx.ExportCustomers.FirstOrDefault(x => x.TicketNo == TransactionNumber);
                    if (prn == null)
                    {
                        MessageBox.Show("Sales Order Not Found! Check Number and Try again.");
                        return;
                    }
                    Instance.Info = prn.CustomerInfo;
                    break;

                case "Invoice":
                    var trns = ctx.InvoiceCustomerLkps.FirstOrDefault(x => x.InvoiceNo == TransactionNumber);
                    if (trns == null)
                    {
                        MessageBox.Show("Invoice Not Found! Check Number and Try again.");
                        return;
                    }
                    Instance.Info = trns.CustomerInfo;

                    break;

                case "Transfer":
                    var trn = ctx.TransfersLkps.FirstOrDefault(x => x.TransferNo == TransactionNumber);
                    if (trn == null)
                    {
                        MessageBox.Show("Transfer Not Found! Check Number and Try again.");
                        return;
                    }

                    Instance.Info = trn.Info;
                    break;

                default:
                    break;
                }
            }
        }
示例#11
0
 private void UpdateWeight()
 {
     if (string.IsNullOrEmpty(TransactionNumber) || Product == null)
     {
         return;
     }
     using (var ctx = new MNIBDBDataContext())
     {
         var netWeight = ctx.TransactionNetWeightLkps.FirstOrDefault(x => x.LotNumber == Barcode);
         if (netWeight == null)
         {
             MessageBox.Show("Transaction Net Weight Not Found! Check Number and Try again.");
             return;
         }
         Instance.TotalWeight = netWeight.NetQuantity.GetValueOrDefault();
     }
 }
示例#12
0
 public void DeleteLine()
 {
     if (CurrentExportDetail == null)
     {
         MessageBox.Show("Please Select Line to Delete!");
         return;
     }
     using (var ctx = new MNIBDBDataContext())
     {
         var r = ctx.ExportDetails.FirstOrDefault(x => x.ExportDetailId == CurrentExportDetail.ExportDetailId);
         ctx.ExportDetails.DeleteOnSubmit(r);
         ctx.SubmitChanges();
         ExportDetails.Remove(CurrentExportDetail);
         currentExportDetail = null;
         Weight = 0;
         OnPropertyChanged(nameof(Weight));
     }
 }
示例#13
0
 private void DoBarcodeLookup()
 {
     if (string.IsNullOrEmpty(Barcode))
     {
         return;
     }
     using (var ctx = new MNIBDBDataContext())
     {
         var itm = ctx.PurchaseOrderDetails.FirstOrDefault(x => x.LotNumber.Replace("-", "") == Barcode);
         if (itm != null)
         {
             Instance.Product = Instance.Products.FirstOrDefault(x => x.ProductId == itm.ItemNumber);
         }
         else
         {
             MessageBox.Show("Barcode Transaction Not Found! Please try again");
         }
     }
 }
示例#14
0
        public LabelViewModel()
        {
            Export = new Export()
            {
                ExportDate = DateTime.Today
            };
            ExportDetails = new ObservableCollection <ExportDetail>();
            ExportDate    = DateTime.Today;
            using (var ctx = new MNIBDBDataContext())
            {
                Products   = new ObservableCollection <Item>(ctx.Items);
                Customers  = new ObservableCollection <Customer>(ctx.Customers);
                Harvesters = new ObservableCollection <Harvester>(ctx.Harvesters);
                Boxes      = new ObservableCollection <Box>(ctx.Boxes);
            }
            ExportDetails.CollectionChanged += ExportDetailsOnCollectionChanged;
            InputBoxVisibility = Visibility.Collapsed;

            Customers.Add(new Customer()
            {
                CustomerName = "MNIB Production", CustomerAddress = "MNIB Production", CustomerNumber = "MNIBPro"
            });
            Customers.Add(new Customer()
            {
                CustomerName = "Pack House", CustomerAddress = "River Road, St. George's", CustomerNumber = "RRPH"
            });
            Customers.Add(new Customer()
            {
                CustomerName = "Grand Anse", CustomerAddress = "Grand Anse, St. George's", CustomerNumber = "VLGD"
            });
            Customers.Add(new Customer()
            {
                CustomerName = "MNIB SGU", CustomerAddress = "True Blue, St. George's", CustomerNumber = "MNIBSGU"
            });
            Customers.Add(new Customer()
            {
                CustomerName = "MNIB Street Sales", CustomerAddress = "MNIB Street Sales", CustomerNumber = "MNIBStr"
            });
        }
示例#15
0
        public void Search()
        {
            try
            {
                using (var ctx = new MNIBDBDataContext())
                {
                    //Export =
                    //    ctx.Exports.FirstOrDefault(x => x.ExportId == ExportNumber);

                    //ExportDetails = ctx.ExportDetails.Where(x => x.ExportId == ExportNumber).ToList();

                    //foreach (var p in ExportDetails)
                    //{
                    //    p.LabelQty = Convert.ToInt16(p.Quantity/35);
                    //}



                    OnPropertyChanged("Export");
                    OnPropertyChanged("ExportDetails");
                    OnPropertyChanged("PONumber");
                    if (Export == null)
                    {
                        MessageBox.Show("Export not found. Please try again");
                    }
                }
            }
            catch (SqlException se)
            {
                MessageBox.Show("Problem with the Database. Please contact your System Administrator");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#16
0
        public void CreateExportDetail()
        {
            if (CreateBoxChecks())
            {
                return;
            }
            using (var ctx = new MNIBDBDataContext())
            {
                if (!CreateExport(ctx))
                {
                    return;
                }

                if (CurrentExportDetail == null)
                {
                    var rd = UpdateExportDetail(new ExportDetail());
                    ctx.ExportDetails.InsertOnSubmit(rd);
                    ExportDetails.Insert(0, rd);
                    ctx.SubmitChanges();
                    Print(rd);
                }
            }
            ResetAfterEditorAdd();
        }