partial void DeleteEntranceStockDetail(EntranceStockDetail instance);
 partial void InsertEntranceStockDetail(EntranceStockDetail instance);
 partial void UpdateEntranceStockDetail(EntranceStockDetail instance);
		private void detach_EntranceStockDetails(EntranceStockDetail entity)
		{
			this.SendPropertyChanging();
			entity.BaseAttribute = null;
		}
		private void detach_EntranceStockDetails(EntranceStockDetail entity)
		{
			this.SendPropertyChanging();
			entity.Product = null;
		}
		private void detach_EntranceStockDetails(EntranceStockDetail entity)
		{
			this.SendPropertyChanging();
			entity.MeasurementUnit = null;
		}
		private void attach_EntranceStockDetails(EntranceStockDetail entity)
		{
			this.SendPropertyChanging();
			entity.EntranceStock = this;
		}
 private void dgvStockEntranceDetails_CellEndEdit(object sender, DataGridViewCellEventArgs e)
 {
     DataGridView dgv = (DataGridView)sender;
     if (entranceStockDetails == null)
     {
         entranceStockDetails = new BindingList<EntranceStockDetail>();
     }
     if (entranceStockDetails.Count < dgvStockEntranceDetails.RowCount - 1)
     {
         EntranceStockDetail entranceStockDetail = new EntranceStockDetail();
         entranceStockDetails.Add(entranceStockDetail);
     }
     if (dgv.CurrentCell.Value != null)
     {
         switch (e.ColumnIndex)
         {
             case ProductAttrCell:
                 {
                     ProductAttributeService productAttrService = new ProductAttributeService();
                     ProductAttribute pa = productAttrService.GetProductAttribute((int)dgv.CurrentCell.Value);
                     if (pa != null)
                     {
                         entranceStockDetails[e.RowIndex].ProductId = pa.ProductId;
                         entranceStockDetails[e.RowIndex].AttributeId = pa.AttributeId;
                     }
                 } break;
             case NumberUnitCell:
                 {
                     int value = (int)dgv.CurrentCell.Value;
                     if (value < 0)
                         entranceStockDetails[e.RowIndex].NumberUnit = 0;
                     else
                         entranceStockDetails[e.RowIndex].NumberUnit = value;
                 } break;
             case UnitCell:
                 entranceStockDetails[e.RowIndex].UnitId = (int)dgv.CurrentCell.Value;
                 break;
             case NoteCell:
                 entranceStockDetails[e.RowIndex].Note = (string)dgv.CurrentCell.Value;
                 break;
         }
     }
 }