コード例 #1
0
        public void saveDetail(production_order_set_up_scheduleModel model)
        {
            //For production_order_set_up_schedule
            var listHasId = model.list_item_schedule.Where(d => d.db.id != 0).Select(d => d.db.id).ToList();
            var delete1   = _context.production_order_item_schedules
                            .Where(t => t.id_production_order_item == model.db.id)
                            .Where(t => !listHasId.Contains(t.id));

            ;
            _context.RemoveRange(delete1);
            _context.SaveChanges();

            for (int i = 0; i < model.list_item_schedule.Count; i++)
            {
                if (model.list_item_schedule[i].db.id == 0)
                {
                    model.list_item_schedule[i].db.index_pos  = i;
                    model.list_item_schedule[i].db.status_del = 1;
                }
                else
                {
                    var dbold = _context.production_order_item_schedules
                                .Where(d => d.id == model.list_item_schedule[i].db.id).FirstOrDefault();
                    dbold.index_pos = i;
                    _context.SaveChanges();
                }
            }
            var listInsert1 = model.list_item_schedule
                              .Where(d => d.db.id == 0)
                              .Select(d => d.db).ToList();

            _context.production_order_item_schedules.AddRange(listInsert1);
            _context.SaveChanges();
        }
コード例 #2
0
        public int additional_export(production_order_set_up_scheduleModel model)
        {
            var listinsertNeed = new List <production_order_need_supplier_schedule_db>();
            var ids            = model.list_item_need_suppliers_schedule.Select(t => t.db.id).Distinct().ToList();
            var listdelete     = _context.production_order_need_supplier_schedules
                                 .Where(t => t.id_production_order_item == model.db.id)
                                 .Where(t => t.type == 2)
                                 .Where(t => !ids.Contains(t.id));

            _context.RemoveRange(listdelete);
            _context.SaveChanges();
            for (int i = 0; i < model.list_item_need_suppliers_schedule.Count; i++)
            {
                var item = model.list_item_need_suppliers_schedule[i];
                if (item.db.id == 0)
                {
                    item.db.quantity_unit_main       = item.db.quantity * item.db.conversion_factor;
                    item.db.status_export            = 1;
                    item.db.index_pos                = i;
                    item.db.id_production_order      = model.db.id_production_order;
                    item.db.id_production_order_item = model.db.id;
                    item.db.status_del               = 1;
                    listinsertNeed.Add(item.db);
                }
            }
            _context.production_order_need_supplier_schedules.AddRange(listinsertNeed);
            _context.SaveChanges();
            return(1);
        }
コード例 #3
0
        public int update(production_order_set_up_scheduleModel model)
        {
            saveDetail(model);
            saveDetailProvide(model);
            var db = _context.production_order_items.Where(d => d.id == model.db.id).FirstOrDefault();

            db.status_schedule = 2;
            _context.SaveChanges();

            return(1);
        }
 private bool checkModelStateEdit(production_order_set_up_scheduleModel item)
 {
     if (item.list_item_schedule.Count == 0)
     {
         ModelState.AddModelError("list_item_schedule", "required");
     }
     if (item.list_item_schedule.Sum(d => d.db.quantity) != item.db.quantity)
     {
         ModelState.AddModelError("list_item_schedule", "inventory.total_amount_schedule_must_equal_amount_of_production");
     }
     return(ModelState.IsValid);
 }
コード例 #5
0
        public void saveDetailProvide(production_order_set_up_scheduleModel model)
        {
            var delete = _context.production_order_need_supplier_schedules
                         .Where(t => t.type == 1)
                         .Where(t => t.id_production_order_item == model.db.id);


            var deleteForProcess = _context.production_processes
                                   .Where(t => t.id_production_order_item == model.db.id);


            _context.RemoveRange(deleteForProcess);
            _context.SaveChanges();
            var need           = _context.production_order_need_suppliers.Where(t => t.id_production_order_item == model.db.id).ToList();
            var listinsertNeed = new List <production_order_need_supplier_schedule_db>();

            for (int i = 0; i < model.list_item_schedule.Count; i++)
            {
                for (int j = 0; j < need.Count; j++)
                {
                    var it = need[j];
                    listinsertNeed.Add(new production_order_need_supplier_schedule_db()
                    {
                        conversion_factor = it.conversion_factor,
                        create_by         = model.list_item_schedule[i].db.create_by,
                        create_date       = DateTime.Now,
                        id                                = 0,
                        id_item                           = it.id_item,
                        id_production_order               = model.db.id_production_order,
                        id_production_order_item          = model.db.id,
                        id_production_order_need_supplier = model.list_item_schedule[i].db.id,
                        id_specification                  = it.id_specification,
                        id_unit                           = it.id_unit,
                        id_unit_main                      = it.id_unit_main,
                        index_pos                         = j,
                        id_sys_factory                    = model.list_item_schedule[i].db.id_sys_factory,
                        id_sys_factory_line               = model.list_item_schedule[i].db.id_sys_factory_line,
                        quota_main                        = it.quota_main,
                        quota                             = it.quota,
                        status_export                     = 1,
                        need_supplier_date                = model.list_item_schedule[i].db.working_date,
                        quantity                          = model.list_item_schedule[i].db.quantity * it.quota,
                        quantity_unit_main                = model.list_item_schedule[i].db.quantity_unit_main * it.quota_main,
                        type_add                          = it.type_add,
                        id_phase                          = it.id_phase,
                        type                              = 1,
                        status_del                        = 1
                    });
                }
            }
            _context.production_order_need_supplier_schedules.AddRange(listinsertNeed);
            _context.SaveChanges();
        }