예제 #1
0
 public PurchaseInvoiceDetail VCreateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                            IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasPurchaseInvoice(purchaseInvoiceDetail, _purchaseInvoiceService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VHasPurchaseReceivalDetail(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VPurchaseReceivalDetailAndPurchaseInvoiceMustHaveTheSamePurchaseReceival(purchaseInvoiceDetail, _purchaseReceivalDetailService, _purchaseInvoiceService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VIsUniquePurchaseReceivalDetail(purchaseInvoiceDetail, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VNonNegativeNorZeroQuantity(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #2
0
        public dynamic GetInfoDetail(int Id)
        {
            PurchaseInvoiceDetail model = new PurchaseInvoiceDetail();

            try
            {
                model = _purchaseInvoiceDetailService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.Code,
                model.PurchaseReceivalDetailId,
                PurchaseReceival = _purchaseReceivalDetailService.GetObjectById(model.PurchaseReceivalDetailId).Code,
                ItemId = _purchaseReceivalDetailService.GetObjectById(model.PurchaseReceivalDetailId).ItemId,
                Item = _itemService.GetObjectById(_purchaseReceivalDetailService.GetObjectById(model.PurchaseReceivalDetailId).ItemId).Name,
                model.Quantity,
                model.Amount,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
예제 #3
0
        public PurchaseInvoiceDetail GetPurchaseInvoiceDetail(int PIDID)
        {
            IDBManager            dbm = new DBManager();
            PurchaseInvoiceDetail PID = new PurchaseInvoiceDetail();

            try
            {
                dbm.CreateParameters(1);
                dbm.AddParameters(0, "@InvoiceDetailID", PIDID);
                IDataReader reader = dbm.ExecuteReader(CommandType.StoredProcedure, "SelectPurchaseInvoiceDetail");
                while (reader.Read())
                {
                    PID.InvoiceID       = Int32.Parse(reader["InvoiceID"].ToString());
                    PID.InvoiceDetailID = Int32.Parse(reader["InvoiceDetailID"].ToString());
                    PID.ProductID       = Int32.Parse(reader["ProductID"].ToString());
                    PID.UnitPrice       = Decimal.Parse(reader["UnitPrice"].ToString());
                    PID.Quantity        = Int64.Parse(reader["Quantity"].ToString());
                    PID.ModifiedDate    = DateTime.Parse(reader["ModifiedDate"].ToString());
                }
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetPurchaseInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(PID);
        }
        public ActionResult DeleteConfirmEdit(int id)
        {
            Session["err"] = "Error, Please Check Input Fields";
            Session["msg"] = "";
            PurchaseInvoiceDetail purchaseinvoicedetail = db.PurchaseInvoiceDetails.Find(id);

            try
            {
                db.PurchaseInvoiceDetails.Remove(purchaseinvoicedetail);
                db.SaveChanges();
                try
                {
                    decimal totalamt = db.PurchaseInvoiceDetails.Where(u => u.PurchaseInvoiceID == purchaseinvoicedetail.PurchaseInvoiceID && purchaseinvoicedetail.Flag == true).Sum(u => (decimal)u.NetValue);

                    PurchaseInvoice purchaseinvoice = db.PurchaseInvoices.Find(purchaseinvoicedetail.PurchaseInvoiceID);
                    purchaseinvoice.GrossTotalAmount = decimal.Round(Convert.ToDecimal(totalamt.ToString("#.##")), 2, MidpointRounding.AwayFromZero);
                    db.Entry(purchaseinvoice).State  = EntityState.Modified;
                    db.SaveChanges();
                }
                catch { }


                Session["err"] = "";
                Session["msg"] = "Deleted Successfully";
            }
            catch { }
            return(RedirectToAction("Edit", "PurchaseInvoice", new { id = purchaseinvoicedetail.PurchaseInvoiceID }));
        }
예제 #5
0
        public int AddPurchaseInvoiceDetail(PurchaseInvoiceDetail PID)
        {
            IDBManager dbm = new DBManager();

            try
            {
                dbm.CreateParameters(6);
                dbm.AddParameters(0, "@InvoiceID", PID.InvoiceID);

                dbm.AddParameters(1, "@ProductID", PID.ProductID);
                dbm.AddParameters(2, "@UnitPrice", PID.UnitPrice);
                dbm.AddParameters(3, "@Quantity", PID.Quantity);
                dbm.AddParameters(4, "@ModifiedDate", DateTime.Now);
                dbm.AddParameters(5, "@InvoiceDetailID", PID.InvoiceDetailID);
                dbm.Parameters[5].Direction = ParameterDirection.Output;
                dbm.ExecuteNonQuery(CommandType.StoredProcedure, "InsertPurchaseInvoiceDetail");
                PID.InvoiceDetailID = Int32.Parse(dbm.Parameters[5].Value.ToString());
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "AddPurchaseInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(PID.InvoiceDetailID);
        }
예제 #6
0
        public PurchaseInvoiceDetailCollection GetAllPurchaseInvoiceDetailCollection()
        {
            IDBManager dbm = new DBManager();
            PurchaseInvoiceDetailCollection cols = new PurchaseInvoiceDetailCollection();

            try
            {
                IDataReader reader = dbm.ExecuteReader(CommandType.StoredProcedure, "SelectPurchaseInvoiceDetailsAll");
                while (reader.Read())
                {
                    PurchaseInvoiceDetail PID = new PurchaseInvoiceDetail();
                    PID.InvoiceID       = Int32.Parse(reader["InvoiceID"].ToString());
                    PID.InvoiceDetailID = Int32.Parse(reader["InvoiceDetailID"].ToString());
                    PID.ProductID       = Int32.Parse(reader["ProductID"].ToString());
                    PID.UnitPrice       = Decimal.Parse(reader["UnitPrice"].ToString());
                    PID.Quantity        = Int64.Parse(reader["Quantity"].ToString());
                    PID.ModifiedDate    = DateTime.Parse(reader["ModifiedDate"].ToString());
                    cols.Add(PID);
                }
            }

            catch (Exception ex)
            {
                log.Write(ex.Message, "PurchaseInvoiceDetailCollection");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(cols);
        }
예제 #7
0
        public bool UpdatePurchaseInvoiceDetail(PurchaseInvoiceDetail PID)
        {
            IDBManager dbm = new DBManager();

            try
            {
                dbm.CreateParameters(6);
                dbm.AddParameters(0, "@InvoiceID", PID.InvoiceID);
                dbm.AddParameters(1, "@InvoiceDetailID", PID.InvoiceDetailID);
                dbm.AddParameters(2, "@ProductID", PID.ProductID);
                dbm.AddParameters(3, "@UnitPrice", PID.UnitPrice);
                dbm.AddParameters(4, "@Quantity", PID.Quantity);
                dbm.AddParameters(5, "@ModifiedDate", DateTime.Now);

                dbm.ExecuteNonQuery(CommandType.StoredProcedure, "UpdatePurchaseInvoiceDetail");
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "UpdatePurchaseInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(true);
        }
        protected PurchaseInvoiceDetail PurchaseInvoiceDetailsModel()
        {
            myPurchaseInvoiceDetail = new PurchaseInvoiceDetail();

            if (HidenIdpurchasInvDe.Value != "0")
            {
                myPurchaseInvoiceDetail.ID = Convert.ToInt32(HidenIdpurchasInvDe.Value);
            }
            //
            if (ProductListtxt.SelectedValue != "")
            {
                myPurchaseInvoiceDetail.ProductID = ProductListtxt.SelectedValue;
            }
            //
            if (ProductPrice.Text != "")
            {
                myPurchaseInvoiceDetail.ProductPrice = Convert.ToDouble(ProductPrice.Text);
            }
            //
            if (Qty.Text != "")
            {
                myPurchaseInvoiceDetail.Qty = Convert.ToDouble(Qty.Text);
            }
            myPurchaseInvoiceDetail.PricePerRecord = Convert.ToDouble(myPurchaseInvoiceDetail.Qty * myPurchaseInvoiceDetail.ProductPrice);
            return(myPurchaseInvoiceDetail);
        }
예제 #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string action            = Request["action"];
            string PurchaseInvoiceId = Request["PurchaseInvoiceId"];

            string where = "";
            string          sql   = "";
            PurchaseInvoice Pient = null;
            DataTable       dt;

            switch (action)
            {
            case "load":
                if (!string.IsNullOrEmpty(Request["InvoiceNo"]))
                {
                    where += " and InvoiceNo like '%" + Request["InvoiceNo"].Trim() + "%'";
                }
                if (!string.IsNullOrEmpty(Request["SupplierName"]))
                {
                    where += " and SupplierName like '%" + Request["SupplierName"].Trim() + "%'";
                }

                if (!string.IsNullOrEmpty(Request["ProductCode"]))
                {
                    where += " and Id in (select distinct PurchaseInvoiceId from SHHG_AimExamine..PurchaseInvoiceDetail where  ProductCode like '%" + Request["ProductCode"] + "%')";
                }
                sql = @"select * from SHHG_AimExamine..PurchaseInvoice where 1=1 " + where;
                dt  = DataHelper.QueryDataTable(GetPageSql(sql));
                Response.Write("{total:" + totalProperty + ",rows:" + JsonHelper.GetJsonStringFromDataTable(dt) + "}");
                Response.End();
                break;

            case "loaddetail":
                sql = @"select *  from SHHG_AimExamine..PurchaseInvoiceDetail 
                             where PurchaseInvoiceId='" + PurchaseInvoiceId + "' order by ProductCode asc";
                dt  = DataHelper.QueryDataTable(sql);
                Response.Write("{innerrows:" + JsonHelper.GetJsonStringFromDataTable(dt) + "}");
                Response.End();
                break;

            case "delete":
                string Id = Request["Id"];
                Pient = PurchaseInvoice.Find(Id);
                IList <PurchaseInvoiceDetail> PidEnts = PurchaseInvoiceDetail.FindAllByProperty("PurchaseInvoiceId", Id);
                foreach (PurchaseInvoiceDetail PidEnt in PidEnts)
                {
                    sql = @"select sum(isnull(InvoiceQuantity,0)) from SHHG_AimExamine..PurchaseInvoiceDetail where InWarehouseDetailId='" + PidEnt.InWarehouseDetailId + "'";
                    PidEnt.DoDelete();
                    if (!string.IsNullOrEmpty(PidEnt.InWarehouseDetailId))
                    {
                        InWarehouseDetail iwdEnt = InWarehouseDetail.Find(PidEnt.InWarehouseDetailId);
                        iwdEnt.KaiPiaoQuan = DataHelper.QueryValue <Int32>(sql);
                        iwdEnt.DoUpdate();
                    }
                }
                Pient.DoDelete();
                break;
            }
        }
예제 #10
0
 public PurchaseInvoiceDetail VNonNegativeNorZeroQuantity(PurchaseInvoiceDetail purchaseInvoiceDetail)
 {
     if (purchaseInvoiceDetail.Quantity <= 0)
     {
         purchaseInvoiceDetail.Errors.Add("Quantity", "Harus lebih besar dari 0");
     }
     return(purchaseInvoiceDetail);
 }
예제 #11
0
 public PurchaseInvoiceDetail VHasBeenConfirmed(PurchaseInvoiceDetail purchaseInvoiceDetail)
 {
     if (!purchaseInvoiceDetail.IsConfirmed)
     {
         purchaseInvoiceDetail.Errors.Add("IsConfirmed", "Belum dikonfirmasi");
     }
     return(purchaseInvoiceDetail);
 }
예제 #12
0
 public PurchaseInvoiceDetail VHasConfirmationDate(PurchaseInvoiceDetail obj)
 {
     if (obj.ConfirmationDate == null)
     {
         obj.Errors.Add("ConfirmationDate", "Tidak boleh kosong");
     }
     return(obj);
 }
예제 #13
0
 public PurchaseInvoiceDetail VHasNotBeenConfirmed(PurchaseInvoiceDetail purchaseInvoiceDetail)
 {
     if (purchaseInvoiceDetail.IsConfirmed)
     {
         purchaseInvoiceDetail.Errors.Add("IsConfirmed", "Sudah dikonfirmasi");
     }
     return(purchaseInvoiceDetail);
 }
예제 #14
0
 private void ProcessDetail(IList <string> entStrList, PurchaseInvoice piEnt)
 {
     if (entStrList != null && entStrList.Count > 0)
     {
         ArrayList idarray            = new ArrayList();
         string    purorderId         = string.Empty;
         decimal   totalInvoiceAmount = 0;
         for (int j = 0; j < entStrList.Count; j++)
         {
             Newtonsoft.Json.Linq.JObject objL   = JsonHelper.GetObject <Newtonsoft.Json.Linq.JObject>(entStrList[j]);
             PurchaseInvoiceDetail        pbdEnt = new PurchaseInvoiceDetail();
             pbdEnt.PurchaseInvoiceId     = piEnt.Id;
             pbdEnt.PurchaseOrderDetailId = objL.Value <string>("PurchaseOrderDetailId");
             pbdEnt.ProductId             = objL.Value <string>("ProductId");
             pbdEnt.ProductCode           = objL.Value <string>("ProductCode");
             pbdEnt.ProductName           = objL.Value <string>("ProductName");
             pbdEnt.BuyPrice        = Convert.ToDecimal(objL.Value <string>("BuyPrice"));
             pbdEnt.InvoiceQuantity = Convert.ToInt32(objL.Value <string>("InvoiceQuantity"));
             pbdEnt.InvoiceAmount   = Convert.ToDecimal(objL.Value <string>("InvoiceAmount"));
             pbdEnt.DoCreate();
             totalInvoiceAmount += pbdEnt.InvoiceAmount.Value;
             //循环每个采购详细的发票数量 如果==采购数  则状态改为已关联
             int novoice = Convert.ToInt32(DataHelper.QueryValue("select SHHG_AimExamine.dbo.fun_getNoInvoiceQuantityByPurchaseOrderDetailId('" + pbdEnt.PurchaseOrderDetailId + "')"));
             if (novoice == 0)
             {
                 PurchaseOrderDetail podEnt = PurchaseOrderDetail.TryFind(objL.Value <string>("PurchaseOrderDetailId"));
                 if (podEnt.PurchaseOrderId != purorderId)
                 {
                     idarray.Add(podEnt.PurchaseOrderId);
                     purorderId = podEnt.PurchaseOrderId;
                 }
                 podEnt.InvoiceState = "已关联";
                 podEnt.DoUpdate();
             }
         }
         //如果所有发票详细的金额==发票的总金额  则把发票的状态改为已关联
         if (totalInvoiceAmount == piEnt.InvoiceAmount)
         {
             piEnt.State = "已关联";
             piEnt.DoUpdate();
         }
         //遍历采购单 如果其下所有的采购详细的发票状态都是已关联 则自身变为已关联
         for (int k = 0; k < idarray.Count; k++)
         {
             IList <EasyDictionary> edics = DataHelper.QueryDictList("select Id from SHHG_AimExamine..PurchaseOrderDetail where PurchaseOrderId='" + idarray[k].ToString() + "' and  InvoiceState='未关联'");
             if (edics.Count == 0)
             {
                 PurchaseOrder poEnt = PurchaseOrder.TryFind(idarray[k].ToString());
                 poEnt.InvoiceState = "已关联";
                 if (poEnt.InWarehouseState == "已入库" && poEnt.PayState == "已付款")
                 {
                     poEnt.OrderState = "已结束";
                 }
                 poEnt.DoUpdate();
             }
         }
     }
 }
예제 #15
0
        public PurchaseInvoiceDetail VHasPurchaseInvoice(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService)
        {
            PurchaseInvoice purchaseInvoice = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);

            if (purchaseInvoice == null)
            {
                purchaseInvoiceDetail.Errors.Add("PurchaseInvoiceId", "Tidak terasosiasi dengan purchase invoice");
            }
            return(purchaseInvoiceDetail);
        }
예제 #16
0
        public PurchaseInvoiceDetail VHasPurchaseReceivalDetail(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            PurchaseReceivalDetail prd = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);

            if (prd == null)
            {
                purchaseInvoiceDetail.Errors.Add("PurchaseReceivalDetail", "Tidak boleh tidak ada");
            }
            return(purchaseInvoiceDetail);
        }
        public ActionResult CreateNew(int id)
        {
            var purchaseinvoice       = db.PurchaseInvoices.Where(b => b.PurchaseInvoiceID == id).ToList();
            var purchaseinvoicedetail = db.PurchaseInvoiceDetails.Where(b => b.PurchaseInvoiceID == id).ToList();

            if (purchaseinvoicedetail.Count == 0)
            {
                PurchaseInvoiceDetail purchaseinvoicedetailnew = new PurchaseInvoiceDetail();
                purchaseinvoicedetailnew.Description               = "-";
                purchaseinvoicedetailnew.PurchaseInvoiceID         = id;
                purchaseinvoicedetailnew.Quantity                  = 0;
                purchaseinvoicedetailnew.PurchaseInvoiceDetailUnit = 0;
                purchaseinvoicedetailnew.Rate             = 0.00M;
                purchaseinvoicedetailnew.RateFC           = 0.00M;
                purchaseinvoicedetailnew.DetailValue      = 0.00M;
                purchaseinvoicedetailnew.DetailValueFC    = 0.00M;
                purchaseinvoicedetailnew.Tax              = 0;
                purchaseinvoicedetailnew.NetValue         = 0.00M;
                purchaseinvoicedetailnew.AccountHeadID    = 1;
                purchaseinvoicedetailnew.DetailJob        = "";
                purchaseinvoicedetailnew.ProductsServices = "";
                purchaseinvoicedetailnew.Flag             = false;
                db.PurchaseInvoiceDetails.Add(purchaseinvoicedetailnew);
                db.SaveChanges();
                ViewBag.SingleRow = "1";
            }
            PurchaseInvoicePurchaseInvoiceDetailPurchaseInvoiceDetailAllocationModel multiModel = new PurchaseInvoicePurchaseInvoiceDetailPurchaseInvoiceDetailAllocationModel();

            multiModel.PurchaseInvoices       = purchaseinvoice;
            multiModel.PurchaseInvoiceDetails = purchaseinvoicedetail;

            foreach (PurchaseInvoice bv in purchaseinvoice)
            {
                ViewBag.EmployeeID     = new SelectList(db.Employees.Where(e => e.EmployeeID > 1), "EmployeeID", "Name", bv.EmployeeID);
                ViewBag.SupplierID     = new SelectList(db.Suppliers, "SupplierID", "Name", bv.SupplierID);
                ViewBag.CurrencyID     = new SelectList(db.Currencys, "CurrencyID", "Name", bv.CurrencyID);
                ViewBag.DiscountTypeID = new SelectList(db.DiscountTypes, "DiscountTypeID", "Name", bv.DiscountTypeID);
                var currencyexchangerate = db.Currencys.Where(c => c.CurrencyID == bv.CurrencyID).ToList();
                foreach (Currency c in currencyexchangerate)
                {
                    ViewBag.ExchangeRate = c.ExchangeRate;
                }
            }

            ViewBag.AccountHeads = db.AccountHeads.OrderBy(a => a.Name);

            ViewBag.Message  = Session["msg"];
            ViewBag.Error    = Session["err"];
            Session["err"]   = "";
            Session["msg"]   = "";
            ViewBag.Message1 = Session["msg1"];
            Session["msg1"]  = "";
            ViewBag.PageType = "CreateNew";
            return(View(multiModel));
        }
예제 #18
0
 public PurchaseInvoiceDetail SoftDeleteObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService)
 {
     // TODO : Hard Delete
     if (_validator.ValidDeleteObject(purchaseInvoiceDetail))
     {
         PurchaseInvoice purchaseInvoice = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);
         _repository.SoftDeleteObject(purchaseInvoiceDetail);
         _purchaseInvoiceService.CalculateAmountPayable(purchaseInvoice, this);
     }
     return(purchaseInvoiceDetail);
 }
        protected void edit_product_Command(object sender, CommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            List <PurchaseInvoiceDetail> gvr            = (List <PurchaseInvoiceDetail>)GridView1.DataSource;
            PurchaseInvoiceDetail        PurInvoDetEdit = gvr[index];

            HidenIdpurchasInvDe.Value    = PurInvoDetEdit.ID.ToString();
            ProductListtxt.SelectedValue = PurInvoDetEdit.ProductID.ToString();
            Qty.Text          = PurInvoDetEdit.Qty.ToString();
            ProductPrice.Text = PurInvoDetEdit.ProductPrice.ToString();
        }
예제 #20
0
        public PurchaseInvoiceMaster AddPurchaseInvoicemaster(PurchaseViewModel str)
        {
            PurchaseInvoiceMaster pur = new PurchaseInvoiceMaster();

            pur.CustomerID         = str.CustomerID;
            pur.PurchaseInvoiceNum = str.SupplierInvoice;
            pur.PurchaseDate       = str.PurchaseDate;
            pur.InvoiceDate        = str.SupplierInvoiceDate;
            pur.TotalBill          = str.InvoiceValue;
            pur.TotalPaid          = str.InvoiceValue;
            pur.TotalDiscount      = 0;

            pur.StoreID = int.Parse(System.Web.HttpContext.Current.Session["storeid"].ToString());

            pur.AddedUser  = System.Web.HttpContext.Current.Session["username"].ToString();
            pur.AddedDate  = DateTime.Now;
            pur.IsDeleted  = false;
            pur.IsCommited = false;

            cntxt.PurchaseInvoicemasters.Add(pur);
            cntxt.SaveChanges();

            foreach (PurchasedetailViewModel strdet in str.purchasedetailViewModels)
            {
                PurchaseInvoiceDetail purchaseInvoiceDetail = new PurchaseInvoiceDetail();

                purchaseInvoiceDetail.PurchaseInvoicemasterID = pur.PurchaseInvoicemasterID;
                purchaseInvoiceDetail.CategoryID  = strdet.CategoryID;
                purchaseInvoiceDetail.ItemNameId  = strdet.ItemNameID;
                purchaseInvoiceDetail.ProductName = strdet.ProductDetails;
                purchaseInvoiceDetail.Qty         = strdet.TotalQty;
                purchaseInvoiceDetail.SerialNum   = strdet.Serial;
                purchaseInvoiceDetail.TotalPrice  = strdet.TotalPrice;
                purchaseInvoiceDetail.UnitCP      = strdet.UnitPrice;
                purchaseInvoiceDetail.UnitSP      = strdet.SellingPrice;
                purchaseInvoiceDetail.CGSTPercent = strdet.CGSTPercent;
                purchaseInvoiceDetail.SGSTPercent = strdet.SGSTPercent;


                purchaseInvoiceDetail.UnitCGSTCP = 0;
                purchaseInvoiceDetail.UnitSGSTSP = 0;
                purchaseInvoiceDetail.UserID     = 0;

                purchaseInvoiceDetail.AddedUser = System.Web.HttpContext.Current.Session["username"].ToString();
                purchaseInvoiceDetail.AddedDate = DateTime.Now;
                purchaseInvoiceDetail.IsDeleted = false;

                cntxt.PurchaseInvoiceDetails.Add(purchaseInvoiceDetail);
            }

            cntxt.SaveChanges();

            return(pur);
        }
예제 #21
0
 public PurchaseInvoiceDetail VUpdateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                            IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasNotBeenConfirmed(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VCreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, _purchaseInvoiceDetailService, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #22
0
 public PurchaseInvoiceDetail UnconfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseReceivalService _purchaseReceivalService,
                                              IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     if (_validator.ValidUnconfirmObject(purchaseInvoiceDetail))
     {
         purchaseInvoiceDetail = _repository.UnconfirmObject(purchaseInvoiceDetail);
         // reverse purchase receival detail PendingInvoiceQuantity
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         _purchaseReceivalDetailService.UndoInvoiceObject(purchaseReceivalDetail, purchaseInvoiceDetail.Quantity, _purchaseReceivalService);
     }
     return(purchaseInvoiceDetail);
 }
예제 #23
0
 public PurchaseInvoiceDetail ConfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, DateTime ConfirmationDate,
                                            IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     purchaseInvoiceDetail.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(purchaseInvoiceDetail, this, _purchaseReceivalDetailService))
     {
         purchaseInvoiceDetail = _repository.ConfirmObject(purchaseInvoiceDetail);
         // update purchase receival detail PendingInvoiceQuantity
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         _purchaseReceivalDetailService.InvoiceObject(purchaseReceivalDetail, purchaseInvoiceDetail.Quantity);
     }
     return(purchaseInvoiceDetail);
 }
예제 #24
0
        public PurchaseInvoiceDetail VIsUniquePurchaseReceivalDetail(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceDetailService _purchaseInvoiceDetail, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetail.GetObjectsByPurchaseInvoiceId(purchaseInvoiceDetail.PurchaseInvoiceId);

            foreach (var detail in details)
            {
                if (detail.PurchaseReceivalDetailId == purchaseInvoiceDetail.PurchaseReceivalDetailId && detail.Id != purchaseInvoiceDetail.Id)
                {
                    purchaseInvoiceDetail.Errors.Add("PurchaseInvoiceDetail", "Tidak boleh memiliki lebih dari 2 Purchase Receival Detail");
                }
            }
            return(purchaseInvoiceDetail);
        }
예제 #25
0
        public PurchaseInvoiceDetail CreateObject(int purchaseInvoiceId, int purchaseReceivalDetailId, int quantity, decimal amount,
                                                  IPurchaseInvoiceService _purchaseInvoiceService, IPurchaseOrderDetailService _purchaseOrderDetailService,
                                                  IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            PurchaseInvoiceDetail purchaseInvoiceDetail = new PurchaseInvoiceDetail
            {
                PurchaseInvoiceId        = purchaseInvoiceId,
                PurchaseReceivalDetailId = purchaseReceivalDetailId,
                Quantity = quantity
            };

            return(this.CreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, _purchaseOrderDetailService, _purchaseReceivalDetailService));
        }
예제 #26
0
        public string PrintError(PurchaseInvoiceDetail obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
예제 #27
0
 public PurchaseInvoiceDetail UpdateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                           IPurchaseOrderDetailService _purchaseOrderDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     if (_validator.ValidUpdateObject(purchaseInvoiceDetail, _purchaseInvoiceService, this, _purchaseReceivalDetailService))
     {
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         PurchaseOrderDetail    purchaseOrderDetail    = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
         purchaseInvoiceDetail.Amount = purchaseInvoiceDetail.Quantity * purchaseOrderDetail.Price;
         _repository.UpdateObject(purchaseInvoiceDetail);
         PurchaseInvoice purchaseInvoice = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);
         _purchaseInvoiceService.CalculateAmountPayable(purchaseInvoice, this);
     }
     return(purchaseInvoiceDetail);
 }
예제 #28
0
        private List <PurchaseInvoiceDetail> GetChildOnCreate(PurchaseInvoice master, PurchaseInvoiceComplex source)
        {
            List <PurchaseInvoiceDetail> infos = new List <PurchaseInvoiceDetail>();
            var wanted = source.ChildList.Where(x => x.IsDirty == true);

            foreach (var item in wanted)
            {
                PurchaseInvoiceDetail temp = Mapper.Map <PurchaseInvoiceDetail>(item);
                temp.InvoiceID  = master.InvoiceID;
                temp.LastPerson = IdentityService.GetUserData().UserID;
                temp.LastUpdate = DateTime.Now;
                infos.Add(temp);
            }
            return(infos);
        }
예제 #29
0
 public PurchaseInvoiceDetail VConfirmObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasConfirmationDate(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VHasNotBeenConfirmed(purchaseInvoiceDetail);
     if (!isValid(purchaseInvoiceDetail))
     {
         return(purchaseInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(purchaseInvoiceDetail, _purchaseReceivalDetailService);
     return(purchaseInvoiceDetail);
 }
예제 #30
0
        private void DoBatchDelete()
        {
            IList <object> idList = RequestData.GetList <object>("IdList");

            if (idList != null && idList.Count > 0)
            {
                foreach (object obj in idList)
                {
                    IList <PurchaseInvoiceDetail> pidEnts = PurchaseInvoiceDetail.FindAll("from PurchaseInvoiceDetail where PurchaseInvoiceId='" + obj.ToString() + "'");
                    PurchaseInvoice piEnt = PurchaseInvoice.Find(obj);
                    DeleteInvoiceDetail(piEnt);
                    DataHelper.ExecSql("delete SHHG_AimExamine..PurchaseInvoice where Id='" + obj.ToString() + "'");
                }
            }
        }