示例#1
0
        /**
         * Busca los registros que coincidan con los datos enviados
         * @param LIQUIDACION obj
         * @return Retorna la lista de los registros que coinciden
         */
        public LIQUIDACION[] buscarLIQUIDACION(LIQUIDACION obj)
        {
            LIQUIDACION[]      result = null;
            List <LIQUIDACION> lista  = null;

            try
            {
                LIQUIDACIONDao dao = new LIQUIDACIONDao();
                conn  = conexion.conection();
                lista = dao.search(conn, obj);
                if (lista != null && lista.Count > 0)
                {
                    result = lista.ToArray();
                }
            }
            catch (Exception e)
            {
                result = null;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(result);
        }
示例#2
0
        /**
         * Inserta nuevo registro en la tabla
         * @param LIQUIDACION obj
         * @return Retorna el mismo objeto pero con la llave primaria configurada
         */
        public LIQUIDACION crearLIQUIDACION(LIQUIDACION obj)
        {
            List <LIQUIDACION> lista = null;

            try
            {
                LIQUIDACIONDao dao = new LIQUIDACIONDao();
                conn = conexion.conection();
                dao.create(conn, obj);
                //verificar existencia
                LIQUIDACION tmpObj = new LIQUIDACION();
                tmpObj.ID_CLIENTE          = obj.ID_CLIENTE;
                tmpObj.ID_TIPO_LIQUIDACION = obj.ID_TIPO_LIQUIDACION;
                tmpObj.TOTAL = obj.TOTAL;
                lista        = dao.search(conn, tmpObj);
                if (lista != null && lista.Count > 0)
                {
                    obj = (LIQUIDACION)lista[lista.Count - 1];
                }
                else
                {
                    obj.ID = -1;
                }
            }
            catch (Exception e)
            {
                obj.ID = -1;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(obj);
        }
示例#3
0
        /**
         * Busca el primer registro que coincida con los datos enviados
         * @param LIQUIDACION obj
         * @return Retorna el mismo objeto pero con los datos consultados
         */
        public LIQUIDACION buscarPrimeroLIQUIDACION(LIQUIDACION obj)
        {
            List <LIQUIDACION> lista = null;

            try
            {
                LIQUIDACIONDao dao = new LIQUIDACIONDao();
                conn  = conexion.conection();
                lista = dao.search(conn, obj);
                if (lista != null && lista.Count > 0)
                {
                    obj = (LIQUIDACION)lista[0];
                }
                else
                {
                    obj.ID = -1;
                }
            }
            catch (Exception e)
            {
                obj.ID = -1;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(obj);
        }
示例#4
0
        public void delete(SqlConnection conn, LIQUIDACION valueObject)
        {
            SqlCommand stmt = null;
            String     sql  = "";

            try
            {
                sql  = "DELETE FROM LIQUIDACION WHERE ( id = @id )";
                stmt = new SqlCommand(sql, conn);
                stmt.Parameters.AddWithValue("@id", valueObject.ID);
                int rowcount = databaseUpdate(stmt);
                if (rowcount == 0)
                {
                    throw new Exception("Object could not be deleted! (PrimaryKey not found)");
                }
                if (rowcount > 1)
                {
                    throw new Exception("PrimaryKey Error when updating DB! (Many objects were deleted!)");
                }
            } finally {
                if (stmt != null)
                {
                    stmt.Dispose();
                }
            }
        }
示例#5
0
        private List <LIQUIDACION> listQuery(SqlCommand stmt)
        {
            List <LIQUIDACION> searchResults = new List <LIQUIDACION>();
            SqlDataReader      reader        = null;

            try
            {
                int intt = 0; long longg = 0; double doublee = 0; float floatt = 0; DateTime datee; byte[] bytee;
                reader = stmt.ExecuteReader();
                while (reader.Read())
                {
                    LIQUIDACION temp = createValueObject();

                    temp.ID                  = reader["ID"] != null && int.TryParse(reader["ID"].ToString(), out intt) ? intt : 0;
                    temp.ID_CLIENTE          = reader["ID_CLIENTE"] != null && int.TryParse(reader["ID_CLIENTE"].ToString(), out intt) ? intt : 0;
                    temp.ID_TIPO_LIQUIDACION = reader["ID_TIPO_LIQUIDACION"] != null && int.TryParse(reader["ID_TIPO_LIQUIDACION"].ToString(), out intt) ? intt : 0;
                    temp.FECHA_LIQUIDACION   = reader["FECHA_LIQUIDACION"] != null && !String.IsNullOrEmpty(reader["FECHA_LIQUIDACION"].ToString()) ? (DateTime)reader["FECHA_LIQUIDACION"] : DateTime.MinValue;
                    temp.TOTAL               = reader["TOTAL"] != null && float.TryParse(reader["TOTAL"].ToString(), out floatt) ? floatt : 0;
                    searchResults.Add(temp);
                }
            }
            finally {
                if (!reader.IsClosed)
                {
                    reader.Close();
                }
                if (stmt != null)
                {
                    stmt.Dispose();
                }
            }
            return(searchResults);
        }
示例#6
0
 public LIQUIDACION crearMultipleLIQUIDACION_2(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente)
 {
     try
     {
         LIQUIDACION_DETALLEManagement gestionDetalle = new LIQUIDACION_DETALLEManagement();
         liquidacion.FECHA_LIQUIDACION = DateTime.Now.Date;
         liquidacion = crearLIQUIDACION(liquidacion);
         if (liquidacion != null && liquidacion.ID > 0)
         {
             foreach (LIQUIDACION_DETALLE detalle in lstDetalles)
             {
                 detalle.ID_LIQUIDACION = liquidacion.ID;
                 gestionDetalle.crearLIQUIDACION_DETALLE(detalle);
             }
             return(liquidacion);
         }
         else
         {
             return(null);
         }
     }
     catch (Exception e)
     {
         return(null);
     }
     finally
     {
         if (conn != null && conn.State == System.Data.ConnectionState.Open)
         {
             conn.Close();
         }
     }
 }
示例#7
0
        public void create(SqlConnection conn, LIQUIDACION valueObject)
        {
            String     sql  = "";
            SqlCommand stmt = null;

            try
            {
                sql = "INSERT INTO LIQUIDACION (" +
                      " ID_CLIENTE, ID_TIPO_LIQUIDACION, FECHA_LIQUIDACION," +
                      " TOTAL)" +
                      "VALUES (@ID_CLIENTE,@ID_TIPO_LIQUIDACION,@FECHA_LIQUIDACION,@TOTAL)";

                stmt = new SqlCommand(sql, conn);
                if (valueObject.ID_CLIENTE > 0)
                {
                    stmt.Parameters.AddWithValue("@ID_CLIENTE", valueObject.ID_CLIENTE);
                }
                else
                {
                    stmt.Parameters.AddWithValue("@ID_CLIENTE", DBNull.Value);
                }
                if (valueObject.ID_TIPO_LIQUIDACION > 0)
                {
                    stmt.Parameters.AddWithValue("@ID_TIPO_LIQUIDACION", valueObject.ID_TIPO_LIQUIDACION);
                }
                else
                {
                    stmt.Parameters.AddWithValue("@ID_TIPO_LIQUIDACION", DBNull.Value);
                }
                if (valueObject.FECHA_LIQUIDACION > DateTime.MinValue)
                {
                    stmt.Parameters.AddWithValue("@FECHA_LIQUIDACION", valueObject.FECHA_LIQUIDACION);
                }
                else
                {
                    stmt.Parameters.AddWithValue("@FECHA_LIQUIDACION", DBNull.Value);
                }
                if (valueObject.TOTAL != null)
                {
                    stmt.Parameters.AddWithValue("@TOTAL", valueObject.TOTAL);
                }
                else
                {
                    stmt.Parameters.AddWithValue("@TOTAL", DBNull.Value);
                }

                databaseUpdate(stmt);
            } finally {
                if (stmt != null)
                {
                    stmt.Dispose();
                }
            }
        }
示例#8
0
        public DataSet crearMultipleLIQUIDACION_1(TARIFA tarifa, int id_cliente)
        {
            DataTable lista = new DataTable();
            DataSet   ds    = new DataSet();

            lista.Columns.Add(new DataColumn("ID_TARIFADETALLE"));
            lista.Columns.Add(new DataColumn("CONCEPTO"));
            lista.Columns.Add(new DataColumn("VALOR"));
            lista.Columns.Add(new DataColumn("DESCONTABLE"));
            try
            {
                LIQUIDACION    liquidacion    = new LIQUIDACION();
                TARIFA_DETALLE tARIFA_DETALLE = new TARIFA_DETALLE();
                tARIFA_DETALLE.ID_TARIFA = tarifa.ID;
                TARIFA_DETALLEManagement tARIFA_DETALLEManagement = new TARIFA_DETALLEManagement();
                TARIFA_DETALLE[]         lst_tarifas_detalle      = tARIFA_DETALLEManagement.buscarTARIFA_DETALLE_SoloActivos(tARIFA_DETALLE);
                if (lst_tarifas_detalle != null && lst_tarifas_detalle.Length > 0)
                {
                    foreach (TARIFA_DETALLE item in lst_tarifas_detalle)
                    {
                        double valor;
                        valor = evaluarExpresion(tarifa, id_cliente, item.FORMULA);
                        DataRow dr = lista.NewRow();
                        dr["ID_TARIFADETALLE"] = item.ID;
                        dr["CONCEPTO"]         = getConcepto(item.ID_TARIFA_CONCEPTO);
                        dr["VALOR"]            = valor;
                        dr["DESCONTABLE"]      = item.DESCONTABLE;
                        lista.Rows.Add(dr);
                    }
                    ds.Tables.Add(lista);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                ds = null;
            }
            finally
            {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(ds);
        }
示例#9
0
        public void save(SqlConnection conn, LIQUIDACION valueObject)
        {
            SqlCommand stmt = null;
            String     sql  = "";

            try
            {
                sql = "UPDATE LIQUIDACION SET ID = @ID ," +
                      " ID_CLIENTE = @ID_CLIENTE , ID_TIPO_LIQUIDACION = @ID_TIPO_LIQUIDACION , FECHA_LIQUIDACION = @FECHA_LIQUIDACION ," +
                      " TOTAL = @TOTAL  WHERE (id = @id)";
                stmt = new SqlCommand(sql, conn);



                if (valueObject.FECHA_LIQUIDACION > DateTime.MinValue)
                {
                    stmt.Parameters.AddWithValue("@FECHA_LIQUIDACION", valueObject.FECHA_LIQUIDACION);
                }
                else
                {
                    stmt.Parameters.AddWithValue("@FECHA_LIQUIDACION", DBNull.Value);
                }


                stmt.Parameters.AddWithValue("@id", valueObject.ID);

                int rowcount = databaseUpdate(stmt);
                if (rowcount == 0)
                {
                    throw new Exception("Object could not be saved! (PrimaryKey not found)");
                }
            }
            finally
            {
                if (stmt != null)
                {
                    stmt.Dispose();
                }
            }
        }
示例#10
0
        /**
         * Elimina un registro de la tabla
         * @param LIQUIDACION obj
         * @return Retorna un boolean indicando si se realizo o no la operacion
         */
        public bool eliminarLIQUIDACION(LIQUIDACION obj)
        {
            bool resultado;

            resultado = false;
            try
            {
                LIQUIDACIONDao dao = new LIQUIDACIONDao();
                conn = conexion.conection();
                dao.delete(conn, obj);
                resultado = true;
            }
            catch (Exception e)
            {
                resultado = false;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(resultado);
        }
 private void getLiquidacion(int id_liquidacion)
 {
     try
     {
         myLiquidacion    = new LIQUIDACION();
         myLiquidacion.ID = id_liquidacion;
         myLiquidacion    = serviciosLIQUIDACION.buscarPrimeroLIQUIDACION(myLiquidacion);
         if (myLiquidacion != null && myLiquidacion.ID > 0)
         {
             lblDeuda.Text = "$" + myLiquidacion.TOTAL;
             totalDeuda    = myLiquidacion.TOTAL;
         }
         else
         {
             lblDeuda.Text = "$0";
             totalDeuda    = 0;
         }
     }
     catch (Exception exp)
     {
         MessageBox.Show("Se presento el error: " + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         myLiquidacion = null;
     }
 }
示例#12
0
        public List <LIQUIDACION> search(SqlConnection conn, LIQUIDACION valueObject)
        {
            List <LIQUIDACION> searchResults = new List <LIQUIDACION>();
            bool   first = true;
            String sql   = "SELECT * FROM LIQUIDACION WHERE 1=1 ";

            if (!String.IsNullOrEmpty(valueObject.ID.ToString()) && valueObject.ID > 0)
            {
                if (first)
                {
                    first = false;
                }
                sql += "AND ID= " + valueObject.ID + " ";
            }

            if (!String.IsNullOrEmpty(valueObject.ID_CLIENTE.ToString()) && valueObject.ID_CLIENTE > 0)
            {
                if (first)
                {
                    first = false;
                }
                sql += "AND ID_CLIENTE= " + valueObject.ID_CLIENTE + " ";
            }

            if (!String.IsNullOrEmpty(valueObject.ID_TIPO_LIQUIDACION.ToString()) && valueObject.ID_TIPO_LIQUIDACION > 0)
            {
                if (first)
                {
                    first = false;
                }
                sql += "AND ID_TIPO_LIQUIDACION= " + valueObject.ID_TIPO_LIQUIDACION + " ";
            }

            if (valueObject.FECHA_LIQUIDACION > DateTime.MinValue)
            {
                if (first)
                {
                    first = false;
                }
                sql += "AND FECHA_LIQUIDACION= '" + valueObject.FECHA_LIQUIDACION.ToString("dd/MM/yyyy HH:mm:ss") + "' ";
            }

            if (!String.IsNullOrEmpty(valueObject.TOTAL.ToString()) && valueObject.TOTAL > 0)
            {
                if (first)
                {
                    first = false;
                }
                sql += "AND TOTAL= " + valueObject.TOTAL + " ";
            }

            sql += "ORDER BY id ASC ";

            if (first)
            {
                searchResults = new List <LIQUIDACION>();
            }
            else
            {
                searchResults = listQuery(new SqlCommand(sql, conn));
            }

            return(searchResults);
        }
示例#13
0
        public RECIBO generarRECIBO(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente)
        {
            List <RECIBO> lista    = null;
            dsRecibo      dsRecibo = new dsRecibo();

            try
            {
                conn = conexion.conection();
                int numRecibo = Funciones.getId(conn, "RECIBOS");

                DataRow drEscuela = dsRecibo.ESCUELA.NewRow();
                Image   logo      = Resources.ResourceTmp.LogoConducimos;
                drEscuela["E_LOGO"]        = Funciones.Convertir_Imagen_Bytes(logo);
                drEscuela["E_NOMBRE"]      = "CENTRO DE ENSE�ANZA AUTOMOVIL�STICA CONDUCIMOS S.A.S";
                drEscuela["E_NUM_RECIBO"]  = numRecibo.ToString();
                drEscuela["E_FORMA_PAGO"]  = "Efectivo";
                drEscuela["E_SITIO_WEB"]   = "www.conducimos.com.co";
                drEscuela["E_NIT"]         = "900644828-1";
                drEscuela["E_DIRECCION"]   = "CRA 81 # 26-40";
                drEscuela["E_CIUDAD"]      = "Medell�n";
                drEscuela["E_TELEFONO"]    = "2566295";
                drEscuela["E_CODIGO_CIIU"] = "8559";
                dsRecibo.ESCUELA.Rows.Add(drEscuela);

                DataRow drCliente = dsRecibo.CLIENTE.NewRow();
                drCliente["C_TIPO_DOCUMENTO"]    = myCliente.TIPO_DOCUMENTO;
                drCliente["C_NOMBRES_APELLIDOS"] = myCliente.NOMBRES + " " + myCliente.APELLIDOS;
                drCliente["C_IDENTIFICACION"]    = myCliente.IDENTIFICACION;
                drCliente["C_DIRECCION"]         = myCliente.DIRECCION;
                drCliente["C_CIUDAD"]            = myCliente.CIUDAD;
                drCliente["C_TELEFONO"]          = myCliente.TELEFONO;
                drCliente["C_EMAIL"]             = myCliente.CORREO;
                dsRecibo.CLIENTE.Rows.Add(drCliente);

                TARIFA_CONCEPTOManagement tarifa_conceptoManagement = new TARIFA_CONCEPTOManagement();
                TARIFA_DETALLEManagement  tarifa_detalleManagement  = new TARIFA_DETALLEManagement();

                foreach (LIQUIDACION_DETALLE dETALLE in lstDetalles)
                {
                    TARIFA_DETALLE tarifaDetalle = new TARIFA_DETALLE();
                    tarifaDetalle.ID = dETALLE.ID_TARIFA_DETALLE;
                    tarifaDetalle    = tarifa_detalleManagement.buscarPrimeroTARIFA_DETALLE(tarifaDetalle);
                    if (tarifaDetalle != null && tarifaDetalle.ID_TARIFA_CONCEPTO > 0)
                    {
                        TARIFA_CONCEPTO concepto = new TARIFA_CONCEPTO();
                        concepto.ID = tarifaDetalle.ID_TARIFA_CONCEPTO;
                        concepto    = tarifa_conceptoManagement.buscarPrimeroTARIFA_CONCEPTO(concepto);
                        if (concepto != null && concepto.ID > 0)
                        {
                            DataRow drLiquidacion = dsRecibo.LIQUIDACION.NewRow();
                            drLiquidacion["L_CODIGO"]   = concepto.CODIGO;
                            drLiquidacion["L_CONCEPTO"] = concepto.NOMBRE;
                            drLiquidacion["L_CANTIDAD"] = 1;
                            drLiquidacion["L_UNIDAD"]   = 1;
                            drLiquidacion["L_VALOR"]    = dETALLE.VALOR_CONCEPTO;
                            drLiquidacion["L_IVA"]      = 0;
                            dsRecibo.LIQUIDACION.Rows.Add(drLiquidacion);
                        }
                    }
                }

                String fileName = "Recibo_" + myCliente.IDENTIFICACION.Trim() + "_No." + numRecibo + "_" + DateTime.Now.ToString("dd-MM-yyyy hh-mm-ss.F") + ".pdf";
                fileName = fileName.Replace('/', '-');
                fileName = fileName.Replace(' ', '_');
                String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Recibos";
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                path += "\\" + fileName;
                crRecibo reciboCrystal = new crRecibo();
                reciboCrystal.SetDataSource(dsRecibo);
                reciboCrystal.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, path);
                RECIBO recibo = new RECIBO();
                recibo.ARCHIVO_FISICO = File.ReadAllBytes(path);
                recibo.FECHA_RECIBO   = DateTime.Now.Date;
                recibo.ID_LIQUIDACION = liquidacion.ID;
                recibo.NUMERO_RECIBO  = numRecibo.ToString();
                recibo.VALOR          = liquidacion.TOTAL;
                recibo.ID_ESTADO      = 1;
                recibo = crearRECIBO(recibo);
                return(recibo);
            }
            catch (Exception e)
            {
                return(null);
            }
            finally
            {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
 public bool editarLIQUIDACION(LIQUIDACION obj)
 {
     return(gestionLIQUIDACION.editarLIQUIDACION(obj));
 }
示例#15
0
 public RECIBO generarRECIBO(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente)
 {
     return(gestionRECIBO.generarRECIBO(liquidacion, lstDetalles, myCliente));
 }
 public bool eliminarLIQUIDACION(LIQUIDACION obj)
 {
     return(gestionLIQUIDACION.eliminarLIQUIDACION(obj));
 }
 public LIQUIDACION[] buscarLIQUIDACION(LIQUIDACION obj)
 {
     return(gestionLIQUIDACION.buscarLIQUIDACION(obj));
 }
 public LIQUIDACION buscarPrimeroLIQUIDACION(LIQUIDACION obj)
 {
     return(gestionLIQUIDACION.buscarPrimeroLIQUIDACION(obj));
 }
 public LIQUIDACION crearLIQUIDACION(LIQUIDACION obj)
 {
     return(gestionLIQUIDACION.crearLIQUIDACION(obj));
 }
 public LIQUIDACION crearMultipleLIQUIDACION_2(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente)
 {
     return(gestionLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, myCliente));
 }
        public FACTURA generarFACTURA(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente, Facturaconsecutivodetalle rango)
        {
            List <RECIBO>      lista              = null;
            dsFactura          dsFactura          = new dsFactura();
            FACTURACONSECUTIVO facturaConsecutivo = new FACTURACONSECUTIVO();

            facturaConsecutivoManagement = new FACTURACONSECUTIVOManagement();
            facturaManagement            = new FACTURAManagement();
            facturaConsecutivo.ID        = rango.ID_FACTURACONSECUTIVO;
            facturaConsecutivo           = facturaConsecutivoManagement.buscarPrimeroFACTURACONSECUTIVO(facturaConsecutivo);
            try
            {
                conn = conexion.conection();
                //int numRecibo = Funciones.getId(conn, "RECIBOS");

                DataRow drEscuela = dsFactura.ESCUELA.NewRow();
                Image   logo      = Resources.ResourceTmp.LogoConducimos;
                drEscuela["E_LOGO"]        = Funciones.Convertir_Imagen_Bytes(logo);
                drEscuela["E_NOMBRE"]      = "CENTRO DE ENSEÑANZA AUTOMOVILÍSTICA CONDUCIMOS S.A.S";
                drEscuela["E_NUM_RECIBO"]  = rango.CONSECUTIVO;// myFactura.NUMERO_FACTURA.ToString();
                drEscuela["E_FORMA_PAGO"]  = "Efectivo";
                drEscuela["E_SITIO_WEB"]   = "www.conducimos.com.co";
                drEscuela["E_NIT"]         = "900644828-1";
                drEscuela["E_DIRECCION"]   = "CRA 81 # 26-40";
                drEscuela["E_CIUDAD"]      = "Medellín";
                drEscuela["E_TELEFONO"]    = "2566295";
                drEscuela["E_CODIGO_CIIU"] = "8559";
                if (facturaConsecutivo != null && facturaConsecutivo.ID > 0)
                {
                    drEscuela["E_NUM_RESOLUCION"]   = facturaConsecutivo.RESOLUCION;
                    drEscuela["E_FECHA_RESOLUCION"] = facturaConsecutivo.FECHA_RESOLUCION.ToString("dd MMMM yyyy", CultureInfo.CreateSpecificCulture("es-MX"));
                    drEscuela["E_RANGO_INICIAL"]    = facturaConsecutivo.RANGO_INICIAL;
                    drEscuela["E_RANGO_FINAL"]      = facturaConsecutivo.RANGO_FINAL;
                }
                dsFactura.ESCUELA.Rows.Add(drEscuela);

                DataRow drCliente = dsFactura.CLIENTE.NewRow();
                drCliente["C_TIPO_DOCUMENTO"]    = myCliente.TIPO_DOCUMENTO;
                drCliente["C_NOMBRES_APELLIDOS"] = myCliente.NOMBRES + " " + myCliente.APELLIDOS;
                drCliente["C_IDENTIFICACION"]    = myCliente.IDENTIFICACION;
                drCliente["C_DIRECCION"]         = myCliente.DIRECCION;
                drCliente["C_CIUDAD"]            = myCliente.CIUDAD;
                drCliente["C_TELEFONO"]          = myCliente.TELEFONO;
                drCliente["C_EMAIL"]             = myCliente.CORREO;
                dsFactura.CLIENTE.Rows.Add(drCliente);

                TARIFA_CONCEPTOManagement tarifa_conceptoManagement = new TARIFA_CONCEPTOManagement();
                TARIFA_DETALLEManagement  tarifa_detalleManagement  = new TARIFA_DETALLEManagement();

                foreach (LIQUIDACION_DETALLE dETALLE in lstDetalles)
                {
                    TARIFA_DETALLE tarifaDetalle = new TARIFA_DETALLE();
                    tarifaDetalle.ID = dETALLE.ID_TARIFA_DETALLE;
                    tarifaDetalle    = tarifa_detalleManagement.buscarPrimeroTARIFA_DETALLE(tarifaDetalle);
                    if (tarifaDetalle != null && tarifaDetalle.ID_TARIFA_CONCEPTO > 0)
                    {
                        TARIFA_CONCEPTO concepto = new TARIFA_CONCEPTO();
                        concepto.ID = tarifaDetalle.ID_TARIFA_CONCEPTO;
                        concepto    = tarifa_conceptoManagement.buscarPrimeroTARIFA_CONCEPTO(concepto);
                        if (concepto != null && concepto.ID > 0)
                        {
                            DataRow drLiquidacion = dsFactura.LIQUIDACION.NewRow();
                            drLiquidacion["L_CODIGO"]   = concepto.CODIGO;
                            drLiquidacion["L_CONCEPTO"] = concepto.NOMBRE;
                            drLiquidacion["L_CANTIDAD"] = 1;
                            drLiquidacion["L_UNIDAD"]   = 1;
                            drLiquidacion["L_VALOR"]    = dETALLE.VALOR_CONCEPTO;
                            drLiquidacion["L_IVA"]      = 0;
                            dsFactura.LIQUIDACION.Rows.Add(drLiquidacion);
                        }
                    }
                }

                String fileName = "Factura_" + myCliente.IDENTIFICACION.Trim() + "_No." + rango.CONSECUTIVO + "_" + DateTime.Now.ToString("dd-MM-yyyy hh-mm-ss.F") + ".pdf";
                fileName = fileName.Replace('/', '-');
                fileName = fileName.Replace(' ', '_');
                String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Facturas";
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                path += "\\" + fileName;
                crFactura facturaCrystal = new crFactura();
                facturaCrystal.SetDataSource(dsFactura);
                facturaCrystal.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, path);
                FACTURA factura = new FACTURA();
                factura.ARCHIVO_FISICO    = File.ReadAllBytes(path);
                factura.ID_FACTURA_ESTADO = 1;
                factura.ID_LIQUIDACION    = liquidacion.ID;
                factura.NUMERO_FACTURA    = rango.CONSECUTIVO.ToString();
                factura.DISPONIBLE        = "NO";
                factura = facturaManagement.crearFACTURA(factura);
                return(factura);
            }
            catch (Exception e)
            {
                return(null);
            }
            finally
            {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
 public FACTURA generarFACTURA(LIQUIDACION liquidacion, LIQUIDACION_DETALLE[] lstDetalles, VIEW_CLIENTE myCliente, Facturaconsecutivodetalle rango)
 {
     return(gestionFACTURA.generarFACTURA(liquidacion, lstDetalles, myCliente, rango));
 }