public async Task DeleteModel(int id)
        {
            CreditorAccountModel model = await ReadModelById(id);

            EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true);
            DbSet.Update(model);
        }
        public async Task <int> UpdateFromUnitReceiptNoteAsync(CreditorAccountUnitReceiptNotePostedViewModel viewModel)
        {
            CreditorAccountModel data = await DbSet.FirstOrDefaultAsync(x => x.UnitReceiptNoteNo == viewModel.Code);

            if (data == null)
            {
                throw new NotFoundException();
            }

            data.UnitReceiptNotePPN  = (viewModel.UseIncomeTax ? (decimal)0.1 * viewModel.DPP : 0);
            data.UnitReceiptNoteNo   = viewModel.Code;
            data.UnitReceiptNoteDPP  = viewModel.DPP;
            data.UnitReceiptNoteDate = viewModel.Date;
            data.UnitReceiptMutation = viewModel.DPP + (viewModel.UseIncomeTax ? (decimal)0.1 * viewModel.DPP : 0);
            data.FinalBalance        = data.UnitReceiptMutation + data.BankExpenditureNoteMutation;
            data.DivisionId          = viewModel.DivisionId;
            data.DivisionCode        = viewModel.DivisionCode;
            data.DivisionName        = viewModel.DivisionName;
            data.UnitId   = viewModel.UnitId;
            data.UnitCode = viewModel.UnitCode;
            data.UnitName = viewModel.UnitName;


            UpdateModel(data.Id, data);
            return(await DbContext.SaveChangesAsync());
        }
        public async Task <int> CreateFromUnitReceiptNoteAsync(CreditorAccountUnitReceiptNotePostedViewModel viewModel)
        {
            CreditorAccountModel model = new CreditorAccountModel()
            {
                UnitReceiptNotePPN  = viewModel.PPN,
                FinalBalance        = viewModel.DPP + viewModel.PPN,
                InvoiceNo           = viewModel.InvoiceNo,
                SupplierCode        = viewModel.SupplierCode,
                SupplierName        = viewModel.SupplierName,
                SupplierIsImport    = viewModel.SupplierIsImport,
                UnitReceiptMutation = viewModel.DPP + viewModel.PPN,
                UnitReceiptNoteDate = viewModel.Date,
                UnitReceiptNoteDPP  = viewModel.DPP,
                UnitReceiptNoteNo   = viewModel.Code,
                CurrencyCode        = viewModel.Currency,
                DPPCurrency         = viewModel.DPPCurrency,
                CurrencyRate        = viewModel.CurrencyRate,
                PaymentDuration     = viewModel.PaymentDuration,
                Products            = viewModel.Products,
                DivisionId          = viewModel.DivisionId,
                DivisionCode        = viewModel.DivisionCode,
                DivisionName        = viewModel.DivisionName,
                UnitId   = viewModel.UnitId,
                UnitCode = viewModel.UnitCode,
                UnitName = viewModel.UnitName
            };

            return(await CreateAsync(model));
        }
        public async Task <int> CreateFromUnitPaymentCorrection(CreditorAccountUnitPaymentCorrectionPostedViewModel viewModel)
        {
            var model = await DbContext.CreditorAccounts.FirstOrDefaultAsync(entity => entity.UnitReceiptNoteNo == viewModel.UnitReceiptNoteNo);

            var result = 0;

            if (model != null)
            {
                var correction = new CreditorAccountModel(
                    model.SupplierName,
                    model.SupplierCode,
                    model.SupplierIsImport,
                    model.DivisionId,
                    model.DivisionCode,
                    model.DivisionName,
                    model.UnitId,
                    model.UnitCode,
                    model.UnitName,
                    viewModel.UnitPaymentCorrectionId,
                    viewModel.UnitPaymentCorrectionNo,
                    viewModel.UnitPaymentCorrectionDPP,
                    viewModel.UnitPaymentCorrectionPPN,
                    viewModel.UnitPaymentCorrectionMutation,
                    viewModel.UnitPaymentCorrectionDate,
                    model.UnitReceiptNoteNo,
                    model.Products,
                    model.UnitReceiptNoteDate,
                    model.UnitReceiptNoteDPP,
                    model.UnitReceiptNotePPN,
                    model.UnitReceiptMutation,
                    model.BankExpenditureNoteId,
                    model.BankExpenditureNoteNo,
                    model.BankExpenditureNoteDate,
                    model.BankExpenditureNoteDPP,
                    model.BankExpenditureNotePPN,
                    model.BankExpenditureNoteMutation,
                    model.MemoNo,
                    model.MemoDate,
                    model.MemoDPP,
                    model.MemoPPN,
                    model.MemoMutation,
                    model.PaymentDuration,
                    model.InvoiceNo,
                    model.FinalBalance,
                    model.CurrencyCode,
                    model.DPPCurrency,
                    model.CurrencyRate
                    );

                EntityExtension.FlagForCreate(correction, IdentityService.Username, UserAgent);
                DbSet.Add(correction);
                result = await DbContext.SaveChangesAsync();
            }

            return(result);
        }
        public async Task <int> DeleteFromUnitReceiptNoteAsync(CreditorAccountUnitReceiptNotePostedViewModel viewModel)
        {
            CreditorAccountModel model = await DbSet.FirstOrDefaultAsync(x => x.UnitReceiptNoteNo == viewModel.Code);

            if (model != null)
            {
                return(await DeleteAsync(model.Id));
            }
            else
            {
                return(0);
            }
        }
 public CreditBalanceAccountViewModel(CreditorAccountModel creditorAccountModel)
 {
     SupplierCode                = creditorAccountModel.SupplierCode;
     DivisionCode                = creditorAccountModel.DivisionCode;
     CurrencyCode                = creditorAccountModel.CurrencyCode;
     UnitReceiptNoteDate         = creditorAccountModel.UnitReceiptNoteDate;
     Products                    = creditorAccountModel.Products;
     UnitReceiptMutation         = creditorAccountModel.UnitReceiptMutation;
     BankExpenditureNoteMutation = creditorAccountModel.BankExpenditureNoteMutation;
     SupplierName                = creditorAccountModel.SupplierName;
     CurrencyRate                = creditorAccountModel.CurrencyRate;
     DivisionName                = creditorAccountModel.DivisionName;
     FinalBalance                = creditorAccountModel.FinalBalance;
 }
        public async Task <int> DeleteFromBankExpenditureNoteAsync(int id)
        {
            CreditorAccountModel model = await DbSet.FirstOrDefaultAsync(x => x.Id == id);

            model.BankExpenditureNoteDate     = null;
            model.BankExpenditureNoteDPP      = 0;
            model.BankExpenditureNoteId       = 0;
            model.BankExpenditureNoteMutation = 0;
            model.BankExpenditureNoteNo       = null;
            model.BankExpenditureNotePPN      = 0;
            model.FinalBalance = model.UnitReceiptMutation + model.BankExpenditureNoteMutation + model.MemoMutation;

            return(await UpdateAsync(model.Id, model));
        }
        public async Task <int> UpdateFromBankExpenditureNoteAsync(CreditorAccountBankExpenditureNotePostedViewModel viewModel)
        {
            CreditorAccountModel data = await DbSet.FirstOrDefaultAsync(x => x.SupplierCode == viewModel.SupplierCode && x.BankExpenditureNoteNo == viewModel.Code && x.InvoiceNo == viewModel.InvoiceNo);

            if (data == null)
            {
                throw new NotFoundException();
            }

            data.BankExpenditureNoteNo       = viewModel.Code;
            data.BankExpenditureNoteDate     = viewModel.Date;
            data.BankExpenditureNoteMutation = viewModel.Mutation;
            data.FinalBalance = data.UnitReceiptMutation + (data.BankExpenditureNoteMutation * -1) + data.MemoMutation;


            UpdateModel(data.Id, data);
            return(await DbContext.SaveChangesAsync());
        }
        //private async Task<CreditorAccountUnitReceiptNotePostedViewModel> GetCreditorAccountFromUnitReceiptNote(string urnNo)
        //{
        //    var jsonSerializerSettings = new JsonSerializerSettings
        //    {
        //        MissingMemberHandling = MissingMemberHandling.Ignore
        //    };

        //    //var token = GetTokenAsync().Result;

        //    var categoryUri = APIEndpoint.Purchasing + $"unit-receipt-notes/by-user/correction-note/";
        //    var categoryResponse = _http.GetAsync(categoryUri, token).Result;

        //    var categoryResult = new BaseResponse<List<CategoryCOAResult>>()
        //    {
        //        data = new List<CategoryCOAResult>()
        //    };
        //    if (categoryResponse.IsSuccessStatusCode)
        //    {
        //        categoryResult = JsonConvert.DeserializeObject<BaseResponse<List<CategoryCOAResult>>>(categoryResponse.Content.ReadAsStringAsync().Result, jsonSerializerSettings);
        //    }

        //    _cacheManager.Set(MemoryCacheConstant.Categories, categoryResult.data);
        //}

        public async Task <int> CreateFromMemoAsync(CreditorAccountMemoPostedViewModel viewModel)
        {
            CreditorAccountModel model = await DbSet.FirstOrDefaultAsync(x => x.SupplierCode == viewModel.SupplierCode && x.InvoiceNo == viewModel.InvoiceNo);

            if (model == null)
            {
                throw new NotFoundException();
            }

            model.MemoDate     = viewModel.Date;
            model.MemoDPP      = viewModel.DPP;
            model.MemoPPN      = viewModel.PPN;
            model.MemoNo       = viewModel.Code;
            model.MemoMutation = viewModel.DPP + viewModel.PPN;
            model.FinalBalance = model.UnitReceiptMutation + model.BankExpenditureNoteMutation + model.MemoMutation;

            UpdateModel(model.Id, model);
            return(await DbContext.SaveChangesAsync());
        }
        //public async Task<CreditorAccountMemoPostedViewModel> GetByMemo(string supplierCode, string memoNo, string invoiceNo)
        //{
        //    CreditorAccountModel data= await DbSet.FirstOrDefaultAsync(x => x.SupplierCode == supplierCode && x.MemoNo == memoNo && x.InvoiceNo == invoiceNo);

        //    if (data == null)
        //        return null;

        //    return new CreditorAccountMemoPostedViewModel()
        //    {
        //        CreditorAccountId = data.Id,
        //        Code = data.MemoNo,
        //        Date = data.MemoDate.Value,
        //        DPP = data.MemoDPP,
        //        PPN = data.MemoPPN,
        //        InvoiceNo = data.InvoiceNo,
        //        SupplierCode = data.SupplierCode,
        //        SupplierName = data.SupplierName
        //    };
        //}

        public async Task <int> CreateFromBankExpenditureNoteAsync(CreditorAccountBankExpenditureNotePostedViewModel viewModel)
        {
            CreditorAccountModel model = await DbSet.FirstOrDefaultAsync(x => x.BankExpenditureNoteNo == null && x.SupplierCode == viewModel.SupplierCode && x.InvoiceNo == viewModel.InvoiceNo);

            if (model == null)
            {
                //do nothing

                return(1);
            }

            model.BankExpenditureNoteDate     = viewModel.Date;
            model.BankExpenditureNoteId       = viewModel.Id;
            model.BankExpenditureNoteMutation = viewModel.Mutation;
            model.BankExpenditureNoteNo       = viewModel.Code;
            model.FinalBalance = model.UnitReceiptMutation + (model.BankExpenditureNoteMutation * -1) + model.MemoMutation;

            UpdateModel(model.Id, model);
            return(await DbContext.SaveChangesAsync());
        }
Ejemplo n.º 11
0
 public CreditBalanceAccountViewModel(CreditorAccountModel creditorAccountModel)
 {
     SupplierCode                = creditorAccountModel.SupplierCode;
     DivisionCode                = creditorAccountModel.DivisionCode;
     CurrencyCode                = creditorAccountModel.CurrencyCode;
     UnitReceiptNoteDate         = creditorAccountModel.UnitReceiptNoteDate;
     Products                    = creditorAccountModel.Products;
     UnitReceiptMutation         = creditorAccountModel.UnitReceiptMutation;
     BankExpenditureNoteMutation = creditorAccountModel.BankExpenditureNoteMutation;
     SupplierName                = creditorAccountModel.SupplierName;
     CurrencyRate                = creditorAccountModel.CurrencyRate;
     DivisionName                = creditorAccountModel.DivisionName;
     FinalBalance                = creditorAccountModel.FinalBalance;
     PaidAmount                  = creditorAccountModel.PurchasingMemoAmount;
     DivisionId                  = creditorAccountModel.DivisionId;
     IncomeTaxAmount             = creditorAccountModel.IncomeTaxAmount;
     VATAmount                   = creditorAccountModel.VATAmount;
     UnitPaymentOrderNo          = creditorAccountModel.MemoNo;
     ExternalPurchaseOrderNo     = creditorAccountModel.ExternalPurchaseOrderNo;
     UnitReceiptNoteNo           = creditorAccountModel.UnitReceiptNoteNo;
 }
        public async Task <CreditorAccountBankExpenditureNotePostedViewModel> GetByBankExpenditureNote(string supplierCode, string bankExpenditureNote, string invoiceNo)
        {
            CreditorAccountModel data = await DbSet.FirstOrDefaultAsync(x => x.SupplierCode == supplierCode && x.BankExpenditureNoteNo == bankExpenditureNote && x.InvoiceNo == invoiceNo);

            if (data == null)
            {
                return(null);
            }

            return(new CreditorAccountBankExpenditureNotePostedViewModel()
            {
                CreditorAccountId = data.Id,
                Mutation = data.BankExpenditureNoteMutation,
                Id = data.BankExpenditureNoteId,
                Code = data.BankExpenditureNoteNo,
                Date = data.BankExpenditureNoteDate.Value,
                InvoiceNo = data.InvoiceNo,
                SupplierCode = data.SupplierCode,
                SupplierName = data.SupplierName
            });
        }
 public void UpdateModel(int id, CreditorAccountModel model)
 {
     EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent);
     DbSet.Update(model);
 }
 public async Task <int> CreateAsync(CreditorAccountModel model)
 {
     CreateModel(model);
     return(await DbContext.SaveChangesAsync());
 }
 public async Task <int> UpdateAsync(int id, CreditorAccountModel model)
 {
     UpdateModel(id, model);
     return(await DbContext.SaveChangesAsync());
 }
        public async Task <int> DeleteFromUnitReceiptNoteAsync(int id)
        {
            CreditorAccountModel model = await DbSet.FirstOrDefaultAsync(x => x.Id == id);

            return(await DeleteAsync(model.Id));
        }
 public void CreateModel(CreditorAccountModel model)
 {
     EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent);
     DbSet.Add(model);
 }