Exemplo n.º 1
0
        public async Task <IActionResult> Post([FromBody] ClosingShiftAPI transactionApi)
        {
            CashierShift cashierShift = new CashierShift();

            cashierShift.CashierShiftId = transactionApi.closingShiftId;
            cashierShift.DeviceName     = transactionApi.deviceName;
            cashierShift.EmployeeCode   = transactionApi.employeeId;
            cashierShift.EmployeeName   = transactionApi.employeeName;
            cashierShift.OpeningTime    = DateTime.Now;
            cashierShift.OpeningBalance = transactionApi.openingTransBal;
            cashierShift.ShiftCode      = transactionApi.shiftCode;
            cashierShift.ShiftName      = transactionApi.shiftCode + " - " + transactionApi.employeeName;
            cashierShift.ClosingBalance = transactionApi.closingTransBal;
            cashierShift.StoreCode      = transactionApi.storeCode;
            cashierShift.StoreName      = _context.Store.Where(c => c.Code == transactionApi.storeCode).First().Name;
            cashierShift.ClosingTime    = DateTime.Now;
            _context.Add(cashierShift);
            //log record
            LogRecord log = new LogRecord();

            log.TimeStamp = DateTime.Now;
            log.Tag       = "Closing Shift";
            log.Message   = JsonConvert.SerializeObject(transactionApi);
            _context.LogRecord.Add(log);
            _context.SaveChanges();
            this.sequenceNumber(transactionApi);

            return(Ok(cashierShift));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> create(userLoginList userLoginList)
        {
            try
            {
                List <UserLogin> list = userLoginList.UserList;

                for (int i = 0; i < list.Count; i++)
                {
                    bool dataexist = _context.UserLogin.Any(c => c.UserId == list[i].UserId);
                    if (!dataexist)
                    {
                        UserLogin login    = new UserLogin();
                        string    password = list[i].OldPassword;
                        byte[]    passwordHash, passwordSalt;
                        CreatePasswordHash(password, out passwordHash, out passwordSalt);
                        login.PasswordHash = passwordHash;
                        login.PasswordSalt = passwordSalt;
                        //login.ConfirmPassword = list[i].ConfirmPassword;
                        //login.NewPassword = password;
                        login.OldPassword = password;
                        login.Role        = list[i].Role;
                        _context.Add(login);
                        _context.SaveChanges();

                        CreateStoreifexist(login.UserId, login.Id);
                    }
                    else
                    {
                        return(StatusCode(404, new
                        {
                            status = "404",
                            create = false,
                            message = "Cannot create a record, user id already exist."
                        }));
                    }
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "Created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> create(discountSetupStoreList discSetupStoreList)
        {
            try
            {
                List <DiscountSetupStore> list = discSetupStoreList.discSetupStore;

                for (int i = 0; i < list.Count; i++)
                {
                    bool discExist  = false;
                    bool storeExist = false;
                    discExist = _context.DiscountSetup.Any(c => c.Id == list[i].DiscountId);
                    var store = _context.Store.Where(x => x.Code == list[i].Store.Code).First();
                    storeExist = _context.DiscountSetupStore.Any(c => c.StoreId == store.Id);

                    if (discExist && !storeExist)
                    {
                        DiscountSetupStore setupStore = new DiscountSetupStore();
                        setupStore.DiscountId = list[i].DiscountId;
                        setupStore.StoreId    = store.Id;
                        _context.Add(setupStore);
                        _context.SaveChanges();
                    }
                    else
                    {
                        return(StatusCode(404, new
                        {
                            status = "404",
                            create = false,
                            message = "Cannot create a record, store id already exist or discount id not exist."
                        }));
                    }
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "Created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
Exemplo n.º 4
0
        public async Task <IActionResult> create(ListPrice listPrice)
        {
            try
            {
                List <PriceList> list = listPrice.prices;

                for (int i = 0; i < list.Count; i++)
                {
                    PriceList price = new PriceList();
                    price.ItemId     = list[i].ItemId;
                    price.SalesPrice = list[i].SalesPrice;
                    price.Currency   = list[i].Currency;
                    _context.Add(price);
                    bool discExist = false;
                    discExist = _context.PriceList.Any(c => c.ItemId == price.ItemId);
                    if (discExist == false)
                    {
                        _context.SaveChanges();
                    }
                    else
                    {
                        return(StatusCode(404, new
                        {
                            status = "404",
                            create = false,
                            message = "Cannot create a record, item number already exist."
                        }));
                    }
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "Created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
        public IActionResult postStore([FromBody] StoreAPIModel param)
        {
            bool exist = _context.Store.Any(x => x.Id == param.Id);

            if (!exist)
            {
                try
                {
                    var data = new Store()
                    {
                        Code        = param.Code,
                        Address     = param.Address,
                        Address2    = param.Address2,
                        Address3    = param.Address3,
                        Address4    = param.Address4,
                        City        = param.City,
                        DateOpen    = param.DateOpen,
                        Name        = param.Name,
                        Location    = param.Location,
                        Regional    = param.Regional,
                        StoreTypeId = param.StoreTypeId,
                        TargetQty   = param.TargetQty,
                        WarehouseId = param.WarehouseId,
                        TargetValue = param.TargetValue
                    };

                    _context.Store.Add(data);
                    _context.SaveChanges();

                    response.code    = "1";
                    response.message = "Data has been successfully saved";
                } catch (Exception ex)
                {
                    response.code    = "0";
                    response.message = ex.ToString();
                }
            }
            else
            {
                response.code    = "5";
                response.message = "Data already exists";
            }


            return(Ok(response));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> create(discountSetupLineList discSetupLnList)
        {
            try
            {
                List <DiscountSetupLines> list = discSetupLnList.discountLines;

                for (int i = 0; i < list.Count; i++)
                {
                    var discSetup = _context.DiscountSetup.Where(x => x.DiscountCode == list[i].DiscountCode).First();

                    DiscountSetupLines discSetupLines = new DiscountSetupLines();
                    discSetupLines.DiscountCode       = list[i].DiscountCode;
                    discSetupLines.GroupCode          = list[i].GroupCode;
                    discSetupLines.Code               = list[i].Code;
                    discSetupLines.DiscountPrecentage = list[i].DiscountPrecentage;
                    discSetupLines.DiscountCash       = list[i].DiscountCash;
                    discSetupLines.QtyMin             = list[i].QtyMin;
                    discSetupLines.QtyMax             = list[i].QtyMax;
                    discSetupLines.AmountMin          = list[i].AmountMin;
                    discSetupLines.AmountMax          = list[i].AmountMax;
                    discSetupLines.ArticleIdDiscount  = list[i].ArticleIdDiscount;
                    discSetupLines.Multi              = list[i].Multi;
                    discSetupLines.DiscountSetupId    = discSetup.Id;
                    discSetupLines.CreatedDate        = DateTime.Now;
                    _context.Add(discSetupLines);
                    _context.SaveChanges();
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
Exemplo n.º 7
0
        public async Task <IActionResult> PostTransaction([FromBody] StockTakeAPI transactionApi)
        {
            APIResponse response = new APIResponse();

            try
            {
                StockTake stockTake = new StockTake();
                stockTake.EmployeeId   = transactionApi.employeeId;
                stockTake.EmployeeName = transactionApi.employeeName;
                stockTake.Time         = DateTime.Now;
                stockTake.StoreId      = transactionApi.storeCode;
                _context.StockTake.Add(stockTake);
                //log record
                LogRecord log = new LogRecord();
                log.TimeStamp = DateTime.Now;
                log.Tag       = "Stock take";
                log.Message   = JsonConvert.SerializeObject(transactionApi);
                _context.LogRecord.Add(log);
                _context.SaveChanges();
                for (int i = 0; i < transactionApi.stockTakeLines.Count; i++)
                {
                    StockTakeLineAPI lineAPI = transactionApi.stockTakeLines[i];
                    StockTakeLine    line    = new StockTakeLine();
                    line.ArticleId   = lineAPI.article.articleId;
                    line.ArticleName = lineAPI.article.articleName;
                    line.GoodQty     = lineAPI.goodQty;
                    line.RejectQty   = lineAPI.rejectQty;
                    line.WhGoodQty   = lineAPI.whGoodQty;
                    line.WhRejectQty = lineAPI.whRejectQty;
                    line.StockTakeId = stockTake.Id;
                    _context.Add(line);
                    _context.SaveChanges();
                }
                response.code    = "1";
                response.message = "Sucess Add Data";
            }
            catch (Exception ex)
            {
                response.code    = "0";
                response.message = ex.ToString();
            }

            return(Ok(response));
        }
        private void sequenceNumber(HOTransaction transactionApi)
        {
            SequenceNumberLog log = new SequenceNumberLog();

            log.StoreCode          = transactionApi.storeCode;
            log.LastNumberSequence = transactionApi.sequenceNumber;
            log.LastTransId        = transactionApi.transactionId;
            log.Date            = DateTime.Now;
            log.TransactionType = "HO Transaction";
            _context.SequenceNumberLog.Add(log);
            _context.SaveChanges();
        }
        public async Task <IActionResult> Post([FromBody] ClosingStoreAPI transactionApi)
        {
            //log record
            LogRecord log = new LogRecord();

            log.TimeStamp = DateTime.Now;
            log.Tag       = "Closing Store";
            log.Message   = JsonConvert.SerializeObject(transactionApi);
            _context.LogRecord.Add(log);

            ClosingStore cashierShift = new ClosingStore();

            cashierShift.ClosignTranBal   = transactionApi.closingDeposit;
            cashierShift.ClosingDeposit   = transactionApi.closingDeposit;
            cashierShift.ClosingPettyCash = transactionApi.closingDeposit;
            cashierShift.ClosingStoreId   = transactionApi.closingStoreId;
            cashierShift.ClosingTimeStamp = DateTime.Now;
            cashierShift.DeviceName       = transactionApi.deviceName;
            cashierShift.DisputePettyCash = transactionApi.disputePettyCash;
            cashierShift.DisputeTransBal  = transactionApi.disputeTransBal;
            cashierShift.EmployeeId       = transactionApi.employeeId;
            cashierShift.EmployeeName     = transactionApi.employeeName;
            cashierShift.OpeningDeposit   = transactionApi.openingDeposit;
            cashierShift.OpeningPettyCash = transactionApi.openingPettyCash;
            cashierShift.OpeningTimeStamp = DateTime.Now;
            cashierShift.OpeningTransBal  = transactionApi.openingTransBal;
            cashierShift.RealDeposit      = transactionApi.realDeposit;
            cashierShift.RealPettyCash    = transactionApi.realPettyCash;
            cashierShift.RealTransBal     = transactionApi.realTransBal;
            cashierShift.StatusClose      = transactionApi.statusClose;
            cashierShift.StoreCode        = transactionApi.storeCode;
            _context.Add(cashierShift);
            _context.SaveChanges();
            this.sequenceNumber(transactionApi);

            return(Ok(cashierShift));
        }
Exemplo n.º 10
0
        public async Task <IActionResult> create(BudgetList budgetList)
        {
            try
            {
                List <Budget> list = budgetList.Budgets;

                for (int i = 0; i < list.Count; i++)
                {
                    Budget budget = new Budget();
                    budget.StoreCode       = list[i].StoreCode;
                    budget.StoreId         = list[i].StoreId;
                    budget.StoreName       = list[i].StoreName;
                    budget.Amount          = list[i].Amount;
                    budget.JournalNumber   = list[i].JournalNumber;
                    budget.TransactionDate = list[i].TransactionDate;
                    _context.Add(budget);
                    _context.SaveChanges();
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "Created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
        public async Task <IActionResult> changepass([FromBody] ChangePasswordModel change)
        {
            var employeecode = await _context.Employee.Where(c => c.EmployeeCode == change.username).Select(c => c.Id).FirstOrDefaultAsync();

            var login = await _context.UserLogin.FirstOrDefaultAsync(x => x.UserId == employeecode);

            if (login == null)
            {
                return(StatusCode(404, new
                {
                    status = "404",
                    error = true,
                    message = "Username Not found"
                }));
            }

            if (!VerifyPasswordHash(change.currentpassword, login.PasswordHash, login.PasswordSalt))
            {
                return(StatusCode(404, new
                {
                    status = "404",
                    error = true,
                    message = "Incorrect Current Password"
                }));
            }

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(change.newpassword, out passwordHash, out passwordSalt);

            login.PasswordHash = passwordHash;
            login.PasswordSalt = passwordSalt;
            login.OldPassword  = change.newpassword;

            _context.UserLogin.Update(login);
            _context.SaveChanges();

            return(StatusCode(200, new
            {
                status = "200",
                error = false,
                message = "Change password success!"
            }));
        }
Exemplo n.º 12
0
        public async Task <IActionResult> PostTransaction([FromBody] ReturnOrder transactionApi)
        {
            APIResponse response = new APIResponse();
            bool        exist    = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.returnOrderId);

            if (exist == false)
            {
                LogRecord log = new LogRecord();
                log.TimeStamp     = DateTime.Now;
                log.Tag           = "Return Order";
                log.Message       = JsonConvert.SerializeObject(transactionApi);
                log.TransactionId = transactionApi.returnOrderId;
                _context.LogRecord.Add(log);
                _context.SaveChanges();


                DateTime asd;
                try
                {
                    // transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                    asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                }
                catch
                {
                    asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                }
                DateTime maret10 = DateTime.ParseExact("2019-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture);
                if (maret10 >= asd)
                {
                    response.code    = "1";
                    response.message = "Sucess Add Data";
                    return(Ok(response));
                }


                Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First();
                Models.InventoryTransaction transaction = new Models.InventoryTransaction();

                transaction.TransactionId        = transactionApi.returnOrderId;
                transaction.StoreCode            = transactionApi.storeCode;
                transaction.Remarks              = "-";
                transaction.StoreName            = store.Name;
                transaction.TransactionTypeId    = RetailEnum.returnTransaction;
                transaction.TransactionTypeName  = "Return";
                transaction.WarehouseOriginal    = store.WarehouseId;
                transaction.WarehouseDestination = "210";
                transaction.RequestDeliveryDate  = DateTime.Now;
                // transaction.SJlama = transactionApi.oldSJ;
                try
                {
                    transaction.TransactionDate = DateTime.Parse(transactionApi.date);
                }
                catch
                {
                }

                //DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                transaction.TotalQty = transactionApi.totalQty;
                transaction.Remarks  = transactionApi.remark;

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                _context.InventoryTransaction.Add(transaction);
                await _context.SaveChangesAsync();

                // this.insertInventoryReturnOrder(transactionApi).Wait();
                //save Lines
                for (int i = 0; i < transactionApi.returnOrderLines.Count; i++)
                {
                    Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines();
                    transactionLines.InventoryTransactionId = transaction.Id;
                    transactionLines.ArticleId   = transactionApi.returnOrderLines[i].article.articleIdAlias;
                    transactionLines.ArticleName = transactionApi.returnOrderLines[i].article.articleName;
                    transactionLines.Qty         = transactionApi.returnOrderLines[i].quantity;
                    // transactionLines.Amount = transactionApi.transactionLines[i].subtotal;
                    _context.InventoryTransactionLines.Add(transactionLines);
                    await _context.SaveChangesAsync();
                }

                response.code    = "1";
                response.message = "Sucess Add Data";
                this.sequenceNumber(transactionApi);
            }
            else
            {
                response.code    = "0";
                response.message = "Transacion Number Already Exist";
                LogRecord log = new LogRecord();
                log.TimeStamp = DateTime.Now;
                log.Tag       = "Return Order";
                log.Message   = transactionApi.returnOrderId + "Aleader Exist";
                _context.LogRecord.Add(log);
                _context.SaveChanges();
            }
            return(Ok(response));
            //     return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction);
        }
Exemplo n.º 13
0
        public async Task <IActionResult> Update([FromBody] DeliveryOrder transactionApi)
        {
            //add for log
            try
            {
                LogRecord log = new LogRecord();
                log.TimeStamp = DateTime.Now;

                log.Tag = "Pre Confirm DO";

                log.Message       = JsonConvert.SerializeObject(transactionApi);
                log.TransactionId = transactionApi.deliveryOrderId;
                _context.LogRecord.Add(log);
                //   _context.SaveChanges();
            }
            catch
            {
            }
            //end log

            APIResponse response = new APIResponse();

            try
            {
                bool statusConfirmed = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.deliveryOrderId &&
                                                                         c.Status == "Confirmed");
                if (statusConfirmed)
                {
                    response.code    = "0";
                    response.message = "DO has been confirmed";
                    return(Ok(response));
                }

                bool exsist = await _context.InventoryTransactionLines.AnyAsync(x => x.Urridn == transactionApi.deliveryOrderId);

                if (!exsist)
                {
                    Models.InventoryTransaction transaction = await _context.InventoryTransaction.Where(c => c.TransactionId == transactionApi.deliveryOrderId).FirstAsync();

                    transaction.Status       = "Confirmed";
                    transaction.StatusId     = RetailEnum.doStatusConfirmed;
                    transaction.Id           = transaction.Id;
                    transaction.SyncDate     = DateTime.Now;
                    transaction.EmployeeCode = transactionApi.employeeId;
                    transaction.EmployeeName = transactionApi.employeeName;

                    try
                    {
                        transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.deliveryTime, "yyyy-MM-dd", CultureInfo.InvariantCulture); // MPOS
                    }
                    catch
                    {
                        //POS
                        transaction.RequestDeliveryDate = DateTime.Now;
                    }
                    //log record

                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }
                    _context.InventoryTransaction.Update(transaction);
                    _context.SaveChanges();


                    List <Article> listar = new List <Article>();
                    //save Lines
                    for (int i = 0; i < transactionApi.deliveryOrderLines.Count; i++)
                    {
                        var artikelaidifk = _context.Item.Where(x => x.Id == transactionApi.deliveryOrderLines[i].articleIdFk).First().ItemIdAlias;
                        var itemanme      = _context.Item.Where(x => x.Id == transactionApi.deliveryOrderLines[i].articleIdFk).First().Name;
                        //add  and remarkby frank
                        // 7 april 2019
                        // untuk case yang double lines tidak ada packing number, referencenya beredsarkan id uniq di DO lins

                        /*Models.InventoryTransactionLines transactionLines = await _context.InventoryTransactionLines.Where(c => c.InventoryTransactionId == transaction.Id &&
                         * c.ArticleId == artikelaidifk
                         * && c.PackingNumber == transactionApi.deliveryOrderLines[i].packingNumber).FirstAsync();
                         */
                        Models.InventoryTransactionLines transactionLines = _context.InventoryTransactionLines.Find(transactionApi.deliveryOrderLines[i].id);
                        //end of add end remark by frank

                        transactionLines.ArticleName = itemanme;
                        //reamakr by frank 1 oktobr
                        // coa request
                        //   bool check = listar.Any(c => c.id == transactionApi.deliveryOrderLines[i].articleIdFk && c.articleIdAlias == transactionApi.deliveryOrderLines[i].packingNumber);
                        //   if (check)
                        //   {
                        //       transactionLines.RecieveQty = 0;
                        //   }
                        //   else
                        //  {
                        transactionLines.RecieveQty = transactionApi.deliveryOrderLines[i].qtyReceive;
                        //  }
                        //end of remark 1 oktoer


                        Article dupli = new Article
                        {
                            id             = transactionApi.deliveryOrderLines[i].articleIdFk,
                            articleIdAlias = transactionApi.deliveryOrderLines[i].packingNumber
                        };
                        listar.Add(dupli);

                        _context.InventoryTransactionLines.Update(transactionLines);
                        _context.SaveChanges();
                    }

                    response.code    = "1";
                    response.message = "Sucess Add Data";
                    DateTime maret20 = DateTime.ParseExact("2019-02-28", "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    if (transaction.TransactionDate >= maret20)
                    {
                        if (transaction.InforBypass == true)
                        {
                        }
                        else
                        {
                            //   WebAPIInforController.InforAPIController inforAPIController = new WebAPIInforController.InforAPIController(_context);
                            //   inforAPIController.RecieveRequestOrder(transactionApi, transaction.Id).Wait();
                        }

                        if (transaction.StatusId == RetailEnum.doStatusConfirmed)
                        {
                            this.insertAndCalculateDO(transactionApi);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                response.code    = "0";
                response.message = ex.ToString();
            }

            return(Ok(response));
        }
        public void getEmployeeMaster()
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("X-SFAPI-UserName", sunfishConfig.username);
                client.DefaultRequestHeaders.Add("X-SFAPI-AppName", sunfishConfig.appname);
                client.DefaultRequestHeaders.Add("X-SFAPI-RSAKey", sunfishConfig.RSAkey);
                client.DefaultRequestHeaders.Add("X-SFAPI-Account", sunfishConfig.account);
                // Make your request...

                try
                {
                    HttpResponseMessage message = client.GetAsync(sunfishConfig.Uri + "index.cfm?endpoint=/biensi_SFFULL_EO_GetAllEmpBiensi").Result;
                    if (message.IsSuccessStatusCode)
                    {
                        var             serializer = new DataContractJsonSerializer(typeof(SunfishEmployee));
                        var             result     = message.Content.ReadAsStringAsync().Result;
                        byte[]          byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream    stream     = new MemoryStream(byteArray);
                        SunfishEmployee resultData = serializer.ReadObject(stream) as SunfishEmployee;
                        try
                        {
                            LogRecord logRecord = new LogRecord();
                            logRecord.Tag       = "Batch - Employee - Data";
                            logRecord.TimeStamp = DateTime.Now;
                            logRecord.Message   = JsonConvert.SerializeObject(resultData);
                            _context.LogRecord.Add(logRecord);
                            _context.SaveChanges();
                        }
                        catch { }

                        for (int i = 0; i < resultData.RESULT.Count; i++)
                        {
                            try
                            {
                                //check if employee not exist then add new employee
                                bool isEmployeeExist = _context.Employee.Any(c => c.EmployeeCode == resultData.RESULT[i].NIK);
                                if (isEmployeeExist == false)
                                {
                                    try
                                    {
                                        Employee employee = new Employee();
                                        employee.Status         = resultData.RESULT[i].STATUS_ACTIVE.Equals(1) ? true : false;
                                        employee.EmployeeName   = resultData.RESULT[i].NAME;
                                        employee.EmployeeCode   = resultData.RESULT[i].NIK;
                                        employee.LastUpdateDate = DateTime.Now;
                                        try
                                        {
                                            employee.PossitionId = _context.EmployeePossition.Where(c => c.PossitionId == resultData.RESULT[i].POS_CODE).First().Id;
                                        }
                                        catch
                                        {
                                            employee.PossitionId = _context.EmployeePossition.Where(c => c.PossitionId == "OFC123").First().Id;
                                        }
                                        // employee.PossitionId = _context.EmployeePossition.Where(c => c.PossitionId == resultData.RESULT[i].POS_CODE).First().Id;
                                        try
                                        {
                                            employee.StoreId = _context.Store.Where(c => c.Code == resultData.RESULT[i].STORE_CODE).First().Id;
                                        }
                                        catch
                                        {
                                            employee.StoreId = _context.Store.Where(c => c.Code == "000").First().Id;
                                        }

                                        _context.Employee.Add(employee);
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                            catch
                            {
                            }
                        }
                        _context.SaveChanges();
                    }
                    else
                    {
                        String data = message.Headers.ToString();
                    }
                }
                catch (Exception ex)
                {
                }
            }

            userlogincreation();
        }
Exemplo n.º 15
0
        public async Task <String> postPettyCash([FromBody] PettyCash transaction, int id, String roundNumberParam)
        {
            var credentials = new NetworkCredential(inforConfig.username, inforConfig.password);
            var handler     = new HttpClientHandler {
                Credentials = credentials
            };

            handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); };
            String status      = "";
            String roundNumber = roundNumberParam;

            using (var client = new HttpClient(handler))
            {
                // Make your request...
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    InforPettyCash inforObjTrans = new InforPettyCash();
                    inforObjTrans.program = "OPS270MI";
                    List <TransactionPettyCash> listTransaction = new List <TransactionPettyCash>();
                    for (int i = 0; i < transaction.pettyCashLine.Count; i++)
                    {
                        TransactionPettyCash t = new TransactionPettyCash();
                        t.transaction = "AddSlsTicketLin";
                        RecordPettyCash record = new RecordPettyCash();
                        record.CONO = "770";
                        record.DIVI = "AAA";
                        record.XRCD = "7000";
                        record.ITRN = roundNumber;
                        record.WHLO = transaction.storeCode;
                        record.ORNO = "PC" + id + "";
                        record.DLIX = "1";
                        record.PONR = (i + 1) + "";
                        record.POSX = "00";
                        record.CUCD = "IDR";
                        record.CUNO = transaction.customerIdStore;
                        record.ITNO = transaction.expenseCategoryId;
                        record.TRDT = DateTime.Now.ToString("yyyyMMdd");
                        record.TRTM = DateTime.Now.ToString("HHmmss");//"113000";
                        record.CUAM = transaction.pettyCashLine[i].total + "";
                        record.CSHC = "CSH";
                        record.VTCD = "0";
                        record.PYCD = "CSH";
                        record.ALUN = "PCS";

                        record.IVQA = transaction.pettyCashLine[i].quantity + "";
                        record.REFE = transaction.pettyCashLine[i].expenseName;
                        record.INYR = DateTime.Now.Year + "";
                        record.VTP1 = 0 + "";
                        record.ARAT = 1 + "";
                        record.CRTP = 1 + "";

                        t.record = record;
                        listTransaction.Add(t);
                    }

                    //sales ticket line



                    inforObjTrans.transactions = listTransaction;
                    HttpResponseMessage message = await client.PostAsJsonAsync(General.urlInfor, inforObjTrans);

                    if (message.IsSuccessStatusCode)
                    {
                        status = message.ToString();
                        var                serializer = new DataContractJsonSerializer(typeof(InforObjPostReturn));
                        var                result     = message.Content.ReadAsStringAsync().Result;
                        byte[]             byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream       stream     = new MemoryStream(byteArray);
                        InforObjPostReturn resultData = serializer.ReadObject(stream) as InforObjPostReturn;
                        //  status = "Return : " + resultData.results[0].errorMessage + "Sukses "+ resultData.nrOfSuccessfullTransactions;
                        IntegrationLog log = new IntegrationLog();
                        log.Description                 = transaction.pettyCashId;
                        log.ErrorMessage                = resultData.results[0].errorMessage;
                        log.NrOfFailedTransactions      = resultData.nrOfFailedTransactions;
                        log.NrOfSuccessfullTransactions = resultData.nrOfSuccessfullTransactions;
                        log.NumOfLineSubmited           = listTransaction.Count;
                        log.RefNumber       = transaction.pettyCashId + "";
                        log.Json            = JsonConvert.SerializeObject(inforObjTrans);
                        log.TransactionType = "OPS270MI-PettyCashTcktLine";
                        _context.IntegrationLog.Add(log);
                        _context.SaveChanges();
                    }
                    else
                    {
                        status = "Failed : " + message.ToString();
                    }
                    //send ticket pay

                    List <TransactionPettyCash> listTransactionPay = new List <TransactionPettyCash>();
                    InforPettyCash inforObjPay = new InforPettyCash();
                    inforObjPay.program = "OPS270MI";
                    TransactionPettyCash tRansactionAddSlsTicketPay = new TransactionPettyCash();
                    tRansactionAddSlsTicketPay.transaction = "AddSlsTicketPay";
                    RecordPettyCash recordAddSlsTicketPayEDC2 = new RecordPettyCash();
                    recordAddSlsTicketPayEDC2.CONO = "770";
                    recordAddSlsTicketPayEDC2.DLIX = "1";
                    recordAddSlsTicketPayEDC2.DIVI = "AAA";
                    recordAddSlsTicketPayEDC2.XRCD = "7090";
                    recordAddSlsTicketPayEDC2.ITRN = roundNumber;
                    recordAddSlsTicketPayEDC2.WHLO = transaction.storeCode;
                    recordAddSlsTicketPayEDC2.ORNO = "PC" + id + "";
                    recordAddSlsTicketPayEDC2.PONR = (transaction.pettyCashLine.Count + 1) + "";
                    recordAddSlsTicketPayEDC2.POSX = "00";
                    recordAddSlsTicketPayEDC2.CUCD = "IDR";
                    recordAddSlsTicketPayEDC2.TRDT = DateTime.Now.ToString("yyyyMMdd");
                    recordAddSlsTicketPayEDC2.TRTM = DateTime.Now.ToString("HHmmss");//"113000";
                    recordAddSlsTicketPayEDC2.CUAM = transaction.totalExpense + "";
                    recordAddSlsTicketPayEDC2.PYCD = "CSH";
                    recordAddSlsTicketPayEDC2.REFE = transaction.expenseCategory;
                    recordAddSlsTicketPayEDC2.ARAT = "1";
                    recordAddSlsTicketPayEDC2.CRTP = "1";
                    recordAddSlsTicketPayEDC2.ALUN = "PCS";
                    recordAddSlsTicketPayEDC2.CSHC = "CSH";

                    tRansactionAddSlsTicketPay.record = recordAddSlsTicketPayEDC2;
                    listTransactionPay.Add(tRansactionAddSlsTicketPay);
                    inforObjPay.transactions = listTransactionPay;
                    HttpResponseMessage messagebatch = await client.PostAsJsonAsync(Config.General.urlInfor, inforObjPay);

                    if (messagebatch.IsSuccessStatusCode)
                    {
                        status = messagebatch.ToString();
                        var                serializer = new DataContractJsonSerializer(typeof(InforObjPostReturn));
                        var                result     = messagebatch.Content.ReadAsStringAsync().Result;
                        byte[]             byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream       stream     = new MemoryStream(byteArray);
                        InforObjPostReturn resultData = serializer.ReadObject(stream) as InforObjPostReturn;
                        //  status = "Return : " + resultData.results[0].errorMessage + "Sukses "+ resultData.nrOfSuccessfullTransactions;
                        IntegrationLog log = new IntegrationLog();
                        log.Description                 = transaction.pettyCashId;
                        log.ErrorMessage                = resultData.results[0].errorMessage;
                        log.NrOfFailedTransactions      = resultData.nrOfFailedTransactions;
                        log.NrOfSuccessfullTransactions = resultData.nrOfSuccessfullTransactions;
                        log.NumOfLineSubmited           = listTransaction.Count;
                        log.RefNumber       = transaction.pettyCashId + "";
                        log.Json            = JsonConvert.SerializeObject(inforObjPay);
                        log.TransactionType = "OPS270MI-PettyCashTkcPay";
                        _context.IntegrationLog.Add(log);
                        _context.SaveChanges();
                    }
                    //end for pay

                    //send batch
                    //for auto batch
                    List <TransactionPettyCash> listTransactionbatch = new List <TransactionPettyCash>();
                    InforPettyCash inforObjBatch = new InforPettyCash();
                    inforObjBatch.program = "OPS270MI";
                    TransactionPettyCash tRansactionAddBatch = new TransactionPettyCash();
                    tRansactionAddBatch.transaction = "BchPrcRound";
                    RecordPettyCash recordRoundNumber = new RecordPettyCash();
                    recordRoundNumber.CONO     = "770";
                    recordRoundNumber.ITRN     = roundNumber;
                    recordRoundNumber.DIVI     = "AAA";
                    recordRoundNumber.TRDT     = DateTime.Now.ToString("yyyyMMdd");
                    recordRoundNumber.WHLO     = transaction.storeCode;
                    recordRoundNumber.ACDT     = DateTime.Now.ToString("yyyyMMdd");
                    tRansactionAddBatch.record = recordRoundNumber;
                    listTransactionbatch.Add(tRansactionAddBatch);
                    inforObjBatch.transactions = listTransactionbatch;
                    HttpResponseMessage messageTicketPay = await client.PostAsJsonAsync(Config.General.urlInfor, inforObjBatch);

                    if (messageTicketPay.IsSuccessStatusCode)
                    {
                        status = messageTicketPay.ToString();
                        var                serializer = new DataContractJsonSerializer(typeof(InforObjPostReturn));
                        var                result     = messageTicketPay.Content.ReadAsStringAsync().Result;
                        byte[]             byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream       stream     = new MemoryStream(byteArray);
                        InforObjPostReturn resultData = serializer.ReadObject(stream) as InforObjPostReturn;
                        //  status = "Return : " + resultData.results[0].errorMessage + "Sukses "+ resultData.nrOfSuccessfullTransactions;
                        IntegrationLog log = new IntegrationLog();
                        log.Description                 = transaction.pettyCashId;
                        log.ErrorMessage                = resultData.results[0].errorMessage;
                        log.NrOfFailedTransactions      = resultData.nrOfFailedTransactions;
                        log.NrOfSuccessfullTransactions = resultData.nrOfSuccessfullTransactions;
                        log.NumOfLineSubmited           = listTransaction.Count;
                        log.RefNumber       = transaction.pettyCashId + "";
                        log.Json            = JsonConvert.SerializeObject(inforObjBatch);
                        log.TransactionType = "OPS270MI-PettyCashBatch";
                        _context.IntegrationLog.Add(log);
                        _context.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    status = ex.ToString();
                }
            }
            return(status);
        }
Exemplo n.º 16
0
        public async Task <String> postRequestOrder([FromBody] RequestOrder transaction, long id)
        {
            var credentials = new NetworkCredential(inforConfig.username, inforConfig.password);
            var handler     = new HttpClientHandler {
                Credentials = credentials
            };

            handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); };
            String status = "";

            using (var client = new HttpClient(handler))
            {
                // Make your request...
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    //add for DO Header
                    InforDeliveryOrderPOST inforObj = new InforDeliveryOrderPOST();
                    inforObj.program = "MHS850MI";
                    List <TransactionDeliveryPOST> listTransaction = new List <TransactionDeliveryPOST>();
                    for (int i = 0; i < transaction.requestOrderLines.Count; i++)
                    {
                        TransactionDeliveryPOST t = new TransactionDeliveryPOST();
                        t.transaction = "AddDO";
                        RecordDeliveryPOST record = new RecordDeliveryPOST();
                        record.PRMD = "*EXE";
                        record.CONO = "770";
                        record.WHLO = "200";
                        record.E0PA = "FSH";
                        record.E0PB = "FSH";
                        record.E065 = "FSH";
                        record.CUNO = _context.Customer.Where(c => c.StoreId == _context.Store.Where(d => d.Code == transaction.storeCode).First().Id).First().CustId;
                        record.ITNO = transaction.requestOrderLines[i].article.articleIdAlias;
                        record.WHSL = "FG0101";
                        record.TWSL = "FG0101";
                        record.ALQT = transaction.requestOrderLines[i].quantity + "";
                        record.DLQT = transaction.requestOrderLines[i].quantity + "";
                        record.TRTP = Config.RetailEnum.RequestOrderEnum;
                        record.USD4 = "PCS";
                        record.RESP = "INFOR";
                        record.RIDL = (i + 1) + "";
                        record.RIDN = id + "";
                        t.record    = record;
                        listTransaction.Add(t);
                        //     break;
                    }
                    inforObj.transactions = listTransaction;
                    HttpResponseMessage message = await client.PostAsJsonAsync(Config.General.urlInfor, inforObj);

                    if (message.IsSuccessStatusCode)
                    {
                        status = message.ToString();
                        var                serializer = new DataContractJsonSerializer(typeof(InforObjPostReturn));
                        var                result     = message.Content.ReadAsStringAsync().Result;
                        byte[]             byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream       stream     = new MemoryStream(byteArray);
                        InforObjPostReturn resultData = serializer.ReadObject(stream) as InforObjPostReturn;
                        //  status = "Return : " + resultData.results[0].errorMessage + "Sukses "+ resultData.nrOfSuccessfullTransactions;
                        IntegrationLog log = new IntegrationLog();
                        log.Description = transaction.requestOrderId;
                        try
                        {
                            log.ErrorMessage = resultData.results[0].errorMessage;
                        }
                        catch
                        {
                        }
                        log.NrOfFailedTransactions      = resultData.nrOfFailedTransactions;
                        log.NrOfSuccessfullTransactions = resultData.nrOfSuccessfullTransactions;
                        if (log.NrOfSuccessfullTransactions > 0)
                        {
                            log.RefNumber = id + "";
                        }
                        else
                        {
                            log.RefNumber = id + "";
                        }
                        log.NumOfLineSubmited = listTransaction.Count;
                        log.TransactionType   = "MHS850MI";
                        _context.IntegrationLog.Add(log);
                        _context.SaveChanges();
                    }
                    else
                    {
                        status = "Failed : " + message.ToString();
                    }
                }
                catch (Exception ex)
                {
                    status = ex.ToString();
                }
            }
            return(status);
        }
Exemplo n.º 17
0
        public IActionResult PostTransaction([FromBody] WebAPIModel.Transaction transactionApi)
        {
            APIResponse response = new APIResponse();

            response.code    = "5";
            response.message = "Data Already exist";
            bool exist = _context.Transaction.Any(x => x.TransactionId == transactionApi.transactionId);

            if (!exist)
            {
                try
                {
                    try
                    {
                        LogRecord log = new LogRecord();
                        log.TimeStamp = DateTime.Now;
                        if (transactionApi.status == 1)
                        {
                            log.Tag = "Transaction Pre";
                        }
                        else
                        {
                            log.Tag = "Transaction Pre Void";
                        }
                        log.Message       = JsonConvert.SerializeObject(transactionApi);
                        log.TransactionId = transactionApi.transactionId;
                        _context.LogRecord.Add(log);
                        //   _context.SaveChanges();
                    }
                    catch
                    {
                        response.code    = "1";
                        response.message = "Data Already Exist";

                        return(Ok(response));
                    }


                    //List<Store> liststore = _context.Store.ToList();

                    //var idx1 = storeindex(transactionApi.storeCode, liststore);
                    //Store store = liststore[idx1];


                    Store              store       = _context.Store.Where(c => c.Code == transactionApi.storeCode).First();
                    StoreType          storetype   = _context.StoreType.Where(s => s.Id == store.StoreTypeId).FirstOrDefault();
                    Models.Transaction transaction = new Models.Transaction();



                    transaction.CustomerId = 1;
                    try
                    {
                        Employee emp = _context.Employee.Where(c => c.EmployeeCode == transactionApi.employeeId).First();
                        transaction.EmployeeId   = emp.Id;
                        transaction.EmployeeCode = emp.EmployeeCode;
                        transaction.EmployeeName = emp.EmployeeName;
                    }
                    catch
                    {
                        transaction.EmployeeId = 2643;
                    }
                    transaction.MarginTransaction = 0;
                    transaction.MethodOfPayment   = transactionApi.paymentType.ToString();
                    transaction.Qty                   = 0;
                    transaction.RecieptCode           = transactionApi.receiptId;
                    transaction.Spgid                 = 0;
                    transaction.StoreCode             = transactionApi.storeCode;
                    transaction.StoreId               = store.Id;
                    transaction.Status                = transactionApi.status;
                    transaction.ClosingShiftId        = transactionApi.openShiftId;
                    transaction.ClosingStoreId        = transactionApi.openStoreId;
                    transaction.TransactionId         = transactionApi.transactionId;
                    transaction.TotalAmounTransaction = transactionApi.total;
                    transaction.TotalDiscount         = transactionApi.discount;
                    transaction.TransactionId         = transactionApi.transactionId;
                    transaction.Cash                  = transactionApi.cash;
                    transaction.Edc1                  = transactionApi.Edc1;
                    transaction.Edc2                  = transactionApi.Edc2;
                    transaction.Bank1                 = transactionApi.Bank1;
                    transaction.Bank2                 = transactionApi.Bank2;
                    transaction.NoRef1                = transactionApi.NoRef1;
                    transaction.NoRef2                = transactionApi.NoRef2;
                    transaction.Change                = transactionApi.change;
                    try
                    {
                        transaction.TransactionDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss", CultureInfo.InvariantCulture);
                    }
                    catch
                    {
                        /*
                         * try
                         * {
                         *  transaction.TransactionDate = DateTime.ParseExact(transactionApi.timeStamp, "yyyy-MM-dd" + "H:mm:ss", CultureInfo.InvariantCulture);
                         *
                         * }
                         * catch {
                         *
                         *  transaction.TransactionDate = DateTime.ParseExact(transactionApi.timeStamp, "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                         *
                         * }
                         */
                        transaction.TransactionDate = DateTime.Now;
                    }
                    DateTime maret19 = DateTime.ParseExact("2019-03-20", "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    if (transaction.TransactionDate < maret19)
                    {
                        response.code    = "1";
                        response.message = "Sucess Add Data";
                        return(Ok());
                    }
                    try
                    {
                        var tglclosing = _context.ClosingStore.OrderByDescending(x => x.ClosingTimeStamp).Where(x => x.StoreCode == transactionApi.storeCode).First().ClosingTimeStamp;
                        if (tglclosing != DateTime.Now)
                        {
                            transaction.TransDateStore = tglclosing;
                        }
                        else
                        {
                            try
                            {
                                transaction.TransDateStore = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                            }
                            catch
                            {
                                /*
                                 * try
                                 * {
                                 *  transaction.TransDateStore = DateTime.ParseExact(transactionApi.timeStamp, "yyyy-MM-dd" + "H:mm:ss", CultureInfo.InvariantCulture);
                                 *
                                 * }
                                 * catch
                                 * {
                                 *
                                 *  transaction.TransDateStore = DateTime.ParseExact(transactionApi.timeStamp, "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                                 *
                                 * }
                                 */
                                transaction.TransDateStore = DateTime.Now;
                            }
                        }
                    }
                    catch
                    {
                    }



                    if (storetype.StoreInStore.Value == true)
                    {
                        transaction.TransactionType = Config.RetailEnum.transactionStoreinStore; //true
                    }
                    else
                    {
                        transaction.TransactionType = Config.RetailEnum.transactionStore; //false
                    }
                    try
                    {
                        bool employeeInMaster = _context.Employee.Any(c => c.EmployeeCode == transactionApi.customerId);
                        if (employeeInMaster)
                        {
                            transaction.Text2           = transactionApi.customerId;
                            transaction.TransactionType = Config.RetailEnum.transactionEmployee;
                            transaction.Text3           = transactionApi.customerIdStore;
                        }
                    }
                    catch
                    {
                    }


                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }
                    _context.Transaction.Add(transaction);


                    _context.SaveChanges();

                    // sequenceNumber(transactionApi);
                    //log record


                    //save Lines
                    for (int i = 0; i < transactionApi.transactionLines.Count; i++)
                    {
                        Models.TransactionLines transactionLines = new Models.TransactionLines();
                        transactionLines.TransactionId  = transaction.Id;
                        transactionLines.ArticleId      = transactionApi.transactionLines[i].article.articleId;
                        transactionLines.ArticleIdAlias = transactionApi.transactionLines[i].article.articleIdAlias;
                        transactionLines.ArticleName    = transactionApi.transactionLines[i].article.articleName;
                        transactionLines.UnitPrice      = transactionApi.transactionLines[i].price;
                        transactionLines.Amount         = transactionApi.transactionLines[i].subtotal;
                        transactionLines.Discount       = transactionApi.transactionLines[i].discount;
                        transactionLines.DiscountCode   = transactionApi.transactionLines[i].discountCode;
                        transactionLines.DiscountType   = transactionApi.transactionLines[i].discountType;
                        transactionLines.Qty            = transactionApi.transactionLines[i].quantity;
                        transactionLines.Spgid          = transactionApi.transactionLines[i].spgId;
                        _context.TransactionLines.Add(transactionLines);
                        _context.SaveChanges(); //7k ms
                    }
                    // _context.SaveChanges(); //5k ms
                    response.code    = "1";
                    response.message = "Sucess Add Data";

                    inventory(transactionApi).Wait();
                    sequenceNumber(transactionApi);
                    //validate tansaction ke invent

                    /*
                     * DateTime maret10 = DateTime.ParseExact("2019-03-20", "yyyy-MM-dd", CultureInfo.InvariantCulture);
                     * if (transaction.TransactionDate > maret10)
                     * {
                     *  inventory(transactionApi).Wait();
                     *  sequenceNumber(transactionApi);
                     * }
                     *
                     *
                     *
                     * //add for infor
                     * //remove by frank
                     * //5 september 2019
                     * if (transaction.TransactionType == Config.RetailEnum.transactionStoreinStore)
                     * {
                     *  //  WebAPIInforController.InforAPITransactionInStoreController inforAPIController = new WebAPIInforController.InforAPITransactionInStoreController(_context);
                     *  //  inforAPIController.AddBatchHead(transactionApi, transaction.Id).Wait();
                     * }
                     * else
                     * {
                     *  //  WebAPIInforController.InforAPIController inforAPIController = new WebAPIInforController.InforAPIController(_context);
                     *  //  inforAPIController.postOrder(transactionApi, transaction.Id).Wait();
                     *
                     * }
                     */
                }
                catch (Exception ex)
                {
                    response.code    = "0";
                    response.message = ex.ToString();
                }
            }



            return(Ok(response));
            //     return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction);
        }
Exemplo n.º 18
0
        public async Task <IActionResult> create(discountSetupList discSetupList)
        {
            try
            {
                List <DiscountSetup> list = discSetupList.discounts;

                for (int i = 0; i < list.Count; i++)
                {
                    DiscountSetup discSetup = new DiscountSetup();
                    discSetup.DiscountCode     = list[i].DiscountCode;
                    discSetup.DiscountName     = list[i].DiscountName;
                    discSetup.DiscountCategory = list[i].DiscountCategory;
                    discSetup.CustomerGroupId  = list[i].CustomerGroupId;
                    discSetup.DiscountCash     = list[i].DiscountCash;
                    discSetup.DiscountPercent  = list[i].DiscountPercent;
                    discSetup.DiscountType     = list[i].DiscountType;
                    discSetup.AmountMin        = list[i].AmountMin;
                    discSetup.AmountMax        = list[i].AmountMax;
                    discSetup.QtyMin           = list[i].QtyMin;
                    discSetup.QtyMax           = list[i].QtyMax;
                    discSetup.StartDate        = list[i].StartDate;
                    discSetup.EndDate          = list[i].EndDate;
                    discSetup.Multi            = list[i].Multi;
                    discSetup.ApprovedDate     = list[i].ApprovedDate;
                    discSetup.Status           = list[i].Status;
                    discSetup.CreatedDate      = DateTime.Now;
                    _context.Add(discSetup);
                    bool discExist = false;
                    discExist = _context.DiscountSetup.Any(c => c.DiscountCode == discSetup.DiscountCode);
                    if (discExist == false)
                    {
                        _context.SaveChanges();
                    }
                    else
                    {
                        return(StatusCode(404, new
                        {
                            status = "404",
                            create = false,
                            message = "Cannot create a record, discount code already exist."
                        }));
                    }
                }

                return(StatusCode(200, new
                {
                    status = "200",
                    create = true,
                    message = "Created successfully!"
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new
                {
                    status = "500",
                    create = false,
                    message = ex.ToString()
                }));
            }
        }
Exemplo n.º 19
0
        public async Task <IActionResult> PostTransaction([FromBody] MutasiOrder transactionApi)
        {
            APIResponse response = new APIResponse();

            try
            {
                if (transactionApi.mutasiFromWarehouse == "" || transactionApi.mutasiFromWarehouse == null || transactionApi.mutasiToWarehouse == "" || transactionApi.mutasiFromWarehouse == null)
                {
                    response.code    = "0";
                    response.message = "No Warehouse Origin / Destination, Make sure to fill it.";
                    return(BadRequest(response));
                }
                bool exist = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.mutasiOrderId);
                if (exist == false)
                {
                    LogRecord log = new LogRecord();
                    log.TimeStamp     = DateTime.Now;
                    log.Tag           = "Mutasi Order";
                    log.Message       = JsonConvert.SerializeObject(transactionApi);
                    log.TransactionId = transactionApi.mutasiOrderId;
                    await _context.LogRecord.AddAsync(log);

                    await _context.SaveChangesAsync();

                    DateTime asd;// = DateTime.Now;
                    try
                    {
                        // transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                        asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    }
                    catch
                    {
                        asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    }
                    DateTime maret10 = DateTime.ParseExact("2019-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    if (maret10 >= asd)
                    {
                        response.code    = "1";
                        response.message = "Sucess Add Data";
                        return(Ok(response));
                    }

                    Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First();
                    Models.InventoryTransaction transaction = new Models.InventoryTransaction();
                    transaction.TransactionId       = transactionApi.mutasiOrderId;
                    transaction.StoreCode           = transactionApi.storeCode;
                    transaction.Remarks             = transactionApi.remarks;
                    transaction.StoreName           = store.Name;
                    transaction.TransactionTypeId   = RetailEnum.mutasiTransaction;
                    transaction.TransactionTypeName = "Mutasi";
                    transaction.Status               = null;
                    transaction.StatusId             = null;
                    transaction.WarehouseOriginal    = transactionApi.mutasiFromWarehouse;
                    transaction.WarehouseDestination = transactionApi.mutasiToWarehouse;
                    transaction.RequestDeliveryDate  = DateTime.Now;
                    transaction.Sjlama               = transactionApi.oldSJ;
                    transaction.TransactionDate      = DateTime.Now;//DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                    try
                    {
                        transaction.TransactionDate = DateTime.Parse(transactionApi.date);
                    }
                    catch
                    {
                    }
                    try
                    {
                        transaction.RequestDeliveryDate = DateTime.Parse(transactionApi.requestDeliveryDate);
                    }
                    catch
                    {
                    }
                    transaction.TotalQty = transactionApi.totalQty;
                    transaction.Remarks  = "";
                    try
                    {
                        transaction.EmployeeCode = transactionApi.employeeId;
                        transaction.EmployeeName = transactionApi.employeeName;
                    }
                    catch
                    {
                    }
                    //add by frank for mutasi matrix
                    try
                    {
                        Store storeMaster = _context.Store.Where(c => c.Code == transactionApi.mutasiFromWarehouse).First();
                        List <MutasiApproverMatrix> mutasiApproverMatrixs = _context.MutasiApproverMatrix.Where(c => c.StoreMatrix == storeMaster.Id).ToList();
                        MutasiApproverMatrix        ms = mutasiApproverMatrixs.Where(c => c.StoreMatrix == storeMaster.Id).First();
                        if (transactionApi.mutasiType == 1)
                        {
                            transaction.EmployeeToApprove = ms.ApproverCity;
                        }
                        else if (transactionApi.mutasiType == 2)
                        {
                            transaction.EmployeeToApprove = ms.ApproverRegional;
                        }
                        else
                        {
                            transaction.EmployeeToApprove = ms.ApproverNational;
                        }
                    }
                    catch
                    {
                        transaction.EmployeeToApprove = "admin123";
                    }

                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }
                    //log record

                    _context.InventoryTransaction.Add(transaction);
                    _context.SaveChanges();

                    //save Lines
                    for (int i = 0; i < transactionApi.mutasiOrderLines.Count; i++)
                    {
                        Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines();
                        transactionLines.InventoryTransactionId = transaction.Id;
                        transactionLines.ArticleId   = transactionApi.mutasiOrderLines[i].article.articleIdAlias;
                        transactionLines.ArticleName = transactionApi.mutasiOrderLines[i].article.articleName;
                        transactionLines.Qty         = transactionApi.mutasiOrderLines[i].quantity;
                        try
                        {
                            transactionLines.ValueSalesPrice = transactionLines.Qty * _context.PriceList.Where(c => c.ItemId == transactionLines.ArticleId).First().SalesPrice;
                        }
                        catch
                        {
                            transactionLines.ValueSalesPrice = 0;
                        }
                        _context.InventoryTransactionLines.Add(transactionLines);
                        _context.SaveChanges();
                    }

                    response.code    = "1";
                    response.message = "Sucess Add Data";
                    //Duplace karena di POS sudah kurang, jika rect qty akan bertambah, jika approve tidak perlu kalkulaso
                    this.insertAndCalculateDO(transactionApi);
                    this.sequenceNumber(transactionApi);
                }
                else
                {
                    response.code    = "1";
                    response.message = "Transaction Already Exist";
                    LogRecord log = new LogRecord();
                    log.TimeStamp = DateTime.Now;
                    log.Tag       = "Mutasi Order";
                    log.Message   = transactionApi.mutasiOrderId + "Aleader Exist";
                    _context.LogRecord.Add(log);
                    _context.SaveChanges();
                }
            }

            catch (Exception ex)
            {
                response.code    = "1";
                response.message = ex.ToString();
            }


            // await _context.SaveChangesAsync();
            return(Ok(response));
            //     return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction);
        }
Exemplo n.º 20
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));
        }
Exemplo n.º 21
0
        public async Task<IActionResult> getStore(String storeCode, String deviceId)
        {
            if (deviceId != null)
            {
                bool deviceaidi = _context.DeviceTable.Any(x => x.DeviceId == deviceId);
                if (!deviceaidi)
                {
                    DeviceTable dtnew = new DeviceTable();
                    var check = _context.DeviceTable.LastOrDefault();
                    if (check == null)
                    {
                        dtnew.InitialId = "AAA";
                    }
                    else
                    {
                        string ddv = check.InitialId;
                        ddv = getGet(ddv);
                        dtnew.InitialId = ddv;
                    }
                    dtnew.FirstLogin = DateTime.Now.ToString();
                    dtnew.TypeDevice = "POS";
                    dtnew.DeviceId = deviceId;
                    _context.DeviceTable.Add(dtnew);
                    _context.SaveChanges();

                }
                else
                {
                    DeviceTable tab = _context.DeviceTable.Where(x => x.DeviceId == deviceId).First();
                    tab.LastLogin = DateTime.Now.ToString();
                    _context.Update(tab);
                    _context.SaveChanges();
                }
            }

            StoreData storeData = new StoreData();

            if (_context.Store.Any(c => c.Code == storeCode))
            {

                //     if (employee == null)
                //     {
                //         return NotFound();
                //    }
                try
                {
                    Store store = _context.Store.Where(c => c.Code == storeCode).First();

                    try
                    {
                        storeData.deviceCode = _context.DeviceTable.Where(x => x.DeviceId == deviceId).First().InitialId;
                    }
                    catch
                    {
                        storeData.deviceCode = "";
                    }

                    try
                    {
                        storeData.store = masterStore(store.Id);
                    }
                    catch
                    {

                    }
                    try
                    {
                        storeData.warehouse = masterWarehose(_context.Store.Where(c => c.Id == store.Id).First().Code);
                    }
                    catch
                    {

                    }
                    try
                    {
                        storeData.banks = masterBanks(store.Id);
                    }
                    catch
                    {

                    }

                    try
                    {
                        storeData.employees = masterEmployee(store.Id);
                    }
                    catch (Exception)
                    {

                    }
                    try
                    {
                        storeData.currency = masterCurrency("IDR");
                    }
                    catch (Exception)
                    {

                    }


                    try
                    {
                        storeData.budgetStore = this.budgetStore(storeCode);
                    }
                    catch
                    {


                    }


                }
                catch (Exception ex)
                {
                    return Ok(ex.ToString());
                }
            }
            return Ok(storeData);
        }