private static DateTime GetCorrectDate() { return(BPH.GetSystemDate()); //Убрал. иначе возникает ошибка при проверке на строне БД // убираем секунды, чтобы потом не мешали //var res = BPH.GetSystemDate(); //res = res.AddSeconds(-1 * res.Second); //return res; }
private async Task <bool> GetWorkAsync(decimal workerId) { var workOperation = BillOperationCode.OP_INPUT_REG.ToString(); var workhelper = new WorkHelper(); Func <DataRow[], string, string> dialogMessageHandler = (rows, workername) => { return(string.Format(StringResources.YouHaveWorkingsMessageFormat, Environment.NewLine, string.Join(Environment.NewLine, rows.Select(p => string.Format("'{0}' ('{1}').", p["operationname"], p["workid"]))))); }; var result = workhelper.ClosingWorking(workerId: workerId, filter: null, dialogTitle: StringResources.Confirmation, workername: null, dialogMessageHandler: dialogMessageHandler); if (!result) { return(false); } //Создаем работу List <Work> workList; using (var mgr = IoC.Instance.Resolve <IBaseManager <Work> >()) { var filter = string.Format( "operationcode_r = '{1}' and workid in (select w2e.workid_r from wmswork2entity w2e where w2e.work2entityentity = 'CARGOIWB' " + "and w2e.work2entitykey in (select to_char(min(i2c.cargoiwbid_r)) from wmsiwb2cargo i2c " + "left join wmsiwbpos ip on i2c.iwbid_r = ip.iwbid_r " + "where ip.iwbposid ={0}))", _posID, workOperation); workList = mgr.GetFiltered(filter, GetModeEnum.Partial).ToList(); } if (workList.Any()) { using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >()) { var working = new Working { WORKID_R = workList.First().GetKey <decimal>(), WORKERID_R = workerId, WORKINGFROM = BPH.GetSystemDate() }; mgr.Insert(ref working); } } else { List <CargoIWB> cargoIWBList; using (var mgr = IoC.Instance.Resolve <IBaseManager <CargoIWB> >()) { cargoIWBList = mgr.GetFiltered(string.Format("cargoiwbid in (select min(i2c.cargoiwbid_r) from wmsiwb2cargo i2c join wmsiwbpos ip on ip.iwbid_r = i2c.iwbid_r where ip.iwbposid = {0} )", _posID), GetModeEnum.Partial).ToList(); } if (cargoIWBList.Any()) { var mgrBpProcessManager = IoC.Instance.Resolve <IBPProcessManager>(); Work mywork; mgrBpProcessManager.StartWorking("CARGOIWB", cargoIWBList.First().GetKey().ToString(), workOperation, workerId, cargoIWBList.First().MandantID, null, null, out mywork); } } Workings = RefreshWorking(); return(true); }