public bool SendForSpecialApproval(JobOrder jOrder)
 {
     bool res = false;
     jOrder.IsWaitingForApproval = true;
     res = Save();
     if (res)
         jOrder.Refresh();
     return res;
 }
 private void IssueNextJob(JobOrder jOrder, ObservableCollection<JobOrderType> jobTypes)
 {
     JobOrder newJob = new JobOrder();
     newJob.JobQuantity = jOrder.QualityPassed.GetValueOrDefault(0);
     newJob.GRNReciept = jOrder.GRNReciept;
     IssueToPopupBox issuePopup = new IssueToPopupBox(newJob, jobTypes, string.Empty);
     if (issuePopup.ShowDialog() == true)
     {
         jOrder.IsIssued = true;
         if (issuePopup.JobOrder.JobOrderType.Type.ToLower() == "stock")
         {
             if (ViewModel.IssueToStock(issuePopup.JobOrder.JobQuantity))
                 jOrder.Refresh();
         }
         else
         {
             if (ViewModel.IssueNewJob(issuePopup.JobOrder))
                 jOrder.Refresh();
         }
     }
 }
 public bool IssueNewJob(JobOrder jobOrder)
 {
     bool res = false;
     if (jobOrder != null)
     {
         if (jobOrder.JobOrderType.Type.ToLower() == "stock")
         {
             res=IssueToStock(jobOrder.JobQuantity);                    
         }
         else
         {
             jobOrder.GRNReciept.JobOrders.Add(jobOrder);
             res = Save();
         }               
         if (res)
             jobOrder.Refresh();
     }
     return res;
 }
        private void CreateNewJobOrderForFailedQuantity(JobOrder jOrder)
        {
            if (jOrder != null && jOrder.ValidateIssueAndReceiptDetails())
            {
                JobOrder newJob = new JobOrder();
                newJob.GRNReciept = jOrder.GRNReciept;
                newJob.JobQuantity = jOrder.QualityFailed.GetValueOrDefault(0);
                newJob.JobOrderType = jOrder.JobOrderType;
                newJob.Supplier = jOrder.Supplier;
                newJob.Instructions = jOrder.Instructions;
                newJob.RequiredDate = jOrder.RequiredDate;
                newJob.ChargesInINR = jOrder.ChargesInINR;

                IssueToPopupBox issuePopup = new IssueToPopupBox(newJob);
                if (issuePopup.ShowDialog() == true)
                {
                    jOrder.FailedQuantityIssued = true;
                    if (ViewModel.IssueNewJob(issuePopup.JobOrder))
                        jOrder.Refresh();
                }
            }
        }   
        public bool IssueNewJob(JobOrder jobOrder)
        {
            bool res = false;
            if (jobOrder != null)
            {
                if (jobOrder.JobOrderType.Type.ToLower() == "stock")
                {
                    if (jobOrder.GRNReciept != null)
                    {
                        if (jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.SubMaterial.InStock == null)
                            jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.SubMaterial.InStock = 0;

                        MaterialStock stock = new MaterialStock();
                        stock.Order = this.Order;
                        stock.SubMaterial = jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.SubMaterial;
                        stock.InStockDateTime = DBResources.Instance.GetServerTime();
                        stock.StockQuantity = jobOrder.JobQuantity;
                        stock.UnitsOfMeasurement = jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.UnitsOfMeasurementWrapper;
                        jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.SubMaterial.MaterialStocks.Add(stock);
                        jobOrder.GRNReciept.OrderedItem.ProductMaterialItem.SubMaterial.InStock += jobOrder.JobQuantity;
                    }
                    else
                        return false;
                }
                else
                {
                    jobOrder.GRNReciept.JobOrders.Add(jobOrder);
                }
                res = Save();
                if (res)
                    jobOrder.Refresh();
            }
            return res;
        }