Exemplo n.º 1
0
        public void RetestBatch()
        {
            try
            {
                CBatchFactory faBatch = new CBatchFactory();
                CBatch        oBatch  = faBatch.GetByPrimaryKey(new CBatchKeys(Idbatch));

                // --- check parity
                for (int i = 0; i < ListSamples.Count; i++)
                {
                    CBatch_detail_aa_twofold        row = ListSamples[i];
                    CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();

                    if (Convert.ToInt32(row.Flag_mri) == 0)
                    {
                        // --- approved samples with additional retest mark
                        row.Qaqc_has_retest = 1;
                        faBatch_detail_aa_twofold.Update(row);

                        // --- save retest
                        string       cod_type_sample = new CTemplate_methodFactory().GetByPrimaryKey(new CTemplate_methodKeys(Convert.ToInt32(row.Idtemplate_method))).Cod_type_sample;
                        CCorrelative oCorrelative    = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(cod_type_sample));

                        CBatchManager oBatchManager = new CBatchManager();

                        oBatchManager.CallSaveFromRetestFullBatch(
                            Convert.ToInt32(row.Idtemplate_method),
                            Convert.ToInt64(row.Idrecep_sample),
                            Convert.ToInt64(row.Idrecep_sample_detail),
                            Convert.ToInt64(row.Idrecep_sample_detail_elem),
                            Convert.ToInt64(row.Cod_interno),
                            row.Cod_sample,
                            Comun.GetUser(),
                            oCorrelative,
                            row.Qaqc_par);

                        // --- register as finished trace process
                        CProcess_Sample_Manage.Finalize_process(Convert.ToInt64(row.Idrecep_sample_detail_elem), LimsProcess.PROCESS_IN_READING, LimsProcess.PROCESS_APPROVE_SAMPLES);
                    }
                }

                // --- modify the batch status, put in other process
                CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(LimsProcess.PROCESS_APPROVE_SAMPLES));
                oBatch.Status_process    = Convert.ToChar(LimsProcess.Status_Process.Waiting);
                oBatch.Cod_module        = oProcess.Cod_module;
                oBatch.Cod_area          = oProcess.Cod_area;
                oBatch.Cod_process       = LimsProcess.PROCESS_APPROVE_SAMPLES;
                oBatch.User_approve_tray = Comun.GetUser();
                oBatch.Date_approve_tray = Comun.GetDate();
                faBatch.Update(oBatch);

                // --- register as finished trace batch
                Cprocess_Batch_Manage.Finalize_process(Idbatch, LimsProcess.PROCESS_IN_READING, LimsProcess.PROCESS_APPROVE_SAMPLES);
            }
            catch (Exception ex)
            {
                Comun.Save_log(ex.InnerException.ToString());
                throw new Exception("pivot data::approve::Error occured.", ex);
            }
        }
        public void SaveControlSample(int idtemplate_method_aa, long idbatch)
        {
            CTemplate_method    template_method     = new CTemplate_methodFactory().GetByPrimaryKey(new CTemplate_methodKeys(idtemplate_method_aa));
            CCorrelative        correlative         = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(template_method.Cod_type_sample));
            CTemplate_method_aa templaate_method_aa = new CTemplate_method_aaFactory().GetByPrimaryKey(new CTemplate_method_aaKeys(idtemplate_method_aa));

            control_sample.Idtemplate_method = templaate_method_aa.Idtemplate_method;
            //control_sample.Idrecep_sample = idrecep_sample;
            //control_sample.Idrecep_sample_detail = idrecep_sample_detail;
            //control_sample.Idrecep_sample_detail_elem = idrecep_sample_detail_elem;
            control_sample.Weight1  = templaate_method_aa.Weight;
            control_sample.Weight2  = templaate_method_aa.Weight;
            control_sample.Volumen1 = templaate_method_aa.Volumen;
            control_sample.Volumen2 = templaate_method_aa.Volumen;
            control_sample.Dilu2    = templaate_method_aa.Dilution2;
            control_sample.Dilu3    = templaate_method_aa.Dilution3;

            control_sample.Flag_dilu2 = false;
            control_sample.Flag_dilu3 = false;

            control_sample.Flag_mri                 = 1;
            control_sample.Fum                      = methods.GetFactorConvertionUM(templaate_method_aa.Idtemplate_method);
            control_sample.Qaqc_blk                 = 3;
            control_sample.Qaqc_par                 = 3;
            control_sample.Qaqc_mr                  = 3;
            control_sample.Qaqc_error               = 0;
            control_sample.Qaqc_approve             = false;
            control_sample.Qaqc_review              = false;
            control_sample.Qaqc_has_retest          = 0;
            control_sample.Qaqc_tmp_retest          = 0;
            control_sample.Qaqc_tmp_retest_idmethod = 0;
            control_sample.Qaqc_approve_text        = "";
            control_sample.Qaqc_review_text         = "";

            // --- insert mri
            CBatch oBatch          = new CBatchFactory().GetByPrimaryKey(new CBatchKeys(idbatch));
            int    num_free_places = GetNumFreePlacesInBatch(idbatch, templaate_method_aa.Idtemplate_method);

            if (num_free_places >= 1)
            {
                if (!Convert.ToBoolean(oBatch.Has_sample_control)) // batch no tiene mri
                {
                    long index_mri = GetIndexMriPosition(idbatch);
                    if (index_mri > 0)
                    {
                        // --- insert mri
                        control_sample.Cod_interno = index_mri;
                        control_sample.Idbatch     = idbatch;
                        control_sample.Cod_sample  = Comun.FormatCorrelativeCode(correlative.Prefix + correlative.Cod_serie, index_mri, Convert.ToInt32(correlative.Num_digits));
                        if (faBatch_detail_aa_twofold.Insert(control_sample))
                        {
                            oBatch.Has_sample_control = true;
                            new CBatchFactory().Update(oBatch);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        protected override bool Grabar_Registro()
        {
            CCorrelativeFactory faCorrelative = new CCorrelativeFactory();
            CCorrelative        oCorrelative  = new CCorrelative();

            CCorr_modulesFactory faCorr_module = new CCorr_modulesFactory();
            CCorr_modules        oCorr_module  = new CCorr_modules();

            bool result = false;

            try
            {
                for (int i = 0; i < gvCorrelativos.RowCount; i++)
                {
                    //oCorrelative = new CCorrelative();
                    //oCorrelative.Cod_type_sample = gvCorrelativos.GetRowCellValue(i, gcCorr_cod_type_sample).ToString();
                    //oCorrelative.Cod_serie = gvCorrelativos.GetRowCellValue(i, gcCorr_cod_serie).ToString();
                    //oCorrelative.Correlative = Convert.ToInt32(gvCorrelativos.GetRowCellValue(i, gcCorr_correlative));
                    //oCorrelative.Mreach15 = Convert.ToBoolean(gvCorrelativos.GetRowCellValue(i, gcCorr_mreach15));
                    //oCorrelative.Num_digits = Convert.ToInt16(gvCorrelativos.GetRowCellValue(i, gcCorr_num_digits));
                    //oCorrelative.Prefix = gvCorrelativos.GetRowCellValue(i, gcCorr_prefix).ToString();

                    //if (!(result = faCorrelative.Update(oCorrelative)))
                    //    result = faCorrelative.Insert(oCorrelative);

                    //if (!result)
                    //    break;

                    oCorrelative = (CCorrelative)gvCorrelativos.GetRow(i);
                    if (!new CCorrelativeFactory().Update(oCorrelative))
                    {
                        new CCorrelativeFactory().Insert(oCorrelative);
                    }
                }

                for (int i = 0; i < gvVarios.RowCount; i++)
                {
                    oCorr_module = (CCorr_modules)gvVarios.GetRow(i);
                    new CCorr_modulesFactory().Update(oCorr_module);
                }
            }
            catch (Exception ex)
            {
                ComunForm.Send_message(this.Text, TypeMsg.error, ex.Message);
                result = false;
            }

            return(result);
        }
Exemplo n.º 4
0
        public long GetNewCodInternoSample(string Cod_type_sample)
        {
            CCorrelative oCorrelative = new CCorrelativeFactory().GetAll().Single(c => c.Cod_type_sample == Cod_type_sample);
            int          correlative  = Convert.ToInt32(oCorrelative.Correlative) + 1;

            if (correlative % 15 == 6)
            {
                correlative = correlative + 1;
            }

            oCorrelative.Correlative = correlative;

            new CCorrelativeFactory().Update(oCorrelative);
            return(new CCorrelativeFactory().GetAll().Max(c => Convert.ToInt64(c.Correlative)));
        }
Exemplo n.º 5
0
        protected override bool Grabar_Registro()
        {
            CCorrelativeFactory faCorrelative = new CCorrelativeFactory();
            CCorrelative oCorrelative = new CCorrelative();

            CCorr_modulesFactory faCorr_module = new CCorr_modulesFactory();
            CCorr_modules oCorr_module = new CCorr_modules();

            bool result = false;

            try
            {
                for (int i = 0; i < gvCorrelativos.RowCount; i++)
                {
                    //oCorrelative = new CCorrelative();
                    //oCorrelative.Cod_type_sample = gvCorrelativos.GetRowCellValue(i, gcCorr_cod_type_sample).ToString();
                    //oCorrelative.Cod_serie = gvCorrelativos.GetRowCellValue(i, gcCorr_cod_serie).ToString();
                    //oCorrelative.Correlative = Convert.ToInt32(gvCorrelativos.GetRowCellValue(i, gcCorr_correlative));
                    //oCorrelative.Mreach15 = Convert.ToBoolean(gvCorrelativos.GetRowCellValue(i, gcCorr_mreach15));
                    //oCorrelative.Num_digits = Convert.ToInt16(gvCorrelativos.GetRowCellValue(i, gcCorr_num_digits));
                    //oCorrelative.Prefix = gvCorrelativos.GetRowCellValue(i, gcCorr_prefix).ToString();

                    //if (!(result = faCorrelative.Update(oCorrelative)))
                    //    result = faCorrelative.Insert(oCorrelative);

                    //if (!result)
                    //    break;

                    oCorrelative = (CCorrelative)gvCorrelativos.GetRow(i);
                    if (!new CCorrelativeFactory().Update(oCorrelative))
                        new CCorrelativeFactory().Insert(oCorrelative);
                }

                for (int i = 0; i < gvVarios.RowCount; i++)
                {
                    oCorr_module = (CCorr_modules)gvVarios.GetRow(i);
                    new CCorr_modulesFactory().Update(oCorr_module);
                }
            }
            catch (Exception ex)
            {
                ComunForm.Send_message(this.Text, TypeMsg.error, ex.Message);
                result = false;
            }

            return result;
        }
Exemplo n.º 6
0
        public string GetFormatCodInternoSample(string Cod_type_sample)
        {
            CCorrelative oCorrelative = new CCorrelativeFactory().GetAll().Single(c => c.Cod_type_sample == Cod_type_sample);

            return(oCorrelative.Prefix + oCorrelative.Cod_serie + Convert.ToInt32(oCorrelative.Correlative).ToString().PadLeft(Convert.ToInt32(oCorrelative.Num_digits), '0'));
        }
Exemplo n.º 7
0
        public void Review()
        {
            try
            {
                CBatchFactory faBatch = new CBatchFactory();
                CBatch        oBatch  = faBatch.GetByPrimaryKey(new CBatchKeys(Idbatch));

                // --- save trace
                CRecep_sample_detail_elemFactory faRecep_sample_detail_elem = new CRecep_sample_detail_elemFactory();

                for (int i = 0; i < ListSamples.Count; i++)
                {
                    CBatch_detail_aa_twofold current_row = ListSamples[i];

                    int status_result = Convert.ToInt32(current_row.Qaqc_status_result);

                    if (Convert.ToInt32(current_row.Flag_mri) == 0)
                    {
                        // --- set how accepted sample
                        // Espera = 0,
                        // Incorrecto = 1,
                        // Plausible = 2,
                        // Aceptado = 3,
                        // IncorrectoPlausible = 4,
                        // Espera reensayos = 5
                        // --- save only the accept samples
                        long Idrecep_sample_detail_elem = Convert.ToInt64(current_row.Idrecep_sample_detail_elem);

                        if (Convert.ToBoolean(oBatch.Flag_correct_mri) && Convert.ToBoolean(oBatch.Flag_correct_lrb))
                        {
                            if (status_result == Convert.ToInt32(Comun.Status_result.Plausible))
                            {
                                current_row.Qaqc_status_result = Convert.ToInt16(Comun.Status_result.Aceptado);
                            }

                            Qaqc oQaqc = new Qaqc();
                            if (!oQaqc.IsRetest(Idrecep_sample_detail_elem, Idbatch))
                            {
                                // --- save final element law
                                if (current_row.Qaqc_status_result == Convert.ToInt16(Comun.Status_result.Aceptado))
                                {
                                    CRecep_sample_detail_elem oRecep_sample_detail_elem = faRecep_sample_detail_elem.GetByPrimaryKey(new CRecep_sample_detail_elemKeys(Idrecep_sample_detail_elem));
                                    oRecep_sample_detail_elem.Result_analysis     = current_row.Result_analysis;
                                    oRecep_sample_detail_elem.Str_result_analysis = current_row.Str_result_analysis.ToString();
                                    oRecep_sample_detail_elem.With_result         = true;
                                    if (current_row.Str_result_analysis == null)
                                    {
                                        oRecep_sample_detail_elem.With_result = false;
                                    }
                                    faRecep_sample_detail_elem.Update(oRecep_sample_detail_elem);
                                }
                                CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();
                                faBatch_detail_aa_twofold.Update(current_row);
                            }
                            else// --- es un reensayo
                            {
                                if (!oQaqc.ExistsResultPendingSel(Idrecep_sample_detail_elem, Idbatch))
                                {
                                    // --- si no está pendiente de seleccionar entre varios análisis
                                    // --- save final element law
                                    if (current_row.Qaqc_status_result == Convert.ToInt16(Comun.Status_result.Aceptado))
                                    {
                                        CRecep_sample_detail_elem oRecep_sample_detail_elem = faRecep_sample_detail_elem.GetByPrimaryKey(new CRecep_sample_detail_elemKeys(Idrecep_sample_detail_elem));
                                        oRecep_sample_detail_elem.Result_analysis     = current_row.Result_analysis;
                                        oRecep_sample_detail_elem.Str_result_analysis = current_row.Str_result_analysis.ToString();
                                        oRecep_sample_detail_elem.With_result         = true;
                                        if (current_row.Str_result_analysis == null)
                                        {
                                            oRecep_sample_detail_elem.With_result = false;
                                        }
                                        faRecep_sample_detail_elem.Update(oRecep_sample_detail_elem);
                                    }
                                    CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();
                                    faBatch_detail_aa_twofold.Update(current_row);
                                }
                            }

                            // --- save retest
                            if (current_row.Qaqc_tmp_retest == 1)
                            {
                                string       cod_type_sample = new CTemplate_methodFactory().GetByPrimaryKey(new CTemplate_methodKeys(Convert.ToInt32(current_row.Idtemplate_method))).Cod_type_sample;
                                CCorrelative oCorrelative    = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(cod_type_sample));

                                CBatchManager oBatchManager = new CBatchManager();

                                oBatchManager.CallSaveSampleBatchWithRetest(
                                    Convert.ToInt32(current_row.Idtemplate_method),
                                    Convert.ToInt64(current_row.Idrecep_sample),
                                    Convert.ToInt64(current_row.Idrecep_sample_detail),
                                    Convert.ToInt64(current_row.Idrecep_sample_detail_elem),
                                    Convert.ToInt64(current_row.Cod_interno),
                                    current_row.Cod_sample,
                                    Comun.GetUser(),
                                    oCorrelative, Convert.ToInt32(current_row.Qaqc_par), Idbatch);
                            }

                            // --- register as finished trace process
                            CProcess_Sample_Manage.Finalize_process(Idrecep_sample_detail_elem, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);
                        }
                        else
                        {
                            // --- the samples pertain to batch with full batch retest
                            CProcess_Sample_Manage.Finalize_process(Idrecep_sample_detail_elem, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);
                        }
                    }
                }

                // --- modify the batch status, put in other process
                CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(LimsProcess.PROCESS_ACCEPT_RESULTS));
                oBatch.Status_process   = Convert.ToChar(LimsProcess.Status_Process.Waiting);
                oBatch.Cod_module       = oProcess.Cod_module;
                oBatch.Cod_area         = oProcess.Cod_area;
                oBatch.Cod_process      = LimsProcess.PROCESS_ACCEPT_RESULTS;
                oBatch.User_review_tray = Comun.GetUser();
                oBatch.Date_review_tray = Comun.GetDate();
                faBatch.Update(oBatch);

                // --- register as finished trace batch
                Cprocess_Batch_Manage.Finalize_process(Idbatch, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);
            }
            catch (Exception ex)
            {
                Comun.Save_log(ex.InnerException.ToString());
                throw new Exception("pivot data::approve::Error occured.", ex);
            }
        }
Exemplo n.º 8
0
        bool SaveRegisterReception()
        {
            bool result = false;
            object obj = deHourReception.EditValue;

            try
            {
                #region save head

                if (oRecep_sample == null)
                    oRecep_sample = new CRecep_sample();
                else
                {
                    if (loadData == LoadData.FromRR_ToExtendRR)
                        oRecep_sample.Idrecep_sample = 0;
                }

                CPersonFactory faPerson = new CPersonFactory();
                Reception oReception = new BusinessLayer.Modules.Reception();

                // --- save company
                bool result_company = false;

                CCompany oCompany = new CCompany();

                if (cbCompany.EditValue != null)
                {
                    CCorr_modulesFactory faCorr_modules = new CCorr_modulesFactory();
                    CCompanyFactory faCompany = new CCompanyFactory();

                    oCompany.Idcompany = Convert.ToInt16(cbCompany.EditValue);
                    //oCompany.Cod_company = faCorr_modules.GetCorrModule(Comun.Formulario.fmEmpresa.ToString());
                    oCompany.Ruc = tbClientRuc.Text;
                    oCompany.Business_name = cbCompany.Text;
                    oCompany.Domicile = tbClientDomicile.Text;
                    oCompany.Type_company = 'C'; // --- client
                    oCompany.Phone_client = tbClientPhone.Text;

                    if (!(result_company = faCompany.Update(oCompany)))
                        result_company = faCompany.Insert(oCompany);
                }

                // --- save head
                if (!result_company)
                {
                    ComunForm.Send_message(this.Text, TypeMsg.error, "Error al guardar cliente, no se pudo completar la operación.");
                    return false;
                }

                bool result_recep_sample = false;

                oReception.GetNewCodReception();

                oRecep_sample.Cod_recep_sample = oReception.GetFormatCodReception();
                oRecep_sample.Idcompany = oCompany.Idcompany;
                oRecep_sample.Date_reception = deReception.DateTime;

                DateTime Hour_reception = Convert.ToDateTime(deHourReception.EditValue);

                oRecep_sample.Date_reception = new DateTime(
                    deReception.DateTime.Year, deReception.DateTime.Month, deReception.DateTime.Day,
                    Hour_reception.Hour, Hour_reception.Minute, Hour_reception.Second);

                DateTime Hour_result = Convert.ToDateTime(deHourResult.EditValue);

                oRecep_sample.Date_result = new DateTime(
                    deResult.DateTime.Year, deResult.DateTime.Month, deResult.DateTime.Day,
                    Hour_result.Hour, Hour_result.Minute, Hour_result.Second);

                oRecep_sample.Cod_type_sample = cbTypeSample.EditValue.ToString();
                oRecep_sample.Total_amount = Convert.ToDecimal(tbSubTotalAmount.Text);
                oRecep_sample.Total_igv = Convert.ToDecimal(tbTotalIgv.Text);
                oRecep_sample.Total_amount_igv = Convert.ToDecimal(tbTotalAmount.Text);
                oRecep_sample.Amortization = Convert.ToDecimal(tbAmortization.Text);
                oRecep_sample.Flag_isprice = false;
                //oRecep_sample.Discount = ckDiscount.Checked == true ? tbDiscount.Value : 0;

                if (oRecep_sample.Idrecep_sample == 0)
                {
                    oRecep_sample.Usernew = Comun.GetUser();
                    oRecep_sample.Datenew = Comun.GetDate();
                }
                oRecep_sample.Useredit = Comun.GetUser();
                oRecep_sample.Dateedit = Comun.GetDate();

                if (!(result_recep_sample = faRecep_sample.Update(oRecep_sample)))
                    result_recep_sample = faRecep_sample.Insert(oRecep_sample);

                if (!result_recep_sample)
                {
                    ComunForm.Send_message(this.Text, TypeMsg.error, "Error al guardar datos en recepción, no se pudo completar la operación.");
                    return false;
                }

                #endregion

                #region update price

                if (result_recep_sample && oPrice_version != null && oPrice_version.Idprice_version > 0)
                {
                    oPrice_version.Status_price = 4;
                    faPrice_version.Update(oPrice_version);
                }

                #endregion

                #region save detail

                // --- contacts and detail
                if (result_recep_sample)
                {
                    // --- save contacts
                    CPerson oContact = new CPerson();
                    CRecep_company_person oRecep_company_person = new CRecep_company_person();
                    CRecep_company_personFactory faRecep_company_person = new CRecep_company_personFactory();

                    // --- delete all
                    tbCod_recep_sample.Text = oReception.GetFormatCodReception();

                    oReception.SetDisabledContact(oRecep_sample.Idrecep_sample);

                    for (int i = 0; i < gvContact.RowCount; i++)
                    {
                        oContact.Idperson = Convert.ToInt16(gvContact.GetRowCellValue(i, gcCon_Idperson));
                        oContact.Phone = gvContact.GetRowCellValue(i, gcCon_Phone).ToString();
                        oContact.Cellphone = gvContact.GetRowCellValue(i, gcCon_Cellphone).ToString();
                        oContact.Mail = gvContact.GetRowCellValue(i, gcCon_Mail).ToString();
                        oContact.Allname = gvContact.GetRowCellValue(i, gcCon_Allname).ToString();

                        bool result_contact = false;
                        if (!(result_contact = faPerson.Update(oContact)))
                            result_contact = faPerson.Insert(oContact);

                        if (result_contact)
                        {
                            oRecep_company_person = new CRecep_company_person();

                            oRecep_company_person.Idrecep_company_person = 0;
                            oRecep_company_person.Idcompany = oCompany.Idcompany;
                            oRecep_company_person.Idrecep_sample = oRecep_sample.Idrecep_sample;
                            oRecep_company_person.Idperson = oContact.Idperson;
                            oRecep_company_person.Person_type = Convert.ToInt16(gvContact.GetRowCellValue(i, gcCon_Person_type));
                            oRecep_company_person.Enabled_show = true;

                            if (!faRecep_company_person.Update(oRecep_company_person))
                                faRecep_company_person.Insert(oRecep_company_person);
                        }
                    }

                    // --- save dispatch
                    CRecep_sample_dispatchFactory faRecep_sample_dispatch = new CRecep_sample_dispatchFactory();
                    CRecep_sample_dispatch oRecep_sample_dispatch = new CRecep_sample_dispatch();
                    oRecep_sample_dispatch.Idrecep_sample = oRecep_sample.Idrecep_sample;
                    // --- person
                    if (ckDispatchPerson.Checked)
                        oRecep_sample_dispatch.Dispatch_person = 1;
                    else
                        oRecep_sample_dispatch.Dispatch_person = 0;
                    // --- curier
                    if (ckDispatchCurier.Checked)
                        oRecep_sample_dispatch.Dispatch_curier = 1;
                    else
                        oRecep_sample_dispatch.Dispatch_curier = 0;
                    // --- transport
                    if (ckDispatchTransport.Checked)
                        oRecep_sample_dispatch.Dispatch_transport = 1;
                    else
                        oRecep_sample_dispatch.Dispatch_transport = 0;
                    // --- fax
                    if (ckDispatchFax.Checked)
                        oRecep_sample_dispatch.Dispatch_fax = 1;
                    else
                        oRecep_sample_dispatch.Dispatch_fax = 0;
                    // --- save
                    if (!faRecep_sample_dispatch.Update(oRecep_sample_dispatch))
                        faRecep_sample_dispatch.Insert(oRecep_sample_dispatch);

                    // ---------------------------------------------------------------------------
                    // --- save detail -----------------------------------------------------------
                    // ---------------------------------------------------------------------------
                    CRecep_sample_detail oRecep_sample_detail = new CRecep_sample_detail();
                    CRecep_sample_detailFactory faRecep_sample_detail = new CRecep_sample_detailFactory();

                    CRecep_elem oRecep_elem = new CRecep_elem();
                    CRecep_elemFactory faRecep_elem = new CRecep_elemFactory();

                    CRecep_sample_detail_elem oRecep_sample_detail_elem = new CRecep_sample_detail_elem();
                    CRecep_sample_detail_elemFactory faRecep_sample_detail_elem = new CRecep_sample_detail_elemFactory();

                    CCorrelative oCorrelative = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(oRecep_sample.Cod_type_sample));

                    if (oRecep_sample.Idrecep_sample > 0)
                    {
                        int i = 0;
                        while (i < gvReception.RowCount)
                        {
                            oRecep_sample_detail = new CRecep_sample_detail();
                            oRecep_sample_detail.Idrecep_sample = oRecep_sample.Idrecep_sample;
                            //if (gvReception.GetRowCellValue(i, gcRec_idrecep_sample_detail) != DBNull.Value)
                                //oRecep_sample_detail.Idrecep_sample_detail = Convert.ToInt64(gvReception.GetRowCellValue(i, gcRec_idrecep_sample_detail));
                            oRecep_sample_detail.Idrecep_sample_detail = 0;
                            oRecep_sample_detail.Order_sample = Convert.ToInt16(gvReception.GetRowCellValue(i, gcRec_OrderSample));
                            oRecep_sample_detail.Name_sample = gvReception.GetRowCellValue(i, gcRec_NameSample).ToString();
                            oRecep_sample_detail.Procedence = gvReception.GetRowCellValue(i, gcRec_Procedence).ToString();
                            oRecep_sample_detail.Cod_des_sample = gvReception.GetRowCellValue(i, gcRec_Description).ToString();
                            oRecep_sample_detail.Cod_type_sample = gvReception.GetRowCellValue(i, gcRec_Type_Sample).ToString();
                            oRecep_sample_detail.Cod_sample = gvReception.GetRowCellValue(i, gcRec_Code).ToString();
                            oRecep_sample_detail.Amount_weight = Convert.ToDecimal(gvReception.GetRowCellValue(i, gcRec_CantKg));
                            oRecep_sample_detail.Cost_sample = Convert.ToDecimal(gvReception.GetRowCellValue(i, gcRec_Cost));
                            oRecep_sample_detail.Flag_envelope_sealed = Convert.ToBoolean(gvReception.GetRowCellValue(i, gcRec_Flag_envelope_sealed));
                            oRecep_sample_detail.Flag_reject = Convert.ToBoolean(gvReception.GetRowCellValue(i, gcRec_Reject));
                            oRecep_sample_detail.Flag_counter_sample = Convert.ToInt16(gvReception.GetRowCellValue(i, gcRec_Counter_Sample));
                            oRecep_sample_detail.Analisys_time = Convert.ToInt16(gvReception.GetRowCellValue(i, gcRec_Days));

                            bool result_detail_elem = false;

                            bool result_recep_sample_detail = false;

                            if (!(result_recep_sample_detail = faRecep_sample_detail.Update(oRecep_sample_detail)))
                                result_recep_sample_detail = faRecep_sample_detail.Insert(oRecep_sample_detail);

                            if (result_recep_sample_detail)
                            {
                                if (FlagRegRecepCopy)
                                {
                                    oRecep_sample_detail.Cod_interno = Convert.ToInt64(gvReception.GetRowCellValue(i, gcRec_Cod_interno));
                                    oRecep_sample_detail.Cod_sample = gvReception.GetRowCellValue(i, gcRec_Code).ToString();
                                    oRecep_sample_detail.Flag_control_sample = false;
                                }
                                else
                                {
                                    // assign correlative code
                                    long Cod_interno = oReception.GetNewCodInternoSample(gvReception.GetRowCellValue(i, gcRec_Type_Sample).ToString());
                                    string Format_cod_interno = oReception.GetFormatCodInternoSample(gvReception.GetRowCellValue(i, gcRec_Type_Sample).ToString());

                                    oRecep_sample_detail.Cod_interno = Cod_interno;
                                    oRecep_sample_detail.Cod_sample = Format_cod_interno;
                                    oRecep_sample_detail.Flag_control_sample = false;
                                }

                                faRecep_sample_detail.Update(oRecep_sample_detail);

                                #region save element cell repetition

                                CRecep_sample_detail oRecep_sample_aux = faRecep_sample_detail.GetByPrimaryKey(new CRecep_sample_detailKeys(oRecep_sample_detail.Idrecep_sample_detail));
                                CSettings oSettings = new CSettings();
                                bool HasHumidityAnalysis = false;
                                bool Has60GradesElement = false;

                                // --- retrieve code sample and assign
                                if (!Convert.ToBoolean(oRecep_sample_detail.Flag_control_sample))
                                    gvReception.SetRowCellValue(i, gcRec_Code, oRecep_sample_aux.Cod_sample);

                                // --- save element cell
                                foreach (KeyValuePair<DevExpress.XtraGrid.Columns.GridColumn, bool> kvp in DicShowColumns)
                                {
                                    if (kvp.Value)
                                    {
                                        bool value_check = Convert.ToBoolean(gvReception.GetRowCellValue(i, kvp.Key));
                                        bool flag_control_sample = Convert.ToBoolean(oRecep_sample_detail.Flag_control_sample);

                                        if ((!flag_control_sample && value_check)
                                            || flag_control_sample)
                                        {
                                            oRecep_sample_detail_elem = new CRecep_sample_detail_elem();

                                            CTagInfoMethod tagMethod = (CTagInfoMethod)kvp.Key.Tag;
                                            oRecep_sample_detail_elem.Idelement = tagMethod.IDElement;
                                            oRecep_sample_detail_elem.Idrecep_sample = oRecep_sample.Idrecep_sample;
                                            oRecep_sample_detail_elem.Idrecep_sample_detail = oRecep_sample_detail.Idrecep_sample_detail;
                                            oRecep_sample_detail_elem.Idtemplate_method = tagMethod.IDTemplate_method;
                                            oRecep_sample_detail_elem.Idcompany = oRecep_sample.Idcompany;
                                            oRecep_sample_detail_elem.Idunit = tagMethod.IDMeasurement_Unit;
                                            oRecep_sample_detail_elem.Cost_method = tagMethod.Cost_Method;

                                            if (!(result_detail_elem = faRecep_sample_detail_elem.Update(oRecep_sample_detail_elem)))
                                                result_detail_elem = faRecep_sample_detail_elem.Insert(oRecep_sample_detail_elem);

                                            if (result_detail_elem)
                                            {
                                                // crear bandejas
                                                CBatchManager oBatchManager = new CBatchManager();
                                                oBatchManager.CallSaveSampleBatch(
                                                    Convert.ToInt32(oRecep_sample_detail_elem.Idtemplate_method),
                                                    Convert.ToInt64(oRecep_sample_detail_elem.Idrecep_sample),
                                                    Convert.ToInt64(oRecep_sample_detail_elem.Idrecep_sample_detail),
                                                    oRecep_sample_detail_elem.Idrecep_sample_detail_elem,
                                                    Convert.ToInt64(oRecep_sample_detail.Cod_interno),
                                                    oRecep_sample_detail.Cod_sample,
                                                    Comun.GetUser(),
                                                    oCorrelative);

                                                // enviar a preparación de muestras

                                            }

                                            //verificar si tiene análisis por humedad
                                            if (oSettings.GetIdHumidityAnalysis().Contains(tagMethod.IDElement.ToString()))
                                                HasHumidityAnalysis = true;

                                            //verificar si tiene que elementos para ser analizados a 60°
                                            if (oSettings.GetIDElements60Grades().Contains(tagMethod.IDElement.ToString()))
                                                Has60GradesElement = true;
                                        }
                                    }
                                }
                                #endregion

                                #region save sample preparation

                                CPrep_samples oPrep_samples = new CPrep_samples();
                                oPrep_samples.Idrecep_sample_detail = oRecep_sample_detail.Idrecep_sample_detail;
                                oPrep_samples.Flag_counter_sample = oRecep_sample_detail.Flag_counter_sample;
                                oPrep_samples.Flag_reject = oRecep_sample_detail.Flag_reject;
                                oPrep_samples.Flag_humidity_analysis = HasHumidityAnalysis;
                                oPrep_samples.Flag_60celsius = Has60GradesElement;
                                oPrep_samples.Date_creation = Comun.GetDate();
                                oPrep_samples.Moisture_reject = false;
                                oPrep_samples.Final_moisture = 0;
                                oPrep_samples.Final_reject = 0;
                                oPrep_samples.Final_sample_prepared = 0;
                                oPrep_samples.Final_weight_gross = 0;
                                oPrep_samples.Output_flag_sample = false;
                                oPrep_samples.Output_flag_cs = false;
                                oPrep_samples.Output_flag_re = false;

                                CPrep_samplesFactory faPrep_samples = new CPrep_samplesFactory();
                                if (!faPrep_samples.Update(oPrep_samples))
                                    faPrep_samples.Insert(oPrep_samples);

                                #endregion
                            }

                            if (!Convert.ToBoolean(oRecep_sample_detail.Flag_control_sample))
                                i++;
                        }
                    }

                    #region save tag infor method

                    // --- save tag info method (mr or blk)
                    foreach (KeyValuePair<DevExpress.XtraGrid.Columns.GridColumn, bool> kvp in DicShowColumns)
                    {
                        if (kvp.Value)
                        {
                            CTagInfoMethod tagMethod = (CTagInfoMethod)kvp.Key.Tag;
                            oRecep_elem = new CRecep_elem();
                            oRecep_elem.Idelement = tagMethod.IDElement;
                            oRecep_elem.Idrecep_sample = oRecep_sample.Idrecep_sample;
                            oRecep_elem.Idtemplate_method = tagMethod.IDTemplate_method;
                            oRecep_elem.Name_unit = tagMethod.Name_Measurement_Unit;
                            oRecep_elem.Idunit = tagMethod.IDMeasurement_Unit;
                            oRecep_elem.Percent_repetition = tagMethod.Percent_repetition;

                            if (!faRecep_elem.Update(oRecep_elem))
                                faRecep_elem.Insert(oRecep_elem);
                        }
                    }

                    #endregion
                }

                #endregion

                result = true;
            }
            catch (Exception ex)
            {
                Comun.Save_log(ex.Message);
                if (ex.InnerException != null)
                    Comun.Save_log(ex.InnerException.ToString());
                return false;
            }
            return result;
        }
Exemplo n.º 9
0
        public void Review()
        {
            try
            {
                CBatchFactory faBatch = new CBatchFactory();
                CBatch oBatch = faBatch.GetByPrimaryKey(new CBatchKeys(Idbatch));

                // --- save trace
                CRecep_sample_detail_elemFactory faRecep_sample_detail_elem = new CRecep_sample_detail_elemFactory();

                for (int i = 0; i < ListSamples.Count; i++)
                {
                    CBatch_detail_aa_twofold current_row = ListSamples[i];

                    int status_result = Convert.ToInt32(current_row.Qaqc_status_result);

                    if (Convert.ToInt32(current_row.Flag_mri) == 0)
                    {
                        // --- set how accepted sample
                        // Espera = 0,
                        // Incorrecto = 1,
                        // Plausible = 2,
                        // Aceptado = 3,
                        // IncorrectoPlausible = 4,
                        // Espera reensayos = 5
                        // --- save only the accept samples
                        long Idrecep_sample_detail_elem = Convert.ToInt64(current_row.Idrecep_sample_detail_elem);

                        if (Convert.ToBoolean(oBatch.Flag_correct_mri) && Convert.ToBoolean(oBatch.Flag_correct_lrb))
                        {

                            if (status_result == Convert.ToInt32(Comun.Status_result.Plausible))
                                current_row.Qaqc_status_result = Convert.ToInt16(Comun.Status_result.Aceptado);

                            Qaqc oQaqc = new Qaqc();
                            if (!oQaqc.IsRetest(Idrecep_sample_detail_elem, Idbatch))
                            {
                                // --- save final element law
                                if (current_row.Qaqc_status_result == Convert.ToInt16(Comun.Status_result.Aceptado))
                                {
                                    CRecep_sample_detail_elem oRecep_sample_detail_elem = faRecep_sample_detail_elem.GetByPrimaryKey(new CRecep_sample_detail_elemKeys(Idrecep_sample_detail_elem));
                                    oRecep_sample_detail_elem.Result_analysis = current_row.Result_analysis;
                                    oRecep_sample_detail_elem.Str_result_analysis = current_row.Str_result_analysis.ToString();
                                    oRecep_sample_detail_elem.With_result = true;
                                    if (current_row.Str_result_analysis == null)
                                        oRecep_sample_detail_elem.With_result = false;
                                    faRecep_sample_detail_elem.Update(oRecep_sample_detail_elem);
                                }
                                CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();
                                faBatch_detail_aa_twofold.Update(current_row);
                            }
                            else// --- es un reensayo
                            {
                                if (!oQaqc.ExistsResultPendingSel(Idrecep_sample_detail_elem, Idbatch))
                                {
                                    // --- si no está pendiente de seleccionar entre varios análisis
                                    // --- save final element law
                                    if (current_row.Qaqc_status_result == Convert.ToInt16(Comun.Status_result.Aceptado))
                                    {
                                        CRecep_sample_detail_elem oRecep_sample_detail_elem = faRecep_sample_detail_elem.GetByPrimaryKey(new CRecep_sample_detail_elemKeys(Idrecep_sample_detail_elem));
                                        oRecep_sample_detail_elem.Result_analysis = current_row.Result_analysis;
                                        oRecep_sample_detail_elem.Str_result_analysis = current_row.Str_result_analysis.ToString();
                                        oRecep_sample_detail_elem.With_result = true;
                                        if (current_row.Str_result_analysis == null)
                                            oRecep_sample_detail_elem.With_result = false;
                                        faRecep_sample_detail_elem.Update(oRecep_sample_detail_elem);
                                    }
                                    CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();
                                    faBatch_detail_aa_twofold.Update(current_row);
                                }
                            }

                            // --- save retest
                            if (current_row.Qaqc_tmp_retest == 1)
                            {
                                string cod_type_sample = new CTemplate_methodFactory().GetByPrimaryKey(new CTemplate_methodKeys(Convert.ToInt32(current_row.Idtemplate_method))).Cod_type_sample;
                                CCorrelative oCorrelative = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(cod_type_sample));

                                CBatchManager oBatchManager = new CBatchManager();

                                oBatchManager.CallSaveSampleBatchWithRetest(
                                    Convert.ToInt32(current_row.Idtemplate_method),
                                    Convert.ToInt64(current_row.Idrecep_sample),
                                    Convert.ToInt64(current_row.Idrecep_sample_detail),
                                    Convert.ToInt64(current_row.Idrecep_sample_detail_elem),
                                    Convert.ToInt64(current_row.Cod_interno),
                                    current_row.Cod_sample,
                                    Comun.GetUser(),
                                    oCorrelative, Convert.ToInt32(current_row.Qaqc_par), Idbatch);
                            }

                            // --- register as finished trace process
                            CProcess_Sample_Manage.Finalize_process(Idrecep_sample_detail_elem, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);
                        }
                        else
                        {
                            // --- the samples pertain to batch with full batch retest
                            CProcess_Sample_Manage.Finalize_process(Idrecep_sample_detail_elem, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);
                        }

                    }
                }

                // --- modify the batch status, put in other process
                CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(LimsProcess.PROCESS_ACCEPT_RESULTS));
                oBatch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Waiting);
                oBatch.Cod_module = oProcess.Cod_module;
                oBatch.Cod_area = oProcess.Cod_area;
                oBatch.Cod_process = LimsProcess.PROCESS_ACCEPT_RESULTS;
                oBatch.User_review_tray = Comun.GetUser();
                oBatch.Date_review_tray = Comun.GetDate();
                faBatch.Update(oBatch);

                // --- register as finished trace batch
                Cprocess_Batch_Manage.Finalize_process(Idbatch, LimsProcess.PROCESS_APPROVE_SAMPLES, LimsProcess.PROCESS_ACCEPT_RESULTS);

            }
            catch (Exception ex)
            {
                Comun.Save_log(ex.InnerException.ToString());
                throw new Exception("pivot data::approve::Error occured.", ex);
            }
        }
Exemplo n.º 10
0
        public void RetestBatch()
        {
            try
            {
                CBatchFactory faBatch = new CBatchFactory();
                CBatch oBatch = faBatch.GetByPrimaryKey(new CBatchKeys(Idbatch));

                // --- check parity
                for (int i = 0; i < ListSamples.Count; i++)
                {
                    CBatch_detail_aa_twofold row = ListSamples[i];
                    CBatch_detail_aa_twofoldFactory faBatch_detail_aa_twofold = new CBatch_detail_aa_twofoldFactory();

                    if (Convert.ToInt32(row.Flag_mri) == 0)
                    {
                        // --- approved samples with additional retest mark
                        row.Qaqc_has_retest = 1;
                        faBatch_detail_aa_twofold.Update(row);

                        // --- save retest
                        string cod_type_sample = new CTemplate_methodFactory().GetByPrimaryKey(new CTemplate_methodKeys(Convert.ToInt32(row.Idtemplate_method))).Cod_type_sample;
                        CCorrelative oCorrelative = new CCorrelativeFactory().GetByPrimaryKey(new CCorrelativeKeys(cod_type_sample));

                        CBatchManager oBatchManager = new CBatchManager();

                        oBatchManager.CallSaveFromRetestFullBatch(
                            Convert.ToInt32(row.Idtemplate_method),
                            Convert.ToInt64(row.Idrecep_sample),
                            Convert.ToInt64(row.Idrecep_sample_detail),
                            Convert.ToInt64(row.Idrecep_sample_detail_elem),
                            Convert.ToInt64(row.Cod_interno),
                            row.Cod_sample,
                            Comun.GetUser(),
                            oCorrelative,
                            row.Qaqc_par);

                        // --- register as finished trace process
                        CProcess_Sample_Manage.Finalize_process(Convert.ToInt64(row.Idrecep_sample_detail_elem), LimsProcess.PROCESS_IN_READING, LimsProcess.PROCESS_APPROVE_SAMPLES);
                    }
                }

                // --- modify the batch status, put in other process
                CProcess oProcess = new CProcessFactory().GetByPrimaryKey(new CProcessKeys(LimsProcess.PROCESS_APPROVE_SAMPLES));
                oBatch.Status_process = Convert.ToChar(LimsProcess.Status_Process.Waiting);
                oBatch.Cod_module = oProcess.Cod_module;
                oBatch.Cod_area = oProcess.Cod_area;
                oBatch.Cod_process = LimsProcess.PROCESS_APPROVE_SAMPLES;
                oBatch.User_approve_tray = Comun.GetUser();
                oBatch.Date_approve_tray = Comun.GetDate();
                faBatch.Update(oBatch);

                // --- register as finished trace batch
                Cprocess_Batch_Manage.Finalize_process(Idbatch, LimsProcess.PROCESS_IN_READING, LimsProcess.PROCESS_APPROVE_SAMPLES);

            }
            catch (Exception ex)
            {
                Comun.Save_log(ex.InnerException.ToString());
                throw new Exception("pivot data::approve::Error occured.", ex);
            }
        }