private void btnSave_Click(object sender, EventArgs e) { save(); CurrentCost = new C_CostModel(); txtCode.Text = ""; txtName.Text = ""; loadProductGroup(); }
void resetAll() { grvLink.FocusedRowHandle = -1; decimal totalNC = 0; string sql = "update C_QuotationDetail set TotalNC = 0 where C_QuotationID = " + C_QuotationID; LibQLSX.ExcuteSQL(sql); using (WaitDialogForm fWait = new WaitDialogForm("Vui lòng chờ trong giây lát...", "Đang xử lý...")) { for (int i = 0; i < grvLink.RowCount; i++) { int id = TextUtils.ToInt(grvLink.GetRowCellValue(i, colID)); if (id == 0) { return; } int costID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_CostID)); int quotationDetailID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_QuotationDetailID)); C_QuotationDetailModel quotationDetail = (C_QuotationDetailModel)C_QuotationDetailBO.Instance.FindByPK(quotationDetailID); C_CostModel cost = (C_CostModel)C_CostBO.Instance.FindByPK(costID); C_CostProductGroupLinkModel group = (C_CostProductGroupLinkModel)C_CostProductGroupLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID) .And(new Expression("C_ProductGroupID", quotationDetail.C_ProductGroupID)))[0]; decimal pricePerDay = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colPricePerDay)); decimal qty = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colQty)); C_CostQuotationItemLinkModel link = (C_CostQuotationItemLinkModel)C_CostQuotationItemLinkBO.Instance.FindByPK(id); link.PersonNumber = group.PersonNumber;// TextUtils.ToDecimal(drs[0]["PersonNumber"]); if (group.IsFix == 1) { link.NumberDay = group.NumberDay;// TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = group.VtuPercent * quotationDetail.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR *= (1 + 0.3M * (quotationDetail.Qty - 1)) / quotationDetail.Qty; } link.Price = link.TotalR * cost.Price; C_CostQuotationItemLinkBO.Instance.Update(link); quotationDetail.TotalNC += link.Price; C_QuotationDetailBO.Instance.Update(quotationDetail); } IsSaved = true; } MessageBox.Show("Reset thành công.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void btnDel_Click(object sender, EventArgs e) { try { if (grvData.DataSource == null) { return; } int id = TextUtils.ToInt(grvData.GetFocusedRowCellValue(colID)); string code = grvData.GetFocusedRowCellValue(colCode).ToString(); if (id == 0) { return; } //if (C_CostProductGroupLinkBO.Instance.CheckExist("C_CostID", id)) //{ // MessageBox.Show("Chi phí này đang liên kết với nghành hàng nên không thể xóa được.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Stop); // return; //} if (C_CostQuotationItemLinkBO.Instance.CheckExist("C_CostID", id)) { MessageBox.Show("Chi phí này đang liên kết với thiết bị nên không thể xóa được.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (MessageBox.Show("Bạn có chắc muốn xóa chi phí [" + grvData.GetFocusedRowCellValue(colName).ToString() + "] không?", TextUtils.Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } //ModulesBO.Instance.Delete(id); C_CostModel model = (C_CostModel)C_CostBO.Instance.FindByPK(id); model.IsDeleted = true; C_CostBO.Instance.Update(model); LibQLSX.ExcuteSQL("delete C_CostProductGroupLink where C_CostID = " + id); LibQLSX.ExcuteSQL("delete C_CostQuotationLink where C_CostID = " + id); LoadInfoSearch(); } catch (Exception ex) { MessageBox.Show(ex.Message, TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static decimal CalculateCostPB(C_QuotationDetailModel item, C_QuotationModel thisQotation, decimal price) { decimal totalPB = 0; ArrayList arr = C_CostBO.Instance.FindByExpression(new Expression("IsUse", 1).And(new Expression("IsWithProject", 0)).And(new Expression("IsDirectCost", 0))); DataTable dtCostProductGroup = LibQLSX.Select("select * from vC_CostProductGroupLink where [C_ProductGroupID] = " + item.C_ProductGroupID); foreach (var c in arr) { C_CostModel cost = (C_CostModel)c; DataRow[] drs = dtCostProductGroup.Select("C_CostID = " + cost.ID); if (drs.Length == 0) { continue; } C_CostQuotationItemLinkModel link = new C_CostQuotationItemLinkModel(); ArrayList arrLink = C_CostQuotationItemLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID).And(new Expression("C_QuotationDetailID", item.ID))); if (arrLink != null && arrLink.Count > 0) { link = (C_CostQuotationItemLinkModel)arrLink[0]; } link.C_CostID = cost.ID; link.C_QuotationDetailID = item.ID; link.IsDirect = cost.IsDirectCost; if (link.IsDirect == 0) { decimal valuePercent = TextUtils.ToDecimal(drs[0]["ValuePercent"]); link.Price = valuePercent * item.Qty * price; if (cost.IsDeliveryTime == 1) { link.Price *= thisQotation.DeliveryTime / 288; } if (cost.ID == 72 || cost.ID == 73) { if (cost.ID != thisQotation.DepartmentId) { link.Price = 0; } } totalPB += link.Price; } } return(totalPB); }
private void resetToolStripMenuItem_Click(object sender, EventArgs e) { int id = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colID)); if (id == 0) { return; } int costID = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colC_CostID)); int quotationDetailID = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colC_QuotationDetailID)); C_QuotationDetailModel quotationDetail = (C_QuotationDetailModel)C_QuotationDetailBO.Instance.FindByPK(quotationDetailID); C_CostModel cost = (C_CostModel)C_CostBO.Instance.FindByPK(costID); C_CostProductGroupLinkModel group = (C_CostProductGroupLinkModel)C_CostProductGroupLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID) .And(new Expression("C_ProductGroupID", quotationDetail.C_ProductGroupID)))[0]; decimal pricePerDay = TextUtils.ToDecimal(grvLink.GetFocusedRowCellValue(colPricePerDay)); decimal qty = TextUtils.ToDecimal(grvLink.GetFocusedRowCellValue(colQty)); C_CostQuotationItemLinkModel link = (C_CostQuotationItemLinkModel)C_CostQuotationItemLinkBO.Instance.FindByPK(id); quotationDetail.TotalNC -= link.Price; link.PersonNumber = group.PersonNumber;// TextUtils.ToDecimal(drs[0]["PersonNumber"]); if (group.IsFix == 1) { link.NumberDay = group.NumberDay;// TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = group.VtuPercent * quotationDetail.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR *= (1 + 0.3M * (quotationDetail.Qty - 1)) / quotationDetail.Qty; } link.Price = link.TotalR * cost.Price; C_CostQuotationItemLinkBO.Instance.Update(link); quotationDetail.TotalNC += link.Price; C_QuotationDetailBO.Instance.Update(quotationDetail); loadData(); MessageBox.Show("Reset thành công.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void btnEdit_Click(object sender, EventArgs e) { int id = TextUtils.ToInt(grvData.GetFocusedRowCellValue(colID)); if (id == 0) { return; } C_CostModel model = (C_CostModel)C_CostBO.Instance.FindByPK(id); int catId = TextUtils.ToInt(grvData.GetFocusedRowCellValue(colGroup)); _rownIndex = grvData.FocusedRowHandle; frmCCost frm = new frmCCost(); frm.CatID = catId; frm.CurrentCost = model; frm.LoadDataChange += main_LoadDataChange; frm.Show(); }
protected C_CostFacade(C_CostModel model) : base(model) { }
void calculateCost(C_QuotationDetailModel item, decimal costVT) { if (item.C_ProductGroupID == 0) { C_CostQuotationItemLinkBO.Instance.DeleteByAttribute("C_QuotationDetailID", item.ID); item.TotalNC = 0; item.TotalPB = 0; C_QuotationDetailBO.Instance.Update(item); } else { //decimal priceThucThu = (item.PriceHD - Quotation.CustomerPercent / 100 * item.PriceHD - Quotation.CustomerCash * item.PriceVT / costVT); ArrayList arr = C_CostBO.Instance.FindByExpression(new Expression("IsUse", 1).And(new Expression("IsWithProject", 0))); DataTable dtCostProductGroup = LibQLSX.Select("select * from vC_CostProductGroupLink where [C_ProductGroupID] = " + item.C_ProductGroupID); decimal totalNC = 0; decimal totalPB = 0; foreach (var c in arr) { C_CostModel cost = (C_CostModel)c; DataRow[] drs = dtCostProductGroup.Select("C_CostID = " + cost.ID); if (drs.Length == 0) { continue; } C_CostQuotationItemLinkModel link = new C_CostQuotationItemLinkModel(); ArrayList arrLink = C_CostQuotationItemLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID).And(new Expression("C_QuotationDetailID", item.ID))); if (arrLink != null && arrLink.Count > 0) { link = (C_CostQuotationItemLinkModel)arrLink[0]; } link.C_CostID = cost.ID; link.C_QuotationDetailID = item.ID; link.IsDirect = cost.IsDirectCost; if (link.IsDirect == 1) { #region Chi phí nhân công if (link.ID == 0) { if (cost.Price == 0) { link.Price = 0; } else { link.PersonNumber = TextUtils.ToDecimal(drs[0]["PersonNumber"]); int isFix = TextUtils.ToInt(drs[0]["IsFix"]); if (isFix == 1) { link.NumberDay = TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = TextUtils.ToDecimal(drs[0]["VtuPercent"]) * item.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR = link.NumberDay * link.PersonNumber * (1 + 0.3M * (item.Qty - 1)) / item.Qty; //link.Price = (link.NumberDay * link.PersonNumber) * (1 + 0.3M * (item.Qty - 1)) / item.Qty * cost.Price; } link.Price = link.TotalR * cost.Price; } } totalNC += link.Price; #endregion } else { #region Chi phí phân bổ if (item.PriceHD > 0) { decimal valuePercent = TextUtils.ToDecimal(drs[0]["ValuePercent"]); link.Price = valuePercent / 100 * item.PriceReal; if (cost.IsDeliveryTime == 1) { link.Price *= Quotation.DeliveryTime / 288; } if (cost.ID == 72 || cost.ID == 73) { if (cost.ID != Quotation.DepartmentId) { link.Price = 0; } } totalPB += link.Price; } #endregion } if (link.ID == 0) { C_CostQuotationItemLinkBO.Instance.Insert(link); } else { C_CostQuotationItemLinkBO.Instance.Update(link); } item.TotalNC = totalNC; item.TotalPB = totalPB; C_QuotationDetailBO.Instance.Update(item); } } }
void calculateCost(C_QuotationDetail_SXModel item) { int costID = (Quotation.DepartmentId == "D018" ? 73 : 72);//Phòng KD1->lấy ra chi phí nhân công KD2 không thì lấy chi phí nhân công KD1 if (item.C_ProductGroupID == 0) { C_CostQuotationItemLinkNewBO.Instance.DeleteByAttribute("C_QuotationDetail_SXID", item.ID); item.TotalNC = 0; item.TotalPB = 0; C_QuotationDetail_SXBO.Instance.Update(item); } else { ArrayList arr = C_CostBO.Instance.FindByExpression(new Expression("IsUse", 1).And(new Expression("IsWithProject", 0))); DataTable dtCostProductGroup = LibQLSX.Select("select * from vC_CostProductGroupLinkNew where [C_ProductGroupID] = " + item.C_ProductGroupID); decimal totalNC = 0; decimal totalPB = 0; foreach (var c in arr) { C_CostModel cost = (C_CostModel)c; DataRow[] drs = dtCostProductGroup.Select("C_CostID = " + cost.ID); if (drs.Length == 0) { continue; } C_CostQuotationItemLinkNewModel link = new C_CostQuotationItemLinkNewModel(); ArrayList arrLink = C_CostQuotationItemLinkNewBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID).And(new Expression("C_QuotationDetail_SXID", item.ID))); if (arrLink != null && arrLink.Count > 0) { link = (C_CostQuotationItemLinkNewModel)arrLink[0]; } link.C_CostID = cost.ID; link.C_QuotationDetail_SXID = item.ID; link.IsDirect = cost.IsDirectCost; if (link.IsDirect == 1) { #region Chi phí nhân công if (link.ID == 0) { if (cost.Price == 0) { link.Price = 0; } else { link.PersonNumber = TextUtils.ToDecimal(drs[0]["PersonNumber"]); int isFix = TextUtils.ToInt(drs[0]["IsFix"]); if (isFix == 1) { link.NumberDay = TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = TextUtils.ToDecimal(drs[0]["VtuPercent"]) * item.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR = link.NumberDay * link.PersonNumber * (1 + 0.3M * (item.Qty - 1)) / item.Qty; //link.Price = (link.NumberDay * link.PersonNumber) * (1 + 0.3M * (item.Qty - 1)) / item.Qty * cost.Price; } link.Price = link.TotalR * cost.Price; } } totalNC += link.Price; #endregion } else { #region Chi phí phân bổ if (item.PriceHD > 0) { decimal valuePercent = TextUtils.ToDecimal(drs[0]["ValuePercentSX"]); link.Price = valuePercent / 100 * item.PriceTPA; if (link.C_CostID == costID) { link.Price = 0; } else { //link.Price = TextUtils.ToDecimal(row["ValuePercentSX"]) / 100 * item.PriceTPA; } } #endregion } if (link.ID == 0) { C_CostQuotationItemLinkNewBO.Instance.Insert(link); } else { C_CostQuotationItemLinkNewBO.Instance.Update(link); } item.TotalNC = totalNC; item.TotalPB = totalPB; C_QuotationDetail_SXBO.Instance.Update(item); } } }