public async Task <string> IdentitasCustomerPdf(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            CaCustomerDetail customerDetail = creditApproval.CaCustomerDetails.FirstOrDefault();
            string           path           = Path.Combine(ConstantValue.FilePath.TemplatePath, ConstantValue.FilePath.IdentitasCustomerPdf);

            byte[] fileByte = File.ReadAllBytes(path);
            using (MemoryStream memory = new MemoryStream())
            {
                _pdfService.CreateDocumentA4FromMemoryStream(memory);
                _pdfService.ReadPdf(memory, fileByte);
                _pdfService.SetPdfField("JenisIndustri", customerDetail.JenisIndustri);
                _pdfService.SetPdfField("Keterlambatan", customerDetail.Keterlambatan);
                _pdfService.SetPdfField("Restrukturisasi", customerDetail.Restrukturisasi);
                _pdfService.SetPdfField("FasilitasKredit", customerDetail.FasilitasKredit);
                _pdfService.SetPdfField("LamaKerjaSama", customerDetail.LamaKerjaSama);
                _pdfService.SetPdfField("VendorPemasuk", customerDetail.VendorPemasuk);
                _pdfService.SetPdfField("PosisiTawar", customerDetail.PosisiTawar);
                _pdfService.SetPdfField("BadanUsaha", customerDetail.BadanUsaha);
                _pdfService.SetPdfField("Affiliasi", customerDetail.Affiliasi);
                _pdfService.SetPdfField("KondisiIndustri", customerDetail.KondisiIndustri);
                _pdfService.SetPdfField("OpiniAudit", customerDetail.OpiniAudit);
                _pdfService.SetPdfField("AuditKap", customerDetail.AuditKap);
                _pdfService.ClosePdf();
                return(Convert.ToBase64String(memory.ToArray()));
            }
        }
 public Task <CreditApproval> Update(int id, CreditApproval data)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             //creditApproval.TicketNumber = data.TicketNumber;
             creditApproval.MailNumber = data.MailNumber;
             creditApproval.CustomerId = data.CustomerId;
             creditApproval.TempoStart = data.TempoStart;
             creditApproval.TempoEnd = data.TempoEnd;
             creditApproval.LongTempo = data.LongTempo;
             creditApproval.Volume = data.Volume;
             creditApproval.Units = data.Units;
             creditApproval.PeriodeVolume = data.PeriodeVolume;
             creditApproval.SubmissionPeriod = data.SubmissionPeriod;
             creditApproval.TransactionValue = data.TransactionValue;
             creditApproval.CreditLimit = data.CreditLimit;
             creditApproval.Payment = data.Payment;
             creditApproval.Guarantee = data.Guarantee;
             creditApproval.TermsOfDelivery = data.TermsOfDelivery;
             creditApproval.Currency = data.Currency;
             creditApproval.TransactionValueEstimatedPeriod = creditApproval.TransactionValue;
             _db.SaveChanges();
         }
         return creditApproval;
     }));
 }
        public async Task <IHttpActionResult> Post([FromBody] CreditApprovalRequest data)
        {
            try
            {
                CreditApproval dataCreditApproval = data.GetObject();
                dataCreditApproval.CreatedBy    = GetUserAuth().Id;
                dataCreditApproval.TicketNumber = GetUserAuth().Id.ToString() + ((Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString();
                CreditApproval creditApproval = await _creditApprovalRepository.Create(dataCreditApproval);

                List <TrCaProduct> trCaProducts = new List <TrCaProduct>();
                foreach (int item in data.Products)
                {
                    TrCaProduct newTrCaProduct = new TrCaProduct();
                    newTrCaProduct.CreditApprovalId = creditApproval.Id;
                    newTrCaProduct.ProductId        = item;
                    trCaProducts.Add(newTrCaProduct);
                }
                await _trCaProductRepository.MultipleCreate(trCaProducts);

                return(new HttpJsonApiResult <CreditApprovalModel>(
                           new CreditApprovalModel(creditApproval), Request, HttpStatusCode.Created));
            }
            catch (Exception)
            {
                return(new HttpJsonApiResult <string>(
                           "Internal Server Error", Request, HttpStatusCode.InternalServerError));
            }
        }
        public async Task <IHttpActionResult> Approve(int id, [FromBody] ActionNoteRequest actionNoteRequest)
        {
            try
            {
                EUserRole     userRole = GetUserAuth().UserRole;
                UserModel     getUser  = GetUserAuth();
                EStatusCredit statusCredit;

                if (userRole == EUserRole.User)
                {
                    statusCredit = EStatusCredit.AR;
                }
                else if (userRole == EUserRole.AR)
                {
                    statusCredit = EStatusCredit.CashBank;
                }
                else if (userRole == EUserRole.CashBank)
                {
                    statusCredit = EStatusCredit.FBS;
                }
                else if (userRole == EUserRole.FBS)
                {
                    statusCredit = EStatusCredit.ManagementRisk;
                }
                else if (userRole == EUserRole.ManagementRisk)
                {
                    statusCredit = EStatusCredit.KomiteCredit;
                }
                else
                {
                    statusCredit = EStatusCredit.Completed;
                }


                CreditApproval creditApproval = await _creditApprovalRepository.UpdateStatus(id, statusCredit, true);

                if (creditApproval == null)
                {
                    return(new HttpJsonApiResult <string>("Not Found", Request, HttpStatusCode.NotFound));
                }

                TrCaActionNote trCaActionNote = await _trCaActionNoteRepository.Create(new TrCaActionNote()
                {
                    CreditApprovalId = creditApproval.Id,
                    ActionNote       = actionNoteRequest.ActionNote,
                    ActionType       = 1,
                    ActionBy         = getUser.Id
                });

                //send email here
                return(new HttpJsonApiResult <CreditApprovalModel>(new CreditApprovalModel(creditApproval),
                                                                   Request, HttpStatusCode.OK));
            }
            catch (Exception)
            {
                return(new HttpJsonApiResult <string>(
                           "Internal Server Error", Request, HttpStatusCode.InternalServerError));
            }
        }
Exemplo n.º 5
0
        public async Task <ActionResult> SignedCredit(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit = creditApproval;
            ViewBag.Title  = "Signed Credit";
            return(View("~/Views/Credit/SignedCreditForm.cshtml"));
        }
Exemplo n.º 6
0
        public void SucceededGivesValidCreditLimitIfAttemptAboveMinimum()
        {
            // Arrange, Act
            CreditApproval creditApproval = CreditApproval.Succeeded(CreditApproval.MinCreditLimit + 10M);

            // Assert
            Assert.Greater(creditApproval.CreditLimit, CreditApproval.MinCreditLimit);
        }
Exemplo n.º 7
0
        public async Task <ActionResult> EditCashBank(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit = creditApproval;
            ViewBag.Title  = "Edit Cash Bank";
            return(View("~/Views/Credit/CashBankForm.cshtml"));
        }
Exemplo n.º 8
0
        public void FailedActuallyFails()
        {
            // Arrange, Act
            CreditApproval creditApproval = CreditApproval.Failed();

            // Assert
            Assert.IsFalse(creditApproval.Approved);
        }
Exemplo n.º 9
0
        public void SucceededGivesValidCreditLimitIfAttemptBelowMinimum()
        {
            // Arrange, Act
            CreditApproval creditApproval = CreditApproval.Succeeded(0M);

            // Assert
            Assert.AreEqual(CreditApproval.MinCreditLimit, creditApproval.CreditLimit);
        }
Exemplo n.º 10
0
        public void FailedGivesZeroCreditLimit()
        {
            // Arrange, Act
            CreditApproval creditApproval = CreditApproval.Failed();

            // Assert
            Assert.Zero(creditApproval.CreditLimit);
        }
 public Task <CreditApproval> Create(CreditApproval data)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Add(data);
         _db.SaveChanges();
         return creditApproval;
     }));
 }
        public async Task <string> PdfCreditScoring(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            string path = Path.Combine(ConstantValue.FilePath.CreditScoringDocBasePath, creditApproval.CreditScoringDoc);

            byte[] fileByte = File.ReadAllBytes(path);
            return(Convert.ToBase64String(fileByte));
        }
        public async Task <string> PdfMemoPengantar(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            string path = Path.Combine(ConstantValue.FilePath.MemoPengantarBasePath, creditApproval.IntroductionToMemo);

            byte[] fileByte = File.ReadAllBytes(path);
            return(Convert.ToBase64String(fileByte));
        }
Exemplo n.º 14
0
        public void SucceededActuallySucceeds()
        {
            // Arrange, Act
            CreditApproval creditApproval =
                CreditApproval.Succeeded(CreditApproval.MinCreditLimit);

            // Assert
            Assert.IsTrue(creditApproval.Approved);
        }
Exemplo n.º 15
0
        public async Task <ActionResult> FbsEntry(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit   = creditApproval;
            ViewBag.Note     = new TrCaNote();
            ViewBag.Title    = "Create Fbs Entry";
            ViewBag.Url      = Url.RouteUrl("DefaultApi", new { httproute = "", controller = "TrCaNote", action = "Create" });
            ViewBag.FormType = "POST";
            return(View("~/Views/Credit/FbsEntryForm.cshtml"));
        }
        public async Task <string> CreditApprovalPdf(int id, [FromBody] CreditApprovalPdfRequest pdfRequest)
        {
            string    titleCredit = "CREDIT APPROVAL";
            string    jaminan     = "Tanpa Jaminan";
            string    sanksi      = "Tidak";
            Signature signature   = await _signatureRepository.GetOne(pdfRequest.TtdId);

            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            string path     = Path.Combine(ConstantValue.FilePath.TemplatePath, ConstantValue.FilePath.CreditApprovalPdf);
            string products = string.Join(", ", creditApproval.TrCaProducts.Select(e => e.Product.MaterialName).ToArray());

            byte[] fileByte = File.ReadAllBytes(path);
            if (creditApproval.Guarantee != ConstantValue.BentukJaminan.Option1)
            {
                titleCredit = "CREDIT APPROVAL (DENGAN JAMINAN)";
                jaminan     = "Dengan Jaminan";
            }
            if (creditApproval.FlagFine)
            {
                sanksi = "Ya";
            }
            using (MemoryStream memory = new MemoryStream())
            {
                _pdfService.CreateDocumentA4FromMemoryStream(memory);
                _pdfService.ReadPdf(memory, fileByte);
                _pdfService.SetPdfField("Title", titleCredit);
                _pdfService.SetPdfField("NomorTanggal", string.Format("Nomor {0} Tgl. {1}", creditApproval.MailNumber, creditApproval.CreatedAt.ToString("dd-MM-yyyy")));
                _pdfService.SetPdfField("NamaPerusahaan", creditApproval.Customer.Name);
                _pdfService.SetPdfField("CustomerID", creditApproval.Customer.CustomerNo);
                _pdfService.SetPdfField("Alamat", creditApproval.Customer.Address);
                _pdfService.SetPdfField("Jaminan", string.Format("Untuk diberikan Fasilitas Penjualan Non Tunai {0} atas pembelian produk dari PT Pertamina(Persero) dengan ketentuan sebagai berikut :", jaminan));
                _pdfService.SetPdfField("JangkaWaktu", string.Format("{0} s.d {1}", creditApproval.TempoStart.ToString("dd-MM-yyyy"), creditApproval.TempoEnd.ToString("dd-MM-yyyy")));
                _pdfService.SetPdfField("Produk", products);
                _pdfService.SetPdfField("PerkiraanVolume", string.Format("{0} {1} per {2}", creditApproval.Volume, creditApproval.Units, creditApproval.PeriodeVolume));
                _pdfService.SetPdfField("PerkiraanNilai", string.Format("{0} {1} / {2}", creditApproval.Currency, creditApproval.TransactionValue, creditApproval.PeriodeVolume));
                _pdfService.SetPdfField("CreditLimit", string.Format("{0} {1}", creditApproval.Currency, creditApproval.CreditLimit));
                _pdfService.SetPdfField("MasaPerkiraanNilai", creditApproval.TransactionValueEstimatedPeriod);
                _pdfService.SetPdfField("MekanismePembayaran", string.Format("Melalui {0}", creditApproval.Payment));
                _pdfService.SetPdfField("BentukJaminan", string.Format("Melalui {0}", creditApproval.Guarantee));
                _pdfService.SetPdfField("Sanksi", sanksi);
                _pdfService.SetPdfField("SyaratPenyerahan", creditApproval.TermsOfDelivery);
                if (signature != null)
                {
                    _pdfService.SetPdfField("Posisi1", signature.Position1);
                    _pdfService.SetPdfField("Posisi2", signature.Position2);
                    _pdfService.SetPdfField("Nama1", signature.Name1);
                    _pdfService.SetPdfField("Nama2", signature.Name2);
                }

                _pdfService.ClosePdf();
                return(Convert.ToBase64String(memory.ToArray()));
            }
        }
Exemplo n.º 17
0
        public async Task <ActionResult> CreateCustomerDetail(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit         = creditApproval;
            ViewBag.CustomerDetail = new CaCustomerDetail();
            ViewBag.Title          = "Customer Detail";
            ViewBag.FormType       = "POST";
            ViewBag.Url            = Url.RouteUrl("DefaultApi", new { httproute = "", controller = "CustomerDetail", action = "Create" });
            return(View("~/Views/Credit/CustomerDetailForm.cshtml"));
        }
Exemplo n.º 18
0
        public async Task <ActionResult> CreditApprovalPdf(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            Signature     signature = _signatureRepository.GetAll().Where(e => e.DocumentType == "CA").FirstOrDefault();
            List <string> products  = creditApproval.TrCaProducts.Select(e => e.Product.MaterialName).ToList();

            ViewBag.Kredit = creditApproval;
            ViewBag.Produk = string.Join(", ", products.ToArray());
            ViewBag.Ttd    = signature;
            return(new ViewAsPdf("~/Views/Pdf/creditApproval.cshtml"));
        }
 public Task AddCreditScoring(int id, string creditScoring)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             creditApproval.CreditScoringDoc = creditScoring;
             _db.SaveChanges();
         }
     }));
 }
 public Task <CreditApproval> Delete(int id)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             _db.CreditApprovals.Remove(creditApproval);
             _db.SaveChanges();
         }
         return creditApproval;
     }));
 }
 public Task <CreditApproval> AddCreditSign(int id, string creditSign)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             creditApproval.CreditApprovalDoc = creditSign;
             _db.SaveChanges();
         }
         return creditApproval;
     }));
 }
Exemplo n.º 22
0
        public async Task <ActionResult> Edit(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            List <int> products = creditApproval.TrCaProducts.Select(e => e.ProductId).ToList();

            ViewBag.Credit   = creditApproval;
            ViewBag.Products = products.ToArray();
            ViewBag.Id       = id;
            ViewBag.Url      = Url.RouteUrl("DefaultApi", new { httproute = "", controller = "CreditApproval", action = "Update", id = id });
            ViewBag.FormType = "PATCH";
            ViewBag.Title    = "Edit Kredit";
            return(View("~/Views/Credit/Form.cshtml"));
        }
Exemplo n.º 23
0
        public async Task <ActionResult> Detail(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            List <string> products = creditApproval.TrCaProducts.Select(e => e.Product.MaterialName).ToList();

            ViewBag.Credit = creditApproval;
            //ViewBag.QuantitativeAspects = creditApproval.QuantitativeAspects.FirstOrDefault();
            ViewBag.CustomerDetail    = creditApproval.CaCustomerDetails.Count();
            ViewBag.CustomerDetailObj = creditApproval.CaCustomerDetails.FirstOrDefault();
            ViewBag.Nota     = creditApproval.TrCaNotes.FirstOrDefault();
            ViewBag.Products = string.Join(", ", products.ToArray());
            return(View());
        }
 public Task AddBankKonfirmasiDoc(int id, string bankKonfirmasi)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             if (bankKonfirmasi != null)
             {
                 creditApproval.BankConfirmationDoc = bankKonfirmasi;
             }
             _db.SaveChanges();
         }
     }));
 }
 public Task AddDocPml(int id, string docPml)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             if (docPml != null)
             {
                 creditApproval.DocPml = docPml;
             }
             _db.SaveChanges();
         }
     }));
 }
 public Task AddBankGaransi(int id, string bankGaransi)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             if (bankGaransi != null)
             {
                 creditApproval.BankGuaranteeDoc = bankGaransi;
             }
             _db.SaveChanges();
         }
     }));
 }
 public Task AddIntroductionMemo(int id, string introductionMemo)
 {
     return(Task.Run(() =>
     {
         CreditApproval creditApproval = _db.CreditApprovals.Find(id);
         if (creditApproval != null)
         {
             if (introductionMemo != null)
             {
                 creditApproval.IntroductionToMemo = introductionMemo;
             }
             _db.SaveChanges();
         }
     }));
 }
Exemplo n.º 28
0
        public async Task <ActionResult> EditFbsEntry(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit = creditApproval;
            ViewBag.Note   = creditApproval.TrCaNotes.FirstOrDefault();
            ViewBag.Title  = "Edit Fbs Entry";
            ViewBag.Url    = Url.RouteUrl("DefaultApi", new {
                httproute  = "",
                controller = "TrCaNote",
                action     = "Update",
                id         = creditApproval.Id
            });
            ViewBag.FormType = "PATCH";
            return(View("~/Views/Credit/FbsEntryForm.cshtml"));
        }
Exemplo n.º 29
0
        public async Task <ActionResult> EditCustomerDetail(int id)
        {
            CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

            ViewBag.Credit         = creditApproval;
            ViewBag.CustomerDetail = creditApproval.CaCustomerDetails;
            ViewBag.Title          = "Edit Customer Detail";
            ViewBag.FormType       = "PATCH";
            ViewBag.Url            = Url.RouteUrl("DefaultApi", new
            {
                httproute  = "",
                controller = "CustomerDetail",
                action     = "Update",
                id         = creditApproval.CaCustomerDetails.FirstOrDefault().Id
            });
            return(View("~/Views/Credit/CustomerDetailForm.cshtml"));
        }
        public async Task <IHttpActionResult> Get(int id)
        {
            try
            {
                CreditApproval creditApproval = await _creditApprovalRepository.GetOne(id);

                if (creditApproval == null)
                {
                    return(new HttpJsonApiResult <string>("Not Found", Request, HttpStatusCode.NotFound));
                }
                return(new HttpJsonApiResult <CreditApprovalModel>(
                           new CreditApprovalModel(creditApproval), Request, HttpStatusCode.OK));
            }
            catch (Exception)
            {
                return(new HttpJsonApiResult <string>(
                           "Internal Server Error", Request, HttpStatusCode.InternalServerError));
            }
        }