예제 #1
0
        public async Task <long> addWorkOrder(JobViewModel JobModel)
        {
            var repo         = _unitofwork.GetRepository <WorkOrderTBL>();
            var newWorkOrder = _map.Map <WorkOrderTBL>(JobModel);

            newWorkOrder.WOTime      = DateTime.Now.ToString("HH:MM");
            newWorkOrder.WODate      = DateExtensions.ConvertToWesternArbicNumerals(new PersianDateTime(DateTime.Now).ToShortDateString());
            newWorkOrder.RequestDate = newWorkOrder.WODate;
            var records = repo.GetAll(q => q.WODate.Substring(0, 4) == newWorkOrder.WODate.Substring(0, 4));

            if (records.Any())
            {
                newWorkOrder.WONo = repo.GetAll(q => q.WODate.Substring(0, 4) == newWorkOrder.WODate.Substring(0, 4)).Max(q => q.WONo) + 1;
            }
            else
            {
                newWorkOrder.WONo = Convert.ToInt64((newWorkOrder.WODate.Substring(0, 4) + "000001"));
            }
            newWorkOrder.ConsComment = 45;
            newWorkOrder.OprCode     = null;
            newWorkOrder.WoType      = 1;
            var ARInfo = _map.Map <TahvilFormsViewModel>(_unitofwork.GetRepository <TahvilForms>().GetFirstOrDefault(predicate: q => q.AmvalNo.ToString() == JobModel.AR));

            if (ARInfo != null)
            {
                newWorkOrder.AskerCode = ARInfo.DevilerCodeOrigin;
            }
            else
            {
                newWorkOrder.WONo = -1;
            }

            await repo.InsertAsync(newWorkOrder);

            _unitofwork.SaveChanges();
            return(newWorkOrder.WONo);
        }