public static void Finalize_process(long idbatch, string process, string sgtProcess) { CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); // --- get a process existing CTrace_batch oTrace_batch = new LimsProject.BusinessLayer.Modules.ModProcessBatch().GetLastProcessBatch(process, idbatch); CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(process)); if (oTrace_batch == null) { oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Idbatch = idbatch; } oTrace_batch.Date_out = Comun.GetDate(); oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = modulo; oTrace_batch.Useredit = Comun.GetUser(); oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Finished); if (!faTrace_batch.Update(oTrace_batch)) { faTrace_batch.Insert(oTrace_batch); } // --- create a new process Initialize_process(idbatch, sgtProcess); }
public static void Advance_process(long idbatch, string process) { CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); // --- get a process existing CTrace_batch oTrace_batch = new LimsProject.BusinessLayer.Modules.ModProcessBatch().GetLastProcessBatch(process, idbatch); if (oTrace_batch == null) { oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Idbatch = idbatch; } oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = module; oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Useredit = Comun.GetUser(); oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.InProcess); if (!faTrace_batch.Update(oTrace_batch)) { faTrace_batch.Insert(oTrace_batch); } }
/// <summary> /// Populate business objects from the data reader /// </summary> /// <param name="dataReader">data reader</param> /// <returns>list of CTrace_batch</returns> internal List <CTrace_batch> PopulateObjectsFromReader(IDataReader dataReader) { List <CTrace_batch> list = new List <CTrace_batch>(); while (dataReader.Read()) { CTrace_batch businessObject = new CTrace_batch(); PopulateBusinessObjectFromReader(businessObject, dataReader); list.Add(businessObject); } return(list); }
public static void Initialize_process(long idbatch, string process) { // --- register the finished process, CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); CTrace_batch oTrace_batch = new CTrace_batch(); // --- register the initiatied process oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = module; oTrace_batch.Idbatch = idbatch; oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Waiting); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Datenew = Comun.GetDate(); faTrace_batch.Insert(oTrace_batch); }
/// <summary> /// Select by primary key /// </summary> /// <param name="keys">primary keys</param> /// <returns>CTrace_batch business object</returns> public CTrace_batch SelectByPrimaryKey(CTrace_batchKeys keys) { NpgsqlCommand sqlCommand = new NpgsqlCommand(); sqlCommand.CommandText = "public.sp_trace_batch_SelectByPrimaryKey"; sqlCommand.CommandType = CommandType.StoredProcedure; // Use connection object of base class sqlCommand.Connection = MainConnection; try { sqlCommand.Parameters.Add(new NpgsqlParameter("p_idtrace_batch", NpgsqlDbType.Bigint, 8, "", ParameterDirection.Input, false, 0, 0, DataRowVersion.Proposed, keys.Idtrace_batch)); MainConnection.Open(); NpgsqlDataReader dataReader = sqlCommand.ExecuteReader(); if (dataReader.Read()) { CTrace_batch businessObject = new CTrace_batch(); PopulateBusinessObjectFromReader(businessObject, dataReader); return(businessObject); } else { return(null); } } catch (Exception ex) { throw new Exception("CTrace_batch::SelectByPrimaryKey::Error occured.", ex); } finally { MainConnection.Close(); sqlCommand.Dispose(); } }
/// <summary> /// Populate business object from data reader /// </summary> /// <param name="businessObject">business object</param> /// <param name="dataReader">data reader</param> internal void PopulateBusinessObjectFromReader(CTrace_batch businessObject, IDataReader dataReader) { businessObject.Idtrace_batch = dataReader.GetInt64(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idtrace_batch.ToString())); if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_module.ToString()))) { businessObject.Cod_module = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_module.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_process.ToString()))) { businessObject.Cod_process = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_process.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_area.ToString()))) { businessObject.Cod_area = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Cod_area.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idbatch.ToString()))) { businessObject.Idbatch = dataReader.GetInt64(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idbatch.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Date_in.ToString()))) { businessObject.Date_in = dataReader.GetDateTime(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Date_in.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Date_out.ToString()))) { businessObject.Date_out = dataReader.GetDateTime(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Date_out.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Status_process.ToString()))) { businessObject.Status_process = dataReader.GetChar(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Status_process.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idtrace_prev.ToString()))) { businessObject.Idtrace_prev = dataReader.GetInt64(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idtrace_prev.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idtrace_next.ToString()))) { businessObject.Idtrace_next = dataReader.GetInt64(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Idtrace_next.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Observation.ToString()))) { businessObject.Observation = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Observation.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Usernew.ToString()))) { businessObject.Usernew = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Usernew.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Datenew.ToString()))) { businessObject.Datenew = dataReader.GetDateTime(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Datenew.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Useredit.ToString()))) { businessObject.Useredit = dataReader.GetString(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Useredit.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Dateedit.ToString()))) { businessObject.Dateedit = dataReader.GetDateTime(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Dateedit.ToString())); } if (!dataReader.IsDBNull(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Status.ToString()))) { businessObject.Status = dataReader.GetBoolean(dataReader.GetOrdinal(CTrace_batch.CTrace_batchFields.Status.ToString())); } }
/// <summary> /// insert new row in the table /// </summary> /// <param name="businessObject">business object</param> /// <returns>true of successfully insert</returns> public bool Insert(CTrace_batch businessObject) { NpgsqlCommand sqlCommand = new NpgsqlCommand(); sqlCommand.CommandText = "public.sp_trace_batch_Insert"; sqlCommand.CommandType = CommandType.StoredProcedure; // Use connection object of base class sqlCommand.Connection = MainConnection; try { sqlCommand.Parameters.AddWithValue("p_idtrace_batch", businessObject.Idtrace_batch); sqlCommand.Parameters["p_idtrace_batch"].NpgsqlDbType = NpgsqlDbType.Bigint; sqlCommand.Parameters["p_idtrace_batch"].Direction = ParameterDirection.InputOutput; sqlCommand.Parameters.AddWithValue("p_cod_module", businessObject.Cod_module); sqlCommand.Parameters["p_cod_module"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_cod_process", businessObject.Cod_process); sqlCommand.Parameters["p_cod_process"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_cod_area", businessObject.Cod_area); sqlCommand.Parameters["p_cod_area"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_idbatch", businessObject.Idbatch); sqlCommand.Parameters["p_idbatch"].NpgsqlDbType = NpgsqlDbType.Bigint; sqlCommand.Parameters.AddWithValue("p_date_in", businessObject.Date_in); sqlCommand.Parameters["p_date_in"].NpgsqlDbType = NpgsqlDbType.Timestamp; sqlCommand.Parameters.AddWithValue("p_date_out", businessObject.Date_out); sqlCommand.Parameters["p_date_out"].NpgsqlDbType = NpgsqlDbType.Timestamp; sqlCommand.Parameters.AddWithValue("p_status_process", businessObject.Status_process); sqlCommand.Parameters["p_status_process"].NpgsqlDbType = NpgsqlDbType.Char; sqlCommand.Parameters.AddWithValue("p_idtrace_prev", businessObject.Idtrace_prev); sqlCommand.Parameters["p_idtrace_prev"].NpgsqlDbType = NpgsqlDbType.Bigint; sqlCommand.Parameters.AddWithValue("p_idtrace_next", businessObject.Idtrace_next); sqlCommand.Parameters["p_idtrace_next"].NpgsqlDbType = NpgsqlDbType.Bigint; sqlCommand.Parameters.AddWithValue("p_observation", businessObject.Observation); sqlCommand.Parameters["p_observation"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_usernew", businessObject.Usernew); sqlCommand.Parameters["p_usernew"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_datenew", businessObject.Datenew); sqlCommand.Parameters["p_datenew"].NpgsqlDbType = NpgsqlDbType.Timestamp; sqlCommand.Parameters.AddWithValue("p_useredit", businessObject.Useredit); sqlCommand.Parameters["p_useredit"].NpgsqlDbType = NpgsqlDbType.Varchar; sqlCommand.Parameters.AddWithValue("p_dateedit", businessObject.Dateedit); sqlCommand.Parameters["p_dateedit"].NpgsqlDbType = NpgsqlDbType.Timestamp; sqlCommand.Parameters.AddWithValue("p_status", businessObject.Status); sqlCommand.Parameters["p_status"].NpgsqlDbType = NpgsqlDbType.Boolean; MainConnection.Open(); sqlCommand.ExecuteNonQuery(); businessObject.Idtrace_batch = Convert.ToInt64(sqlCommand.Parameters["p_idtrace_batch"].Value); return(true); } catch (Exception ex) { throw new Exception("CTrace_batch::Insert::Error occured.", ex); } finally { MainConnection.Close(); sqlCommand.Dispose(); } }
public long?GetBatchAvailable(int p_idtemplate_method, bool p_flag_new, string p_user, long p_idbatch_origin) { #region codigo anterior ///TODO /* * CREATE OR REPLACE FUNCTION public.sp_GetBatchAvailable(p_idtemplate_method int4, p_flag_new boolean, p_user varchar, p_idbatch_origin bigint) * returns int4 * AS $$ * Declare v_NullIdBatch bigint; * Declare v_idbatch bigint; * declare v_name_batch varchar(30); * declare v_num_tray bigint; * declare v_status_batch bpchar; * declare v_mri_value numeric(10,6); * declare v_cod_module varchar; * declare v_cod_process varchar; * declare v_cod_area varchar; * declare v_status_process char(1); * declare v_NullIdTraceBatch bigint; * declare v_date_out timestamp; * declare v_trace_prev bigint; * declare v_trace_next bigint; * declare v_observation varchar; * declare v_user varchar; * declare v_date_in timestamp; * BEGIN * -- get the current batch of template method * * v_NullIdBatch = 0; * v_num_tray = COALESCE((SELECT MAX(num_tray) * FROM batch * ), 0)+1; * * v_idbatch = 0; * v_cod_module = 'M002'; * v_cod_process = 'P013'; * v_cod_area = 'A004'; * v_status_process = 'W'; * v_date_out = null; * v_trace_prev = null; * v_trace_next = null; * v_observation = null; * v_user = null; * v_date_in = current_timestamp; * * -- * SELECT INTO v_idbatch COALESCE(A.idbatch, 0) * FROM (SELECT DISTINCT t1.idbatch, t2.idrecep_sample_detail, * t2.idtemplate_method, t3.limit_samples * FROM batch t1 * INNER JOIN batch_detail_aa_twofold t2 on t1.idbatch = t2.idbatch * INNER JOIN template_method t3 on t1.idtemplate_method = t3.idtemplate_method * WHERE t1.cod_process = v_cod_process * AND t1.idtemplate_method = p_idtemplate_method * AND t1.idbatch <> p_idbatch_origin * AND t1.status_process = v_status_process) A * GROUP BY A.idbatch, A.limit_samples * HAVING count(*) < A.limit_samples; * * -- get one name for the batch * SELECT INTO v_name_batch, v_mri_value t3.abbreviation, t2.nominal_value * FROM template_method_aa t1 * INNER JOIN mr_detail t2 * ON t1.idmr_detail = t2.idmr_detail * AND t1.idtemplate_method = p_idtemplate_method * INNER JOIN template_method t3 * ON t1.idtemplate_method = t3.idtemplate_method * WHERE t1.idtemplate_method = p_idtemplate_method; * * IF (p_flag_new = true) THEN * -- create a new batch * v_idbatch = (SELECT public.sp_batch_Insert(v_NullIdBatch,v_name_batch,v_num_tray,p_idtemplate_method,v_cod_module,v_cod_process,v_cod_area,v_status_process,true,v_mri_value, '', v_date_out, p_user, false)); * * -- save trace * -- antes de insertar, si es ultima muestra y contiene mri no insertar * * PERFORM public.sp_trace_batch_insert(v_NullIdTraceBatch, v_cod_module, v_cod_process, v_cod_area, v_idbatch, v_date_in, v_date_out, v_status_process, v_trace_prev, v_trace_next, v_observation, p_user, v_date_in, v_user, v_date_in, true); * ELSE * -- create new batch, if not exists batch in wait * IF (v_idbatch = 0 or v_idbatch is null) * THEN * -- create a new batch * v_idbatch = (SELECT public.sp_batch_Insert(v_NullIdBatch, v_name_batch, v_num_tray, p_idtemplate_method, v_cod_module, v_cod_process, v_cod_area, v_status_process, true, v_mri_value, '', v_date_out, p_user, false)); * * -- save trace * PERFORM public.sp_trace_batch_insert(v_NullIdTraceBatch, v_cod_module, v_cod_process, v_cod_area, v_idbatch, v_date_in, v_date_out, v_status_process, v_trace_prev, v_trace_next, v_observation, p_user, v_date_in, v_user, v_date_in, true); * END IF; * END IF; * return v_idbatch; * * END;*/ #endregion var query = (from m in new CBatchFactory() .GetAll() .Where(x => x.Idbatch != p_idbatch_origin && x.Idtemplate_method == p_idtemplate_method && x.Status_process == 'W') from n in new CBatch_detail_aa_twofoldFactory().GetAll().Where(x => x.Idbatch == m.Idbatch) from p in new CTemplate_methodFactory().GetAll().Where(x => x.Idtemplate_method == m.Idtemplate_method) from q in new CTemplate_method_aaFactory().GetAll().Where(x => x.Idtemplate_method == m.Idtemplate_method) select new { m.Idbatch, n.Idrecep_sample_detail, n.Idtemplate_method, q.Limit_samples }).ToList(); var query2 = (from m in query group m by new { m.Idbatch, m.Limit_samples } into grp where grp.Count() < grp.Key.Limit_samples select new { Idbatch = grp.Key == null ? 0 : grp.Key.Idbatch }).ToList(); var query3 = (from m in new CTemplate_method_aaFactory().GetAll().Where(x => x.Idtemplate_method == p_idtemplate_method) join n in new CMr_detailFactory().GetAll() on m.Idmr_detail equals n.Idmr_detail join p in new CTemplate_methodFactory().GetAll() on m.Idtemplate_method equals p.Idtemplate_method select new { name_batch = p.Abbreviation, mri_value = n.Nominal_value }).ToList(); string name_batch = query3.FirstOrDefault().name_batch; decimal?mri_value = query3.FirstOrDefault().mri_value; long? num_tray = new CBatchFactory().GetAll().Max(x => x.Num_tray) == null ? 0 : 1; long?idbatch = null; if (p_flag_new) { //save batch CBatch batch = new CBatch() { Num_tray = num_tray, Idtemplate_method = p_idtemplate_method, Cod_module = "M002", Cod_process = "P013", Cod_area = "A004", Status_process = 'W', Status = true, Mri_value = mri_value, Description = "", Date_creation_tray = null, User_creation_tray = p_user, Has_sample_control = true }; new CBatchFactory().Insert(batch); idbatch = batch.Idbatch; //save trace CTrace_batch trace_batch = new CTrace_batch() { Cod_module = "M002", Cod_process = "P013", Cod_area = "A004", Idbatch = batch.Idbatch, Date_in = DateTime.Now, Status_process = 'W', Usernew = p_user, Useredit = p_user, Status = true }; } else { if (idbatch == null || idbatch == 0) { CBatch batch = new CBatch() { Name_batch = name_batch, Num_tray = num_tray, Idtemplate_method = p_idtemplate_method, Cod_module = "M002", Cod_process = "P013", Cod_area = "A004", Status_process = 'W', Status = true, Mri_value = mri_value, Description = "", Date_creation_tray = null, User_creation_tray = p_user, Has_sample_control = false }; new CBatchFactory().Insert(batch); idbatch = batch.Idbatch; //save trace CTrace_batch trace_batch = new CTrace_batch() { Cod_module = "M002", Cod_process = "P013", Cod_area = "A004", Idbatch = batch.Idbatch, Date_in = DateTime.Now, Status_process = 'W', Usernew = p_user, Useredit = p_user, Status = true }; } } return(idbatch); }
public static void Advance_process(long idbatch, string process) { CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); // --- get a process existing CTrace_batch oTrace_batch = new LimsProject.BusinessLayer.Modules.ModProcessBatch().GetLastProcessBatch(process, idbatch); if (oTrace_batch == null) { oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Idbatch = idbatch; } oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = module; oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Useredit = Comun.GetUser(); oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.InProcess); if (!faTrace_batch.Update(oTrace_batch)) faTrace_batch.Insert(oTrace_batch); }
public static void Initialize_process(long idbatch, string process) { // --- register the finished process, CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); CTrace_batch oTrace_batch = new CTrace_batch(); // --- register the initiatied process oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = module; oTrace_batch.Idbatch = idbatch; oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Waiting); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Datenew = Comun.GetDate(); faTrace_batch.Insert(oTrace_batch); }
public static void Finalize_process(long idbatch, string process, string sgtProcess) { CTrace_batchFactory faTrace_batch = new CTrace_batchFactory(); // --- get a process existing CTrace_batch oTrace_batch = new LimsProject.BusinessLayer.Modules.ModProcessBatch().GetLastProcessBatch(process, idbatch); CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(process)); if (oTrace_batch == null) { oTrace_batch = new CTrace_batch(); oTrace_batch.Date_in = Comun.GetDate(); oTrace_batch.Usernew = Comun.GetUser(); oTrace_batch.Idbatch = idbatch; } oTrace_batch.Date_out = Comun.GetDate(); oTrace_batch.Cod_process = process; //oTrace_batch.Cod_module = modulo; oTrace_batch.Useredit = Comun.GetUser(); oTrace_batch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Finished); if (!faTrace_batch.Update(oTrace_batch)) faTrace_batch.Insert(oTrace_batch); // --- create a new process Initialize_process(idbatch, sgtProcess); }