Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }