private void grdDataLocation_DoubleClick_1(object sender, EventArgs e) { OperationResult objOperationResult = new OperationResult(); var ServiceComponentId = grdDataLocation.Selected.Rows[0].Cells["v_ServiceComponentId"].Value.ToString(); var component = grdDataLocation.Selected.Rows[0].Cells["v_ComponentName"].Value.ToString(); var componentId = grdDataLocation.Selected.Rows[0].Cells["v_ComponentId"].Value.ToString(); var price = grdDataLocation.Selected.Rows[0].Cells["r_Price"].Value.ToString(); FormPrecioComponente frm = new FormPrecioComponente(component, price, "Change"); frm.ShowDialog(); var oservicecomponentDto = new servicecomponentDto(); var obj = _ServiceBL.GetServiceComponentsLiquidacion(ref objOperationResult, _serviceId); //var x = obj.Find(p => p.v_ComponentId == componentId); oservicecomponentDto.v_ServiceComponentId = ServiceComponentId; oservicecomponentDto.r_Price = frm.Precio; _ServiceBL.ActualizarPrecioComponente(oservicecomponentDto.r_Price.Value, oservicecomponentDto.v_ServiceComponentId); var dataListPc = _ServiceBL.GetServiceComponentsLiquidacion(ref objOperationResult, _serviceId); grdDataLocation.DataSource = dataListPc; float Total = 0; foreach (var item in dataListPc) { Total = Total + item.r_Price.Value; } lblCostoTotal.Text = Total.ToString(); }
private void btnOK_Click(object sender, EventArgs e) { if (_auxiliaryExams == null) { _auxiliaryExams = new List <ServiceComponentList>(); } // Save ListView / recorrer la lista de examenes seleccionados foreach (ListViewItem item in lvExamenesSeleccionados.Items) { var fields = item.SubItems; var serviceComponentConcatId = fields[1].Text.Split('|'); var NombreComponente = fields[0].Text.Split('|'); foreach (var scid in serviceComponentConcatId) { FormPrecioComponente frm = new FormPrecioComponente(NombreComponente[0].ToString()); frm.ShowDialog(); ServiceComponentList auxiliaryExam = new ServiceComponentList(); //auxiliaryExam.v_ServiceComponentId = scid; //_auxiliaryExams.Add(auxiliaryExam); servicecomponentDto objServiceComponentDto = new servicecomponentDto(); OperationResult objOperationResult = new OperationResult(); ServiceBL _ObjServiceBL = new ServiceBL(); objServiceComponentDto.v_ServiceId = _serviceId; objServiceComponentDto.i_ExternalInternalId = (int)Common.ComponenteProcedencia.Interno; objServiceComponentDto.i_ServiceComponentTypeId = 1; objServiceComponentDto.i_IsVisibleId = 1; objServiceComponentDto.i_IsInheritedId = (int)Common.SiNo.NO; objServiceComponentDto.d_StartDate = null; objServiceComponentDto.d_EndDate = null; objServiceComponentDto.i_index = 1; objServiceComponentDto.r_Price = frm.Precio; objServiceComponentDto.v_ComponentId = scid; objServiceComponentDto.i_IsInvoicedId = (int)Common.SiNo.NO; objServiceComponentDto.i_ServiceComponentStatusId = (int)Common.ServiceStatus.PorIniciar; objServiceComponentDto.i_QueueStatusId = (int)Common.QueueStatusId.LIBRE; //objServiceComponentDto.i_IsRequiredId = (int)Common.SiNo.SI; objServiceComponentDto.i_Iscalling = (int)Common.Flag_Call.NoseLlamo; //objServiceComponentDto.i_Iscalling_1 = (int)Common.Flag_Call.NoseLlamo; objServiceComponentDto.i_IsManuallyAddedId = (int)Common.SiNo.NO; objServiceComponentDto.i_IsRequiredId = (int)Common.SiNo.SI; //_calendarBL.UpdateAdditionalExam(_auxiliaryExams, _serviceId, (int?)SiNo.SI, Globals.ClientSession.GetAsList()); _ObjServiceBL.AddServiceComponent(ref objOperationResult, objServiceComponentDto, Globals.ClientSession.GetAsList()); } } MessageBox.Show("Se grabo correctamente", " ¡ INFORMACIÓN !", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; }
private void btnOK_Click(object sender, EventArgs e) { if (cboMedico.SelectedValue.ToString() == "-1") { MessageBox.Show("Seleccionar un médico tratante", " ¡ VALIDACIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (_auxiliaryExams == null) { _auxiliaryExams = new List <ServiceComponentList>(); } // Save ListView / recorrer la lista de examenes seleccionados foreach (ListViewItem item in lvExamenesSeleccionados.Items) { var fields = item.SubItems; var ComponentId = fields[1].Text.Split('|'); var NombreComponente = fields[0].Text.Split('|'); MedicalExamBL objComponentBL = new MedicalExamBL(); componentDto objComponentDto = new componentDto(); OperationResult objOperationResult = new OperationResult(); foreach (var scid in ComponentId) { var conCargoA = -1; if (_type == "Hospi") { var oFrmType = new frmType(); oFrmType.ShowDialog(); if (oFrmType._conCargoA == "Médico") { conCargoA = 1; } else { conCargoA = 2; } } objComponentDto = objComponentBL.GetMedicalExam(ref objOperationResult, scid); SystemParameterBL oSp = new SystemParameterBL(); var o = oSp.GetSystemParameter(ref objOperationResult, 116, int.Parse(objComponentDto.i_CategoryId.ToString())); //Lógica de Aumento de Precio Base var porcentajes = o.v_Field.Split('-'); float p1 = porcentajes[0] == null ? 0 : float.Parse(porcentajes[0].ToString()); float p2 = porcentajes[1] == null ? 0 : float.Parse(porcentajes[1].ToString()); float pb = objComponentDto.r_BasePrice.Value; var precio_base = pb + (pb * p1 / 100) + (pb * p2 / 100); //FormPrecioComponente frm = new FormPrecioComponente("", "", ""); //frmConfigSeguros frm1 = new frmConfigSeguros(0, 0, 0, "", ""); ServiceComponentList auxiliaryExam = new ServiceComponentList(); servicecomponentDto objServiceComponentDto = new servicecomponentDto(); ServiceBL _ObjServiceBL = new ServiceBL(); TicketBL oTicketBL = new TicketBL(); if (_modo == "ASEGU") { #region OLD Logica antigua #region Conexion SAM //ConexionSigesoft conectasam = new ConexionSigesoft(); //conectasam.opensigesoft(); #endregion #region Query //var componente = NombreComponente[0].ToString(); //var cadena1 = "select PL.i_EsDeducible, PL.i_EsCoaseguro, PL.d_Importe, PL.d_ImporteCo from [dbo].[plan] PL where PL.v_IdUnidadProductiva='" + lineId + "' and PL.v_ProtocoloId='" + _protocolId + "' "; //SqlCommand comando = new SqlCommand(cadena1, connection: conectasam.conectarsigesoft); //SqlDataReader lector = comando.ExecuteReader(); //int deducible = 0; //int coaseguro = 0; //decimal? importe = 0; //decimal? importeCo = 0; //while (lector.Read()) //{ // deducible = int.Parse(lector.GetValue(0).ToString()); coaseguro = int.Parse(lector.GetValue(1).ToString()); importe = decimal.Parse(lector.GetValue(2).ToString()); importeCo = decimal.Parse(lector.GetValue(3).ToString()); //} //lector.Close(); //string factores = ""; string aseguradoraName = ""; string organizationId = ""; //var factorGlobal = ""; //var cadena2 = "select PR.r_PriceFactor, OO.v_Name, PR.v_CustomerOrganizationId from Organization OO inner join protocol PR On PR.v_AseguradoraOrganizationId = OO.v_OrganizationId where PR.v_ProtocolId ='" + _protocolId + "'"; //comando = new SqlCommand(cadena2, connection: conectasam.conectarsigesoft); //lector = comando.ExecuteReader(); //while (lector.Read()) //{ // factores = lector.GetValue(0).ToString(); // var factorArray = factores.Split('|');// factores[0].ToString().Split('|'); // factorGlobal = factorArray[0]; // aseguradoraName = lector.GetValue(1).ToString(); // organizationId = lector.GetValue(2).ToString(); //} //lector.Close(); //string empresa = ""; //var cadena3 = "select v_Name from Organization OO where OO.v_OrganizationId ='" + organizationId + "'"; //comando = new SqlCommand(cadena3, connection: conectasam.conectarsigesoft); //lector = comando.ExecuteReader(); //while (lector.Read()) //{ // empresa = lector.GetValue(0).ToString(); //} //lector.Close(); #endregion #region Lógica PARA SABER SI ES DEDUCIBLE O COASEGURO //if (rbNuevaConsulta.Checked)// QUIERE DECIR QUE ES UNA NUEVA ATENCION Y DEBE SER CONSIDERADO COMO DEDUCIBLE SIN FACTOR //{ // factorGlobal = "1"; // coaseguro = 0; // importeCo = null; //} //else if (rbAdicional.Checked) // QUIERE DECIR QUE ES UN COMPONENTE ADICIONAL Y DEBE SER CONSIDERADO COMO COASEGURO CON FACTOR //{ // deducible = 0; // importe = null; //} #endregion #region Formulario //precio_base = (float)objComponentDto.r_PriceSegus;// se cambia el precio inicial por el SEGUS //frmConfigSeguros frm1 = new frmConfigSeguros(deducible, coaseguro, importe, precio_base.ToString(), factorGlobal, importeCo); //frm1.Text = aseguradoraName + " / " + empresa; //frm1.ShowDialog(); #endregion #endregion #region Obteniendo los campos de la BD ConexionSigesoft conectasam = new ConexionSigesoft(); conectasam.opensigesoft(); var componente = NombreComponente[0].ToString(); var cadena = "select i_KindOfService from component where v_ComponentId='" + objComponentDto.v_ComponentId + "'"; SqlCommand comando = new SqlCommand(cadena, connection: conectasam.conectarsigesoft); SqlDataReader lector = comando.ExecuteReader(); int i_KindOfService = 0; while (lector.Read()) { try { i_KindOfService = int.Parse(lector.GetValue(0).ToString()); } catch (Exception exception) { MessageBox.Show(exception.Message, " ¡ ERROR !", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } lector.Close(); var cadena1 = "select PL.i_PlanId, PL.i_EsCoaseguro, PL.d_Importe, PL.d_ImporteCo " + "from [dbo].[plan] PL " + "where PL.v_IdUnidadProductiva='" + lineId + "' and PL.v_ProtocoloId='" + _protocolId + "' "; comando = new SqlCommand(cadena1, connection: conectasam.conectarsigesoft); lector = comando.ExecuteReader(); string PlanId = ""; int coaseguro = 0; decimal?importe = 0; decimal?importeCo = 0; while (lector.Read()) { try { PlanId = lector.GetValue(0).ToString(); coaseguro = int.Parse(lector.GetValue(1).ToString()); importe = decimal.Parse(lector.GetValue(2).ToString()); importeCo = decimal.Parse(lector.GetValue(3).ToString()); } catch (Exception exception) { MessageBox.Show(exception.Message, " ¡ ERROR !", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } lector.Close(); string factores = ""; string aseguradoraName = ""; string organizationId = ""; var factorGlobal = ""; var cadena2 = "select PR.r_PriceFactor, OO.v_Name, PR.v_CustomerOrganizationId " + "from Organization OO " + "inner join protocol PR On PR.v_AseguradoraOrganizationId = OO.v_OrganizationId " + "where PR.v_ProtocolId ='" + _protocolId + "'"; comando = new SqlCommand(cadena2, connection: conectasam.conectarsigesoft); lector = comando.ExecuteReader(); while (lector.Read()) { try { factores = lector.GetValue(0).ToString(); var factorArray = factores.Split('|');// factores[0].ToString().Split('|'); factorGlobal = factorArray[0]; aseguradoraName = lector.GetValue(1).ToString(); organizationId = lector.GetValue(2).ToString(); } catch (Exception exception) { MessageBox.Show(exception.Message, " ¡ ERROR !", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } lector.Close(); #endregion #region Según el tipo de componente se hace el calculo switch (i_KindOfService) { //CLINICA case 1: { if (objComponentDto.r_PriceSegus != 0) { objServiceComponentDto.r_Price = objComponentDto.r_PriceSegus; objServiceComponentDto.d_SaldoPaciente = importe; objServiceComponentDto.d_SaldoAseguradora = (decimal)objComponentDto.r_PriceSegus - importe; } else { frmConfigSeguros frm1 = new frmConfigSeguros("1"); frm1.ShowDialog(); objServiceComponentDto.r_Price = (float)frm1.nuevoPrecio; objServiceComponentDto.d_SaldoPaciente = importe; objServiceComponentDto.d_SaldoAseguradora = frm1.nuevoPrecio - importe; } } break; //SERVICIOS AUXILIARES case 2: { if (objComponentDto.r_PriceSegus != 0) { objServiceComponentDto.r_Price = objComponentDto.r_PriceSegus * float.Parse(factorGlobal); objServiceComponentDto.d_SaldoPaciente = importeCo * (decimal)objServiceComponentDto.r_Price / 100; objServiceComponentDto.d_SaldoAseguradora = (100 - importeCo) * (decimal)objServiceComponentDto.r_Price / 100; } else { frmConfigSeguros frm1 = new frmConfigSeguros(factorGlobal); frm1.ShowDialog(); objServiceComponentDto.r_Price = (float)frm1.nuevoPrecio; objServiceComponentDto.d_SaldoPaciente = importeCo * frm1.nuevoPrecio / 100; objServiceComponentDto.d_SaldoAseguradora = (100 - importeCo) * frm1.nuevoPrecio / 100; } } break; //HONORARIOS MÉDICOS Y/O QUIRURGICOS case 3: { if (objComponentDto.r_PriceSegus != 0) { objServiceComponentDto.r_Price = objComponentDto.r_PriceSegus * float.Parse(factorGlobal); objServiceComponentDto.d_SaldoPaciente = importeCo * (decimal)objServiceComponentDto.r_Price / 100; objServiceComponentDto.d_SaldoAseguradora = (100 - importeCo) * (decimal)objServiceComponentDto.r_Price / 100; } else { frmConfigSeguros frm1 = new frmConfigSeguros(factorGlobal); frm1.ShowDialog(); objServiceComponentDto.r_Price = (float)frm1.nuevoPrecio; objServiceComponentDto.d_SaldoPaciente = importeCo * frm1.nuevoPrecio / 100; objServiceComponentDto.d_SaldoAseguradora = (100 - importeCo) * frm1.nuevoPrecio / 100; } } break; } #endregion objServiceComponentDto.v_ServiceId = _serviceId; objServiceComponentDto.i_ExternalInternalId = (int)Common.ComponenteProcedencia.Interno; objServiceComponentDto.i_ServiceComponentTypeId = 1; objServiceComponentDto.i_IsVisibleId = 1; objServiceComponentDto.i_IsInheritedId = (int)Common.SiNo.NO; objServiceComponentDto.d_StartDate = null; objServiceComponentDto.d_EndDate = null; objServiceComponentDto.i_index = 1; objServiceComponentDto.v_ComponentId = scid; objServiceComponentDto.i_IsInvoicedId = (int)Common.SiNo.NO; objServiceComponentDto.i_ServiceComponentStatusId = (int)Common.ServiceStatus.PorIniciar; objServiceComponentDto.i_QueueStatusId = (int)Common.QueueStatusId.LIBRE; objServiceComponentDto.i_Iscalling = (int)Common.Flag_Call.NoseLlamo; objServiceComponentDto.i_Iscalling_1 = (int)Common.Flag_Call.NoseLlamo; objServiceComponentDto.i_IsManuallyAddedId = (int)Common.SiNo.NO; objServiceComponentDto.i_IsRequiredId = (int)Common.SiNo.SI; objServiceComponentDto.v_IdUnidadProductiva = txtUnidProdId.Text; objServiceComponentDto.i_MedicoTratanteId = int.Parse(cboMedico.SelectedValue.ToString()); if (rbNuevaConsulta.Checked) { objServiceComponentDto.i_TipoDesc = 1; } else if (rbAdicional.Checked) { objServiceComponentDto.i_TipoDesc = 2; } _ObjServiceBL.AddServiceComponent(ref objOperationResult, objServiceComponentDto, Globals.ClientSession.GetAsList()); #region Update a service agrega el PlanId cadena1 = "update service set " + "i_PlanId = '" + PlanId + "' " + "where v_ServiceId = '" + _serviceId + "' "; comando = new SqlCommand(cadena1, connection: conectasam.conectarsigesoft); lector = comando.ExecuteReader(); lector.Close(); #endregion } else { FormPrecioComponente frm = new FormPrecioComponente(NombreComponente[0].ToString(), precio_base.ToString(), ""); frm.ShowDialog(); objServiceComponentDto.i_ConCargoA = conCargoA; objServiceComponentDto.v_ServiceId = _serviceId; objServiceComponentDto.i_ExternalInternalId = (int)Common.ComponenteProcedencia.Interno; objServiceComponentDto.i_ServiceComponentTypeId = 1; objServiceComponentDto.i_IsVisibleId = 1; objServiceComponentDto.i_IsInheritedId = (int)Common.SiNo.NO; objServiceComponentDto.d_StartDate = null; objServiceComponentDto.d_EndDate = null; objServiceComponentDto.i_index = 1; objServiceComponentDto.r_Price = frm.Precio; objServiceComponentDto.v_ComponentId = scid; objServiceComponentDto.i_IsInvoicedId = (int)Common.SiNo.NO; objServiceComponentDto.i_ServiceComponentStatusId = (int)Common.ServiceStatus.PorIniciar; objServiceComponentDto.i_QueueStatusId = (int)Common.QueueStatusId.LIBRE; //objServiceComponentDto.i_IsRequiredId = (int)Common.SiNo.SI; objServiceComponentDto.i_Iscalling = (int)Common.Flag_Call.NoseLlamo; objServiceComponentDto.i_Iscalling_1 = (int)Common.Flag_Call.NoseLlamo; objServiceComponentDto.i_IsManuallyAddedId = (int)Common.SiNo.NO; objServiceComponentDto.i_IsRequiredId = (int)Common.SiNo.SI; objServiceComponentDto.v_IdUnidadProductiva = objComponentDto.v_IdUnidadProductiva; objServiceComponentDto.i_MedicoTratanteId = int.Parse(cboMedico.SelectedValue.ToString()); objServiceComponentDto.d_SaldoPaciente = 0; objServiceComponentDto.d_SaldoAseguradora = 0; _ObjServiceBL.AddServiceComponent(ref objOperationResult, objServiceComponentDto, Globals.ClientSession.GetAsList()); } } //Actualizo si son examenes adicionales if (_DataSource.Count > 0) { new AdditionalExamBL().UpdateAdditionalExamByComponentIdAndServiceId(ComponentId[0], _serviceId, Globals.ClientSession.i_SystemUserId); } } MessageBox.Show("Se grabo correctamente", " ¡ INFORMACIÓN !", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; }