Esempio n. 1
0
        private void updateExpense(String storeCode)
        {
            ExpenseStore store = _context.ExpenseStore.Where(c => c.StoreCode == storeCode).First();

            store.TotalExpense = _context.Expense.
                                 Where(c => c.StoreCode == storeCode && c.TypeId == Config.RetailEnum.expenseExpense)
                                 .Select(c => c.Amount)
                                 .DefaultIfEmpty()
                                 .Sum();
            store.RemaingBudget = store.TotalBudget - store.TotalExpense;
            _context.ExpenseStore.Update(store);
            // _context.SaveChanges();
        }
Esempio n. 2
0
        private BudgetStore budgetStore(String storeCOde)
        {

            BudgetStore b = new BudgetStore();
            try
            {
                ExpenseStore expense = _context.ExpenseStore.Where(c => c.StoreCode == storeCOde).First();
                b.budget = expense.TotalBudget.Value;
                b.remaining = expense.RemaingBudget.Value;
            }
            catch
            {
                b.budget = 0;
                b.remaining = 0;
            }


            return b;


        }
Esempio n. 3
0
        public async Task <IActionResult> PostTransaction([FromBody] PettyCash transactionApi)
        {
            int orno = 0;
            //insert storeCode
            bool isStoreExist = _context.ExpenseStore.Any(c => c.StoreCode == transactionApi.storeCode);

            if (!isStoreExist)
            {
                ExpenseStore expenseStore = new ExpenseStore();
                expenseStore.StoreCode     = transactionApi.storeCode;
                expenseStore.RemaingBudget = 0;
                expenseStore.TotalExpense  = 0;
                expenseStore.Year          = DateTime.Now.Year;
                _context.ExpenseStore.Add(expenseStore);
            }
            APIResponse response = new APIResponse();

            try
            {
                //perbaiki transaksi petty cash
                //add more unit;
                orno = _context.Expense.Count() + transactionApi.pettyCashLine.Count();
                InforAPIPettyCash inforAPIPettyCash = new InforAPIPettyCash(_context);
                String            itrn = inforAPIPettyCash.getRoundNumber();
                foreach (PettyCashLine pl in transactionApi.pettyCashLine)
                {
                    Expense expense = new Expense();
                    expense.Amount           = (pl.price * pl.quantity);
                    expense.CostCategoryId   = transactionApi.expenseCategoryId;
                    expense.CostCategoryName = transactionApi.expenseCategory;
                    expense.ExpenseName      = pl.expenseName;
                    expense.StoreCode        = transactionApi.storeCode;
                    expense.Price            = pl.price;
                    expense.Qty      = pl.quantity;
                    expense.TypeId   = Config.RetailEnum.expenseExpense;
                    expense.TypeName = "Expense";
                    expense.Orno     = "PC" + orno;
                    expense.Itrn     = itrn;
                    try
                    {
                        expense.TransactionDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                    }
                    catch
                    {
                        expense.TransactionDate = DateTime.ParseExact(transactionApi.date + transactionApi.time, "yyyy-MM-dd" + "H:mm:ss", CultureInfo.InvariantCulture);
                    }
                    _context.Add(expense);
                    _context.SaveChanges();
                }
                //log record

                this.updateExpense(transactionApi.storeCode);
                //post to infor
                inforAPIPettyCash.postPettyCash(transactionApi, orno, itrn).Wait();

                response.code    = "1";
                response.message = "Sucess Add Data";

                this.sequenceNumber(transactionApi);
            }
            catch (Exception ex)
            {
                response.code    = "0";
                response.message = ex.ToString();
            }
            LogRecord log = new LogRecord();

            log.TimeStamp = DateTime.Now;
            log.Tag       = "Petty Cash";
            log.Message   = JsonConvert.SerializeObject(transactionApi);
            _context.LogRecord.Add(log);
            _context.SaveChanges();

            return(Ok(response));
        }
Esempio n. 4
0
 public ExpensesController(ExpenseStore expenseStore, ExpenseReader expenseReader, CategoryReader categoryReader)
 {
     _expenseStore   = expenseStore;
     _expenseReader  = expenseReader;
     _categoryReader = categoryReader;
 }