示例#1
0
 private static DateTime GetCorrectDate()
 {
     return(BPH.GetSystemDate());
     //Убрал. иначе возникает ошибка при проверке на строне БД
     // убираем секунды, чтобы потом не мешали
     //var res = BPH.GetSystemDate();
     //res = res.AddSeconds(-1 * res.Second);
     //return res;
 }
示例#2
0
        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);
        }