public cod_conceptos Get(int id) { cod_conceptos oConcepto = new cod_conceptos(); try { using (cooperativaEntities bd = new cooperativaEntities()) { var regis = (from p in bd.cod_conceptos where p.id_concepto == id select p).Single(); oConcepto.id_concepto = regis.id_concepto; oConcepto.concepto = regis.concepto; oConcepto.orden_concepto = regis.orden_concepto; oConcepto.activo = regis.activo; oConcepto.id_formula = regis.id_formula; oConcepto.variable = regis.variable; oConcepto.tipo_signo = regis.tipo_signo; oConcepto.aplicacion = regis.aplicacion; oConcepto.concepto_particular = regis.concepto_particular; oConcepto.aplicar_iva = regis.aplicar_iva; oConcepto.aplicar_recargo = regis.aplicar_recargo; oConcepto.aplicar_descuento = regis.aplicar_descuento; return(oConcepto); } } catch (Exception ex) { return(oConcepto); } }
public void Save(cod_conceptos oConcepto) { cooperativaEntities bd = new cooperativaEntities(); bd.cod_conceptos.AddObject(oConcepto); bd.SaveChanges(); }
private void CargarSeleccion() { if (!_elimino) { cod_conceptos oConceptos = new cod_conceptos(); DataGridViewRow row = this.dgvConceptos.CurrentRow; int id = Convert.ToInt32(row.Cells[0].Value); oConceptos = oConceptoImplement.Get(id); //ver los atributos y cargarlos this.lblCodigo.Text = oConceptos.id_concepto.ToString(); this.txtDescripcion.Text = oConceptos.concepto; this.txtDescripcion.Enabled = false; //this.txtDuracion.Text= oConceptos.? this.txtVariable.Text = oConceptos.variable.ToString(); //this.txtVigenciaDesde.Text = oConceptos.? this.chkAplicaCargo.Checked = (bool)oConceptos.aplicar_recargo; this.chkAplicaIva.Checked = (bool)oConceptos.aplicar_iva; this.chkAplicaDescuento.Checked = (bool)oConceptos.aplicar_descuento; //this.cmbAplicacion.SelectedValue = oConceptos.¿? //this.cmbEstado.SelectedValue = oConceptos.? this.cmbFormula.SelectedValue = oConceptos.id_formula; this.cmbSigno.SelectedValue = oConceptos.tipo_signo; DeshabilitarBotones(); } }
private void ModificarConcepto() { HabilitarBotones(); this.gbDatos.Enabled = true; cod_conceptos oConceptos = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); DataGridViewRow row = this.dgvConceptos.CurrentRow; int id = Convert.ToInt32(row.Cells[0].Value); oConceptos = oConceptoImplement.Get(id); this.lblCodigo.Text = oConceptos.id_concepto.ToString(); //this.txtDescripcion.Text = oConceptos.concepto.ToString(); //this.txtDescripcion.Enabled = false; //this.cmbFormula.SelectedIndex = -1; //this.txtVariable.Text = oConceptos.variable.ToString(); //this.cmbAplicacion.SelectedIndex = -1; //this.txtVigenciaDesde.Text = string.Empty; //this.cmbEstado.SelectedIndex = -1; //this.cmbSigno.SelectedIndex = -1; //this.txtDuracion.Text = string.Empty; //this.chkAplicaIva.Checked = (bool) oConceptos.aplicar_iva; //this.chkAplicaCargo.Checked = (bool)oConceptos.aplicar_recargo; //this.chkAplicaDescuento.Checked = (bool)oConceptos.aplicar_descuento; //this.dgvConceptos.Enabled = false; }
private void AgregarConceptoComoParticular() { cod_conceptos oCod_Conceptos = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); conceptos_particulares oConceptosParticulares = new conceptos_particulares(); conceptosParticularesImplement oConceptosParticularesimplement = new conceptosParticularesImplement(); PeriodosImplement oPeriodosImplement = new PeriodosImplement(); string nuevoPeriodo = oPeriodosImplement.GetUltimoPeriodo(); if (nuevoPeriodo != "") { DataGridViewRow rowconcepto = this.dgvConceptos.CurrentRow; int idConcepto = Convert.ToInt32(rowconcepto.Cells[0].Value); oCod_Conceptos = oConceptoImplement.Get(idConcepto); oConceptosParticulares.id_concepto = idConcepto; oConceptosParticulares.id_socio = _idSocio; //oConceptosParticulares.id_factura = oCod_Conceptos.; oConceptosParticulares.id_periodo = nuevoPeriodo; oConceptosParticulares.importe = decimal.Parse(oCod_Conceptos.variable.ToString()); oConceptosParticulares.detalles = oCod_Conceptos.concepto; oConceptosParticulares.facturado = false; oConceptosParticularesimplement.Save(oConceptosParticulares); this.txtImporte.Text = oConceptosParticulares.importe.ToString(); this.cmbPeriodo.SelectedValue = oConceptosParticulares.id_periodo; } CargarGrillaConceptosParticulares(); btnActualizar.Visible = false; }
public void CargarCombo(ComboBox combo, string InsertaFila) { IList ListarConceptos = GetAll(); cod_conceptos oConcepto = new cod_conceptos(); oConcepto.id_concepto = 0; oConcepto.concepto = InsertaFila; ListarConceptos.Insert(0, oConcepto); combo.DisplayMember = "concepto"; combo.ValueMember = "id_concepto"; combo.DataSource = ListarConceptos; }
public void AgregarDetalle(facturas_detalles oFacturaDetalle) { cod_conceptos oConcepto = new cod_conceptos(); ConceptoImplement oConceptoImpl = new ConceptoImplement(); oConcepto = oConceptoImpl.Get(oFacturaDetalle.id_concepto.Value); DataRow registro = _TablaGrilla.NewRow(); registro["id_detalle"] = oFacturaDetalle.id_detalle; registro["id_concepto"] = oFacturaDetalle.id_concepto; registro["id_factura"] = oFacturaDetalle.id_factura; registro["id_orden"] = oFacturaDetalle.idOrden; registro["id_Tipo"] = oFacturaDetalle.idTipo; registro["concepto"] = oConcepto.concepto; registro["importe"] = Math.Round(oFacturaDetalle.importe, 2); _TablaGrilla.Rows.Add(registro); this.dgDetalleFut.DataSource = _TablaGrilla; }
public void Update(cod_conceptos oConcepto) { using (cooperativaEntities bd = new cooperativaEntities()) { //var editar = (from p in bd.cod_conceptos // where p.id_concepto == oConcepto.id_concepto // select p).Single(); //editar.id_formula = oConcepto.id_formula; //editar.concepto = oConcepto.concepto; //editar.orden_concepto = oConcepto.orden_concepto; //editar.activo = oConcepto.activo; //editar.id_formula = oConcepto.id_formula; //editar.variable = oConcepto.variable; //editar.tipo_signo = oConcepto.tipo_signo; //editar.concepto_particular = oConcepto.concepto_particular; //editar.aplicar_iva = oConcepto.aplicar_iva; //editar.aplicar_recargo = oConcepto.aplicar_recargo; //editar.aplicar_descuento = oConcepto.aplicar_descuento; //bd.SaveChanges(); } }
private void Guardar() { cod_conceptos oConceptos = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); if (this.lblCodigo.Text == "") { oConceptos.concepto = this.txtDescripcion.Text; oConceptos.id_formula = this.cmbFormula.SelectedIndex; oConceptos.variable = Decimal.Parse(this.txtVariable.Text); //oConceptos. = this.cmbAplicacion.SelectedIndex; //oConceptos. = this.txtVigenciaDesde.Text; //oConceptos. = this.cmbEstado.SelectedIndex; oConceptos.tipo_signo = this.cmbSigno.SelectedIndex; //oConceptos. = this.txtDuracion.Text; oConceptos.aplicar_iva = this.chkAplicaIva.Checked; oConceptos.aplicar_recargo = this.chkAplicaCargo.Checked; oConceptos.aplicar_descuento = this.chkAplicaDescuento.Checked; oConceptoImplement.Save(oConceptos); } else { DataGridViewRow row = this.dgvConceptos.CurrentRow; int id = Convert.ToInt32(row.Cells[0].Value); oConceptos = oConceptoImplement.Get(id); // oCalle.calle = this.txtNombre.Text; // oCalle.normalizado = this.txtNormalizado.Text; oConceptoImplement.Update(oConceptos); } DeshabilitarBotones(); Limpiar(); CargarGrid(); }
private void Refacturar1() { decimal NetoConIVA = 0; decimal NetoSinIVA = 0; decimal SubTotal = 0; SocioConexionImplement oSocioConexionImplement = new SocioConexionImplement(); DataTable DTMedidores = oSocioConexionImplement.GetEstadosMedidores(); IList listaConceptos = new ConceptoImplement().GetActivosAll(); DataTable DTUsuariosAFacturar = oSocioConexionImplement.GetSociosAFacturar(_periodo, _idSocio); _oFactura = new facturas(); _oFactura.id_socio = _idSocio; //oFactura.id_medicion Ver como soluciono el idMedicion _oFactura.id_estadoPago = 1; //Impaga _oFactura.id_tarifa = 0; //aun no se carga _oFactura.id_convenio = 0; //Aun no se carga _oFactura.fechaPago = null; _oFactura.cobrado = 0; _oFactura.neto1 = 0; _oFactura.neto2 = 0; _oFactura.importeNeto = 0; _oFactura.importeTotal = 0; _oFactura.id_medicion = 0; if (DTUsuariosAFacturar.Rows[0]["medidor"].ToString() != "") { //preguntar como hago con la medicion? //socios_mediciones oSocioMedicionActual = new socios_mediciones(); //SocioMedicionImplement oSocioMedicionImplement = new SocioMedicionImplement(); //oSocioMedicionActual = oSocioMedicionImplement.ultimaMedicion(_idSocio); //socios_mediciones oSocioMedicionNew = new socios_mediciones(); //oSocioMedicionNew.fecha_lectura = null; //oSocioMedicionNew.id_socio =_idSocio; NetoConIVA = 0; NetoSinIVA = 0; foreach (cod_conceptos oConcepto in listaConceptos) { bool CorrespondeFacturar = false; if (DTUsuariosAFacturar.Rows[0]["medidor"].ToString() != "") { //SocioMedicionImplement oSosioMedicionImpl = new SocioMedicionImplement(); //socios_mediciones oSocioMedicion = new socios_mediciones(); //oSocioMedicion = oSosioMedicionImpl.Get(oFactura.id_medicion.Value); } acciones oAccion = new acciones(); conceptos_particulares oConceptoParticular = new conceptos_particulares(); conceptosParticularesImplement oConceptoParticularImplement = new conceptosParticularesImplement(); AccionImplement oAccionesImplement = new AccionImplement(); if (oConcepto.aplicacion == 2) { // si concepto Particular oConceptoParticular = oConceptoParticularImplement.GetByFilter(_idSocio, oConcepto.id_concepto, _periodo); if (oConceptoParticular != null) { CorrespondeFacturar = true; } else { // No encontrado entonces no corresponde facturar CorrespondeFacturar = false; } } else { //Concepto Activo y no particular entonces corresponde facturar CorrespondeFacturar = true; } if (CorrespondeFacturar) { facturas_detalles oDetalle = new facturas_detalles(); FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); //ConvenioImplement oConvenioImplement = new ConvenioImplement(); CalculosFacturacionFormulas oCalculosFacturacionFormulas = new CalculosFacturacionFormulas(); oDetalle = oCalculosFacturacionFormulas.getDetalle(_idSocio, decimal.Parse(DTUsuariosAFacturar.Rows[0]["cargo_fijo"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[0]["abono"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[0]["valor_m3"].ToString()), oConcepto, _oFactura, oConceptoParticular); if (oDetalle.importe != 0) { AgregarDetalle(oDetalle); } // Calcula los subtotales separados para los conceptos con y sin IVA if (oConcepto.aplicar_iva.Value) { NetoConIVA = NetoConIVA + oDetalle.importe; } else { NetoSinIVA = NetoSinIVA + oDetalle.importe; } // Calcula los campos Neto1 y Neto2 utilizados en los // cálculos de intereses if (oConcepto.aplicar_recargo.Value) { _oFactura.neto1 = _oFactura.neto1.Value + Convert.ToSingle(oDetalle.importe); } else { _oFactura.neto2 = _oFactura.neto2.Value + Convert.ToSingle(oDetalle.importe); } } } // Obtiene el subtotal general como suma de los // subtotales parciales con y sin IVA SubTotal = NetoConIVA + NetoSinIVA; // Redondea el subtotal a dos dígitos SubTotal = decimal.Round(SubTotal, 2); // Registra el subtotal general _oFactura.importeNeto = Convert.ToSingle(SubTotal); // Calcula IVA (sólo para los conceptos que corresponde) facturas_detalles oFacDetalle = new facturas_detalles(); FacturasDetallesImplement oFacDetalleImplement = new FacturasDetallesImplement(); cod_conceptos oConceptoIVA = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); oConceptoIVA = oConceptoImplement.Get(23);//concepto IVA es el 23 oFacDetalle.id_concepto = oConceptoIVA.id_concepto; oFacDetalle.id_factura = 0; oFacDetalle.idOrden = oConceptoIVA.orden_concepto; oFacDetalle.idTipo = 0; oFacDetalle.importe = decimal.Round(NetoConIVA * decimal.Parse(DTUsuariosAFacturar.Rows[0]["iva"].ToString()) / 100, 2); AgregarDetalle(oFacDetalle); // Calcula Total _oFactura.importeTotal = _oFactura.importeNeto.Value + Convert.ToSingle(oFacDetalle.importe); //este ahi que ver el tipo de dato //// Generar entradas en la base de CuentasCorrientes //CuentaCorrienteImplement oCuentaCorrienteImplement = new CuentaCorrienteImplement(); //cuentas_corrientes oCuentaCorriente = new cuentas_corrientes(); //oCuentaCorriente.fecha = DateTime.Now; //oCuentaCorriente.id_factura = _idFactura; //oCuentaCorriente.id_movimiento = 1; //oCuentaCorriente.id_socio = _idSocio; //oCuentaCorriente.importe_credito = 0; //oCuentaCorriente.importe_saldo = 0; //oCuentaCorriente.importe_debito = Convert.ToDecimal(oFactura.importeTotal); //oCuentaCorriente.id_cobranza = 0; //oCuentaCorrienteImplement.Save(oCuentaCorriente); } }
private void CargarFacturaFutura(string periodo, int idSocio) { decimal NetoConIVA = 0; decimal NetoSinIVA = 0; int idMedidor = 0; facturas oFactura = new facturas(); FacturasImplement oFacturaImplement = new FacturasImplement(); oFactura = oFacturaImplement.Get(_idFactura); _oFactura = new facturas(); _oFactura.id_socio = _idSocio; //oFactura.id_medicion Ver como soluciono el idMedicion _oFactura.id_estadoPago = 1; //Impaga _oFactura.id_tarifa = 0; //aun no se carga _oFactura.id_convenio = 0; //Aun no se carga _oFactura.fechaPago = null; _oFactura.cobrado = 0; _oFactura.neto1 = 0; _oFactura.neto2 = 0; _oFactura.importeNeto = 0; _oFactura.importeTotal = 0; _oFactura.id_medicion = 0; // obtengo solo los conceptos activos IList listaConceptos = new ConceptoImplement().GetActivosAll(); SocioConexionImplement oSocioConexionImpl = new SocioConexionImplement(); DataTable DTUsuariosAFacturar = oSocioConexionImpl.GetSociosAFacturar(periodo, idSocio); if (DTUsuariosAFacturar.Rows[0]["medidor"].ToString() != "") { socios_mediciones oSocioMedicionActual = new socios_mediciones(); SocioMedicionImplement oSocioMedicionImplement = new SocioMedicionImplement(); oSocioMedicionActual = oSocioMedicionImplement.ultimaMedicion(int.Parse(DTUsuariosAFacturar.Rows[0]["id_socio"].ToString())); socios_mediciones oSocioMedicionNew = new socios_mediciones(); oSocioMedicionNew.fecha_lectura = null; oSocioMedicionNew.id_socio = _idSocio; decimal consumo = 0; if (oSocioMedicionActual != null) { consumo = (decimal)decimal.Parse((oSocioMedicionActual.consumo * 0.75).ToString()); oSocioMedicionNew.consumo = (int)Math.Truncate(consumo); oSocioMedicionNew.lectura = oSocioMedicionActual.lectura + oSocioMedicionNew.consumo; } else { oSocioMedicionNew.consumo = 0; oSocioMedicionNew.lectura = 0; } idMedidor = oSocioMedicionImplement.Save(oSocioMedicionNew); } _oFactura.id_medicion = idMedidor;//Cargo 0 si no tiene medidor // recorre toda la base de conceptos foreach (cod_conceptos oConcepto in listaConceptos) { bool CorrespondeFacturar = false; if (_oFactura.id_medicion.Value != 0) { //SocioMedicionImplement oSosioMedicionImpl = new SocioMedicionImplement(); //socios_mediciones oSocioMedicion = new socios_mediciones(); //oSocioMedicion = oSosioMedicionImpl.Get(oFactura.id_medicion.Value); } acciones oAccion = new acciones(); conceptos_particulares oConceptoParticular = new conceptos_particulares(); conceptosParticularesImplement oConceptoParticularImplement = new conceptosParticularesImplement(); AccionImplement oAccionesImplement = new AccionImplement(); if (oConcepto.aplicacion == 2) { // si concepto Particular oConceptoParticular = oConceptoParticularImplement.GetByFilter(idSocio, oConcepto.id_concepto, _oFactura.id_periodo); if (oConceptoParticular != null) { CorrespondeFacturar = true; } else { // No encontrado entonces no corresponde facturar CorrespondeFacturar = false; } } else { //Concepto Activo y no particular entonces corresponde facturar CorrespondeFacturar = true; } if (CorrespondeFacturar) { facturas_detalles oDetalle = new facturas_detalles(); FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); //ConvenioImplement oConvenioImplement = new ConvenioImplement(); CalculosFacturacionFormulas oCalculosFacturacionFormulas = new CalculosFacturacionFormulas(); oDetalle = oCalculosFacturacionFormulas.getDetalle(idSocio, decimal.Parse(DTUsuariosAFacturar.Rows[0]["cargo_fijo"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[0]["abono"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[0]["valor_m3"].ToString()), oConcepto, _oFactura, oConceptoParticular); if (oDetalle.importe != 0) { AgregarDetalle(oDetalle); } // Calcula los subtotales separados para los conceptos con y sin IVA if (oConcepto.aplicar_iva.Value) { NetoConIVA = NetoConIVA + oDetalle.importe; } else { NetoSinIVA = NetoSinIVA + oDetalle.importe; } // Calcula los campos Neto1 y Neto2 utilizados en los // cálculos de intereses if (oConcepto.aplicar_recargo.Value) { oFactura.neto1 = oFactura.neto1.Value + Convert.ToSingle(oDetalle.importe); } else { oFactura.neto2 = oFactura.neto2.Value + Convert.ToSingle(oDetalle.importe); } } } cod_conceptos oConceptoIVA = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); facturas_detalles oDetalleFac = new facturas_detalles(); oConceptoIVA = oConceptoImplement.Get(23);//concepto IVA es el 23 oDetalleFac.id_concepto = oConceptoIVA.id_concepto; oDetalleFac.id_factura = 0; oDetalleFac.idOrden = oConceptoIVA.orden_concepto; oDetalleFac.idTipo = 0; oDetalleFac.importe = decimal.Round(NetoConIVA * decimal.Parse(DTUsuariosAFacturar.Rows[0]["iva"].ToString()) / 100, 2); AgregarDetalle(oDetalleFac); }
private void Iniciar() { sys_configuracion oSysConfig = new sys_configuracion(); SysConfigImplement oSysConfigImplement = new SysConfigImplement(); oSysConfig = oSysConfigImplement.GetByNombre("CantVencimientos"); int CantUsuarios = 0; decimal NetoConIVA = 0; decimal NetoSinIVA = 0; decimal SubTotal = 0; switch (int.Parse(oSysConfig.valor)) { case 1: //No hace nada porque el primer se establece por defecto break; case 2: for (int i = 1; i <= (int.Parse(this.nudCantidad.Value.ToString()) - 1); i++) { DateTimePicker fecha1 = (DateTimePicker)tcPeriodos.Controls.Find("dtpPrimerVencimiento" + i, true)[0]; DateTimePicker fecha2 = (DateTimePicker)tcPeriodos.Controls.Find("dtpSegundoVencimiento" + i, true)[0]; if (fecha2.Value <= fecha1.Value) { string msg = "Debe establecer las fechas para los 2 vencimientos y éstas " + "no pueden ser iguales, controlar fechas indicadas en el periodo " + (i - 1).ToString(); MessageBox.Show(msg); } } break; case 3: for (int i = 1; i <= (int.Parse(this.nudCantidad.Value.ToString()) + 1); i++) { DateTimePicker fecha1 = (DateTimePicker)tcPeriodos.Controls.Find("dtpPrimerVencimiento" + i, true)[0]; DateTimePicker fecha2 = (DateTimePicker)tcPeriodos.Controls.Find("dtpSegundoVencimiento" + i, true)[0]; if (fecha2.Value <= fecha1.Value) { string msg = "Debe establecer las fechas para los 2 vencimientos y éstas " + "no pueden ser iguales, controlar fechas indicadas en el periodo " + (i - 1).ToString(); MessageBox.Show(msg); } } break; } // Verificar que se hayan cargado los estados de los medidores SocioConexionImplement oSocioConexionImplement = new SocioConexionImplement(); DataTable DTMedidores = oSocioConexionImplement.GetEstadosMedidores(); if (DTMedidores.Rows.Count > 0) { string msg2 = "No se puede efectuar el proceso de facturación porque existen " + "socios de servicio medido que no tienen informado el estado del " + "medidor. \n El estado del medidor debe ser " + "informado siempre, si por algún motivo no se efectuó la lectura, " + "coloque un valor estimado en el campo 'Lectura' pero no informe " + "la fecha de lectura en el campo 'Fecha Lectura', en la factura " + "se informará al socio que el valor de M3 consumidos fué estimado /n" + "El proceso de facturación no puede continuar."; MessageBox.Show(msg2); } // Pide confirmar el proceso de facturación string msj2 = ""; if (int.Parse(this.nudCantidad.Value.ToString()) > 1) { msj2 = "Está Ud. realmente seguro de querer comenzar el proceso de " + "facturación ?. \nEste proceso no puede ser " + "cancelado y al facturarse más de un período sólo puede " + "anularse la facturación del último período pero no de los " + "períodos anteriores"; } else { msj2 = "Está Ud. realmente seguro de querer comenzar el proceso de " + "facturación ?. \nEste proceso no puede ser " + "cancelado, aunque sí es reversible, es decir que una vez " + "finalizado el proceso se puede anular \n toda la facturación " + "y volver a efectuarla"; } DialogResult dialogResult = MessageBox.Show(msj2, "Confirmar facturación", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { // Hay que inhabilitar los forms porque el proceso no puede detenerse DeshabilitarControles(); // Guarda la cantidad de usuarios para utilizar la misma cantidad en // todos los períodos a facturar // obtengo solo los conceptos activos IList listaConceptos = new ConceptoImplement().GetActivosAll(); for (int i = 0; i < (int.Parse(this.nudCantidad.Value.ToString())); i++) { TextBox textPeriodo = (TextBox)this.Controls.Find("txtPeriodo" + i, true)[0]; string idPeriodo = textPeriodo.Text.Substring(3, 4) + textPeriodo.Text.Substring(0, 2); DataTable DTUsuariosAFacturar = oSocioConexionImplement.GetSociosAFacturar(idPeriodo); //Repetir el proceso de facturación para todas las solapas (periodos) seleccionados CantUsuarios = DTUsuariosAFacturar.Rows.Count; this.txtUsuariosAFacturar.Text = CantUsuarios.ToString(); this.txtUsuariosFacturados.Text = "0"; this.txtUsuariosFaltantes.Text = CantUsuarios.ToString(); this.pbEstado.Value = 0; // Cartel indicativo del proceso que se está efectuando this.tcPeriodos.TabIndex = i; // Guarda el número 'ProxFactura' del proceso anterior por si se desea // anular la facturación en curso (obviamente luego que termine) //sys_configuracion oSysProxFacturaAnterior = new sys_configuracion(); //oSysProxFacturaAnterior = oSysConfigImplement.GetByNombre("ProxFacturaAnt"); //sys_configuracion oSysProxFactura = new sys_configuracion(); //oSysProxFactura = oSysConfigImplement.GetByNombre("ProxFactura"); //oSysProxFacturaAnterior.valor = oSysProxFactura.valor; //oSysConfigImplement.Update(oSysProxFacturaAnterior); // Guardo las fechas de vencimiento en la tabla periodos periodos oPeriodo = new periodos(); PeriodosImplement oPeriodosImplement = new PeriodosImplement(); oPeriodo = oPeriodosImplement.Get(idPeriodo); this.txtProceso.Text = "Se esta procesando el periodo " + idPeriodo; this.txtProceso.Visible = true; Application.DoEvents(); oPeriodo.fecha_facturacion = this.dtpFecha.Value; DateTimePicker dtpPrimerVenc = (DateTimePicker)this.Controls.Find("dtpPrimerVencimiento" + i, true)[0]; oPeriodo.fecha_primer_venc = dtpPrimerVenc.Value; DateTimePicker dtpSegundoVenc = (DateTimePicker)this.Controls.Find("dtpSegundoVencimiento" + i, true)[0]; if (dtpSegundoVenc.Value.ToString() != "") { oPeriodo.fecha_segundo_venc = dtpSegundoVenc.Value; } oPeriodo.fecha_tercer_venc = null; oPeriodo.facturado = true; FacturasImplement oFacturasImplement = new FacturasImplement(); int cantUsuario = DTUsuariosAFacturar.Rows.Count; this.pbEstado.Maximum = cantUsuario; for (int j = 0; j < cantUsuario; j++) { this.pbEstado.Value = j; facturas oFactura = new facturas(); FacturasImplement oFacturaImplement = new FacturasImplement(); oFactura.id_periodo = idPeriodo; oFactura.id_socio = int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString()); //oFactura.id_medicion Ver como soluciono el idMedicion oFactura.id_estadoPago = 1; //Impaga oFactura.id_tarifa = 0; //aun no se carga oFactura.id_convenio = 0; //Aun no se carga oFactura.fechaPago = null; oFactura.cobrado = 0; oFactura.neto1 = 0; oFactura.neto2 = 0; oFactura.importeNeto = 0; oFactura.importeTotal = 0; int idFactura = 0; idFactura = oFacturasImplement.Save(oFactura); /* Si corresponde calcula los consumos estimados, además transfiere * los valores de los campos de datos actuales a los campos de * los datos anteriores*/ int idMedidor = 0; if (DTUsuariosAFacturar.Rows[j]["medidor"].ToString() != "") { socios_mediciones oSocioMedicionActual = new socios_mediciones(); SocioMedicionImplement oSocioMedicionImplement = new SocioMedicionImplement(); oSocioMedicionActual = oSocioMedicionImplement.ultimaMedicion(int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString())); socios_mediciones oSocioMedicionNew = new socios_mediciones(); oSocioMedicionNew.fecha_lectura = null; oSocioMedicionNew.id_socio = int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString()); if (i <= (int.Parse(this.nudCantidad.Value.ToString()) - 1)) { decimal consumo = 0; if (oSocioMedicionActual != null) { consumo = (decimal)decimal.Parse((oSocioMedicionActual.consumo * 0.75).ToString()); oSocioMedicionNew.consumo = (int)Math.Truncate(consumo); oSocioMedicionNew.lectura = oSocioMedicionActual.lectura + oSocioMedicionNew.consumo; } else { oSocioMedicionNew.consumo = 0; oSocioMedicionNew.lectura = 0; } } else { oSocioMedicionNew.consumo = 0; oSocioMedicionNew.lectura = 0; } idMedidor = oSocioMedicionImplement.Save(oSocioMedicionNew); } oFactura.id_medicion = idMedidor; //Cargo 0 si no tiene medidor // Limpia las variables de subtotales con y sin IVA NetoConIVA = 0; NetoSinIVA = 0; //Para cada socio, recorre toda la base de conceptos foreach (cod_conceptos oConcepto in listaConceptos) { bool CorrespondeFacturar = false; if (oFactura.id_medicion.Value != 0) { //SocioMedicionImplement oSosioMedicionImpl = new SocioMedicionImplement(); //socios_mediciones oSocioMedicion = new socios_mediciones(); //oSocioMedicion = oSosioMedicionImpl.Get(oFactura.id_medicion.Value); } acciones oAccion = new acciones(); conceptos_particulares oConceptoParticular = new conceptos_particulares(); conceptosParticularesImplement oConceptoParticularImplement = new conceptosParticularesImplement(); AccionImplement oAccionesImplement = new AccionImplement(); if (oConcepto.aplicacion == 2) { // si concepto Particular oConceptoParticular = oConceptoParticularImplement.GetByFilter(int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString()), oConcepto.id_concepto, oFactura.id_periodo); if (oConceptoParticular != null) { CorrespondeFacturar = true; } else { // No encontrado entonces no corresponde facturar CorrespondeFacturar = false; } } else { //Concepto Activo y no particular entonces corresponde facturar CorrespondeFacturar = true; } if (CorrespondeFacturar) { facturas_detalles oDetalle = new facturas_detalles(); FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); //ConvenioImplement oConvenioImplement = new ConvenioImplement(); CalculosFacturacionFormulas oCalculosFacturacionFormulas = new CalculosFacturacionFormulas(); oDetalle = oCalculosFacturacionFormulas.getDetalle(int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[j]["cargo_fijo"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[j]["abono"].ToString()), decimal.Parse(DTUsuariosAFacturar.Rows[j]["valor_m3"].ToString()), oConcepto, oFactura, oConceptoParticular); if (oDetalle.importe != 0) { oFacturasDetallesImplement.Save(oDetalle); } this.txtUsuariosFacturados.Text = j.ToString(); this.txtUsuariosFaltantes.Text = (int.Parse(this.txtUsuariosAFacturar.Text) - j).ToString(); Application.DoEvents(); // Calcula los subtotales separados para los conceptos con y sin IVA if (oConcepto.aplicar_iva.Value) { NetoConIVA = NetoConIVA + oDetalle.importe; } else { NetoSinIVA = NetoSinIVA + oDetalle.importe; } // Calcula los campos Neto1 y Neto2 utilizados en los // cálculos de intereses if (oConcepto.aplicar_recargo.Value) { oFactura.neto1 = oFactura.neto1.Value + Convert.ToSingle(oDetalle.importe); } else { oFactura.neto2 = oFactura.neto2.Value + Convert.ToSingle(oDetalle.importe); } } } // Obtiene el subtotal general como suma de los // subtotales parciales con y sin IVA SubTotal = NetoConIVA + NetoSinIVA; // Redondea el subtotal a dos dígitos SubTotal = decimal.Round(SubTotal, 2); // Registra el subtotal general oFactura.importeNeto = Convert.ToSingle(SubTotal); // Calcula IVA (sólo para los conceptos que corresponde) facturas_detalles oFacDetalle = new facturas_detalles(); FacturasDetallesImplement oFacDetalleImplement = new FacturasDetallesImplement(); cod_conceptos oConceptoIVA = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); oConceptoIVA = oConceptoImplement.Get(23);//concepto IVA es el 23 oFacDetalle.id_concepto = oConceptoIVA.id_concepto; oFacDetalle.id_factura = oFactura.id_factura; oFacDetalle.idOrden = oConceptoIVA.orden_concepto; oFacDetalle.idTipo = 0; oFacDetalle.importe = decimal.Round(NetoConIVA * decimal.Parse(DTUsuariosAFacturar.Rows[j]["iva"].ToString()) / 100, 2); oFacDetalleImplement.Save(oFacDetalle); // Calcula Total oFactura.importeTotal = oFactura.importeNeto.Value + Convert.ToSingle(oFacDetalle.importe); //este ahi que ver el tipo de dato oFactura.id_factura = idFactura; oFacturaImplement.Update(oFactura); // Generar entradas en la base de CuentasCorrientes CuentaCorrienteImplement oCuentaCorrienteImplement = new CuentaCorrienteImplement(); cuentas_corrientes oCuentaCorriente = new cuentas_corrientes(); oCuentaCorriente.fecha = DateTime.Now; oCuentaCorriente.id_factura = idFactura; oCuentaCorriente.id_movimiento = 1; oCuentaCorriente.id_socio = int.Parse(DTUsuariosAFacturar.Rows[j]["id_socio"].ToString()); oCuentaCorriente.importe_credito = 0; oCuentaCorriente.importe_saldo = 0; oCuentaCorriente.importe_debito = Convert.ToDecimal(oFactura.importeTotal); oCuentaCorriente.id_cobranza = 0; oCuentaCorrienteImplement.Save(oCuentaCorriente); // } } } } }
public facturas_detalles getDetalle(int idSocio, decimal cargoFijo, decimal abono, decimal valorM3, cod_conceptos oConcepto, facturas oFactura, conceptos_particulares oConceptoParticular) { SocioMedicionImplement oSocioMedicionImpl = new SocioMedicionImplement(); socios_mediciones oSocioMedicion = new socios_mediciones(); if (oFactura.id_medicion.Value!=0) oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value); acciones oAccion = new acciones(); AccionImplement oAccionesImplement = new AccionImplement(); facturas_detalles oDetalle = new facturas_detalles(); oDetalle.idOrden = oConcepto.orden_concepto; oDetalle.id_concepto = oConcepto.id_concepto; oDetalle.idTipo = 0; oDetalle.id_factura = oFactura.id_factura; ConvenioImplement oConvenioImplement = new ConvenioImplement(); switch (oConcepto.id_formula) { case 0: oDetalle.importe = cargoFijo; break; case 1: if (cargoFijo> 0) { oDetalle.importe = cargoFijo * oConcepto.variable.Value; } else { if (oFactura.id_medicion.Value != 0) {//revisar if ((oSocioMedicion.consumo - abono) <= 0) { // Si no hubo consumo excedente ... oDetalle.importe = abono * valorM3 * oConcepto.variable.Value; } else { // Si hubo consumo excedente ... decimal uno = (abono * valorM3); decimal dos = ((oSocioMedicion.consumo.Value - abono) * valorM3); oDetalle.importe = (uno + dos) * oConcepto.variable.Value; } } else { //Por que no tiene medidor usa el abono oDetalle.importe = abono * valorM3 * oConcepto.variable.Value; } } break; case 2: // Consumo excedente por ValorM3 // (Facturas.Consumo - Socios.Tarifa->Abono) * // Socios.Tarifa->ValorM3 if (oFactura.id_medicion.Value != 0) { oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value); if ((oSocioMedicion.consumo.Value - abono) > 0) { // ' Calcula sólo sobre el consumo excedente oDetalle.importe = (oSocioMedicion.consumo.Value - abono) * valorM3; } else { // No hubo consumo excedente oDetalle.importe = 0; } }else oDetalle.importe = 0; break; case 3: // ' Abono por ValorM3 //' Socios.Tarifa->Abono * Socios.Tarifa->ValorM3 oDetalle.importe = abono * valorM3; break; case 4: //' Consumo por ValorM3 por Variable //' Facturas.Consumo * Socios.Tarifa->ValorM3 * Conceptos.Variable if (oFactura.id_medicion.Value != 0) oDetalle.importe = oSocioMedicion.consumo.Value * valorM3 * oConcepto.variable.Value; else oDetalle.importe = 0; break; case 5: oAccion = oAccionesImplement.GetByIdSocio(idSocio); if (oAccion != null) { if (oAccion.cuotas > oAccion.facturadas) { oAccion.facturadas = oAccion.facturadas + 1; oAccionesImplement.Update(oAccion); oDetalle.importe = oAccion.valor_cuota; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } break; case 6: // Variable por Cuota Acciones // Acciones.ValorCuota * Conceptos.Variable // Buscar Acciones oAccion = oAccionesImplement.GetByIdSocio(idSocio); // Si encuentra un registro if (oAccion != null) { // Pregunta si no está finalizado if (oAccion.cuotas > oAccion.facturadas) { //Si no ha finalizado se factura una cuota más oAccion.facturadas = oAccion.facturadas + 1; oAccionesImplement.Update(oAccion); oDetalle.importe = oAccion.valor_cuota * oConcepto.variable.Value; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } break; case 7: // Cuota Convenio de pago // Convenios.ValorCuota decimal ImporteConvenios = 0; // Inicializa el campo en cero oDetalle.importe = 0; // Buscar Convenio IList ListConvenios = oConvenioImplement.GetAllBySocio(idSocio); foreach (convenios oConvenio in ListConvenios) { // Verifica que no se trate de un convenio judicial if (!oConvenio.convenio_judicial.Value) { //Pregunta si no está finalizado if (oConvenio.cuotas > oConvenio.facturadas) { //Si no ha finalizado se factura una cuota más oConvenio.facturadas = oConvenio.facturadas + 1; if (oConvenio.cuotas == oConvenio.facturadas) { oConvenio.finalizado = true; } oConvenioImplement.Update(oConvenio); ImporteConvenios = ImporteConvenios + oConvenio.valor_cuota; } } } oDetalle.importe = ImporteConvenios; break; case 8: // Variable por Cuota Convenio // Convenios.ValorCuota * Conceptos.Variable // Buscar Convenio IList ListaConvenios = oConvenioImplement.GetAllBySocio(idSocio); //Si encuentra un registro oDetalle.importe = 0; foreach (convenios oConvenio in ListaConvenios) { // Verifica que no se trate de un convenio judicial if (!oConvenio.convenio_judicial.Value) { //Pregunta si no está finalizado if (oConvenio.cuotas > oConvenio.facturadas) { oConvenio.facturadas = oConvenio.facturadas + 1; oConvenioImplement.Update(oConvenio); oDetalle.importe = oConvenio.valor_cuota * oConcepto.variable.Value; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } } break; case 9: //Importe fijo según concepto // Conceptos.Variable oDetalle.importe = oConcepto.variable.Value; break; case 10: // Importe variable que se calcula en el momento // (NO IMPLEMENTADO) break; case 11: // Importe fijo según Conceptos Particulares // ConceptosPartic.Importe oDetalle.importe = oConceptoParticular.importe; break; } return oDetalle; }
public decimal CalcularRecargo(int idFactura) { using (cooperativaEntities bd = new cooperativaEntities()) { Commons oCommons = new Commons(); MySqlCommand _comando = new MySqlCommand(String.Format( "call GetTotalRecargoByFactura('{0}')", idFactura), dbConectorMySql.ObtenerConexion()); MySqlDataReader _reader = _comando.ExecuteReader(); DataTable detallesCalc = new DataTable(); detallesCalc.Load(_reader); decimal Recargo = 0; Recargo = decimal.Parse(detallesCalc.Rows[0][0].ToString()); /*var detallesByFact = (from d in bd.facturas_detalles * join c in bd.cod_conceptos on d.id_concepto equals c.id_concepto * where d.id_factura == idFactura * select new * { * d.id_factura, * d.id_detalle, * d.id_concepto, * d.idOrden, * d.idTipo, * d.importe, * c.id_formula, * c.orden_concepto, * c.tipo_signo, * c.variable, * c.activo, * c.aplicar_descuento, * c.aplicar_iva, * c.aplicar_recargo, * c.concepto * }).ToList(); * DataTable detallesCalc = oCommons.convertToTable(detallesByFact); * * foreach (DataRow rowDet in detallesCalc.Rows) * { * if (bool.Parse(rowDet["aplicar_recargo"].ToString())) * Recargo = Recargo + decimal.Parse(rowDet["importe"].ToString()); * }*/ /* periodos oPeriodo = new periodos(); * PeriodosImplement oPeriososImplement = new PeriodosImplement(); * * * FacturasImplement oFacturasImplement = new FacturasImplement(); * oPeriodo = oPeriososImplement.Get(oFacturasImplement.Get(idFactura).id_periodo.ToString());*/ TimeSpan diferencia; DateTime fecha_primer_venc = new DateTime(); fecha_primer_venc = DateTime.Parse(detallesCalc.Rows[0][1].ToString()); if (fecha_primer_venc < DateTime.Today) { diferencia = DateTime.Today - DateTime.Parse(fecha_primer_venc.ToString()); } else { diferencia = DateTime.Today - DateTime.Today; } cod_conceptos oCod_conceptos = new cod_conceptos(); ConceptoImplement oConceptoImplement = new ConceptoImplement(); oCod_conceptos = oConceptoImplement.Get(18); decimal?days = diferencia.Days * oCod_conceptos.variable; decimal resultado = 0; if (days >= 0) { resultado = (decimal)days; } int idSocio = 0; idSocio = int.Parse(detallesCalc.Rows[0][2].ToString()); socios oSocio = new socios(); SocioImplement oSocioImplement = new SocioImplement(); oSocio = oSocioImplement.Get(idSocio); tarifas oTarifa = new tarifas(); TarifaImplement oTarifaImplement = new TarifaImplement(); oTarifa = oTarifaImplement.Get(oSocio.id_socio); Recargo = Recargo * resultado; DateTime fecha_segundo_venc = new DateTime(); fecha_segundo_venc = DateTime.Parse(detallesCalc.Rows[0][3].ToString()); if (fecha_segundo_venc > DateTime.Today) { if (oTarifa.cargo_fijo > Recargo) //esto lo hago segun la marca en recargo en tabla tarifas? { Recargo = (decimal)oTarifa.cargo_fijo; } } return(Recargo); } }
public facturas_detalles getDetalle(int idSocio, decimal cargoFijo, decimal abono, decimal valorM3, cod_conceptos oConcepto, facturas oFactura, conceptos_particulares oConceptoParticular) { SocioMedicionImplement oSocioMedicionImpl = new SocioMedicionImplement(); socios_mediciones oSocioMedicion = new socios_mediciones(); if (oFactura.id_medicion.Value != 0) { oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value); } acciones oAccion = new acciones(); AccionImplement oAccionesImplement = new AccionImplement(); facturas_detalles oDetalle = new facturas_detalles(); oDetalle.idOrden = oConcepto.orden_concepto; oDetalle.id_concepto = oConcepto.id_concepto; oDetalle.idTipo = 0; oDetalle.id_factura = oFactura.id_factura; ConvenioImplement oConvenioImplement = new ConvenioImplement(); switch (oConcepto.id_formula) { case 0: oDetalle.importe = cargoFijo; break; case 1: if (cargoFijo > 0) { oDetalle.importe = cargoFijo * oConcepto.variable.Value; } else { if (oFactura.id_medicion.Value != 0) { //revisar if ((oSocioMedicion.consumo - abono) <= 0) { // Si no hubo consumo excedente ... oDetalle.importe = abono * valorM3 * oConcepto.variable.Value; } else { // Si hubo consumo excedente ... decimal uno = (abono * valorM3); decimal dos = ((oSocioMedicion.consumo.Value - abono) * valorM3); oDetalle.importe = (uno + dos) * oConcepto.variable.Value; } } else { //Por que no tiene medidor usa el abono oDetalle.importe = abono * valorM3 * oConcepto.variable.Value; } } break; case 2: // Consumo excedente por ValorM3 // (Facturas.Consumo - Socios.Tarifa->Abono) * // Socios.Tarifa->ValorM3 if (oFactura.id_medicion.Value != 0) { oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value); if ((oSocioMedicion.consumo.Value - abono) > 0) { // ' Calcula sólo sobre el consumo excedente oDetalle.importe = (oSocioMedicion.consumo.Value - abono) * valorM3; } else { // No hubo consumo excedente oDetalle.importe = 0; } } else { oDetalle.importe = 0; } break; case 3: // ' Abono por ValorM3 //' Socios.Tarifa->Abono * Socios.Tarifa->ValorM3 oDetalle.importe = abono * valorM3; break; case 4: //' Consumo por ValorM3 por Variable //' Facturas.Consumo * Socios.Tarifa->ValorM3 * Conceptos.Variable if (oFactura.id_medicion.Value != 0) { oDetalle.importe = oSocioMedicion.consumo.Value * valorM3 * oConcepto.variable.Value; } else { oDetalle.importe = 0; } break; case 5: oAccion = oAccionesImplement.GetByIdSocio(idSocio); if (oAccion != null) { if (oAccion.cuotas > oAccion.facturadas) { oAccion.facturadas = oAccion.facturadas + 1; oAccionesImplement.Update(oAccion); oDetalle.importe = oAccion.valor_cuota; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } break; case 6: // Variable por Cuota Acciones // Acciones.ValorCuota * Conceptos.Variable // Buscar Acciones oAccion = oAccionesImplement.GetByIdSocio(idSocio); // Si encuentra un registro if (oAccion != null) { // Pregunta si no está finalizado if (oAccion.cuotas > oAccion.facturadas) { //Si no ha finalizado se factura una cuota más oAccion.facturadas = oAccion.facturadas + 1; oAccionesImplement.Update(oAccion); oDetalle.importe = oAccion.valor_cuota * oConcepto.variable.Value; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } break; case 7: // Cuota Convenio de pago // Convenios.ValorCuota decimal ImporteConvenios = 0; // Inicializa el campo en cero oDetalle.importe = 0; // Buscar Convenio IList ListConvenios = oConvenioImplement.GetAllBySocio(idSocio); foreach (convenios oConvenio in ListConvenios) { // Verifica que no se trate de un convenio judicial if (!oConvenio.convenio_judicial.Value) { //Pregunta si no está finalizado if (oConvenio.cuotas > oConvenio.facturadas) { //Si no ha finalizado se factura una cuota más oConvenio.facturadas = oConvenio.facturadas + 1; if (oConvenio.cuotas == oConvenio.facturadas) { oConvenio.finalizado = true; } oConvenioImplement.Update(oConvenio); ImporteConvenios = ImporteConvenios + oConvenio.valor_cuota; } } } oDetalle.importe = ImporteConvenios; break; case 8: // Variable por Cuota Convenio // Convenios.ValorCuota * Conceptos.Variable // Buscar Convenio IList ListaConvenios = oConvenioImplement.GetAllBySocio(idSocio); //Si encuentra un registro oDetalle.importe = 0; foreach (convenios oConvenio in ListaConvenios) { // Verifica que no se trate de un convenio judicial if (!oConvenio.convenio_judicial.Value) { //Pregunta si no está finalizado if (oConvenio.cuotas > oConvenio.facturadas) { oConvenio.facturadas = oConvenio.facturadas + 1; oConvenioImplement.Update(oConvenio); oDetalle.importe = oConvenio.valor_cuota * oConcepto.variable.Value; } else { oDetalle.importe = 0; } } else { oDetalle.importe = 0; } } break; case 9: //Importe fijo según concepto // Conceptos.Variable oDetalle.importe = oConcepto.variable.Value; break; case 10: // Importe variable que se calcula en el momento // (NO IMPLEMENTADO) break; case 11: // Importe fijo según Conceptos Particulares // ConceptosPartic.Importe oDetalle.importe = oConceptoParticular.importe; break; } return(oDetalle); }