Пример #1
0
        //[AllowAnonymous]
        public async Task <IActionResult> Putinvd_dep([FromRoute] Guid id, [FromBody] invd_dep varinvd_dep)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != varinvd_dep.invd_depId)
            {
                return(BadRequest());
            }

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

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

            return(NoContent());
        }
Пример #2
0
        //[AllowAnonymous]
        public async Task <IActionResult> Postinvd_dep([FromBody] invd_dep varinvd_dep)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.invd_dep.Add(varinvd_dep);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Getinvd_dep", new { id = varinvd_dep.invd_depId }, varinvd_dep));
        }
Пример #3
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);
            }
        }