public SaveResult <POEntryModel> Save(PODTO pODTO, DateTime dateStamp)
        {
            if (pODTO.Status_FK == 0)
            {
                pODTO.Status_FK = 1;
            }

            ModelValidationResult validationResult = POValidator.Validate(pODTO);
            bool         success = false;
            POEntryModel model   = null;

            if (validationResult.IsValid)
            {
                tblT_PO po = Insert(pODTO, dateStamp);
                Db.SaveChanges();
                pODTO.PO_PK = po.PO_PK;

                success = true;
                model   = POEntryDataProvider.Get(pODTO.PO_PK);
            }

            return(new SaveResult <POEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully created." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
 public void UpdatePO(PODTO pODTO, DateTime dateStamp)
 {
     if (pODTO == null)
     {
         throw new ArgumentNullException("PO model is null.");
     }
     tblT_PO user = pOFactory.CreateFromDbAndUpdateFromDTO(pODTO, dateStamp);
 }
        public tblT_PO Insert(PODTO pODTO, DateTime dateStamp)
        {
            if (pODTO == null)
            {
                throw new ArgumentNullException("User model is null.");
            }
            tblT_PO pO = POFactory.CreateFromDTO(pODTO, dateStamp);

            return(Db.tblT_PO.Add(pO));
        }
Exemple #4
0
        private POEntryModel GetCreateStateModel()
        {
            POEntryFormData formData = new POEntryFormData();

            PODTO pODTO = new PODTO();

            return(new POEntryModel()
            {
                FormData = formData,
                Model = new PODTO(),
            });
        }
        public tblT_PO AddPO(PODTO poDTO, DateTime dateStamp)
        {
            if (poDTO == null)
            {
                throw new ArgumentNullException("PO model is null.");
            }
            tblT_PO po = poFactory.CreateFromDTO(poDTO, dateStamp);

            po = Db.tblT_PO.Add(po);
            Db.SaveChanges();
            poDTO.PO_PK = po.PO_PK;
            return(po);
        }
Exemple #6
0
        private POEntryModel GetUpdateStateModel(int po_PK)
        {
            POEntryFormData formData = new POEntryFormData();

            PODTO pODTO = POQuery.GetByPrimaryKey(po_PK);

            if (pODTO == null)
            {
                throw new KairosException($"Record with primary key '{po_PK}' is not found.");
            }



            return(new POEntryModel()
            {
                FormData = formData,
                Model = pODTO
            });
        }
        public SaveResult <POEntryModel> Save(PODTO pODTO, DateTime dateStamp)
        {
            ModelValidationResult validationResult = pOValidator.Validate(pODTO);
            bool         success = false;
            POEntryModel model   = null;

            if (validationResult.IsValid)
            {
                success = true;
                UpdatePO(pODTO, dateStamp);
                Db.SaveChanges();
                model = pOEntryDataProvider.Get(pODTO.PO_PK);
            }

            return(new SaveResult <POEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully updated." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
        // Author: Hanh Nguyen, KyawThiha
        //
        public string POListApi()
        {
            var dTOs = new List <PODTO>();

            var pOs = _context.POs
                      .Where(p => p.POStatus == POStatus.Processing || p.POStatus == POStatus.Completed).ToList();

            foreach (var po in pOs)
            {
                var dTO = new PODTO();
                dTO.Id           = po.Id;
                dTO.POStatus     = po.POStatus;
                dTO.SupplierName = po.Supplier.Name;
                dTO.OrderDate    = po.OrderDate;
                dTO.ReceiveDate  = po.ReceiveDate;
                dTO.poDetails    = new List <PODetailsDTO>();

                foreach (PODetail pdto in po.PODetails)
                {
                    PODetailsDTO p = new PODetailsDTO();
                    p.Id               = pdto.Id;
                    p.poID             = pdto.PO.Id;
                    p.stationery       = pdto.SupplierDetail.Stationery;
                    p.predictionQty    = pdto.prdictedAmount;
                    p.Qty              = pdto.Qty;
                    p.unitPrice        = pdto.SupplierDetail.UnitPrice;
                    p.supplierDetailId = pdto.SupplierDetail.Id;

                    dTO.poDetails.Add(p);
                }

                dTOs.Add(dTO);
            }

            return(JsonSerializer.Serialize(new
            {
                poS = dTOs
            }));
        }
Exemple #9
0
        public PODTO GetByPrimaryKey(int primaryKey)
        {
            PODTO record = GetQuery().FirstOrDefault(user => user.PO_PK == primaryKey);

            return(record);
        }
        public PODTO CreatePODTO(IXLRow row)
        {
            const int statusOnProgress = 1;
            const int statusDone       = 2;

            var pO_PK       = (row.Cell(1).Value.ToString() == "") ? 0 : int.Parse(row.Cell(1).Value.ToString());
            var account     = row.Cell(2).Value.ToString();
            var projectCode = row.Cell(3).Value.ToString();
            var siteIDImp   = row.Cell(4).Value.ToString();
            var siteID      = row.Cell(5).Value.ToString();
            var siteName    = row.Cell(6).Value.ToString();
            var dUID        = row.Cell(7).Value.ToString();
            var pMOUniq     = row.Cell(8).Value.ToString();
            var sOWAct      = row.Cell(9).Value.ToString();
            var system      = row.Cell(10).Value.ToString();
            var sOWPO       = row.Cell(11).Value.ToString();
            var itemDesc    = row.Cell(12).Value.ToString();
            var pONo        = row.Cell(13).Value.ToString();
            var shipmentNo  = row.Cell(14).Value.ToString();
            var qty         = (row.Cell(15).Value.ToString() == "") ? 0 : int.Parse(row.Cell(15).Value.ToString());
            var value       = (row.Cell(16).Value.ToString() == "") ? 0 : int.Parse(row.Cell(16).Value.ToString());
            var paymentTerm = row.Cell(17).Value.ToString();
            var workStatus  = row.Cell(18).Value.ToString();
            var remarks     = row.Cell(19).Value.ToString();

            //Esar 1st
            var esarSubmit1st    = row.Cell(20).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(20).Value);
            var vsSubmit1st      = row.Cell(21).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(21).Value);
            var quantity1st      = (row.Cell(22).Value.ToString() == "") ? 0 : decimal.Parse(row.Cell(22).Value.ToString());
            var invoiceSubmit1st = row.Cell(23).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(23).Value);
            var paidDate1st      = row.Cell(24).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(24).Value);
            var esarStatus1st    = statusOnProgress;

            //Esar 2nd
            var esarSubmit2nd    = row.Cell(26).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(26).Value);
            var vsSubmit2nd      = row.Cell(27).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(27).Value);
            var quantity2nd      = (row.Cell(28).Value.ToString() == "") ? 0 : decimal.Parse(row.Cell(28).Value.ToString());
            var invoiceSubmit2nd = row.Cell(29).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(29).Value);
            var paidDate2nd      = row.Cell(30).Value.ToString() == "" ? null : (DateTime?)Convert.ToDateTime(row.Cell(30).Value);
            var esarStatus2nd    = statusOnProgress;
            //esarStatus1st & esarStatud2nd

            var poStatus = statusOnProgress;

            //Esar done definition
            var isDone1st = esarSubmit1st != null && vsSubmit1st != null && quantity1st > 0 && invoiceSubmit1st != null && paidDate1st != null;

            if (isDone1st)
            {
                esarStatus1st = statusDone;
            }

            var isDone2nd = esarSubmit2nd != null && vsSubmit2nd != null && quantity2nd > 0 && invoiceSubmit2nd != null && paidDate2nd != null;

            if (isDone2nd)
            {
                esarStatus2nd = statusDone;
            }

            var poStatusIsDone = (isDone1st && quantity1st == 1) || (isDone1st && isDone2nd);

            if (poStatusIsDone)
            {
                poStatus = statusDone;
            }

            var po = new PODTO()
            {
                PO_PK            = pO_PK,
                Account          = account,
                ProjectCode      = projectCode,
                SiteIDImp        = siteIDImp,
                SiteID           = siteID,
                SiteName         = siteName,
                DUID             = dUID,
                PMOUniq          = pMOUniq,
                SOWAct           = sOWAct,
                System           = system,
                SOWPO            = sOWPO,
                ItemDesc         = itemDesc,
                PONo             = pONo,
                ShipmentNo       = shipmentNo,
                Qty              = qty,
                POStatus         = poStatus,
                PaymentTerm      = paymentTerm,
                WorkStatus       = workStatus,
                Remarks          = remarks,
                EsarStatus1st    = esarStatus1st,
                EsarStatus2nd    = esarStatus2nd,
                InvoiceSubmit1st = invoiceSubmit1st,
                InvoiceSubmit2nd = invoiceSubmit2nd,
                EsarSubmit1st    = esarSubmit1st,
                EsarSubmit2nd    = esarSubmit2nd,
                Quantity1st      = quantity1st,
                Quantity2nd      = quantity2nd,
                PaidDate1st      = paidDate1st,
                PaidDate2nd      = paidDate2nd,
                VsSubmit1st      = vsSubmit1st,
                VsSubmit2nd      = vsSubmit2nd,
                Value            = value
            };

            return(po);
        }