public IHttpActionResult PostComplete(NvKiemKeVm.Dto instance)
        {
            string   unitCode   = _service.GetCurrentUnitCode();
            MdPeriod curentDate = CurrentSetting.GetKhoaSo(unitCode);
            int      period     = curentDate.Period;
            int      year       = curentDate.Year;
            string   tablleName = curentDate.GetTableName();

            instance.NgayDuyetPhieu = curentDate.ToDate;

            try
            {
                string msg = _serviceKK.Approval(instance, tablleName, year.ToString(), period);
                if (msg.Length > 0)
                {
                    return(BadRequest(msg));
                }

                _serviceKK.UpdateApproval(instance);
                _serviceKK.UnitOfWork.Save();
                return(Ok(msg));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Beispiel #2
0
        public async Task <IHttpActionResult> PostAppoval(MdPeriod instance)
        {
            var result = new TransferObj <MdPeriod>();
            var exist  = _service.Find(instance);

            if (exist != null)
            {
                if (instance.TrangThai == (int)ApprovalState.IsComplete)
                {
                    return(BadRequest("Kỳ này đã được duyệt!"));
                }
                var unitCode            = _service.GetCurrentUnitCode();
                var exsitPeriodNotClose = _service.Repository.DbSet.Any(x => x.Year == exist.Year && x.Period < exist.Period && x.TrangThai != (int)ApprovalState.IsComplete && x.UnitCode == unitCode);
                if (exsitPeriodNotClose)
                {
                    return(BadRequest("Chưa khóa kỳ trước"));
                }

                var          talbeName     = instance.GetTableName();
                var          preTalbeName  = _service.GetPreTableName(instance);
                ProcessState stateOfPeriod = _service.CheckProcess(instance);
                switch (stateOfPeriod)
                {
                case ProcessState.IsPending:
                    try
                    {
                        _close.ProcedureCloseInventory(preTalbeName, talbeName, instance.UnitCode, instance.Year, instance.Period);
                        exist.TrangThai   = (int)ApprovalState.IsComplete;
                        exist.ObjectState = ObjectState.Modified;
                        result.Status     = true;
                        result.Message    = "Khóa sổ thành công";
                        _service.UnitOfWork.Save();
                    }
                    catch (Exception e)
                    {
                        return(InternalServerError(e));
                    }
                    break;

                case ProcessState.IsComplete:
                    break;

                case ProcessState.IsRunning:
                    return(BadRequest("Đang trong quá trình khóa"));

                case ProcessState.IsError:
                    break;

                default:
                    break;
                }
            }
            return(Ok(result));
        }
Beispiel #3
0
        public async Task <IHttpActionResult> PostCapNhatSoXuat(MdPeriod instance)
        {
            var result = new TransferObj <MdPeriod>();
            var exist  = _service.Find(instance);

            if (exist != null)
            {
                instance.TrangThai = (int)ApprovalState.IsNotApproval;
                var          talbeName     = instance.GetTableName();
                var          preTalbeName  = _service.GetPreTableName(instance);
                ProcessState stateOfPeriod = _service.CheckProcess(instance);
                switch (stateOfPeriod)
                {
                case ProcessState.IsPending:
                    try
                    {
                        _close.ProcedureCloseInventory(preTalbeName, talbeName, instance.UnitCode, instance.Year, instance.Period);

                        exist.TrangThai   = (int)ApprovalState.IsComplete;
                        exist.ObjectState = BTS.API.ENTITY.ObjectState.Modified;
                        result.Status     = true;
                        result.Message    = "Cập nhật thành công";
                        _service.UnitOfWork.Save();
                    }
                    catch (Exception e)
                    {
                        return(InternalServerError(e));
                    }
                    break;

                case ProcessState.IsComplete:
                    break;

                case ProcessState.IsRunning:
                    return(BadRequest("Đang trong quá trình khóa"));

                case ProcessState.IsError:
                    break;

                default:
                    break;
                }
            }
            return(Ok(result));
        }
Beispiel #4
0
        public async Task <IHttpActionResult> GetExternalCode(ParameterKiemKe para)
        {
            string   unitCode   = _service.GetCurrentUnitCode();
            MdPeriod curentDate = CurrentSetting.GetKhoaSo(unitCode);

            if (para.WareHouseCodes == null)
            {
                para.WareHouseCodes = unitCode + "-K2";
            }
            string tableName = curentDate.GetTableName();
            List <NvKiemKeVm.ExternalCodeInInventory> result = new List <NvKiemKeVm.ExternalCodeInInventory>();

            result = ProcedureCollection.GetExternalCodeInventory(unitCode, tableName, para);
            if (result != null)
            {
                return(Ok(result));
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #5
0
        public async Task <IHttpActionResult> PostComplete(NvKiemKeVm.Dto instance)
        {
            string   unitCode    = _service.GetCurrentUnitCode();
            MdPeriod curentDate  = CurrentSetting.GetKhoaSo(unitCode);
            int      period      = curentDate.Period;
            int      year        = curentDate.Year;
            string   tablleName  = curentDate.GetTableName();
            NvKiemKe phieuKiemKe = _serviceKK.FindById(instance.Id);

            instance.NgayDuyetPhieu = curentDate.ToDate;
            //thực hiện tạo phiếu kiểm kê nhập, kiểm kê xuất
            try
            {
                _serviceKK.Approval(instance, tablleName, year.ToString(), period);
                _serviceKK.UpdateApproval(instance);
                _serviceKK.UnitOfWork.Save();
                return(Ok(true));
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
Beispiel #6
0
        public async Task <IHttpActionResult> PostCurrentPeriod(MdPeriod instance)
        {
            var result = new TransferObj <MdPeriod>();

            try
            {
                var item = _service.InitializePeriod(instance);
                _service.UnitOfWork.Save();
                var exist = _service.Find(instance);
                if (exist != null)
                {
                    if (instance.TrangThai == (int)ApprovalState.IsComplete)
                    {
                        return(BadRequest("Kỳ này đã được duyệt!"));
                    }
                    var          unitCode         = _service.GetCurrentUnitCode();
                    var          tableNameKyTruoc = item.GetTableName();
                    var          talbeName        = instance.GetTableName();
                    var          preTalbeName     = _service.GetPreTableName(instance);
                    ProcessState stateOfPeriod    = _service.CheckProcess(instance);
                    var          checkExist       = string.Format("SELECT TABLE_NAME FROM DBA_TABLES where TABLE_NAME = '{0}'", tableNameKyTruoc);
                    using (var ctx = new ERPContext())
                    {
                        var existKyTruoc = ctx.Database.SqlQuery <InventoryExpImp>(checkExist).ToList();
                        if (existKyTruoc.Count == 0)
                        {
                            //tạo mới bảng XNT kỳ trước
                            _close.CreateTableXNT_KhoaSo(null, tableNameKyTruoc, instance.UnitCode, instance.Year,
                                                         instance.Period);
                        }
                        else
                        {
                            stateOfPeriod = ProcessState.IsPending;
                        }
                        switch (stateOfPeriod)
                        {
                        case ProcessState.IsPending:
                            try
                            {
                                _close.ProcedureCloseInventory(preTalbeName, talbeName, instance.UnitCode, instance.Year, instance.Period);
                                exist.TrangThai   = (int)ApprovalState.IsComplete;
                                exist.ObjectState = BTS.API.ENTITY.ObjectState.Modified;
                                result.Status     = true;
                                result.Message    = "Khóa sổ thành công";
                                _service.UnitOfWork.Save();
                            }
                            catch (Exception e)
                            {
                                return(InternalServerError(e));
                            }
                            break;

                        case ProcessState.IsComplete:
                            break;

                        case ProcessState.IsRunning:
                            return(BadRequest("Đang trong quá trình khóa"));

                        case ProcessState.IsError:
                            break;

                        default:
                            break;
                        }
                    }
                }
                result.Status = true;
                result.Data   = item;
                return(Ok(result));
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
                return(Ok(result));
            }
        }