Ejemplo n.º 1
0
        //[AllowAnonymous]
        public async Task <IActionResult> Putinvd_op([FromRoute] Guid id, [FromBody] invd_op varinvd_op)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != varinvd_op.invd_opId)
            {
                return(BadRequest());
            }

            _context.Entry(varinvd_op).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!invd_opExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 2
0
        //[AllowAnonymous]
        public async Task <IActionResult> Postinvd_op([FromBody] invd_op varinvd_op)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.invd_op.Add(varinvd_op);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Getinvd_op", new { id = varinvd_op.invd_opId }, varinvd_op));
        }
Ejemplo n.º 3
0
        public async Task <string> Operation_in(Guid uid, invops_in varinvops_in)
        {
            string result = "";

            invp_data m = null;
            invp_tag  t;

            t = _context.invp_tag.FirstOrDefault(t => t.RFID == varinvops_in.rfid);
            if (t == null)
            {
                // result = "Метка не зарегистрирована. ";
            }

            if (t != null)
            {
                m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId);
                if (m == null)
                {
                    result += "Запчасть не обнаружена. ";
                }
            }
            else
            {
                m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == varinvops_in.thePart);
                if (m == null)
                {
                    result = "Запчасть не обнаружена. ";
                }
            }

            invwh_cell c = null;

            c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_in.shCode);
            if (c == null)
            {
                result += "Ячейка не найдена. ";
            }


            invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Приемка");

            if (op == null)
            {
                //result += "Нет операции 'Приемка' в справочнике. ";
                op           = new invd_op();
                op.invd_opId = Guid.NewGuid();
                op.name      = "Приемка";
                _context.invd_op.Add(op);
                await _context.SaveChangesAsync();
            }

            if (varinvops_in.quantity <= 0)
            {
                result += "Количество должно быть положительным числом. ";
            }

            if (m != null && c != null && varinvops_in.quantity > 0)
            {
                if (t == null)
                {
                    t             = new invp_tag();
                    t.invp_dataId = m.invp_dataId;
                    t.RFID        = varinvops_in.rfid;
                    _context.invp_tag.Add(t);
                }

                invwh_loc loc = null;
                loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId);

                invw_info e = null;

                {
                    e             = new invw_info();
                    e.invw_infoId = Guid.NewGuid();
                    e.Qty         = varinvops_in.quantity;
                    e.storepartid = m.invp_dataId;
                    e.locationid  = c.invwh_locId;
                    e.cellid      = c.invwh_cellId;
                    e.RFID        = varinvops_in.rfid;
                    if (loc != null)
                    {
                        e.theStore = loc.theStore;
                    }
                    _context.invw_info.Add(e);
                }

                // save history
                invm_info h = new invm_info();
                h.invm_infoId = Guid.NewGuid();
                h.fromcell    = Guid.Empty;
                h.toCell      = c.invwh_cellId;
                h.theUser     = uid;
                h.theOP       = op.invd_opId;
                h.optime      = DateTime.Now;
                h.Qty         = varinvops_in.quantity;
                h.storepartid = m.invp_dataId; // запчасть
                h.theDep      = Guid.Empty;
                _context.invm_info.Add(h);

                // save operation for control only
                _context.invops_in.Add(varinvops_in);
                await _context.SaveChangesAsync();

                return("OK");
            }
            else
            {
                _context.invops_in.Add(varinvops_in);
                await _context.SaveChangesAsync();

                return(result);
            }
        }
Ejemplo n.º 4
0
        public async Task <string> Operation_out(Guid uid, invops_out varinvops_out)
        {
            string    result = "";
            invp_data m      = null;
            invp_tag  t      = null;

            t = _context.invp_tag.FirstOrDefault(z => z.RFID == varinvops_out.rfid);
            if (t != null)
            {
                m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId);
                if (m == null)
                {
                    result = "Ошибка. Запчасть не обнаружена";
                }
                else
                {
                    result = m.name;
                }
            }
            else
            {
                result = "Ошибка. Запчасть не обнаружена";
            }

            invwh_cell c = null;

            c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_out.shCode);
            if (c == null)
            {
                result += "Ячейка не найдена. ";
            }

            invd_dep dep = null;

            dep = _context.invd_dep.FirstOrDefault(dd => dd.invd_depId == varinvops_out.theDept);
            if (dep == null)
            {
                result += "Отдел не найден. ";
            }



            invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Отгрузка");

            if (op == null)
            {
                op           = new invd_op();
                op.invd_opId = Guid.NewGuid();
                op.name      = "Отгрузка";
                _context.invd_op.Add(op);
                await _context.SaveChangesAsync();
            }

            if (varinvops_out.quantity <= 0)
            {
                result += "Количество должно быть положительным числом. ";
            }



            if (m != null && c != null && dep != null && varinvops_out.quantity > 0)
            {
                invwh_loc loc = null;
                loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId);

                // update store status
                invw_info e = null;
                e = _context.invw_info.FirstOrDefault(ex => ex.RFID == t.RFID && ex.cellid == c.invwh_cellId);
                if (e != null)
                {
                    if (e.Qty > varinvops_out.quantity)
                    {
                        e.Qty -= varinvops_out.quantity;
                        _context.Entry(e).State = EntityState.Modified;
                    }
                    else if (e.Qty == varinvops_out.quantity)
                    {
                        _context.invw_info.Remove(e);
                    }
                    else if (e.Qty < varinvops_out.quantity)
                    {
                        result += "Количество запчастей в ячейке не достаточно для списания. Всего: " + e.Qty.ToString();
                        _context.invops_out.Add(varinvops_out);
                        await _context.SaveChangesAsync();

                        return(result);
                    }
                }
                else
                {
                    result += "Не найдена запчасть в ячейке. ";
                    _context.invops_out.Add(varinvops_out);
                    await _context.SaveChangesAsync();

                    return(result);
                }


                // save history
                invm_info h = new invm_info();
                h.invm_infoId = Guid.NewGuid();
                h.fromcell    = c.invwh_cellId;
                h.toCell      = Guid.Empty;
                h.theUser     = uid;
                h.theOP       = op.invd_opId;
                h.optime      = DateTime.Now;
                h.Qty         = varinvops_out.quantity;
                h.storepartid = m.invp_dataId; // запчасть
                h.theDep      = dep.invd_depId;
                _context.invm_info.Add(h);

                _context.invops_out.Add(varinvops_out);
                await _context.SaveChangesAsync();

                return("OK");
            }
            else
            {
                _context.invops_out.Add(varinvops_out);
                await _context.SaveChangesAsync();

                return(result);
            }
        }
Ejemplo n.º 5
0
        public async Task <string> Operaion_move(Guid uid, invops_move varinvops_move)
        {
            string    result = "";
            invp_data m      = null;
            invp_tag  t      = null;

            t = _context.invp_tag.FirstOrDefault(z => z.RFID == varinvops_move.rfid);
            if (t != null)
            {
                m = _context.invp_data.FirstOrDefault(z => z.invp_dataId == t.invp_dataId);
                if (m == null)
                {
                    result = "Ошибка. Запчасть не обнаружена";
                }
                else
                {
                    result = m.name;
                }
            }
            else
            {
                result = "Ошибка. Запчасть не обнаружена";
            }

            invwh_cell c = null;

            c = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_move.shCodeFrom);
            if (c == null)
            {
                result += "Исходная ячейка не найдена. ";
            }


            invwh_cell cTo = null;

            cTo = _context.invwh_cell.FirstOrDefault(cc => cc.SHCODE == varinvops_move.shCodeTo);
            if (cTo == null)
            {
                result += "Целевая ячейка не найдена. ";
            }

            invd_op op = _context.invd_op.FirstOrDefault(op => op.name == "Перемещение");

            if (op == null)
            {
                op           = new invd_op();
                op.invd_opId = Guid.NewGuid();
                op.name      = "Перемещение";
                _context.invd_op.Add(op);
                await _context.SaveChangesAsync();
            }

            //if (varinvops_move.quantity <= 0)
            //{
            //    result += "Количество должно быть положительным числом. ";
            //}

            if (m != null && c != null && cTo != null)  //&& varinvops_move.quantity > 0)
            {
                invwh_loc loc = null;
                loc = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == c.invwh_locId);

                invwh_loc locTo = null;
                locTo = _context.invwh_loc.FirstOrDefault(l => l.invwh_locId == cTo.invwh_locId);

                // update source cell  status
                invw_info e = null;
                //e = _context.invw_info.FirstOrDefault(ex => ex.storepartid == m.invp_dataId && ex.cellid == c.invwh_cellId);
                e = _context.invw_info.FirstOrDefault(ex => ex.RFID == t.RFID && ex.cellid == c.invwh_cellId);
                int Qty = 0;
                if (e != null)
                {
                    //if (e.Qty > varinvops_move.quantity)
                    //{
                    //    e.Qty -= varinvops_move.quantity;
                    //    _context.Entry(e).State = EntityState.Modified;
                    //}
                    //else if (e.Qty == varinvops_move.quantity)
                    {
                        Qty = (int)e.Qty;
                        _context.invw_info.Remove(e);
                    }
                    //else if (e.Qty < varinvops_move.quantity)
                    //{
                    //    result += "Количество запчастей в ячейке не достаточно для перемещения. Всего: " + e.Qty.ToString();
                    //    _context.invops_move.Add(varinvops_move);
                    //    await _context.SaveChangesAsync();
                    //    return result;
                    //}
                }
                else
                {
                    result += "Не найдена запчасть в исходной ячейке. ";
                    _context.invops_move.Add(varinvops_move);
                    await _context.SaveChangesAsync();

                    return(result);
                }


                // update goal cell  status
                invw_info eTo = null;
                //eTo = _context.invw_info.FirstOrDefault(ex => ex.storepartid == m.invp_dataId && ex.cellid == cTo.invwh_cellId);
                //if (eTo != null)
                //{
                //    eTo.Qty += varinvops_move.quantity;
                //    _context.Entry(eTo).State = EntityState.Modified;

                //}
                //else
                {
                    eTo             = new invw_info();
                    eTo.invw_infoId = Guid.NewGuid();
                    //eTo.Qty = varinvops_move.quantity;
                    eTo.Qty         = Qty; // при перемещении количество не меняем
                    eTo.storepartid = m.invp_dataId;
                    eTo.locationid  = cTo.invwh_locId;
                    eTo.cellid      = cTo.invwh_cellId;
                    eTo.RFID        = varinvops_move.rfid;
                    if (locTo != null)
                    {
                        eTo.theStore = locTo.theStore;
                    }
                    _context.invw_info.Add(eTo);
                }

                // save history
                invm_info h = new invm_info();
                h.invm_infoId = Guid.NewGuid();
                h.fromcell    = c.invwh_cellId;
                h.toCell      = cTo.invwh_cellId;
                h.theUser     = uid;
                h.theOP       = op.invd_opId;
                h.optime      = DateTime.Now;
                //h.Qty = varinvops_move.quantity;
                h.Qty         = Qty;
                h.storepartid = m.invp_dataId; // запчасть
                h.theDep      = Guid.Empty;
                _context.invm_info.Add(h);

                // save operation for control only
                _context.invops_move.Add(varinvops_move);
                await _context.SaveChangesAsync();

                return("OK");
            }
            else
            {
                _context.invops_move.Add(varinvops_move);
                await _context.SaveChangesAsync();

                return(result);
            }
        }