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 CargarDatos() { if (txtNroFactura.Text.Length > 0) { facturas oFacturas = new facturas(); socios oSocio = new socios(); SocioImplement oSocioImplement = new SocioImplement(); FacturasImplement oFacturasImplement = new FacturasImplement(); PeriodosImplement oPeriodosImplement = new PeriodosImplement(); FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); _idFactura = int.Parse(txtNroFactura.Text); if (oFacturasImplement.ExisteFactura(_idFactura)) { oFacturas = oFacturasImplement.Get(int.Parse(txtNroFactura.Text)); oSocio = oSocioImplement.Get((int)oFacturas.id_socio); _idSocio = oSocio.id_socio; txtCodigoSubCodSocio.Text = oSocio.codigo_socio + "/" + oSocio.subcodigo_socio; txtNombreSocio.Text = oSocio.nombre; txtVencimiento.Text = ((DateTime)oPeriodosImplement.Get(oFacturas.id_periodo).fecha_primer_venc).ToShortDateString(); //facturado = neto + iva DataTable detallesFacturaDT = oFacturasImplement.GetByIdFacturaDT(oFacturas.id_factura); decimal _totalFacturado = 0; decimal _importeTotal = 0; decimal _convenio = 0; decimal _acciones = 0; foreach (DataRow dr in detallesFacturaDT.Rows) { //IVA = decimal.Parse(dr["IVA"].ToString()); _totalFacturado = _totalFacturado + decimal.Parse(dr["Neto"].ToString()) + decimal.Parse(dr["IVA"].ToString()); _importeTotal = _importeTotal + decimal.Parse(dr["Total"].ToString()); _convenio = _convenio + decimal.Parse(dr["Convenio"].ToString()); _acciones = _acciones + decimal.Parse(dr["Acciones"].ToString()); } txtFacturado.Text = _totalFacturado.ToString(); txtCobrado.Text = oFacturas.cobrado.ToString(); txtResto.Text = (_totalFacturado - (decimal.Parse(oFacturas.cobrado.ToString()))).ToString(); txtDescuento.Text = "0"; CalculosFactura oCalculosFacturas = new CalculosFactura(); txtRecargo.Text = (oCalculosFacturas.CalcularRecargo(oFacturas.id_factura) + oCalculosFacturas.CalcularIVARecargo(oFacturas.id_factura)).ToString(); txtTotal.Text = (_importeTotal - (decimal)oFacturas.cobrado - decimal.Parse(txtDescuento.Text)).ToString(); txtConvenio.Text = _convenio.ToString(); txtAcciones.Text = _acciones.ToString(); CobranzasImplement oCobranzasImplement = new CobranzasImplement(); txtFactIngresadas.Text = oCobranzasImplement.GetFacturas(dtpFechaCaja.Value).ToString(); txtTotalCobrado.Text = _importeTotal.ToString(); txtTotalFactura.Text = _importeTotal.ToString(); ; txtDiferencia.Text = (decimal.Parse(txtTotalFactura.Text) - decimal.Parse(txtTotalCobrado.Text)).ToString(); } else { //si esta con cobranza entonces seria para cambiar la caja if (oFacturasImplement.ExisteCobranza(_idFactura)) { _existeCobranza = true; } else { _existeCobranza = false; } } } }
private void GuardarCobranza() { facturas oFacturas = new facturas(); socios oSocio = new socios(); SocioImplement oSocioImplement = new SocioImplement(); FacturasImplement oFacturasImplement = new FacturasImplement(); PeriodosImplement oPeriodosImplement = new PeriodosImplement(); FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); oFacturas = oFacturasImplement.Get(int.Parse(txtNroFactura.Text)); oFacturas.id_estadoPago = 3; oFacturasImplement.Update(oFacturas); cobranzas oCobranza = new cobranzas(); oCobranza.id_caja = int.Parse(cmbCaja.SelectedValue.ToString()); oCobranza.id_factura = _idFactura; oCobranza.id_recibo = 0; oCobranza.id_socio = _idSocio; oCobranza.importe = decimal.Parse(txtTotalCobrado.Text); oCobranza.descuento_convenio = 0; oCobranza.iva_descuento_convenio = 0; oCobranza.fecha_cobro = dtpFechaCaja.Value; oCobranza.id_terminal = 0;//VER oCobranza.fecha_registro = DateTime.Now; CobranzasImplement oCobranzasImplement = new CobranzasImplement(); oCobranzasImplement.Save(oCobranza); }
private void CargarDatosMoratoria() { FacturasImplement oFacturasImplement = new FacturasImplement(); CalculosConvenio oCalculosConvenio = new CalculosConvenio(); _ConveniosNoCancelados = oCalculosConvenio.ObtenerImporteConvenioAdeudado(_idSocio); DataTable dtFacturas = oFacturasImplement.GetByIdSocioSinConvenioDT(_idSocio, 1, 1); txtFactAdeudadasMora.Text = dtFacturas.Rows.Count.ToString(); Decimal valorTotalSinInteres = 0; Decimal valorInteresesMora = 0; foreach (DataRow dr in dtFacturas.Rows) { #region <Control Valores Vacios> decimal Neto = 0; decimal IVA = 0; decimal Cobrado = 0; decimal Recargo=0; decimal IVARecargo = 0; if (dr["Neto"] == null | dr["Neto"].ToString() == "") Neto = 0; else Neto = decimal.Parse(dr["Neto"].ToString()); if (dr["IVA"] == null | dr["IVA"].ToString() == "") IVA = 0; else IVA = decimal.Parse(dr["IVA"].ToString()); if (dr["Cobrado"] == null | dr["Cobrado"].ToString() == "") Cobrado = 0; else Cobrado = decimal.Parse(dr["Cobrado"].ToString()); if (dr["Recargo"] == null | dr["Recargo"].ToString() == "") Recargo = 0; else Recargo = decimal.Parse(dr["Recargo"].ToString()); if (dr["IVARecargo"] == null | dr["IVARecargo"].ToString() == "") IVARecargo = 0; else IVARecargo = decimal.Parse(dr["IVARecargo"].ToString()); #endregion valorTotalSinInteres = valorTotalSinInteres + (Neto + IVA - Cobrado); valorInteresesMora = valorInteresesMora + (Recargo + IVARecargo); } Decimal ImporteTotalSinInteresMora =valorTotalSinInteres + _ConveniosNoCancelados; txtTotalSinInteresMora.Text =ImporteTotalSinInteresMora.ToString(); Decimal ImporteInteresesMora = valorInteresesMora; txtImporteInteresesMora.Text = ImporteInteresesMora.ToString(); txtTotalMoratoria.Text = (ImporteTotalSinInteresMora + ImporteInteresesMora).ToString(); txtCuotasAbonadasMora.Text = "1"; txtDescPagoContadoMora.Text = "5%"; txtCantMaxCuotasMora.Text = "-"; facturas oFacturas = new facturas(); oFacturas = oFacturasImplement.GetUltimaFactura(_idSocio); DataTable oFacturasDetallesDT = new DataTable(); FacturasDetallesImplement oFacturasDetallesImplements = new FacturasDetallesImplement(); oFacturasDetallesDT = oFacturasDetallesImplements.GetAllByIdFacturaDT(oFacturas.id_factura); decimal valorUltimaFactura =0; foreach(DataRow dr in oFacturasDetallesDT.Rows) { int _idConcepto = int.Parse(dr["id_concepto"].ToString()); if(_idConcepto==1 | _idConcepto==2 | _idConcepto==3 |_idConcepto==8) { valorUltimaFactura = valorUltimaFactura + decimal.Parse(dr["importe"].ToString()); } } decimal valorMinimoCuota = Math.Round((valorUltimaFactura / 2), 2); txtValorMinimoCuotaMora.Text=valorMinimoCuota.ToString(); int maxCantCuotas = (int)((ImporteTotalSinInteresMora + ImporteInteresesMora) / valorMinimoCuota); //Pregunto por si la moratoria tiene limitacion, si no la tiene cambio la cant max de cuotas por minimo monto //por la max cant de cuotas por moratoria directamente MoratoriasImplement oMoratoriasImplement = new MoratoriasImplement(); DataTable cuotasDT = new DataTable(); DateTime fechaConv = dtpFechaConvenio.Value; cuotasDT = oMoratoriasImplement.GetTablaCuotasConvenioMoratoria(maxCantCuotas, fechaConv, ImporteTotalSinInteresMora, ImporteInteresesMora); txtCantMaxCuotasMora.Text = cuotasDT.Rows.Count.ToString();//esta tabla trae la cantidad de cuotas previendo limitacion con valor minimo dgvCuotasMora.DataSource = cuotasDT; }
private void cargarGrillaConceptos() { FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement(); this.dgvConceptos.DataSource = oFacturasDetallesImplement.GetByIdFacturaDT(_idFactura); this.dgvConceptos.Enabled = true; }