예제 #1
0
        public CO_Respuesta InsertEncabezadoFactura(CO_Facturacion objFacturacion)
        {
            var objRespuesta = new CO_Respuesta();

            objRespuesta.IntRespuesta = 0;
            var sql_query = string.Empty;

            sql_query = " INSERT INTO [dbo].[Factura_Encabezado] " +
                        " ([numero_factura],[serie] " +
                        " ,[id_cliente],[fecha_factura],[estado],[costo_servicio]) " +
                        " VALUES " +
                        " (@numero_factura, @serie " +
                        " , @id_cliente, @fecha_factura, @estado,@costo_servicio); " +
                        " select SCOPE_IDENTITY(); ";

            using (var conecta = objConexion.Conectar())
            {
                var comando = new SqlCommand(sql_query, conecta);
                comando.Parameters.AddWithValue("numero_factura", objFacturacion.Numero_Factura);
                comando.Parameters.AddWithValue("serie", objFacturacion.Serie);
                comando.Parameters.AddWithValue("id_cliente", objFacturacion.Id_Cliente);
                comando.Parameters.AddWithValue("fecha_factura", objFacturacion.FechaFactura);
                comando.Parameters.AddWithValue("costo_servicio", objFacturacion.CostoServicio);
                comando.Parameters.AddWithValue("estado", "CERRADO");

                try
                {
                    conecta.Open();
                    int id_factura = 0;
                    id_factura = Convert.ToInt32(comando.ExecuteScalar());
                    objRespuesta.IntRespuesta = id_factura;
                }
                catch (Exception e)
                {
                    objRespuesta.MensajeRespuesta = e.Message;
                }
            }

            return(objRespuesta);
        }
예제 #2
0
        public CO_Respuesta InsertDetalleFactura(CO_Facturacion objFacturacion)
        {
            var objRespuesta = new CO_Respuesta();

            objRespuesta.BoolRespuesta = false;
            var sql_query = string.Empty;

            sql_query = " INSERT INTO [dbo].[Factura_Detalle] " +
                        " ([id_factura],[numero_factura] " +
                        " ,[serie],[tipo],[id_producto_servicio] " +
                        " ,[cantidad],[precio],[subtotal]) " +
                        " VALUES " +
                        " (@id_factura, @numero_factura " +
                        " , @serie, @tipo, @id_producto_servicio " +
                        " , @cantidad, @precio, @subtotal); ";

            using (var conecta = objConexion.Conectar())
            {
                var comando = new SqlCommand(sql_query, conecta);
                comando.Parameters.AddWithValue("id_factura", objFacturacion.Id_Factura);
                comando.Parameters.AddWithValue("numero_factura", objFacturacion.Numero_Factura);
                comando.Parameters.AddWithValue("serie", objFacturacion.Serie);
                comando.Parameters.AddWithValue("tipo", objFacturacion.Tipo);
                comando.Parameters.AddWithValue("id_producto_servicio", objFacturacion.Id_Producto_Servicio);
                comando.Parameters.AddWithValue("cantidad", objFacturacion.Cantidad);
                comando.Parameters.AddWithValue("precio", objFacturacion.Precio);
                comando.Parameters.AddWithValue("subtotal", objFacturacion.SubTotal);

                try
                {
                    conecta.Open();
                    comando.ExecuteScalar();
                    objRespuesta.BoolRespuesta = true;
                }
                catch (Exception e)
                {
                    objRespuesta.BoolRespuesta    = false;
                    objRespuesta.MensajeRespuesta = e.Message;
                }

                /*Sumo Subtotal*/
                sql_query = "select sum(subtotal) as total " +
                            " from factura_detalle " +
                            " where id_factura = @id_factura ";

                var total         = 0.00m;
                var comando_total = new SqlCommand(sql_query, conecta);
                comando_total.Parameters.AddWithValue("id_factura", objFacturacion.Id_Factura);
                try
                {
                    /*conecta.Open();*/
                    /*Ejecuto Query*/
                    total = Convert.ToDecimal(comando_total.ExecuteScalar());
                    objRespuesta.BoolRespuesta = true;
                }
                catch (Exception e)
                {
                    objRespuesta.BoolRespuesta    = false;
                    objRespuesta.MensajeRespuesta = e.Message;
                }


                /*Actualizo Total*/
                sql_query = "UPDATE [dbo].[Factura_Encabezado]" +
                            " SET [total] = @total " +
                            " WHERE id_factura = @id_factura; ";
                var comando_up = new SqlCommand(sql_query, conecta);
                comando_up.Parameters.AddWithValue("total", total + objFacturacion.CostoServicio);
                comando_up.Parameters.AddWithValue("id_factura", objFacturacion.Id_Factura);

                try
                {
                    /*Ejecuto Query*/
                    /*conecta.Open();*/
                    comando_up.ExecuteNonQuery();
                    objRespuesta.BoolRespuesta = true;
                }
                catch (Exception e)
                {
                    objRespuesta.BoolRespuesta    = false;
                    objRespuesta.MensajeRespuesta = e.Message;
                }
            }

            return(objRespuesta);
        }
예제 #3
0
 public CO_Respuesta CerrarServicio(CO_Facturacion objFacturacion, CO_Servicios objServicio)
 {
     return(obj_Negocio_Servicios.CerrarServicio(objFacturacion, objServicio));
 }
예제 #4
0
 protected bool CerrarServicio(CO_Facturacion objFacturacion, CO_Servicios objServicio)
 {
     objRespuesta = obj_Negocio_Servicios.CerrarServicio(objFacturacion, objServicio);
     return(objRespuesta.BoolRespuesta);
 }
예제 #5
0
        public CO_Respuesta CerrarServicio(CO_Facturacion objFacturacion, CO_Servicios objServicio)
        {
            var objRespuesta = new CO_Respuesta();

            objRespuesta.BoolRespuesta = false;
            var sql_query = string.Empty;

            var obj_Datos_Factura = new Administracion.Facturacion.Facturacion();

            /*Selecciono repuestos y servicios*/
            sql_query = " select 'R' as tipo, corr_servicio_repuesto, id_producto, cantidad, precio_venta, sub_total " +
                        " from Servicio_Repuesto_Detalle " +
                        " where id_servicio = @id_servicio1 " +
                        " union " +
                        " select 'S' as tipo, corr_servicio_externo, corr_servicio_externo, 1 as cantidad, precio, precio " +
                        " from Servicio_Externo_Detalle " +
                        " where id_servicio = @id_servicio2; ";

            using (var conecta = objConexion.Conectar())
            {
                var comando = new SqlCommand(sql_query, conecta);
                comando.Parameters.AddWithValue("id_servicio1", objServicio.Id_Servicio);
                comando.Parameters.AddWithValue("id_servicio2", objServicio.Id_Servicio);

                var TablaProductos = new DataTable();
                var dataAdapter    = new SqlDataAdapter(comando);
                dataAdapter.Fill(TablaProductos);

                try
                {
                    /*Creo encabezado de factura*/
                    objRespuesta = obj_Datos_Factura.InsertEncabezadoFactura(objFacturacion);
                    objFacturacion.Id_Factura = objRespuesta.IntRespuesta;
                }
                catch (Exception e)
                {
                    objRespuesta.MensajeRespuesta = e.Message;
                }


                conecta.Open();

                //Recorro productos y servicios y los agrego al inventario y al detalle de factura
                foreach (DataRow row in TablaProductos.Rows)
                {
                    int     id_producto        = Convert.ToInt32(row["id_producto"].ToString());
                    int     cantidad           = Convert.ToInt32(row["cantidad"].ToString());
                    decimal precio_costo       = Convert.ToDecimal(row["precio_venta"].ToString());
                    decimal porcentaje_ganacia = 0.00m;
                    decimal precio_venta       = Convert.ToDecimal(row["precio_venta"].ToString());

                    if (row["tipo"].ToString() == "R")
                    {
                        sql_query = " INSERT INTO [dbo].[Inventarios] " +
                                    " ([tipo_movimiento],[id_compra_servicio],[id_producto] " +
                                    " ,[cantidad],[precio_costo],[porcentaje_ganancia],[precio_venta]) " +
                                    " VALUES " +
                                    " (@tipo_movimiento, @id_compra_servicio, @id_producto " +
                                    " , @cantidad, @precio_costo, @porcentaje_ganancia, @precio_venta) ";

                        var comando_insert = new SqlCommand(sql_query, conecta);
                        comando_insert.Parameters.AddWithValue("tipo_movimiento", 2);
                        comando_insert.Parameters.AddWithValue("id_compra_servicio", objServicio.Id_Servicio);
                        comando_insert.Parameters.AddWithValue("id_producto", id_producto);
                        comando_insert.Parameters.AddWithValue("cantidad", cantidad * -1);
                        comando_insert.Parameters.AddWithValue("precio_costo", precio_costo);
                        comando_insert.Parameters.AddWithValue("porcentaje_ganancia", porcentaje_ganacia);
                        comando_insert.Parameters.AddWithValue("precio_venta", precio_venta);

                        try
                        {
                            comando_insert.ExecuteScalar();
                            objRespuesta.BoolRespuesta = true;
                        }
                        catch (Exception e)
                        {
                            objRespuesta.BoolRespuesta    = false;
                            objRespuesta.MensajeRespuesta = e.Message;
                        }
                    }

                    objFacturacion.Tipo = row["tipo"].ToString();
                    objFacturacion.Id_Producto_Servicio = id_producto;
                    objFacturacion.Cantidad             = cantidad;
                    objFacturacion.Precio   = precio_venta;
                    objFacturacion.SubTotal = Convert.ToDecimal(row["sub_total"].ToString());

                    try
                    {
                        objRespuesta = obj_Datos_Factura.InsertDetalleFactura(objFacturacion);
                    }
                    catch (Exception e)
                    {
                        objRespuesta.MensajeRespuesta = e.Message;
                    }
                }

                /*Actualizo Encabezado de Servicio*/
                sql_query = "UPDATE [dbo].[servicio_encabezado]" +
                            " SET [estado] = @estado " +
                            " WHERE id_servicio = @id_servicio; ";
                var comando_up = new SqlCommand(sql_query, conecta);
                comando_up.Parameters.AddWithValue("estado", "CERRADO");
                comando_up.Parameters.AddWithValue("id_servicio", objServicio.Id_Servicio);

                try
                {
                    /*Ejecuto Query*/
                    /*conecta.Open();*/
                    comando_up.ExecuteNonQuery();
                    objRespuesta.BoolRespuesta = true;
                }
                catch (Exception e)
                {
                    objRespuesta.BoolRespuesta    = false;
                    objRespuesta.MensajeRespuesta = e.Message;
                }
            }

            return(objRespuesta);
        }