コード例 #1
0
        public DataTable GetByIdFacturaDT(int idFactura)
        {
            try
            {
                int controlImpagas = 0;

                using (cooperativaEntities bd = new cooperativaEntities())
                {

                    var Listar = (from f in bd.facturas

                                  join e in bd.cod_estados_pago on f.id_estadoPago equals e.id_estado_pago
                                  join m in bd.socios_mediciones on f.id_medicion equals m.id_medicion
                                  join pr in bd.periodos on f.id_periodo equals pr.id_periodo
                                  #region
                                  join detalle1 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 23  //IVA
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe,
                                           importea = d != null ? (int?)d.importe : null
                                       }) on f.id_factura equals detalle1.id_factura
                                  into temp
                                  from i in temp.DefaultIfEmpty()

                                  join detalle2 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 18  //Recargo
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle2.id_factura
                                  into temp2
                                  from r in temp2.DefaultIfEmpty()

                                  join detalle3 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 20  //IVARECARGO
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle3.id_factura
                                  into temp3
                                  from ir in temp3.DefaultIfEmpty()

                                  join detalle4 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 21  //DESCUENTO
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle4.id_factura
                                  into temp4
                                  from desc in temp4.DefaultIfEmpty()

                                  join detalle5 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 22   //IVADESCUENTO
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle5.id_factura
                                  into temp5
                                  from idesc in temp5.DefaultIfEmpty()

                                  join detalle6 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 5   //CONVENIOS
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle6.id_factura
                                  into temp6
                                  from fconv in temp6.DefaultIfEmpty()

                                  join detalle7 in
                                      (from d in bd.facturas_detalles
                                       where d.id_concepto == 4   //ACCIONES
                                       select new
                                       {
                                           d.id_factura,
                                           d.importe
                                       }) on f.id_factura equals detalle7.id_factura
                                 into temp7
                                  from facc in temp7.DefaultIfEmpty()

                                  join yr in
                                      (from fx in bd.facturas
                                       join mx in bd.socios_mediciones on fx.id_medicion equals mx.id_medicion

                                       where fx.id_socio == idFactura
                                       orderby fx.id_factura descending
                                       select new
                                       {
                                           fx.id_factura,
                                           mx.lectura,
                                           fx.id_socio
                                       }) on idFactura equals yr.id_factura
                                    into tempo
                                  from df in tempo.Take(1).DefaultIfEmpty()

                                  #endregion
                                  where f.id_factura == idFactura
                                  select new
                                  {
                                      Periodo = f.id_periodo,
                                      Factura = f.id_factura,
                                      FechaFact = f.fechaPago,
                                      FechaVenc = pr.fecha_primer_venc,
                                      idEstado = e.id_estado_pago,
                                      Estado = e.estado_pago,
                                      Total = f.importeTotal,
                                      Neto = f.importeNeto,
                                      IVA = (Decimal?)i.importe,

                                      Recargo = (Decimal?)r.importe,

                                      IVARecargo = (Decimal?)ir.importe,

                                      Descuento = (Decimal?)desc.importe,

                                      IVADescuento = (Decimal?)idesc.importe,

                                      Cobrado = f.cobrado,
                                      Consumo = m.consumo,
                                      Lectura = m.lectura,

                                      LecturaAnt = (Int32?)df.lectura,
                                      DiasVenc = 0,

                                      // Status = aa == null ? (bool?)null : aa.Online;
                                      Convenio = (Decimal?)fconv.importe==null? 0 :(Decimal?)fconv.importe,
                                      Acciones = (Decimal?)facc.importe == null ? 0 : (Decimal?)facc.importe

                                  }).ToList();

                    Commons oCommons = new Commons();
                    DataTable FacturasDetalles = oCommons.convertToTable(Listar);

                    foreach (DataRow rowFactDet in FacturasDetalles.Rows)
                    {
                        CalculosFactura oCalculosFactura = new CalculosFactura();

                        if (int.Parse(rowFactDet["idEstado"].ToString()) == 3)
                        {
                            //paga muestro lo de la fact. como lo hice al principio

                        }
                        else
                        {
                            rowFactDet["Recargo"] = oCalculosFactura.CalcularRecargo(idFactura);
                            rowFactDet["IVARecargo"] = oCalculosFactura.CalcularIVARecargo(idFactura);
                            rowFactDet["Total"] = decimal.Parse(rowFactDet["Total"].ToString()) + decimal.Parse(rowFactDet["Recargo"].ToString()) + decimal.Parse(rowFactDet["IVARecargo"].ToString());

                            rowFactDet["Descuento"] = oCalculosFactura.CalcularDescuento(idFactura);
                            rowFactDet["IVADescuento"] = oCalculosFactura.CalcularIVADescuento(idFactura);
                        }

                        rowFactDet["LecturaAnt"] = oCalculosFactura.ObtenerLecturaAnterior(idFactura);

                        rowFactDet["FechaVenc"] = oCalculosFactura.ObtenerFechaVenc(idFactura);

                        rowFactDet["DiasVenc"] = oCalculosFactura.ObtenerDiasDeVencimiento(idFactura);
                    }
                    return FacturasDetalles;
                }

            }
            catch (Exception)
            {
                return null;
            }
        }
コード例 #2
0
        public DataTable GetByIdSocioSinConvenioDT(int idSocio, int mostrarImpagas, int mostrarValoresActualizados)
        {
            try
            {
                int controlImpagas = 0;
                if (mostrarImpagas == 1)
                {
                    controlImpagas = 3;
                }
                DataTable FacturasDetalles = new DataTable();
                MySqlCommand _comando = new MySqlCommand(String.Format(
               " call facturas_GetByIdSocio('{0}', '{1}')", idSocio, controlImpagas), dbConectorMySql.ObtenerConexion());

                //MySqlDataAdapter _da = new MySqlDataAdapter(_comando);
                //_da.Fill(DTIntimaciones);

                MySqlDataReader _reader = _comando.ExecuteReader();

                FacturasDetalles.Load(_reader);

                using (cooperativaEntities bd = new cooperativaEntities())
                {
                //    var Listar = (from f in bd.facturas

                //                  join e in bd.cod_estados_pago on f.id_estadoPago equals e.id_estado_pago
                //                  join m in bd.socios_mediciones on f.id_medicion equals m.id_medicion
                //                  join pr in bd.periodos on f.id_periodo equals pr.id_periodo
                //                  #region
                //                  join detalle1 in
                //                      (from d in bd.facturas_detalles
                //                       where d.id_concepto == 23  //IVA
                //                       select new
                //                       {
                //                           d.id_factura,
                //                           d.importe,
                //                           importea = d != null ? (int?)d.importe : null
                //                       }) on f.id_factura equals detalle1.id_factura
                //                  into temp
                //                  from i in temp.DefaultIfEmpty()

                //                  join detalle2 in
                //                      (from d in bd.facturas_detalles
                //                       where d.id_concepto == 18  //Recargo
                //                       select new
                //                       {
                //                           d.id_factura,
                //                           d.importe
                //                       }) on f.id_factura equals detalle2.id_factura
                //                  into temp2
                //                  from r in temp2.DefaultIfEmpty()

                //                  join detalle3 in
                //                      (from d in bd.facturas_detalles
                //                       where d.id_concepto == 20  //IVARECARGO
                //                       select new
                //                       {
                //                           d.id_factura,
                //                           d.importe
                //                       }) on f.id_factura equals detalle3.id_factura
                //                  into temp3
                //                  from ir in temp3.DefaultIfEmpty()

                //                  join detalle4 in
                //                      (from d in bd.facturas_detalles
                //                       where d.id_concepto == 21  //DESCUENTO
                //                       select new
                //                       {
                //                           d.id_factura,
                //                           d.importe
                //                       }) on f.id_factura equals detalle4.id_factura
                //                  into temp4
                //                  from desc in temp4.DefaultIfEmpty()

                //                  join detalle5 in
                //                      (from d in bd.facturas_detalles
                //                       where d.id_concepto == 22   //IVADESCUENTO
                //                       select new
                //                       {
                //                           d.id_factura,
                //                           d.importe
                //                       }) on f.id_factura equals detalle5.id_factura
                //                  into temp5
                //                  from idesc in temp5.DefaultIfEmpty()

                //                  join yr in
                //                      (from fx in bd.facturas
                //                       join mx in bd.socios_mediciones on fx.id_medicion equals mx.id_medicion

                //                       where fx.id_socio == idSocio
                //                       orderby fx.id_factura descending
                //                       select new
                //                       {
                //                           fx.id_factura,
                //                           mx.lectura,
                //                           fx.id_socio
                //                       }) on idSocio equals yr.id_socio
                //                    into tempo
                //                  from df in tempo.Take(1).DefaultIfEmpty()

                //                  #endregion
                //                  where f.id_socio == idSocio && (f.id_estadoPago < controlImpagas | controlImpagas == 0)
                //                  && (f.id_convenio==0 | f.id_convenio ==null)
                //                  select new
                //                  {
                //                      Periodo = f.id_periodo,
                //                      Factura = f.id_factura,
                //                      FechaFact = f.fechaPago,
                //                      FechaVenc = pr.fecha_primer_venc,
                //                      idEstado = e.id_estado_pago,
                //                      Estado = e.estado_pago,
                //                      Total = f.importeTotal,
                //                      Neto = f.importeNeto,
                //                      IVA = (Decimal?)i.importe,

                //                      Recargo = (Decimal?)r.importe,

                //                      IVARecargo = (Decimal?)ir.importe,

                //                      Descuento = (Decimal?)desc.importe,

                //                      IVADescuento = (Decimal?)idesc.importe,

                //                      Cobrado = f.cobrado,
                //                      Consumo = m.consumo,
                //                      Lectura = m.lectura,

                //                      LecturaAnt = (Int32?)df.lectura,
                //                      DiasVenc = 0

                //                  }).ToList();

                //    Commons oCommons = new Commons();
                //    DataTable FacturasDetalles = oCommons.convertToTable(Listar);

                    foreach (DataRow rowFactDet in FacturasDetalles.Rows)
                    {
                        CalculosFactura oCalculosFactura = new CalculosFactura();
                        int idFactura = int.Parse(rowFactDet["Factura"].ToString());
                        if (int.Parse(rowFactDet["idEstado"].ToString()) == 3)
                        {
                            //paga muestro lo de la fact. como lo hice al principio

                        }
                        else
                        {
                            //calculo

                            // rowFactDet["IVA"] = oCalculosFactura.CalcularIVA(idFactura);
                            if (mostrarValoresActualizados == 1)
                            {
                                Decimal rec = oCalculosFactura.CalcularRecargo(idFactura);
                                rowFactDet["Recargo"] = rec;
                                rowFactDet["IVARecargo"] = oCalculosFactura.CalcularIVARecargoNuevo(rec, idSocio);
                                rowFactDet["Total"] = decimal.Parse(rowFactDet["Total"].ToString()) + decimal.Parse(rowFactDet["Recargo"].ToString()) + decimal.Parse(rowFactDet["IVARecargo"].ToString());
                            }
                            else
                            {
                                rowFactDet["Recargo"] = 0;
                                rowFactDet["IVARecargo"] = 0;
                            }

                            rowFactDet["Descuento"] = oCalculosFactura.CalcularDescuento(idFactura);
                            rowFactDet["IVADescuento"] = oCalculosFactura.CalcularIVADescuento(idFactura);

                        }

                        rowFactDet["LecturaAnt"] = oCalculosFactura.ObtenerLecturaAnterior(idFactura);

                        rowFactDet["FechaVenc"] = oCalculosFactura.ObtenerFechaVenc(idFactura);

                        rowFactDet["DiasVenc"] = oCalculosFactura.ObtenerDiasDeVencimiento(idFactura);
                    }
                    return FacturasDetalles;
                }

            }
            catch (Exception)
            {
                return null;
            }
        }